/**
 * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Reset */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-base-foreground: 								hsl(0, 0%, 98%);
	--ck-color-base-background: 								hsl(0, 0%, 100%);
	--ck-color-base-border: 									hsl(220, 6%, 81%);
	--ck-color-base-action: 									hsl(104, 50.2%, 42.5%);
	--ck-color-base-focus: 										hsl(209, 92%, 70%);
	--ck-color-base-text: 										hsl(0, 0%, 20%);
	--ck-color-base-active: 									hsl(218.1, 100%, 58%);
	--ck-color-base-active-focus:								hsl(218.2, 100%, 52.5%);
	--ck-color-base-error:										hsl(15, 100%, 43%);

	/* -- Generic colors ------------------------------------------------------------------------ */

	--ck-color-focus-border-coordinates: 						218, 81.8%, 56.9%;
	--ck-color-focus-border: 									hsl(var(--ck-color-focus-border-coordinates));
	--ck-color-focus-outer-shadow:								hsl(212.4, 89.3%, 89%);
	--ck-color-focus-disabled-shadow:							hsla(209, 90%, 72%,.3);
	--ck-color-focus-error-shadow:								hsla(9,100%,56%,.3);
	--ck-color-text: 											var(--ck-color-base-text);
	--ck-color-shadow-drop: 									hsla(0, 0%, 0%, 0.15);
	--ck-color-shadow-drop-active:								hsla(0, 0%, 0%, 0.2);
	--ck-color-shadow-inner: 									hsla(0, 0%, 0%, 0.1);

	/* -- Buttons ------------------------------------------------------------------------------- */

	--ck-color-button-default-background: 						transparent;
	--ck-color-button-default-hover-background: 				hsl(0, 0%, 94.1%);
	--ck-color-button-default-active-background: 				hsl(0, 0%, 94.1%);
	--ck-color-button-default-disabled-background: 				transparent;

	--ck-color-button-on-background: 							hsl(212, 100%, 97.1%);
	--ck-color-button-on-hover-background: 						hsl(211.7, 100%, 92.9%);
	--ck-color-button-on-active-background: 					hsl(211.7, 100%, 92.9%);
	--ck-color-button-on-disabled-background: 					hsl(211, 15%, 95%);
	--ck-color-button-on-color:									hsl(218.1, 100%, 58%);


	--ck-color-button-action-background: 						var(--ck-color-base-action);
	--ck-color-button-action-hover-background: 					hsl(104, 53.2%, 40.2%);
	--ck-color-button-action-active-background: 				hsl(104, 53.2%, 40.2%);
	--ck-color-button-action-disabled-background: 				hsl(104, 44%, 58%);
	--ck-color-button-action-text: 								var(--ck-color-base-background);

	--ck-color-button-save: 									hsl(120, 100%, 27%);
	--ck-color-button-cancel: 									hsl(15, 100%, 43%);

	--ck-color-switch-button-off-background:					hsl(0, 0%, 57.6%);
	--ck-color-switch-button-off-hover-background:				hsl(0, 0%, 49%);
	--ck-color-switch-button-on-background:						var(--ck-color-button-action-background);
	--ck-color-switch-button-on-hover-background:				hsl(104, 53.2%, 40.2%);
	--ck-color-switch-button-inner-background:					var(--ck-color-base-background);
	--ck-color-switch-button-inner-shadow:						hsla(0, 0%, 0%, 0.1);

	/* -- Dropdown ------------------------------------------------------------------------------ */

	--ck-color-dropdown-panel-background: 						var(--ck-color-base-background);
	--ck-color-dropdown-panel-border: 							var(--ck-color-base-border);

	/* -- Dialog -------------------------------------------------------------------------------- */

	--ck-color-dialog-background: 								var(--ck-custom-background);
	--ck-color-dialog-form-header-border: 						var(--ck-custom-border);

	/* -- Input --------------------------------------------------------------------------------- */

	--ck-color-input-background: 								var(--ck-color-base-background);
	--ck-color-input-border: 									var(--ck-color-base-border);
	--ck-color-input-error-border:								var(--ck-color-base-error);
	--ck-color-input-text: 										var(--ck-color-base-text);
	--ck-color-input-disabled-background: 						hsl(0, 0%, 95%);
	--ck-color-input-disabled-border: 							var(--ck-color-base-border);
	--ck-color-input-disabled-text: 							hsl(0, 0%, 46%);

	/* -- List ---------------------------------------------------------------------------------- */

	--ck-color-list-background: 								var(--ck-color-base-background);
	--ck-color-list-button-hover-background: 					var(--ck-color-button-default-hover-background);
	--ck-color-list-button-on-background: 						var(--ck-color-button-on-color);
	--ck-color-list-button-on-background-focus: 				var(--ck-color-button-on-color);
	--ck-color-list-button-on-text:								var(--ck-color-base-background);

	/* -- Panel --------------------------------------------------------------------------------- */

	--ck-color-panel-background: 								var(--ck-color-base-background);
	--ck-color-panel-border: 									var(--ck-color-base-border);

	/* -- Toolbar ------------------------------------------------------------------------------- */

	--ck-color-toolbar-background: 								var(--ck-color-base-background);
	--ck-color-toolbar-border: 									var(--ck-color-base-border);

	/* -- Tooltip ------------------------------------------------------------------------------- */

	--ck-color-tooltip-background: 								var(--ck-color-base-text);
	--ck-color-tooltip-text: 									var(--ck-color-base-background);

	/* -- Engine -------------------------------------------------------------------------------- */

	--ck-color-engine-placeholder-text: 						hsl(0, 0%, 44%);

	/* -- Upload -------------------------------------------------------------------------------- */

	--ck-color-upload-bar-background:		 					hsl(209, 92%, 70%);

	/* -- Link -------------------------------------------------------------------------------- */

	--ck-color-link-default:									hsl(240, 100%, 47%);
	--ck-color-link-selected-background:						hsla(201, 100%, 56%, 0.1);
	--ck-color-link-fake-selection:								hsla(201, 100%, 56%, 0.3);

	/* -- Search result highlight ---------------------------------------------------------------- */

	--ck-color-highlight-background:							hsl(60, 100%, 50%);

	/* -- Generic colors ------------------------------------------------------------------------- */

	--ck-color-light-red:										hsl(0, 100%, 90%);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/**
	 * An opacity value of disabled UI item.
	 */
	--ck-disabled-opacity: .5;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/**
	 * The geometry of the of focused element's outer shadow.
	 */
	--ck-focus-outer-shadow-geometry: 0 0 0 3px;

	/**
	 * A visual style of focused element's outer shadow.
	 */
	--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);

	/**
	 * A visual style of focused element's outer shadow (when disabled).
	 */
	--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);

	/**
	 * A visual style of focused element's outer shadow (when has errors).
	 */
	--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);

	/**
	 * A visual style of focused element's border or outline.
	 */
	--ck-focus-ring: 1px solid var(--ck-color-focus-border);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-font-size-base: 13px;
	--ck-line-height-base: 1.84615;
	--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;

	--ck-font-size-tiny: 0.7em;
	--ck-font-size-small: 0.75em;
	--ck-font-size-normal: 1em;
	--ck-font-size-big: 1.4em;
	--ck-font-size-large: 1.8em;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/* This is super-important. This is **manually** adjusted so a button without an icon
	is never smaller than a button with icon, additionally making sure that text-less buttons
	are perfect squares. The value is also shared by other components which should stay "in-line"
	with buttons. */
	--ck-ui-component-min-height: 2.3em;
}
/**
 * Resets an element, ignoring its children.
 */
.ck.ck-reset,
.ck.ck-reset_all,
.ck-reset_all *:not(.ck-reset_all-excluded *) {
	box-sizing: border-box;
	width: auto;
	height: auto;
	position: static;

	/* Do not include inheritable rules here. */
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	text-decoration: none;
	vertical-align: middle;
	transition: none;

	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */
	word-wrap: break-word;
}
/**
 * Resets an element AND its children.
 */
.ck.ck-reset_all,
.ck-reset_all *:not(.ck-reset_all-excluded *) {
	/* These are rule inherited by all children elements. */
	border-collapse: collapse;
	font: normal normal normal 13px/1.84615 Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
	font: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);
	color: hsl(0, 0%, 20%);
	color: var(--ck-color-text);
	text-align: left;
	white-space: nowrap;
	cursor: auto;
	float: none;
}
.ck-reset_all .ck-rtl *:not(.ck-reset_all-excluded *) {
		text-align: right;
	}
.ck-reset_all iframe:not(.ck-reset_all-excluded *) {
		/* For IE */
		vertical-align: inherit;
	}
.ck-reset_all textarea:not(.ck-reset_all-excluded *) {
		white-space: pre-wrap;
	}
.ck-reset_all textarea:not(.ck-reset_all-excluded *),
	.ck-reset_all input[type="text"]:not(.ck-reset_all-excluded *),
	.ck-reset_all input[type="password"]:not(.ck-reset_all-excluded *) {
		cursor: text;
	}
.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *),
	.ck-reset_all input[type="text"][disabled]:not(.ck-reset_all-excluded *),
	.ck-reset_all input[type="password"][disabled]:not(.ck-reset_all-excluded *) {
		cursor: default;
	}
.ck-reset_all fieldset:not(.ck-reset_all-excluded *) {
		padding: 10px;
		border: 2px groove hsl(255, 7%, 88%);
	}
.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner {
		/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */
		padding: 0;
		border: 0
	}
/**
 * Default UI rules for RTL languages.
 */
.ck[dir="rtl"],
.ck[dir="rtl"] .ck {
	text-align: right;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Default border-radius value.
 */
:root{
	--ck-border-radius: 2px;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/**
	 * A visual style of element's inner shadow (i.e. input).
	 */
	--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;

	/**
	 * A visual style of element's drop shadow (i.e. panel).
	 */
	--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);

	/**
	 * A visual style of element's active shadow (i.e. comment or suggestion).
	 */
	--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-spacing-unit: 						0.6em;
	--ck-spacing-large: 					calc(var(--ck-spacing-unit) * 1.5);
	--ck-spacing-standard: 					var(--ck-spacing-unit);
	--ck-spacing-medium: 					calc(var(--ck-spacing-unit) * 0.8);
	--ck-spacing-small: 					calc(var(--ck-spacing-unit) * 0.5);
	--ck-spacing-tiny: 						calc(var(--ck-spacing-unit) * 0.3);
	--ck-spacing-extra-tiny: 				calc(var(--ck-spacing-unit) * 0.16);
}

/* Components */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
.ck.ck-autocomplete > .ck-search__results {
		border-radius: 0;

		max-height: 200px;
		overflow-y: auto;
		background: hsl(0, 0%, 100%);
		background: var(--ck-color-base-background);
		border: 1px solid hsl(220, 6%, 81%);
		border: 1px solid var(--ck-color-dropdown-panel-border);
		min-width: auto;
	}
.ck-rounded-corners .ck.ck-autocomplete > .ck-search__results,
	.ck.ck-autocomplete > .ck-search__results.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-autocomplete > .ck-search__results {
		box-shadow: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
		box-shadow: var(--ck-drop-shadow), 0 0;
	}
.ck.ck-autocomplete > .ck-search__results.ck-search__results_n {
			border-bottom-left-radius: 0;
			border-bottom-right-radius: 0;

			/* Prevent duplicated borders between the input and the results pane. */
			margin-bottom: -1px;
		}
.ck.ck-autocomplete > .ck-search__results.ck-search__results_s {
			border-top-left-radius: 0;
			border-top-right-radius: 0;

			/* Prevent duplicated borders between the input and the results pane. */
			margin-top: -1px;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-button,
a.ck.ck-button {
	background: transparent;
	background: var(--ck-color-button-default-background);
	border-radius: 0;

	white-space: nowrap;
	cursor: default;
	vertical-align: middle;
	padding: calc(0.6em * 0.3);
	padding: var(--ck-spacing-tiny);
	text-align: center;

	/* A very important piece of styling. Go to variable declaration to learn more. */
	min-width: 2.3em;
	min-width: var(--ck-ui-component-min-height);
	min-height: 2.3em;
	min-height: var(--ck-ui-component-min-height);

	/* Normalize the height of the line. Removing this will break consistent height
	among text and text-less buttons (with icons). */
	line-height: 1;

	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit;

	/* Avoid flickering when the foucs border shows up. */
	border: 1px solid transparent;

	/* Apply some smooth transition to the box-shadow and border. */
	transition: box-shadow .2s ease-in-out, border .2s ease-in-out;

	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */
	-webkit-appearance: none;
}
.ck.ck-button:not(.ck-disabled):hover, a.ck.ck-button:not(.ck-disabled):hover {
			background: hsl(0, 0%, 94.1%);
			background: var(--ck-color-button-default-hover-background);
		}
.ck.ck-button:not(.ck-disabled):active, a.ck.ck-button:not(.ck-disabled):active {
			background: hsl(0, 0%, 94.1%);
			background: var(--ck-color-button-default-active-background);
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
.ck.ck-button.ck-disabled, a.ck.ck-button.ck-disabled {
		background: transparent;
		background: var(--ck-color-button-default-disabled-background);
	}
.ck-rounded-corners .ck.ck-button,
	.ck-rounded-corners a.ck.ck-button,
	.ck.ck-button.ck-rounded-corners,
	a.ck.ck-button.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-button,
a.ck.ck-button {
		transition: none;
}
	}
.ck.ck-button:active,
	a.ck.ck-button:active,
	.ck.ck-button:focus,
	a.ck.ck-button:focus {
		/* Disable native outline. */
		outline: none;
		border: 1px solid hsl(218, 81.8%, 56.9%);
		border: var(--ck-focus-ring);
		box-shadow: 0 0 0 3px hsl(212.4, 89.3%, 89%), 0 0;
		box-shadow: var(--ck-focus-outer-shadow), 0 0;
	}
/* Allow icon coloring using the text "color" property. */
.ck.ck-button .ck-button__icon use,
		a.ck.ck-button .ck-button__icon use,
		.ck.ck-button .ck-button__icon use *,
		a.ck.ck-button .ck-button__icon use * {
			color: inherit;
		}
.ck.ck-button .ck-button__label, a.ck.ck-button .ck-button__label {
		/* Enable font size inheritance, which allows fluid UI scaling. */
		font-size: inherit;
		font-weight: inherit;
		color: inherit;
		cursor: inherit;

		/* Must be consistent with .ck-icon's vertical align. Otherwise, buttons with and
		without labels (but with icons) have different sizes in Chrome */
		vertical-align: middle;
	}
[dir="ltr"] .ck.ck-button .ck-button__label, [dir="ltr"] a.ck.ck-button .ck-button__label {
			text-align: left;
	}
[dir="rtl"] .ck.ck-button .ck-button__label, [dir="rtl"] a.ck.ck-button .ck-button__label {
			text-align: right;
	}
.ck.ck-button .ck-button__keystroke, a.ck.ck-button .ck-button__keystroke {
		color: inherit;

		opacity: .5;
	}
[dir="ltr"] .ck.ck-button .ck-button__keystroke, [dir="ltr"] a.ck.ck-button .ck-button__keystroke {
			margin-left: calc(0.6em * 1.5);
			margin-left: var(--ck-spacing-large);
	}
[dir="rtl"] .ck.ck-button .ck-button__keystroke, [dir="rtl"] a.ck.ck-button .ck-button__keystroke {
			margin-right: calc(0.6em * 1.5);
			margin-right: var(--ck-spacing-large);
	}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */
.ck.ck-button.ck-disabled:active,
		a.ck.ck-button.ck-disabled:active,
		.ck.ck-button.ck-disabled:focus,
		a.ck.ck-button.ck-disabled:focus {
			/* The disabled button should have a slightly less visible shadow when focused. */
			box-shadow: 0 0 0 3px hsla(209, 90%, 72%,.3), 0 0;
			box-shadow: var(--ck-focus-disabled-outer-shadow), 0 0;
		}
.ck.ck-button.ck-disabled .ck-button__icon, a.ck.ck-button.ck-disabled .ck-button__icon {
			opacity: .5;
			opacity: var(--ck-disabled-opacity);
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
.ck.ck-button.ck-disabled .ck-button__label, a.ck.ck-button.ck-disabled .ck-button__label {
			opacity: .5;
			opacity: var(--ck-disabled-opacity);
		}
.ck.ck-button.ck-disabled .ck-button__keystroke, a.ck.ck-button.ck-disabled .ck-button__keystroke {
			opacity: .3;
		}
.ck.ck-button.ck-button_with-text, a.ck.ck-button.ck-button_with-text {
		padding: calc(0.6em * 0.3) 0.6em;
		padding: var(--ck-spacing-tiny) var(--ck-spacing-standard);

		/* stylelint-disable-next-line no-descending-specificity */
	}
[dir="ltr"] .ck.ck-button.ck-button_with-text .ck-button__icon, [dir="ltr"] a.ck.ck-button.ck-button_with-text .ck-button__icon {
				margin-right: calc(0.6em * 0.8);
				margin-right: var(--ck-spacing-medium);
	}
[dir="rtl"] .ck.ck-button.ck-button_with-text .ck-button__icon, [dir="rtl"] a.ck.ck-button.ck-button_with-text .ck-button__icon {
				margin-left: calc(0.6em * 0.8);
				margin-left: var(--ck-spacing-medium);
	}
/* stylelint-disable-next-line no-descending-specificity */
.ck.ck-button.ck-button_with-keystroke .ck-button__label, a.ck.ck-button.ck-button_with-keystroke .ck-button__label {
			flex-grow: 1;
		}
/* A style of the button which is currently on, e.g. its feature is active. */
.ck.ck-button.ck-on, a.ck.ck-button.ck-on {
		background: hsl(212, 100%, 97.1%);
		background: var(--ck-color-button-on-background);

		color: hsl(218.1, 100%, 58%);

		color: var(--ck-color-button-on-color);
	}
.ck.ck-button.ck-on:not(.ck-disabled):hover, a.ck.ck-button.ck-on:not(.ck-disabled):hover {
			background: hsl(211.7, 100%, 92.9%);
			background: var(--ck-color-button-on-hover-background);
		}
.ck.ck-button.ck-on:not(.ck-disabled):active, a.ck.ck-button.ck-on:not(.ck-disabled):active {
			background: hsl(211.7, 100%, 92.9%);
			background: var(--ck-color-button-on-active-background);
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
.ck.ck-button.ck-on.ck-disabled, a.ck.ck-button.ck-on.ck-disabled {
		background: hsl(211, 15%, 95%);
		background: var(--ck-color-button-on-disabled-background);
	}
.ck.ck-button.ck-button-save, a.ck.ck-button.ck-button-save {
		color: hsl(120, 100%, 27%);
		color: var(--ck-color-button-save);
	}
.ck.ck-button.ck-button-cancel, a.ck.ck-button.ck-button-cancel {
		color: hsl(15, 100%, 43%);
		color: var(--ck-color-button-cancel);
	}
/* A style of the button which handles the primary action. */
.ck.ck-button-action,
a.ck.ck-button-action {
	background: hsl(104, 50.2%, 42.5%);
	background: var(--ck-color-button-action-background);

	color: hsl(0, 0%, 100%);

	color: var(--ck-color-button-action-text);
}
.ck.ck-button-action:not(.ck-disabled):hover, a.ck.ck-button-action:not(.ck-disabled):hover {
			background: hsl(104, 53.2%, 40.2%);
			background: var(--ck-color-button-action-hover-background);
		}
.ck.ck-button-action:not(.ck-disabled):active, a.ck.ck-button-action:not(.ck-disabled):active {
			background: hsl(104, 53.2%, 40.2%);
			background: var(--ck-color-button-action-active-background);
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
.ck.ck-button-action.ck-disabled, a.ck.ck-button-action.ck-disabled {
		background: hsl(104, 44%, 58%);
		background: var(--ck-color-button-action-disabled-background);
	}
.ck.ck-button-bold,
a.ck.ck-button-bold {
	font-weight: bold;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature
of the component, floating–point numbers have been used which, for the default font size
(see: --ck-font-size-base), will generate simple integers. */
:root {
	/* 34px at 13px font-size */
	--ck-switch-button-toggle-width: 2.6153846154em;
	/* 14px at 13px font-size */
	--ck-switch-button-toggle-inner-size: calc(1.0769230769em + 1px);
	--ck-switch-button-translation: calc(
		var(--ck-switch-button-toggle-width) -
		var(--ck-switch-button-toggle-inner-size) -
		2px /* Border */
	);
	--ck-switch-button-inner-hover-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);
}
/* Unlike a regular button, the switch button text color and background should never change.
	 * Changing toggle switch (background, outline) is enough to carry the information about the
	 * state of the entire component (https://github.com/ckeditor/ckeditor5/issues/12519)
	 */
.ck.ck-button.ck-switchbutton, .ck.ck-button.ck-switchbutton:hover, .ck.ck-button.ck-switchbutton:focus, .ck.ck-button.ck-switchbutton:active, .ck.ck-button.ck-switchbutton.ck-on:hover, .ck.ck-button.ck-switchbutton.ck-on:focus, .ck.ck-button.ck-switchbutton.ck-on:active {
		color: inherit;
		background: transparent;
	}
[dir="ltr"] .ck.ck-button.ck-switchbutton .ck-button__label {
			/* Separate the label from the switch */
			margin-right: calc(2 * calc(0.6em * 1.5));
			margin-right: calc(2 * var(--ck-spacing-large));
	}
[dir="rtl"] .ck.ck-button.ck-switchbutton .ck-button__label {
			/* Separate the label from the switch */
			margin-left: calc(2 * calc(0.6em * 1.5));
			margin-left: calc(2 * var(--ck-spacing-large));
	}
.ck.ck-button.ck-switchbutton .ck-button__toggle {
		border-radius: 0;

		/* Apply some smooth transition to the box-shadow and border. */
		/* Gently animate the background color of the toggle switch */
		transition: background 400ms ease, box-shadow .2s ease-in-out, outline .2s ease-in-out;
		border: 1px solid transparent;
		width: 2.6153846154em;
		width: var(--ck-switch-button-toggle-width);
		background: hsl(0, 0%, 57.6%);
		background: var(--ck-color-switch-button-off-background);
	}
.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,
	.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
[dir="ltr"] .ck.ck-button.ck-switchbutton .ck-button__toggle {
			/* Make sure the toggle is always to the right as far as possible. */
			margin-left: auto;
	}
[dir="rtl"] .ck.ck-button.ck-switchbutton .ck-button__toggle {
			/* Make sure the toggle is always to the left as far as possible. */
			margin-right: auto;
	}
.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {
			border-radius: 0;

			width: calc(1.0769230769em + 1px);

			width: var(--ck-switch-button-toggle-inner-size);
			height: calc(1.0769230769em + 1px);
			height: var(--ck-switch-button-toggle-inner-size);
			background: hsl(0, 0%, 100%);
			background: var(--ck-color-switch-button-inner-background);

			/* Gently animate the inner part of the toggle switch */
			transition: all 300ms ease;
		}
.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,
	.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
				border-radius: calc(.5 * 2px);
				border-radius: calc(.5 * var(--ck-border-radius));
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {
				transition: none;
		}
			}
.ck.ck-button.ck-switchbutton .ck-button__toggle:hover {
			background: hsl(0, 0%, 49%);
			background: var(--ck-color-switch-button-off-hover-background);
		}
.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner {
				box-shadow: 0 0 0 5px hsla(0, 0%, 0%, 0.1);
				box-shadow: var(--ck-switch-button-inner-hover-shadow);
			}
.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle {
		opacity: .5;
		opacity: var(--ck-disabled-opacity);
	}
/* Overriding default .ck-button:focus styles + an outline around the toogle */
.ck.ck-button.ck-switchbutton:focus {
		border-color: transparent;
		outline: none;
		box-shadow: none;
	}
.ck.ck-button.ck-switchbutton:focus .ck-button__toggle {
			box-shadow: 0 0 0 1px hsl(0, 0%, 100%), 0 0 0 5px hsl(212.4, 89.3%, 89%);
			box-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 5px var(--ck-color-focus-outer-shadow);
			outline-offset: 1px;
			outline: 1px solid hsl(218, 81.8%, 56.9%);
			outline: var(--ck-focus-ring);
		}
/* stylelint-disable-next-line no-descending-specificity */
.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle {
			background: hsl(104, 50.2%, 42.5%);
			background: var(--ck-color-switch-button-on-background);
		}
.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover {
				background: hsl(104, 53.2%, 40.2%);
				background: var(--ck-color-switch-button-on-hover-background);
			}
/*
				* Move the toggle switch to the right. It will be animated.
				*/
[dir="ltr"] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner {
					transform: translateX( calc(
		2.6153846154em -
		calc(1.0769230769em + 1px) -
		2px 
	) );
					transform: translateX( var( --ck-switch-button-translation ) );
	}
[dir="rtl"] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner {
					transform: translateX( calc( -1 * calc(
		2.6153846154em -
		calc(1.0769230769em + 1px) -
		2px 
	) ) );
					transform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) );
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-button.ck-list-item-button {
	padding: calc(0.6em * 0.3) calc(2 * 0.6em);
	padding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));
}
.ck.ck-button.ck-list-item-button,
	.ck.ck-button.ck-list-item-button.ck-on {
		background: hsl(0, 0%, 100%);
		background: var(--ck-color-list-background);
		color: hsl(0, 0%, 20%);
		color: var(--ck-color-text);
	}
[dir="ltr"] .ck.ck-button.ck-list-item-button:has(.ck-list-item-button__check-holder) {
			padding-left: calc(0.6em * 0.5);
			padding-left: var(--ck-spacing-small);
	}
[dir="rtl"] .ck.ck-button.ck-list-item-button:has(.ck-list-item-button__check-holder) {
			padding-right: calc(0.6em * 0.5);
			padding-right: var(--ck-spacing-small);
	}
/*
	 * `.ck-on` class and background styling is overridden for `ck-button` in many places.
	 * This is a workaround to make sure that the background is not overridden and uses similar
	 * selector specificity as the other overrides.
	 */
.ck.ck-button.ck-list-item-button:hover:not(.ck-disabled),
	.ck.ck-button.ck-list-item-button.ck-button.ck-on:hover,
	.ck.ck-button.ck-list-item-button.ck-on:not(.ck-list-item-button_toggleable),
	.ck.ck-button.ck-list-item-button.ck-on:hover {
		background: hsl(0, 0%, 94.1%);
		background: var(--ck-color-list-button-hover-background);
	}
.ck.ck-button.ck-list-item-button:hover:not(.ck-disabled):not(.ck-disabled), .ck.ck-button.ck-list-item-button.ck-button.ck-on:hover:not(.ck-disabled), .ck.ck-button.ck-list-item-button.ck-on:not(.ck-list-item-button_toggleable):not(.ck-disabled), .ck.ck-button.ck-list-item-button.ck-on:hover:not(.ck-disabled) {
			color: hsl(0, 0%, 20%);
			color: var(--ck-color-text);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-collapsible-arrow-size: calc(0.5 * var(--ck-icon-size));
}
.ck.ck-collapsible > .ck.ck-button {
		width: 100%;
		font-weight: bold;
		border-radius: 0;
		color: inherit;
	}
.ck.ck-collapsible > .ck.ck-button:focus {
			background: transparent;
		}
.ck.ck-collapsible > .ck.ck-button:active, .ck.ck-collapsible > .ck.ck-button:not(:focus), .ck.ck-collapsible > .ck.ck-button:hover:not(:focus) {
			background: transparent;
			border-color: transparent;
			box-shadow: none;
		}
.ck.ck-collapsible > .ck.ck-button > .ck-icon {
			margin-right: calc(0.6em * 0.8);
			margin-right: var(--ck-spacing-medium);
			width: calc(0.5 * calc(1.84615 * 1em));
			width: var(--ck-collapsible-arrow-size);
		}
.ck.ck-collapsible > .ck-collapsible__children {
		padding: calc(0.6em * 0.8) calc(0.6em * 1.5) calc(0.6em * 1.5);
		padding: var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large);
	}
.ck.ck-collapsible.ck-collapsible_collapsed > .ck.ck-button .ck-icon {
			transform: rotate(-90deg);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-grid-tile-size: 24px;

	/* Not using global colors here because these may change but some colors in a pallette
	 * require special treatment. For instance, this ensures no matter what the UI text color is,
	 * the check icon will look good on the black color tile. */
	--ck-color-color-grid-check-icon: hsl(212, 81%, 46%);
}
.ck.ck-color-grid {
	grid-gap: 5px;
	padding: 8px;
}
.ck.ck-color-grid__tile {
	transition: .2s ease box-shadow;
}
@media (forced-colors: none) {
		.ck.ck-color-grid__tile {
		width: 24px;
		width: var(--ck-color-grid-tile-size);
		height: 24px;
		height: var(--ck-color-grid-tile-size);
		min-width: 24px;
		min-width: var(--ck-color-grid-tile-size);
		min-height: 24px;
		min-height: var(--ck-color-grid-tile-size);
		padding: 0;
		border: 0;
		}

		.ck.ck-color-grid__tile.ck-on,
		.ck.ck-color-grid__tile:focus:not( .ck-disabled ),
		.ck.ck-color-grid__tile:hover:not( .ck-disabled ) {
			/* Disable the default .ck-button's border ring. */
			border: 0;
		}

		.ck.ck-color-grid__tile.ck-color-selector__color-tile_bordered {
			box-shadow: 0 0 0 1px hsl(220, 6%, 81%);
			box-shadow: 0 0 0 1px var(--ck-color-base-border);
		}

		.ck.ck-color-grid__tile.ck-on {
			box-shadow: inset 0 0 0 1px hsl(0, 0%, 100%), 0 0 0 2px hsl(0, 0%, 20%);
			box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text);
		}

		.ck.ck-color-grid__tile:focus:not( .ck-disabled ),
		.ck.ck-color-grid__tile:hover:not( .ck-disabled ) {
			box-shadow: inset 0 0 0 1px hsl(0, 0%, 100%), 0 0 0 2px hsl(218, 81.8%, 56.9%);
			box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);
		}
	}
/*
	 * In high contrast mode, the colors are replaced with text labels.
	 * See https://github.com/ckeditor/ckeditor5/issues/14907.
	 */
@media (forced-colors: active) {
		.ck.ck-color-grid__tile {
		width: auto;
		width: initial;
		height: auto;
		height: initial;
		min-width: 0;
		min-width: initial;
		min-height: 0;
		min-height: initial;
		padding: 0 calc(0.6em * 0.5);
		padding: 0 var(--ck-spacing-small);
		}

		.ck.ck-color-grid__tile .ck-button__label {
			display: inline-block;
		}
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-color-grid__tile {
		transition: none;
}
	}
.ck.ck-color-grid__tile.ck-disabled {
		cursor: inherit;
		transition: none 0s ease 0s;
		transition: initial;
	}
.ck.ck-color-grid__tile .ck.ck-icon {
		display: none;
		color: hsl(212, 81%, 46%);
		color: var(--ck-color-color-grid-check-icon);
	}
.ck.ck-color-grid__tile.ck-on .ck.ck-icon {
			display: block;
		}
.ck.ck-color-grid__label {
	padding: 0 0.6em;
	padding: 0 var(--ck-spacing-standard);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* View fragment with color grids. */
.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color,
		.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker {
			width: 100%;
		}
.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker {
			padding: calc(0.6em / 2) 0.6em;
			padding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);
			border-bottom-left-radius: 0;
			border-bottom-right-radius: 0;
		}
.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker:not(:focus) {
				border-top: 1px solid hsl(220, 6%, 81%);
				border-top: 1px solid var(--ck-color-base-border);
			}
[dir="ltr"] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon {
					margin-right: 0.6em;
					margin-right: var(--ck-spacing-standard);
	}
[dir="rtl"] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon {
					margin-left: 0.6em;
					margin-left: var(--ck-spacing-standard);
	}
.ck.ck-color-selector .ck-color-grids-fragment label.ck.ck-color-grid__label {
			font-weight: inherit;
		}
/* View fragment with a color picker. */
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker {
			padding: 8px;
		}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker {
				height: 100px;
				min-width: 180px;
			}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation) {
					border-radius: 2px 2px 0 0;
					border-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;
				}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue) {
					border-radius: 0 0 2px 2px;
					border-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);
				}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation-pointer),
				.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue-pointer) {
					width: 15px;
					height: 15px;
				}
.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar {
			padding: 0 8px 8px;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-dialog-overlay-background-color: hsla( 0, 0%, 0%, .5 );
	--ck-dialog-drop-shadow: 0px 0px 6px 2px hsl(0deg 0% 0% / 15%);
	--ck-dialog-max-width: 100vw;
	--ck-dialog-max-height: 90vh;
	--ck-color-dialog-background: var(--ck-color-base-background);
	--ck-color-dialog-form-header-border: var(--ck-color-base-border);
}
.ck.ck-dialog-overlay {
	animation: ck-dialog-fade-in .3s;
	background: hsla( 0, 0%, 0%, .5 );
	background: var(--ck-dialog-overlay-background-color);
	z-index: 9999;
	z-index: var(--ck-z-dialog);
}
.ck.ck-dialog {
	border-radius: 0;

	--ck-drop-shadow: var(--ck-dialog-drop-shadow);

	background: hsl(0, 0%, 100%);

	background: var(--ck-color-dialog-background);
	max-height: 90vh;
	max-height: var(--ck-dialog-max-height);
	max-width: 100vw;
	max-width: var(--ck-dialog-max-width);
	border: 1px solid hsl(220, 6%, 81%);
	border: 1px solid var(--ck-color-base-border);
	overscroll-behavior: contain;
}
.ck-rounded-corners .ck.ck-dialog,
	.ck.ck-dialog.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-dialog {
	box-shadow: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
	box-shadow: var(--ck-drop-shadow), 0 0;
}
.ck.ck-dialog .ck.ck-form__header {
		border-bottom: 1px solid hsl(220, 6%, 81%);
		border-bottom: 1px solid var(--ck-color-dialog-form-header-border);
	}
.ck-dialog-scroll-locked {
	overflow: hidden;
}
@keyframes ck-dialog-fade-in {
	0% {
		background: hsla( 0, 0%, 0%, 0 );
	}

	100% {
		background: hsla( 0, 0%, 0%, .5 );
		background: var(--ck-dialog-overlay-background-color);
	}
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-dialog .ck.ck-dialog__actions {
		padding: calc(0.6em * 1.5);
		padding: var(--ck-spacing-large);
	}
.ck.ck-dialog .ck.ck-dialog__actions > * + * {
			margin-left: calc(0.6em * 1.5);
			margin-left: var(--ck-spacing-large);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));
}
.ck.ck-dropdown {
	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit;
}
.ck.ck-dropdown .ck-dropdown__arrow {
		width: calc(0.5 * calc(1.84615 * 1em));
		width: var(--ck-dropdown-arrow-size);
	}
[dir="ltr"] .ck.ck-dropdown .ck-dropdown__arrow {
			right: 0.6em;
			right: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-left: 0.6em;
			margin-left: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-dropdown .ck-dropdown__arrow {
			left: 0.6em;
			left: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-right: calc(0.6em * 0.5);
			margin-right: var(--ck-spacing-small);
		}
.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow {
		opacity: .5;
		opacity: var(--ck-disabled-opacity);
	}
[dir="ltr"] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text) {
				/* Make sure dropdowns with just an icon have the right inner spacing */
				padding-left: calc(0.6em * 0.5);
				padding-left: var(--ck-spacing-small);
			}
[dir="rtl"] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text) {
				/* Make sure dropdowns with just an icon have the right inner spacing */
				padding-right: calc(0.6em * 0.5);
				padding-right: var(--ck-spacing-small);
			}
/* #23 */
.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label {
			width: 7em;
			overflow: hidden;
			text-overflow: ellipsis;
		}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label {
			opacity: .5;
			opacity: var(--ck-disabled-opacity);
		}
/* https://github.com/ckeditor/ckeditor5/issues/816 */
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on {
			border-bottom-left-radius: 0;
			border-bottom-right-radius: 0;
		}
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label {
			width: auto;
		}
/* https://github.com/ckeditor/ckeditor5/issues/8699 */
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,
		.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active {
			box-shadow: none;
		}
.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus, .ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus {
				box-shadow: 0 0 0 3px hsl(212.4, 89.3%, 89%), 0 0;
				box-shadow: var(--ck-focus-outer-shadow), 0 0;
			}
.ck.ck-dropdown__panel {
	border-radius: 0;

	background: hsl(0, 0%, 100%);

	background: var(--ck-color-dropdown-panel-background);
	border: 1px solid hsl(220, 6%, 81%);
	border: 1px solid var(--ck-color-dropdown-panel-border);
	bottom: 0;

	/* Make sure the panel is at least as wide as the drop-down's button. */
	min-width: 100%;
}
.ck-rounded-corners .ck.ck-dropdown__panel,
	.ck.ck-dropdown__panel.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-dropdown__panel {
	box-shadow: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
	box-shadow: var(--ck-drop-shadow), 0 0;

	/* Disabled corner border radius to be consistent with the .dropdown__button
	https://github.com/ckeditor/ckeditor5/issues/816 */
}
.ck.ck-dropdown__panel.ck-dropdown__panel_se {
		border-top-left-radius: 0;
	}
.ck.ck-dropdown__panel.ck-dropdown__panel_sw {
		border-top-right-radius: 0;
	}
.ck.ck-dropdown__panel.ck-dropdown__panel_ne {
		border-bottom-left-radius: 0;
	}
.ck.ck-dropdown__panel.ck-dropdown__panel_nw {
		border-bottom-right-radius: 0;
	}
.ck.ck-dropdown__panel:focus {
		outline: none;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
.ck.ck-dropdown > .ck-dropdown__panel > .ck-list {
	/* Disabled radius of top-left border to be consistent with .dropdown__button
	https://github.com/ckeditor/ckeditor5/issues/816 */
	border-radius: 0;
}
.ck-rounded-corners .ck.ck-dropdown > .ck-dropdown__panel > .ck-list,
	.ck.ck-dropdown > .ck-dropdown__panel > .ck-list.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
		border-top-left-radius: 0;
	}
/* Make sure the button belonging to the first/last child of the list goes well with the
	border radius of the entire panel. */
.ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:first-child > .ck-button {
			border-radius: 0;
		}
.ck-rounded-corners .ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:first-child > .ck-button,
	.ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:first-child > .ck-button.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
				border-top-left-radius: 0;
				border-bottom-left-radius: 0;
				border-bottom-right-radius: 0;
	}
.ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:last-child > .ck-button {
			border-radius: 0;
		}
.ck-rounded-corners .ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:last-child > .ck-button,
	.ck.ck-dropdown > .ck-dropdown__panel > .ck-list .ck-list__item:last-child > .ck-button.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
				border-top-left-radius: 0;
				border-top-right-radius: 0;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
:root {
	--ck-color-split-button-hover-background: hsl(0, 0%, 92%);
	--ck-color-split-button-hover-border: hsl(0, 0%, 70%);
}
/*
	 * Note: ck-rounded and ck-dir mixins don't go together (because they both use @nest).
	 */
[dir="ltr"] .ck.ck-splitbutton:hover > .ck-splitbutton__action, [dir="ltr"] .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__action {
			/* Don't round the action button on the right side */
			border-top-right-radius: 0;
			border-top-right-radius: initial;
			border-bottom-right-radius: 0;
			border-bottom-right-radius: initial;
		}
[dir="rtl"] .ck.ck-splitbutton:hover > .ck-splitbutton__action, [dir="rtl"] .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__action {
			/* Don't round the action button on the left side */
			border-top-left-radius: 0;
			border-top-left-radius: initial;
			border-bottom-left-radius: 0;
			border-bottom-left-radius: initial;
		}
.ck.ck-splitbutton > .ck-splitbutton__arrow {
		/* It's a text-less button and since the icon is positioned absolutely in such situation,
		it must get some arbitrary min-width. */
		min-width: 0;
		min-width: initial;
	}
[dir="ltr"] .ck.ck-splitbutton > .ck-splitbutton__arrow {
			/* Don't round the arrow button on the left side */
			border-top-left-radius: 0;
			border-top-left-radius: initial;
			border-bottom-left-radius: 0;
			border-bottom-left-radius: initial;
		}
[dir="rtl"] .ck.ck-splitbutton > .ck-splitbutton__arrow {
			/* Don't round the arrow button on the right side */
			border-top-right-radius: 0;
			border-top-right-radius: initial;
			border-bottom-right-radius: 0;
			border-bottom-right-radius: initial;
		}
.ck.ck-splitbutton > .ck-splitbutton__arrow svg {
			width: calc(0.5 * calc(1.84615 * 1em));
			width: var(--ck-dropdown-arrow-size);
		}
/* Make sure the divider stretches 100% height of the button
	https://github.com/ckeditor/ckeditor5/issues/10936 */
.ck.ck-splitbutton > .ck-splitbutton__arrow:not(:focus) {
		border-top-width: 0px;
		border-bottom-width: 0px;
	}
/* Don't round the bottom left and right corners of the buttons when "open"
	https://github.com/ckeditor/ckeditor5/issues/816 */
.ck.ck-splitbutton.ck-splitbutton_open {
		border-radius: 0;
	}
.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,
	.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__action, .ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners > .ck-splitbutton__action {
				border-bottom-left-radius: 0;
			}
.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow, .ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners > .ck-splitbutton__arrow {
				border-bottom-right-radius: 0;
			}
/* When the split button is "open" (the arrow is on) or being hovered, it should get some styling
	as a whole. The background of both buttons should stand out and there should be a visual
	separation between both buttons. */
/* When the split button hovered as a whole, not as individual buttons. */
.ck.ck-splitbutton.ck-splitbutton_open > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover), .ck.ck-splitbutton:hover > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {
			background: hsl(0, 0%, 92%);
			background: var(--ck-color-split-button-hover-background);
		}
/* Splitbutton separator needs to be set with the ::after pseudoselector
		to display properly the borders on focus */
.ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled)::after, .ck.ck-splitbutton:hover > .ck-splitbutton__arrow:not(.ck-disabled)::after {
			content: '';
			position: absolute;
			width: 1px;
			height: 100%;
			background-color: hsl(0, 0%, 70%);
			background-color: var(--ck-color-split-button-hover-border);
		}
/* Make sure the divider between the buttons looks fine when the button is focused */
.ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow:focus::after, .ck.ck-splitbutton:hover > .ck-splitbutton__arrow:focus::after {
			--ck-color-split-button-hover-border: var(--ck-color-focus-border);
		}
[dir="ltr"] .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled)::after, [dir="ltr"] .ck.ck-splitbutton:hover > .ck-splitbutton__arrow:not(.ck-disabled)::after {
				left: -1px;
			}
[dir="rtl"] .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled)::after, [dir="rtl"] .ck.ck-splitbutton:hover > .ck-splitbutton__arrow:not(.ck-disabled)::after {
				right: -1px;
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-toolbar-dropdown .ck-toolbar {
	border: 0;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * All menu buttons.
 */
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button {
	width: 100%;
	padding: calc(0.6em * 0.3) calc(2 * 0.6em);
	padding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));
	border-radius: 0;
}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button:focus {
		border-color: transparent;
		box-shadow: none;
	}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button:focus:not(.ck-on) {
			background: hsl(0, 0%, 94.1%);
			background: var(--ck-color-button-default-hover-background);
		}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-button__label {
		flex-grow: 1;
		overflow: hidden;
		text-overflow: ellipsis;
	}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-disabled > .ck-button__label {
		opacity: .5;
		opacity: var(--ck-disabled-opacity);
	}
/* Spacing in buttons that miss the icon. */
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-icon-spacing:not(:has(.ck-button__icon)) > .ck-button__label {
		margin-left: calc(calc(1.84615 * 1em) - calc(0.6em * 0.5));
		margin-left: calc(var(--ck-icon-size) - var(--ck-spacing-small));
	}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
		width: calc(0.5 * calc(1.84615 * 1em));
		width: var(--ck-dropdown-arrow-size);
	}
[dir="ltr"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
			transform: rotate(-90deg);

			/* Nudge the arrow gently to the right because its center of gravity is to the left */
			margin-right: calc(-1 * calc(0.6em * 0.5));
			margin-right: calc(-1 * var(--ck-spacing-small));
	}
[dir="rtl"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
			transform: rotate(90deg);

			/* Nudge the arrow gently to the left because its center of gravity is to the right (after rotation). */
			margin-left: calc(-1 * calc(0.6em * 0.5));
			margin-left: calc(-1 * var(--ck-spacing-small));
	}
.ck.ck-button.ck-dropdown-menu-list__nested-menu__button.ck-disabled > .ck-dropdown-menu-list__nested-menu__button__arrow {
		opacity: .5;
		opacity: var(--ck-disabled-opacity);
	}
[dir="ltr"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button:not(.ck-button_with-text) {
			padding-left: calc(0.6em * 0.5);
			padding-left: var(--ck-spacing-small);
		}
[dir="ltr"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
			right: 0.6em;
			right: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-left: 0.6em;
			margin-left: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button:not(.ck-button_with-text) {
			padding-right: calc(0.6em * 0.5);
			padding-right: var(--ck-spacing-small);
		}
[dir="rtl"] .ck.ck-button.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
			left: 0.6em;
			left: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-right: calc(0.6em * 0.5);
			margin-right: var(--ck-spacing-small);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-dropdown-menu-menu-item-min-width: 18em;
}
.ck.ck-dropdown-menu-list__nested-menu__item {
	min-width: 18em;
	min-width: var(--ck-dropdown-menu-menu-item-min-width);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * List item buttons.
 */
.ck-button.ck-dropdown-menu-list__nested-menu__item__button {
	border-radius: 0;
}
.ck-button.ck-dropdown-menu-list__nested-menu__item__button > .ck-spinner-container,
	.ck-button.ck-dropdown-menu-list__nested-menu__item__button > .ck-spinner-container .ck-spinner {
		/* These styles correspond to .ck-icon so that the spinner seamlessly replaces the icon. */
		--ck-toolbar-spinner-size: 20px;
	}
.ck-button.ck-dropdown-menu-list__nested-menu__item__button > .ck-spinner-container {
		/* These margins are the same as for .ck-icon. */
		margin-left: calc(-1 * calc(0.6em * 0.5));
		margin-left: calc(-1 * var(--ck-spacing-small));
		margin-right: calc(0.6em * 0.5);
		margin-right: var(--ck-spacing-small);
	}
/*
	 * Hovered items automatically get focused. Default focus styles look odd
	 * while moving across a huge list of items so let's get rid of them
	 */
.ck-button.ck-dropdown-menu-list__nested-menu__item__button:focus {
		border-color: transparent;
		box-shadow: none;
	}
.ck-button.ck-dropdown-menu-list__nested-menu__item__button:focus:not(.ck-on) {
			background: hsl(0, 0%, 94.1%);
			background: var(--ck-color-button-default-hover-background);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-dropdown-menu-menu-panel-max-width: 75vw;
}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel {
	box-shadow: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
	box-shadow: var(--ck-drop-shadow), 0 0;

	background: hsl(0, 0%, 100%);

	background: var(--ck-color-dropdown-panel-background);
	border: 1px solid hsl(220, 6%, 81%);
	border: 1px solid var(--ck-color-dropdown-panel-border);
	bottom: 0;
	height: -moz-fit-content;
	height: fit-content;
	max-width: 75vw;
	max-width: var(--ck-dropdown-menu-menu-panel-max-width);

	/* Reset balloon styling */
}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel::after,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel::before {
		display: none;
	}
/* Corner border radius consistent with the button. */
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_es,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_se {
		border-top-left-radius: 0;
	}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_ws,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_sw {
		border-top-right-radius: 0;
	}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_en,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_ne {
		border-bottom-left-radius: 0;
	}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_wn,
	.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel.ck-balloon-panel_nw {
		border-bottom-right-radius: 0;
	}
.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel:focus {
		outline: none;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-accessibility-help-dialog-max-width: 600px;
	--ck-accessibility-help-dialog-max-height: 400px;
	--ck-accessibility-help-dialog-border-color: hsl(220, 6%, 81%);
	--ck-accessibility-help-dialog-code-background-color: hsl(0deg 0% 92.94%);
	--ck-accessibility-help-dialog-kbd-shadow-color: hsl(0deg 0% 61%);
}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content {
	padding: calc(0.6em * 1.5);
	padding: var(--ck-spacing-large);
	max-width: 600px;
	max-width: var(--ck-accessibility-help-dialog-max-width);
	max-height: 400px;
	max-height: var(--ck-accessibility-help-dialog-max-height);
	overflow: auto;
	-webkit-user-select: text;
	   -moz-user-select: text;
	        user-select: text;

	border: 1px solid transparent;
}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content:focus {
		/* Disable native outline. */
		outline: none;
		border: 1px solid hsl(218, 81.8%, 56.9%);
		border: var(--ck-focus-ring);
		box-shadow: 0 0 0 3px hsl(212.4, 89.3%, 89%), 0 0;
		box-shadow: var(--ck-focus-outer-shadow), 0 0;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content * {
		white-space: normal;
	}
/* Hide the main label of the content container. */
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content .ck-label {
		display: none;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3 {
		font-weight: bold;
		font-size: 1.2em;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4 {
		font-weight: bold;
		font-size: 1em;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content p,
	.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3,
	.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4,
	.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content table {
		margin: 1em 0;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl {
		display: grid;
		grid-template-columns: 2fr 1fr;
		border-top: 1px solid hsl(220, 6%, 81%);
		border-top: 1px solid var(--ck-accessibility-help-dialog-border-color);
		border-bottom: none;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt, .ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd {
			border-bottom: 1px solid hsl(220, 6%, 81%);
			border-bottom: 1px solid var(--ck-accessibility-help-dialog-border-color);
			padding: .4em 0;
		}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt {
			grid-column-start: 1;
		}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd {
			grid-column-start: 2;
			text-align: right;
		}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd, .ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code {
		display: inline-block;
		background: hsl(0deg 0% 92.94%);
		background: var(--ck-accessibility-help-dialog-code-background-color);
		padding: .4em;
		vertical-align: middle;
		line-height: 1;
		border-radius: 2px;
		text-align: center;
		font-size: .9em;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code {
		font-family: monospace;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd {
		min-width: 1.8em;
		box-shadow: 0px 1px 1px hsl(0deg 0% 61%);
		box-shadow: 0px 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);
		margin: 0 1px;
	}
.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd + kbd {
			margin-left: 2px;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */
:root {
	--ck-color-editable-blur-selection: hsl(0, 0%, 85%);
}
.ck.ck-editor__editable:not(.ck-editor__nested-editable) {
	border-radius: 0;
}
.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),
	.ck.ck-editor__editable.ck-rounded-corners:not(.ck-editor__nested-editable) {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable) {
		/* Disable native outline. */
		outline: none;
		border: 1px solid hsl(218, 81.8%, 56.9%);
		border: var(--ck-focus-ring);
		box-shadow: 2px 2px 3px hsla(0, 0%, 0%, 0.1) inset, 0 0;
		box-shadow: var(--ck-inner-shadow), 0 0;
	}
.ck.ck-editor__editable_inline {
	overflow: auto;
	padding: 0 0.6em;
	padding: 0 var(--ck-spacing-standard);
	border: 1px solid transparent;
}
.ck.ck-editor__editable_inline[dir="ltr"] {
		text-align: left;
	}
.ck.ck-editor__editable_inline[dir="rtl"] {
		text-align: right;
	}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */
.ck.ck-editor__editable_inline > *:first-child {
		margin-top: calc(0.6em * 1.5);
		margin-top: var(--ck-spacing-large);
	}
/* https://github.com/ckeditor/ckeditor5/issues/847 */
.ck.ck-editor__editable_inline > *:last-child {
		/*
		 * This value should match with the default margins of the block elements (like .media or .image)
		 * to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).
		 */
		margin-bottom: calc(0.6em * 1.5);
		margin-bottom: var(--ck-spacing-large);
	}
/* https://github.com/ckeditor/ckeditor5/issues/6517 */
.ck.ck-editor__editable_inline.ck-blurred ::-moz-selection {
		background: hsl(0, 0%, 85%);
		background: var(--ck-color-editable-blur-selection);
	}
.ck.ck-editor__editable_inline.ck-blurred ::selection {
		background: hsl(0, 0%, 85%);
		background: var(--ck-color-editable-blur-selection);
	}
/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */
.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_n"]::after {
		border-bottom-color: hsl(0, 0%, 100%);
		border-bottom-color: var(--ck-color-panel-background);
	}
.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_s"]::after {
		border-top-color: hsl(0, 0%, 100%);
		border-top-color: var(--ck-color-panel-background);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-form-header-height: 44px;
}
.ck.ck-form__header {
	padding: calc(0.6em * 0.5) calc(0.6em * 1.5);
	padding: var(--ck-spacing-small) var(--ck-spacing-large);
	height: 44px;
	height: var(--ck-form-header-height);
	line-height: 44px;
	line-height: var(--ck-form-header-height);
	border-bottom: 1px solid hsl(220, 6%, 81%);
	border-bottom: 1px solid var(--ck-color-base-border);
}
[dir="ltr"] .ck.ck-form__header > .ck-icon {
			margin-right: calc(0.6em * 0.8);
			margin-right: var(--ck-spacing-medium);
	}
[dir="rtl"] .ck.ck-form__header > .ck-icon {
			margin-left: calc(0.6em * 0.8);
			margin-left: var(--ck-spacing-medium);
	}
.ck.ck-form__header .ck-form__header__label {
		--ck-font-size-base: 15px;
		font-weight: bold;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));
	--ck-icon-font-size: .8333350694em;
}
.ck.ck-icon {
	width: calc(1.84615 * 1em);
	width: var(--ck-icon-size);
	height: calc(1.84615 * 1em);
	height: var(--ck-icon-size);

	/* Multiplied by the height of the line in "px" should give SVG "viewport" dimensions */
	font-size: .8333350694em;
	font-size: var(--ck-icon-font-size);

	/* Inherit cursor style (#5). */
	cursor: inherit;
}
.ck.ck-icon * {
		/* Inherit cursor style (#5). */
		cursor: inherit;
	}
/* Allows dynamic coloring of an icon by inheriting its color from the parent. */
.ck.ck-icon.ck-icon_inherit-color {
		color: inherit;
	}
.ck.ck-icon.ck-icon_inherit-color * {
			color: inherit;
		}
.ck.ck-icon.ck-icon_inherit-color *:not([fill]) {
				/* Needed by FF. */
				fill: currentColor;
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-input-width: 18em;

	/* Backward compatibility. */
	--ck-input-text-width: var(--ck-input-width);
}
.ck.ck-input {
	border-radius: 0;

	background: hsl(0, 0%, 100%);

	background: var(--ck-color-input-background);
	border: 1px solid hsl(220, 6%, 81%);
	border: 1px solid var(--ck-color-input-border);
	padding: calc(0.6em * 0.16) calc(0.6em * 0.8);
	padding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);
	min-width: 18em;
	min-width: var(--ck-input-width);

	/* This is important to stay of the same height as surrounding buttons */
	min-height: 2.3em;
	min-height: var(--ck-ui-component-min-height);

	/* Apply some smooth transition to the box-shadow and border. */
	transition: box-shadow .1s ease-in-out, border .1s ease-in-out;
}
.ck-rounded-corners .ck.ck-input,
	.ck.ck-input.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-input {
		transition: none;
}
	}
.ck.ck-input:focus {
		/* Disable native outline. */
		outline: none;
		border: 1px solid hsl(218, 81.8%, 56.9%);
		border: var(--ck-focus-ring);
		box-shadow: 0 0 0 3px hsl(212.4, 89.3%, 89%), 0 0;
		box-shadow: var(--ck-focus-outer-shadow), 0 0;
	}
.ck.ck-input[readonly] {
		border: 1px solid hsl(220, 6%, 81%);
		border: 1px solid var(--ck-color-input-disabled-border);
		background: hsl(0, 0%, 95%);
		background: var(--ck-color-input-disabled-background);
		color: hsl(0, 0%, 46%);
		color: var(--ck-color-input-disabled-text);
	}
.ck.ck-input[readonly]:focus {
			/* The read-only input should have a slightly less visible shadow when focused. */
			box-shadow: 0 0 0 3px hsla(209, 90%, 72%,.3), 0 0;
			box-shadow: var(--ck-focus-disabled-outer-shadow), 0 0;
		}
.ck.ck-input.ck-error {
		border-color: hsl(15, 100%, 43%);
		border-color: var(--ck-color-input-error-border);
		animation: ck-input-shake .3s ease both;
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-input.ck-error {
			animation: none;
	}
		}
.ck.ck-input.ck-error:focus {
			box-shadow: 0 0 0 3px hsla(9,100%,56%,.3), 0 0;
			box-shadow: var(--ck-focus-error-outer-shadow), 0 0;
		}
@keyframes ck-input-shake {
	20% {
		transform: translateX(-2px);
	}

	40% {
		transform: translateX(2px);
	}

	60% {
		transform: translateX(-1px);
	}

	80% {
		transform: translateX(1px);
	}
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-label {
	font-weight: bold;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
:root {
	--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);
	--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);
	--ck-labeled-field-label-default-position-x: var(--ck-spacing-medium);
	--ck-labeled-field-label-default-position-y: calc(0.6 * var(--ck-font-size-base));
	--ck-color-labeled-field-label-background: var(--ck-color-base-background);
}
.ck.ck-labeled-field-view {
	border-radius: 0;
}
.ck-rounded-corners .ck.ck-labeled-field-view,
	.ck.ck-labeled-field-view.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper {
		width: 100%;
	}
.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			top: 0px;

			pointer-events: none;

			background: hsl(0, 0%, 100%);

			background: var(--ck-color-labeled-field-label-background);
			padding: 0 calc(.5 * 0.7em);
			padding: 0 calc(.5 * var(--ck-font-size-tiny));
			line-height: normal;
			line-height: initial;
			font-weight: normal;

			/* Prevent overflow when the label is longer than the input */
			text-overflow: ellipsis;
			overflow: hidden;

			max-width: 100%;

			transition:
				transform .1s cubic-bezier(0, 0, 0.24, 0.95),
				padding .1s cubic-bezier(0, 0, 0.24, 0.95),
				background .1s cubic-bezier(0, 0, 0.24, 0.95);

			transition:
				transform var(--ck-labeled-field-view-transition),
				padding var(--ck-labeled-field-view-transition),
				background var(--ck-labeled-field-view-transition);
		}
[dir="ltr"] .ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
				left: 0px;
				transform-origin: 0 0;
				/* By default, display the label scaled down above the field. */
				transform: translate(calc(0.6em * 0.8), -6px) scale(.75);
				transform: translate(var(--ck-spacing-medium), -6px) scale(.75);
	}
[dir="rtl"] .ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
				right: 0px;
				transform-origin: 100% 0;
				transform: translate(calc(-1 * calc(0.6em * 0.8)), -6px) scale(.75);
				transform: translate(calc(-1 * var(--ck-spacing-medium)), -6px) scale(.75);
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
				transition: none;
		}
			}
.ck.ck-labeled-field-view.ck-error > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			color: hsl(15, 100%, 43%);
			color: var(--ck-color-base-error);
		}
.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly]) + .ck.ck-label {
			color: hsl(15, 100%, 43%);
			color: var(--ck-color-base-error);
		}
.ck.ck-labeled-field-view .ck-labeled-field-view__status {
		font-size: 0.75em;
		font-size: var(--ck-font-size-small);
		margin-top: calc(0.6em * 0.5);
		margin-top: var(--ck-spacing-small);

		/* Let the info wrap to the next line to avoid stretching the layout horizontally.
		The status could be very long. */
		white-space: normal;
	}
.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error {
			color: hsl(15, 100%, 43%);
			color: var(--ck-color-base-error);
		}
/* Disabled fields and fields that have no focus should fade out. */
.ck.ck-labeled-field-view.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,
	.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
		color: hsl(0, 0%, 46%);
		color: var(--ck-color-input-disabled-text);
	}
/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */
/* stylelint-disable-next-line no-descending-specificity */
.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,
	.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {

		/* Compensate for the default translate position. */
		max-width: calc(100% - 2 * calc(0.6em * 0.8));
		max-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));

		background: transparent;
		padding: 0;
	}
[dir="ltr"] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label, [dir="ltr"] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			transform: translate(calc(0.6em * 0.8), calc(0.6 * 13px)) scale(1);
			transform: translate(var(--ck-labeled-field-label-default-position-x), var(--ck-labeled-field-label-default-position-y)) scale(1);
	}
[dir="rtl"] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label, [dir="rtl"] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			transform: translate(calc(-1 * calc(0.6em * 0.8)), calc(0.6 * 13px)) scale(1);
			transform: translate(calc(-1 * var(--ck-labeled-field-label-default-position-x)), var(--ck-labeled-field-label-default-position-y)) scale(1);
	}
/*------ DropdownView integration ----------------------------------------------------------------------------------- */
/* Make sure dropdown' background color in any of dropdown's state does not collide with labeled field. */
.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {
		background: transparent;
	}
/* When the dropdown is "empty", the labeled field label replaces its label. */
.ck.ck-labeled-field-view.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {
		opacity: 0;
	}
/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */
.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {
		max-width: calc(100% - 2 * calc(0.6em * 0.8) - calc(0.5 * calc(1.84615 * 1em)) - 0.6em);
		max-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-labeled-input .ck-labeled-input__status {
	font-size: 0.75em;
	font-size: var(--ck-font-size-small);
	margin-top: calc(0.6em * 0.5);
	margin-top: var(--ck-spacing-small);

	/* Let the info wrap to the next line to avoid stretching the layout horizontally.
	The status could be very long. */
	white-space: normal;
}
.ck.ck-labeled-input .ck-labeled-input__status_error {
	color: hsl(15, 100%, 43%);
	color: var(--ck-color-base-error);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-list {
	border-radius: 0;

	list-style-type: none;
	background: hsl(0, 0%, 100%);
	background: var(--ck-color-list-background);

	/* A spacing at the beginning and end of the list */
	padding: calc(0.6em * 0.5) 0;
	padding: var(--ck-spacing-small) 0;
}
.ck-rounded-corners .ck.ck-list,
	.ck.ck-list.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-list__item {
	cursor: default;

	/* Almost as wide as menu bar items. */
	min-width: 15em;
}
.ck.ck-list__item > .ck-button:not(.ck-list-item-button) {
		padding: calc(0.6em * 0.3) calc(2 * 0.6em);
		padding: var(--ck-spacing-tiny) calc(2 * var(--ck-spacing-standard));
		min-height: 0;
		min-height: initial;
		width: 100%;
		border-radius: 0;
	}
[dir="ltr"] .ck.ck-list__item > .ck-button:not(.ck-list-item-button) {
			text-align: left;
	}
[dir="rtl"] .ck.ck-list__item > .ck-button:not(.ck-list-item-button) {
			text-align: right;
	}
.ck.ck-list__item > .ck-button:not(.ck-list-item-button) .ck-button__label {
			/* https://github.com/ckeditor/ckeditor5-heading/issues/63 */
			line-height: calc(1.84615 * 13px);
			line-height: calc(var(--ck-line-height-base) * var(--ck-font-size-base));
		}
.ck.ck-list__item > .ck-button:not(.ck-list-item-button):active {
			box-shadow: none;
		}
.ck.ck-list__item > .ck-button.ck-on:not(.ck-list-item-button) {
			background: hsl(218.1, 100%, 58%);
			background: var(--ck-color-list-button-on-background);
			color: hsl(0, 0%, 100%);
			color: var(--ck-color-list-button-on-text);
		}
.ck.ck-list__item > .ck-button.ck-on:not(.ck-list-item-button):active {
				box-shadow: none;
			}
.ck.ck-list__item > .ck-button.ck-on:not(.ck-list-item-button):hover:not(.ck-disabled) {
				background: hsl(218.1, 100%, 58%);
				background: var(--ck-color-list-button-on-background-focus);
			}
.ck.ck-list__item > .ck-button.ck-on:not(.ck-list-item-button):focus:not(.ck-disabled) {
				border-color: hsl(0, 0%, 100%);
				border-color: var(--ck-color-base-background);
			}
.ck.ck-list__item > .ck-button:not(.ck-list-item-button):hover:not(.ck-disabled) {
			background: hsl(0, 0%, 94.1%);
			background: var(--ck-color-list-button-hover-background);
		}
/* It's unnecessary to change the background/text of a switch toggle; it has different ways
	of conveying its state (like the switcher) */
.ck.ck-list__item > .ck-button.ck-switchbutton.ck-on {
			background: hsl(0, 0%, 100%);
			background: var(--ck-color-list-background);
			color: inherit;
		}
.ck.ck-list__item > .ck-button.ck-switchbutton.ck-on:hover:not(.ck-disabled) {
				background: hsl(0, 0%, 94.1%);
				background: var(--ck-color-list-button-hover-background);
				color: inherit;
			}
.ck-list .ck-list__group {
	padding-top: calc(0.6em * 0.8);
	padding-top: var(--ck-spacing-medium);

	/* Lists come with an inner vertical padding. Don't duplicate it. */
}
.ck-list .ck-list__group:first-child {
		padding-top: 0;
	}
/* The group should have a border when it's not the first item. */
*:not(.ck-hidden) ~ .ck-list .ck-list__group {
		border-top: 1px solid hsl(220, 6%, 81%);
		border-top: 1px solid var(--ck-color-base-border);
	}
.ck-list .ck-list__group > .ck-label {
		font-size: 11px;
		font-weight: bold;
		padding: calc(0.6em * 0.8) calc(0.6em * 1.5) 0;
		padding: var(--ck-spacing-medium) var(--ck-spacing-large) 0;
	}
.ck.ck-list__separator {
	height: 1px;
	width: 100%;
	background: hsl(220, 6%, 81%);
	background: var(--ck-color-base-border);

	/* Give the separator some air */
	margin: calc(0.6em * 0.5) 0;
	margin: var(--ck-spacing-small) 0;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-menu-bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	background: hsl(0, 0%, 100%);
	background: var(--ck-color-base-background);
	padding: calc(0.6em * 0.5);
	padding: var(--ck-spacing-small);
	gap: calc(0.6em * 0.5);
	gap: var(--ck-spacing-small);
	border: 1px solid hsl(220, 6%, 81%);
	border: 1px solid var(--ck-color-toolbar-border);
	width: 100%;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-menu-bar__menu {
	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit;
}
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level {
		max-width: 100%;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class which indicates that an element holding it is disabled.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
	 * All menu buttons.
	 */
.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button {
		width: 100%;
	}
.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button > .ck-button__label {
			flex-grow: 1;
			overflow: hidden;
			text-overflow: ellipsis;
		}
.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button.ck-disabled > .ck-button__label {
			opacity: .5;
			opacity: var(--ck-disabled-opacity);
		}
[dir="ltr"] .ck.ck-menu-bar__menu > .ck-menu-bar__menu__button:not(.ck-button_with-text) {
				padding-left: calc(0.6em * 0.5);
				padding-left: var(--ck-spacing-small);
			}
[dir="rtl"] .ck.ck-menu-bar__menu > .ck-menu-bar__menu__button:not(.ck-button_with-text) {
				padding-right: calc(0.6em * 0.5);
				padding-right: var(--ck-spacing-small);
			}
/*
	 * Top-level menu buttons only.
	 */
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button {
		padding: calc(0.6em * 0.5) calc(0.6em * 0.8);
		padding: var(--ck-spacing-small) var(--ck-spacing-medium);
		min-height: 0;
		min-height: initial;
	}
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button .ck-button__label {
			width: auto;
			width: initial;
			line-height: inherit;

			/*
			 * Top-level buttons don't use ellipsis and overflow: hidden clips descenders.
			 *  See https://github.com/ckeditor/ckeditor5/issues/17422.
			 */
			overflow: visible;
		}
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button.ck-on {
			border-bottom-left-radius: 0;
			border-bottom-right-radius: 0;
		}
.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button .ck-icon {
			display: none;
		}
/*
	 * Sub-menu buttons.
	 */
.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button {
		border-radius: 0;
	}
.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {
			width: calc(0.5 * calc(1.84615 * 1em));
			width: var(--ck-dropdown-arrow-size);
		}
[dir="ltr"] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {
				transform: rotate(-90deg);

				/* A space to accommodate the triangle. */
				margin-left: 0.6em;
				margin-left: var(--ck-spacing-standard);

				/* Nudge the arrow gently to the right because its center of gravity is to the left */
				margin-right: calc(-1 * calc(0.6em * 0.5));
				margin-right: calc(-1 * var(--ck-spacing-small));
	}
[dir="rtl"] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {
				transform: rotate(90deg);

				left: 0.6em;

				left: var(--ck-spacing-standard);

				/* A space to accommodate the triangle. */
				margin-right: calc(0.6em * 0.5);
				margin-right: var(--ck-spacing-small);

				/* Nudge the arrow gently to the left because its center of gravity is to the right (after rotation). */
				margin-left: calc(-1 * calc(0.6em * 0.5));
				margin-left: calc(-1 * var(--ck-spacing-small));
	}
.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button.ck-disabled > .ck-menu-bar__menu__button__arrow {
			opacity: .5;
			opacity: var(--ck-disabled-opacity);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-menu-bar-menu-item-min-width: 18em;
}
.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item {
	min-width: 18em;
	min-width: var(--ck-menu-bar-menu-item-min-width);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
	 * List item buttons.
	 */
.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button {
		border-radius: 0;
	}
.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container,
		.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container .ck-spinner {
			/* These styles correspond to .ck-icon so that the spinner seamlessly replaces the icon. */
			--ck-toolbar-spinner-size: 20px;
		}
.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container {
			/* This ensures margins corresponding to the .ck-icon. */
			font-size: .8333350694em;
			font-size: var(--ck-icon-font-size);
		}
[dir="ltr"] .ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container {
				margin-right: calc(0.6em * 0.8);
				margin-right: var(--ck-spacing-medium);
	}
[dir="rtl"] .ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button > .ck-spinner-container {
				margin-left: calc(0.6em * 0.8);
				margin-left: var(--ck-spacing-medium);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
:root {
	--ck-menu-bar-menu-panel-max-width: 75vw;
}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {
	border-radius: 0;

	background: hsl(0, 0%, 100%);

	background: var(--ck-color-dropdown-panel-background);
	border: 1px solid hsl(220, 6%, 81%);
	border: 1px solid var(--ck-color-dropdown-panel-border);
	bottom: 0;
	height: -moz-fit-content;
	height: fit-content;
	max-width: 75vw;
	max-width: var(--ck-menu-bar-menu-panel-max-width);
}
.ck-rounded-corners .ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {
	box-shadow: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
	box-shadow: var(--ck-drop-shadow), 0 0;

	/* Corner border radius consistent with the button. */
}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se {
		border-top-left-radius: 0;
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw {
		border-top-right-radius: 0;
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne {
		border-bottom-left-radius: 0;
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw {
		border-bottom-right-radius: 0;
	}
.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel:focus {
		outline: none;
	}
.ck.ck-menu-bar .ck-list-item-button:focus,
		.ck.ck-menu-bar .ck-list-item-button:active {
			border-color: transparent;
			box-shadow: none;
		}
.ck.ck-menu-bar.ck-menu-bar_focus-border-enabled .ck-list-item-button:focus,
		.ck.ck-menu-bar.ck-menu-bar_focus-border-enabled .ck-list-item-button:active {
			/* Fix truncated shadows due to rendering order. */
			position: relative;
			z-index: 2;

			/* Disable native outline. */

			outline: none;

			border: 1px solid hsl(218, 81.8%, 56.9%);

			border: var(--ck-focus-ring);
			box-shadow: 0 0 0 3px hsl(212.4, 89.3%, 89%), 0 0;
			box-shadow: var(--ck-focus-outer-shadow), 0 0;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-balloon-border-width: 1px;
	--ck-balloon-arrow-offset: 2px;
	--ck-balloon-arrow-height: 10px;
	--ck-balloon-arrow-half-width: 8px;
	--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);
}
.ck.ck-balloon-panel {
	border-radius: 0;

	min-height: 15px;

	background: hsl(0, 0%, 100%);

	background: var(--ck-color-panel-background);
	border: 1px solid hsl(220, 6%, 81%);
	border: var(--ck-balloon-border-width) solid var(--ck-color-panel-border);
}
.ck-rounded-corners .ck.ck-balloon-panel,
	.ck.ck-balloon-panel.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-balloon-panel {
	box-shadow: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
	box-shadow: var(--ck-drop-shadow), 0 0;
}
.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::before,
		.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::after {
			width: 0;
			height: 0;
			border-style: solid;
		}
.ck.ck-balloon-panel[class*="arrow_n"]::before,
		.ck.ck-balloon-panel[class*="arrow_n"]::after {
			border-width: 0 8px 10px 8px;
			border-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);
		}
.ck.ck-balloon-panel[class*="arrow_n"]::before {
			border-color: transparent transparent hsl(220, 6%, 81%) transparent;
			border-color: transparent transparent var(--ck-color-panel-border) transparent;
			margin-top: calc( -1 * 1px );
			margin-top: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_n"]::after {
			border-color: transparent transparent hsl(0, 0%, 100%) transparent;
			border-color: transparent transparent var(--ck-color-panel-background) transparent;
			margin-top: calc( 2px - 1px );
			margin-top: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_s"]::before,
		.ck.ck-balloon-panel[class*="arrow_s"]::after {
			border-width: 10px 8px 0 8px;
			border-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);
		}
.ck.ck-balloon-panel[class*="arrow_s"]::before {
			border-color: hsl(220, 6%, 81%) transparent transparent;
			border-color: var(--ck-color-panel-border) transparent transparent;
			filter: drop-shadow(0 2px 2px hsla(0, 0%, 0%, 0.15));
			filter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));
			margin-bottom: calc( -1 * 1px );
			margin-bottom: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_s"]::after {
			border-color: hsl(0, 0%, 100%) transparent transparent transparent;
			border-color: var(--ck-color-panel-background) transparent transparent transparent;
			margin-bottom: calc( 2px - 1px );
			margin-bottom: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_e"]::before,
		.ck.ck-balloon-panel[class*="arrow_e"]::after {
			border-width: 8px 0 8px 10px;
			border-width: var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height);
		}
.ck.ck-balloon-panel[class*="arrow_e"]::before {
			border-color: transparent transparent transparent hsl(220, 6%, 81%);
			border-color: transparent transparent transparent var(--ck-color-panel-border);
			margin-right: calc( -1 * 1px );
			margin-right: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_e"]::after {
			border-color: transparent transparent transparent hsl(0, 0%, 100%);
			border-color: transparent transparent transparent var(--ck-color-panel-background);
			margin-right: calc( 2px - 1px );
			margin-right: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_w"]::before,
		.ck.ck-balloon-panel[class*="arrow_w"]::after {
			border-width: 8px 10px 8px 0;
			border-width: var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0;
		}
.ck.ck-balloon-panel[class*="arrow_w"]::before {
			border-color: transparent hsl(220, 6%, 81%) transparent transparent;
			border-color: transparent var(--ck-color-panel-border) transparent transparent;
			margin-left: calc( -1 * 1px );
			margin-left: calc( -1 * var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel[class*="arrow_w"]::after {
			border-color: transparent hsl(0, 0%, 100%) transparent transparent;
			border-color: transparent var(--ck-color-panel-background) transparent transparent;
			margin-left: calc( 2px - 1px );
			margin-left: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_n::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_n::after {
			left: 50%;
			margin-left: calc(-1 * 8px);
			margin-left: calc(-1 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * 10px);
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw::after {
			left: calc(2 * 8px);
			left: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * 10px);
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne::after {
			right: calc(2 * 8px);
			right: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * 10px);
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_s::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_s::after {
			left: 50%;
			margin-left: calc(-1 * 8px);
			margin-left: calc(-1 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * 10px);
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw::after {
			left: calc(2 * 8px);
			left: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * 10px);
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_se::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_se::after {
			right: calc(2 * 8px);
			right: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * 10px);
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme::after {
			right: 25%;
			margin-right: calc(2 * 8px);
			margin-right: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * 10px);
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw::after {
			left: 25%;
			margin-left: calc(2 * 8px);
			margin-left: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * 10px);
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme::after {
			right: 25%;
			margin-right: calc(2 * 8px);
			margin-right: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * 10px);
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw::after {
			left: 25%;
			margin-left: calc(2 * 8px);
			margin-left: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * 10px);
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_e::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_e::after {
			right: calc(-1 * 10px);
			right: calc(-1 * var(--ck-balloon-arrow-height));
			margin-top: calc(-1 * 8px);
			margin-top: calc(-1 * var(--ck-balloon-arrow-half-width));
			top: 50%;
		}
.ck.ck-balloon-panel.ck-balloon-panel_arrow_w::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_w::after {
			left: calc(-1 * 10px);
			left: calc(-1 * var(--ck-balloon-arrow-height));
			margin-top: calc(-1 * 8px);
			margin-top: calc(-1 * var(--ck-balloon-arrow-half-width));
			top: 50%;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck .ck-balloon-rotator__navigation {
	background: hsl(0, 0%, 100%);
	background: var(--ck-color-toolbar-background);
	border-bottom: 1px solid hsl(220, 6%, 81%);
	border-bottom: 1px solid var(--ck-color-toolbar-border);
	padding: 0 calc(0.6em * 0.5);
	padding: 0 var(--ck-spacing-small);

	/* Let's keep similar appearance to `ck-toolbar`. */
}
.ck .ck-balloon-rotator__navigation > * {
		margin-right: calc(0.6em * 0.5);
		margin-right: var(--ck-spacing-small);
		margin-top: calc(0.6em * 0.5);
		margin-top: var(--ck-spacing-small);
		margin-bottom: calc(0.6em * 0.5);
		margin-bottom: var(--ck-spacing-small);
	}
/* Gives counter more breath than buttons. */
.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter {
		margin-right: 0.6em;
		margin-right: var(--ck-spacing-standard);

		/* We need to use smaller margin because of previous button's right margin. */
		margin-left: calc(0.6em * 0.5);
		margin-left: var(--ck-spacing-small);
	}
/* Disable default annotation shadow inside rotator with fake panels. */
.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper {
		box-shadow: none;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
:root {
	--ck-balloon-fake-panel-offset-horizontal: 6px;
	--ck-balloon-fake-panel-offset-vertical: 6px;
}
/* Let's use `.ck-balloon-panel` appearance. See: balloonpanel.css. */
.ck .ck-fake-panel div {
	box-shadow: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
	box-shadow: var(--ck-drop-shadow), 0 0;

	min-height: 15px;

	background: hsl(0, 0%, 100%);

	background: var(--ck-color-panel-background);
	border: 1px solid hsl(220, 6%, 81%);
	border: 1px solid var(--ck-color-panel-border);
	border-radius: 2px;
	border-radius: var(--ck-border-radius);

	width: 100%;
	height: 100%;
}
.ck .ck-fake-panel div:nth-child( 1 ) {
	margin-left: 6px;
	margin-left: var(--ck-balloon-fake-panel-offset-horizontal);
	margin-top: 6px;
	margin-top: var(--ck-balloon-fake-panel-offset-vertical);
}
.ck .ck-fake-panel div:nth-child( 2 ) {
	margin-left: calc(6px * 2);
	margin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);
	margin-top: calc(6px * 2);
	margin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);
}
.ck .ck-fake-panel div:nth-child( 3 ) {
	margin-left: calc(6px * 3);
	margin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);
	margin-top: calc(6px * 3);
	margin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);
}
/* If balloon is positioned above element, we need to move fake panel to the top. */
.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,
.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,
.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {
	--ck-balloon-fake-panel-offset-vertical: -6px;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
.ck.ck-sticky-panel .ck-sticky-panel__content_sticky {
		box-shadow: 0 1px 2px 1px hsla(0, 0%, 0%, 0.15), 0 0;
		box-shadow: var(--ck-drop-shadow), 0 0;

		border-width: 0 1px 1px;
		border-top-left-radius: 0;
		border-top-right-radius: 0;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck-vertical-form > .ck-button:nth-last-child(2)::after {
	border-right: 1px solid hsl(220, 6%, 81%);
	border-right: 1px solid var(--ck-color-base-border);
}
.ck.ck-responsive-form {
	padding: calc(0.6em * 1.5);
	padding: var(--ck-spacing-large);
}
.ck.ck-responsive-form:focus {
		/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */
		outline: none;
	}
[dir="ltr"] .ck.ck-responsive-form > :not(:first-child) {
			margin-left: 0.6em;
			margin-left: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-responsive-form > :not(:last-child) {
			margin-left: 0.6em;
			margin-left: var(--ck-spacing-standard);
		}
@media screen and (max-width: 600px) {
.ck.ck-responsive-form {
		padding: 0;
		width: calc(.8 * 18em);
		width: calc(.8 * var(--ck-input-width));
}

		.ck.ck-responsive-form .ck-labeled-field-view {
			margin: calc(0.6em * 1.5) calc(0.6em * 1.5) 0;
			margin: var(--ck-spacing-large) var(--ck-spacing-large) 0;
		}

			.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text,
			.ck.ck-responsive-form .ck-labeled-field-view .ck-input-number {
				min-width: 0;
				width: 100%;
			}

			/* Let the long error messages wrap in the narrow form. */
			.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error {
				white-space: normal;
			}

		/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */
			.ck.ck-responsive-form > .ck-button:nth-last-child(2)::after {
				border-right: 1px solid hsl(220, 6%, 81%);
				border-right: 1px solid var(--ck-color-base-border);
			}

		.ck.ck-responsive-form > .ck-button:nth-last-child(1),
		.ck.ck-responsive-form > .ck-button:nth-last-child(2) {
			padding: 0.6em;
			padding: var(--ck-spacing-standard);
			margin-top: calc(0.6em * 1.5);
			margin-top: var(--ck-spacing-large);
			border-radius: 0;
		}

			.ck.ck-responsive-form > .ck-button:nth-last-child(1):not(:focus), .ck.ck-responsive-form > .ck-button:nth-last-child(2):not(:focus) {
				border-top: 1px solid hsl(220, 6%, 81%);
				border-top: 1px solid var(--ck-color-base-border);
			}

			[dir="ltr"] .ck.ck-responsive-form > .ck-button:nth-last-child(1), [dir="ltr"] .ck.ck-responsive-form > .ck-button:nth-last-child(2) {
				margin-left: 0;
	}

			[dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(1), [dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(2) {
				margin-left: 0;
	}

				[dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(1):last-of-type, [dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(2):last-of-type {
					border-right: 1px solid hsl(220, 6%, 81%);
					border-right: 1px solid var(--ck-color-base-border);
				}
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-search-field-view-horizontal-spacing: calc(var(--ck-icon-size) + var(--ck-spacing-medium));
}
.ck.ck-search > .ck-labeled-field-view .ck-input {
			width: 100%;
		}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon {
			--ck-labeled-field-label-default-position-x: var(--ck-search-field-view-horizontal-spacing);
		}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon > .ck-labeled-field-view__input-wrapper > .ck-icon {
				opacity: .5;
				pointer-events: none;
			}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon .ck-input {
				width: 100%;
			}
[dir="ltr"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon .ck-input {
					padding-left: calc(calc(1.84615 * 1em) + calc(0.6em * 0.8));
					padding-left: var(--ck-search-field-view-horizontal-spacing);
	}
[dir="rtl"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-icon .ck-input:not(.ck-input-text_empty) {
						padding-left: calc(calc(1.84615 * 1em) + calc(0.6em * 0.8));
						padding-left: var(--ck-search-field-view-horizontal-spacing);
					}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset {
			--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-search-field-view-horizontal-spacing);
		}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset.ck-labeled-field-view_empty {
				--ck-labeled-field-empty-unfocused-max-width: 100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium);
			}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset {
				min-width: auto;
				min-height: auto;

				background: none;
				opacity: .5;
				padding: 0;
			}
[dir="ltr"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset {
					right: calc(0.6em * 0.8);
					right: var(--ck-spacing-medium);
	}
[dir="rtl"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset {
					left: calc(0.6em * 0.8);
					left: var(--ck-spacing-medium);
	}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset:hover {
					opacity: 1;
				}
.ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-input {
				width: 100%;
			}
[dir="ltr"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-input:not(.ck-input-text_empty) {
						padding-right: calc(calc(1.84615 * 1em) + calc(0.6em * 0.8));
						padding-right: var(--ck-search-field-view-horizontal-spacing);
					}
[dir="rtl"] .ck.ck-search > .ck-labeled-field-view.ck-search__query_with-reset .ck-input {
					padding-right: calc(calc(1.84615 * 1em) + calc(0.6em * 0.8));
					padding-right: var(--ck-search-field-view-horizontal-spacing);
	}
.ck.ck-search > .ck-search__results {
		min-width: 100%;
	}
.ck.ck-search > .ck-search__results > .ck-search__info {
			width: 100%;
			padding: calc(0.6em * 0.8) calc(0.6em * 1.5);
			padding: var(--ck-spacing-medium) var(--ck-spacing-large);
		}
.ck.ck-search > .ck-search__results > .ck-search__info * {
				white-space: normal;
			}
.ck.ck-search > .ck-search__results > .ck-search__info > span:first-child {
				font-weight: bold;
			}
.ck.ck-search > .ck-search__results > .ck-search__info > span:last-child {
				margin-top: calc(0.6em * 0.8);
				margin-top: var(--ck-spacing-medium);
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-toolbar-spinner-size: 18px;
}
.ck.ck-spinner-container {
	width: 18px;
	width: var(--ck-toolbar-spinner-size);
	height: 18px;
	height: var(--ck-toolbar-spinner-size);
	animation: 1.5s infinite ck-spinner-rotate linear;
}
@media (prefers-reduced-motion: reduce) {
.ck.ck-spinner-container {
		animation-duration: 3s;
}
	}
.ck.ck-spinner {
	width: 18px;
	width: var(--ck-toolbar-spinner-size);
	height: 18px;
	height: var(--ck-toolbar-spinner-size);
	border-radius: 50%;
	border: 2px solid hsl(0, 0%, 20%);
	border: 2px solid var(--ck-color-text);
	border-top-color: transparent;
}
@keyframes ck-spinner-rotate {
	to {
		transform: rotate(360deg)
	}
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * This fixes a problem in Firefox when the initial height of the complement does not match the number of rows.
 * This bug is especially visible when rows=1.
 */
.ck-textarea {
	overflow-x: hidden
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-block-toolbar-button: var(--ck-color-text);
	--ck-block-toolbar-button-size: var(--ck-font-size-normal);
}
.ck.ck-block-toolbar-button {
	color: hsl(0, 0%, 20%);
	color: var(--ck-color-block-toolbar-button);
	font-size: var(--ck-block-toolbar-size);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-toolbar {
	border-radius: 0;

	background: hsl(0, 0%, 100%);

	background: var(--ck-color-toolbar-background);
	padding: 0 calc(0.6em * 0.5);
	padding: 0 var(--ck-spacing-small);
	border: 1px solid hsl(220, 6%, 81%);
	border: 1px solid var(--ck-color-toolbar-border);
}
.ck-rounded-corners .ck.ck-toolbar,
	.ck.ck-toolbar.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-toolbar .ck.ck-toolbar__separator {
		height: calc(1.84615 * 1em);
		height: var(--ck-icon-size);
		width: 1px;
		min-width: 1px;
		background: hsl(220, 6%, 81%);
		background: var(--ck-color-toolbar-border);

		/*
		 * These margins make the separators look better in balloon toolbars (when aligned with the "tip").
		 * See https://github.com/ckeditor/ckeditor5/issues/7493.
		 */
		margin-top: calc(0.6em * 0.5);
		margin-top: var(--ck-spacing-small);
		margin-bottom: calc(0.6em * 0.5);
		margin-bottom: var(--ck-spacing-small);
	}
.ck.ck-toolbar .ck-toolbar__line-break {
		height: 0;
	}
.ck.ck-toolbar > .ck-toolbar__items > *:not(.ck-toolbar__line-break) {
			/* (#11) Separate toolbar items. */
			margin-right: calc(0.6em * 0.5);
			margin-right: var(--ck-spacing-small);
		}
/* Don't display a separator after an empty items container, for instance,
		when all items were grouped */
.ck.ck-toolbar > .ck-toolbar__items:empty + .ck.ck-toolbar__separator {
			display: none;
		}
.ck.ck-toolbar > .ck-toolbar__items > *:not(.ck-toolbar__line-break),
	.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown {
		/* Make sure items wrapped to the next line have v-spacing */
		margin-top: calc(0.6em * 0.5);
		margin-top: var(--ck-spacing-small);
		margin-bottom: calc(0.6em * 0.5);
		margin-bottom: var(--ck-spacing-small);
	}
.ck.ck-toolbar.ck-toolbar_vertical {
		/* Items in a vertical toolbar span the entire width. */
		padding: 0;

		/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */
	}
.ck.ck-toolbar.ck-toolbar_vertical > .ck-toolbar__items > .ck {
			/* Items in a vertical toolbar should span the horizontal space. */
			width: 100%;

			/* Items in a vertical toolbar should have no margin. */
			margin: 0;

			/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */
			border-radius: 0;
		}
.ck.ck-toolbar.ck-toolbar_compact {
		/* No spacing around items. */
		padding: 0;
	}
.ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > * {
			/* Compact toolbar items have no spacing between them. */
			margin: 0;

			/* "Middle" children should have no rounded corners. */
		}
.ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > *:not(:first-child):not(:last-child) {
				border-radius: 0;
			}
/*
		 * Dropdown button has asymmetric padding to fit the arrow.
		 * This button has no arrow so let's revert that padding back to normal.
		 */
.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown > .ck.ck-button.ck-dropdown__button {
			padding-left: calc(0.6em * 0.3);
			padding-left: var(--ck-spacing-tiny);
		}
/* A drop-down containing the nested toolbar with configured items. */
/* Prevent empty space in the panel when the dropdown label is visible and long but the toolbar has few items. */
.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown > .ck-dropdown__panel {
			min-width: auto;
		}
.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown > .ck-button > .ck-button__label {
			max-width: 7em;
			width: auto;
		}
.ck.ck-toolbar:focus {
		outline: none;
	}
.ck-toolbar-container .ck.ck-toolbar {
		border: 0;
	}
/* stylelint-disable */
/*
 * Styles for RTL toolbars.
 *
 * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"
 * because its parent is not controlled by the editor framework.
 */
[dir="rtl"] .ck.ck-toolbar > .ck-toolbar__items > .ck, .ck.ck-toolbar[dir="rtl"] > .ck-toolbar__items > .ck {
		margin-right: 0;
	}
[dir="rtl"] .ck.ck-toolbar:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck, .ck.ck-toolbar[dir="rtl"]:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {
		/* (#11) Separate toolbar items. */
		margin-left: calc(0.6em * 0.5);
		margin-left: var(--ck-spacing-small);
	}
[dir="rtl"] .ck.ck-toolbar > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar[dir="rtl"] > .ck-toolbar__items > .ck:last-child {
		margin-left: 0;
	}
/* No rounded corners on the right side of the first child. */
[dir="rtl"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:first-child, .ck.ck-toolbar.ck-toolbar_compact[dir="rtl"] > .ck-toolbar__items > .ck:first-child {
			border-top-left-radius: 0;
			border-bottom-left-radius: 0;
		}
/* No rounded corners on the left side of the last child. */
[dir="rtl"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar.ck-toolbar_compact[dir="rtl"] > .ck-toolbar__items > .ck:last-child {
			border-top-right-radius: 0;
			border-bottom-right-radius: 0;
		}
/* Separate the the separator form the grouping dropdown when some items are grouped. */
[dir="rtl"] .ck.ck-toolbar > .ck.ck-toolbar__separator, .ck.ck-toolbar[dir="rtl"] > .ck.ck-toolbar__separator {
		margin-left: calc(0.6em * 0.5);
		margin-left: var(--ck-spacing-small);
	}
/* Some spacing between the items and the separator before the grouped items dropdown. */
[dir="rtl"] .ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child), .ck.ck-toolbar.ck-toolbar_grouping[dir="rtl"] > .ck-toolbar__items:not(:empty):not(:only-child) {
		margin-left: calc(0.6em * 0.5);
		margin-left: var(--ck-spacing-small);
	}
/*
 * Styles for LTR toolbars.
 *
 * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"
 * because its parent is not controlled by the editor framework.
 */
[dir="ltr"] .ck.ck-toolbar > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar[dir="ltr"] > .ck-toolbar__items > .ck:last-child {
		margin-right: 0;
	}
/* No rounded corners on the right side of the first child. */
[dir="ltr"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:first-child, .ck.ck-toolbar.ck-toolbar_compact[dir="ltr"] > .ck-toolbar__items > .ck:first-child {
			border-top-right-radius: 0;
			border-bottom-right-radius: 0;
		}
/* No rounded corners on the left side of the last child. */
[dir="ltr"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar.ck-toolbar_compact[dir="ltr"] > .ck-toolbar__items > .ck:last-child {
			border-top-left-radius: 0;
			border-bottom-left-radius: 0;
		}
/* Separate the the separator form the grouping dropdown when some items are grouped. */
[dir="ltr"] .ck.ck-toolbar > .ck.ck-toolbar__separator, .ck.ck-toolbar[dir="ltr"] > .ck.ck-toolbar__separator {
		margin-right: calc(0.6em * 0.5);
		margin-right: var(--ck-spacing-small);
	}
/* Some spacing between the items and the separator before the grouped items dropdown. */
[dir="ltr"] .ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child), .ck.ck-toolbar.ck-toolbar_grouping[dir="ltr"] > .ck-toolbar__items:not(:empty):not(:only-child) {
		margin-right: calc(0.6em * 0.5);
		margin-right: var(--ck-spacing-small);
	}
/* stylelint-enable */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
.ck.ck-balloon-panel.ck-tooltip {
	--ck-balloon-border-width: 0px;
	--ck-balloon-arrow-offset: 0px;
	--ck-balloon-arrow-half-width: 4px;
	--ck-balloon-arrow-height: 4px;
	--ck-tooltip-text-padding: 4px;
	--ck-color-panel-background: var(--ck-color-tooltip-background);

	padding: 0 calc(0.6em * 0.8);

	padding: 0 var(--ck-spacing-medium);

	/* Reset balloon panel styles */
	box-shadow: none;
}
.ck.ck-balloon-panel.ck-tooltip .ck-tooltip__text {
		font-size: .9em;
		line-height: 1.5;
		color: hsl(0, 0%, 100%);
		color: var(--ck-color-tooltip-text);
	}
.ck.ck-balloon-panel.ck-tooltip.ck-tooltip_multi-line .ck-tooltip__text {
		white-space: break-spaces;
		display: inline-block;
		padding: var(--ck-tooltip-text-padding) 0;
		max-width: 200px;
	}
/* Hide the default shadow of the .ck-balloon-panel tip */
.ck.ck-balloon-panel.ck-tooltip::before {
		display: none;
	}

/* Editor */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content {
			border-radius: 0;

			border: 1px solid hsl(220, 6%, 81%);

			border: 1px solid var(--ck-color-base-border);
			border-bottom-width: 0;
		}
.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content,
	.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
				border-bottom-left-radius: 0;
				border-bottom-right-radius: 0;
	}
.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-sticky-panel__content_sticky {
				border-bottom-width: 1px;
			}
.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-menu-bar {
				border: 0;
				border-bottom: 1px solid hsl(220, 6%, 81%);
				border-bottom: 1px solid var(--ck-color-base-border);
			}
.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-toolbar {
				border: 0;
			}
/* Note: Use ck-editor__main to make sure these styles don't apply to other editor types */
.ck.ck-editor__main > .ck-editor__editable {
	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/113 */
	background: hsl(0, 0%, 100%);
	background: var(--ck-color-base-background);

	border-radius: 0;
}
.ck-rounded-corners .ck.ck-editor__main > .ck-editor__editable,
	.ck.ck-editor__main > .ck-editor__editable.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
		border-top-left-radius: 0;
		border-top-right-radius: 0;
	}
.ck.ck-editor__main > .ck-editor__editable:not(.ck-focused) {
		border-color: hsl(220, 6%, 81%);
		border-color: var(--ck-color-base-border);
	}

/* Plugins */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Classes used by the "fake visual selection" displayed in the content when an input
 * in the bookmark UI has focus (the browser does not render the native selection in this state).
 */
.ck .ck-fake-bookmark-selection {
	background: hsla(201, 100%, 56%, 0.3);
	background: var(--ck-color-link-fake-selection);
}
/* A collapsed fake visual selection. */
.ck .ck-fake-bookmark-selection_collapsed {
	height: 100%;
	border-right: 1px solid hsl(0, 0%, 20%);
	border-right: 1px solid var(--ck-color-base-text);
	margin-right: -1px;
	outline: solid 1px hsla(0, 0%, 100%, .5);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-clipboard-drop-target-dot-width: 12px;
	--ck-clipboard-drop-target-dot-height: 8px;
	--ck-clipboard-drop-target-color: var(--ck-color-focus-border);
}
/*
	 * Vertical drop target (in text).
	 */
.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span {
			bottom: calc(-.5 * 8px);
			bottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));
			top: calc(-.5 * 8px);
			top: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));
			border: 1px solid hsl(218, 81.8%, 56.9%);
			border: 1px solid var(--ck-clipboard-drop-target-color);
			background: hsl(218, 81.8%, 56.9%);
			background: var(--ck-clipboard-drop-target-color);
			margin-left: -1px;

			/* The triangle above the marker */
		}
.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span::after {
				content: '';
				width: 0;
				height: 0;

				display: block;
				position: absolute;
				left: 50%;
				top: calc(-.5 * 8px);
				top: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));

				transform: translateX(-50%);
				border-color: hsl(218, 81.8%, 56.9%) transparent transparent transparent;
				border-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;
				border-width: calc(8px) calc(.5 * 12px) 0 calc(.5 * 12px);
				border-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));
				border-style: solid;
			}
/*
	 * Styles of the widget that it a drop target.
	 */
.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range {
		outline: 3px solid hsl(218, 81.8%, 56.9%) !important;
		outline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;
	}
/*
	 * Styles of the widget being dragged (its preview).
	 */
.ck.ck-editor__editable .ck-widget:-webkit-drag {
		zoom: 0.6;
		outline: none !important;
	}
.ck.ck-clipboard-drop-target-line {
	height: 0;
	border: 1px solid hsl(218, 81.8%, 56.9%);
	border: 1px solid var(--ck-clipboard-drop-target-color);
	background: hsl(218, 81.8%, 56.9%);
	background: var(--ck-clipboard-drop-target-color);
	margin-top: -1px;
}
.ck.ck-clipboard-drop-target-line::before {
		content: '';
		position: absolute;
		top: calc(-.5 * 12px);
		top: calc(-.5 * var(--ck-clipboard-drop-target-dot-width));
		width: 0;
		height: 0;
		border-style: solid;
	}
[dir="ltr"] .ck.ck-clipboard-drop-target-line::before {
			left: -1px;

			border-width: calc(.5 * 12px) 0 calc(.5 * 12px) 8px;

			border-width: calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height);
			border-color: transparent transparent transparent hsl(218, 81.8%, 56.9%);
			border-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);
	}
[dir="rtl"] .ck.ck-clipboard-drop-target-line::before {
			right: -1px;

			border-width:calc(.5 * 12px) 8px calc(.5 * 12px) 0;

			border-width:calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0;
			border-color: transparent hsl(218, 81.8%, 56.9%) transparent transparent;
			border-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-code-block-label-background: hsl(0, 0%, 46%);
}
.ck.ck-editor__editable pre[data-language]::after {
	top: -1px;
	right: 10px;
	background: hsl(0, 0%, 46%);
	background: var(--ck-color-code-block-label-background);

	font-size: 10px;
	font-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
	font-family: var(--ck-font-face);
	line-height: 16px;
	padding: calc(0.6em * 0.3) calc(0.6em * 0.8);
	padding: var(--ck-spacing-tiny) var(--ck-spacing-medium);
	color: hsl(0, 0%, 100%);
	white-space: nowrap;
}
.ck.ck-code-block-dropdown .ck-dropdown__panel {
	/* There could be dozens of languages available. Use scroll to prevent a 10e6px dropdown. */
	max-height: 250px;
	overflow-y: auto;
	overflow-x: hidden;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* See ckeditor/ckeditor5#936. */
@media (forced-colors: active) {
		.ck.ck-placeholder, .ck .ck-placeholder {
		/*
		 * This is needed for Edge on Windows to use the right color for the placeholder content (::before).
		 * See https://github.com/ckeditor/ckeditor5/issues/14907.
		 */
		forced-color-adjust: preserve-parent-color;
		}
	}
.ck.ck-placeholder::before, .ck .ck-placeholder::before {
		cursor: text;
	}
@media (forced-colors: none) {
		.ck.ck-placeholder::before, .ck .ck-placeholder::before {
			color: hsl(0, 0%, 44%);
			color: var(--ck-color-engine-placeholder-text);
		}
	}
@media (forced-colors: active) {
		.ck.ck-placeholder::before, .ck .ck-placeholder::before {
			/*
			 * In the high contrast mode there is no telling between regular and placeholder text. Using
			 * italic text to address that issue. See https://github.com/ckeditor/ckeditor5/issues/14907.
			 */
			font-style: italic;

			/*
			 * Without this margin, the caret will not show up and blink when the user puts the selection
			 * in the placeholder (Edge on Windows). See https://github.com/ckeditor/ckeditor5/issues/14907.
			 */
			margin-left: 1px;
		}
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-find-and-replace-form {
	width: 400px;

	/*
	 * The <form> needs tabindex="-1" for proper Esc handling after being clicked
	 * but the side effect is that this creates a nasty focus outline in some browsers.
	 */
}
.ck.ck-find-and-replace-form:focus {
		outline: none;
	}
/* Generic styles for the form inputs and actions. */
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs,
	.ck.ck-find-and-replace-form .ck-find-and-replace-form__actions {
		flex: 1 1 auto;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		align-content: stretch;

		padding: calc(0.6em * 1.5);

		padding: var(--ck-spacing-large);
		margin: 0;

	}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-button, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > .ck-button {
			flex: 0 0 auto;
		}
[dir="ltr"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > * + *, [dir="ltr"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > * + * {
				margin-left: 0.6em;
				margin-left: var(--ck-spacing-standard);
			}
[dir="rtl"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > * + *, [dir="rtl"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > * + * {
				margin-right: 0.6em;
				margin-right: var(--ck-spacing-standard);
			}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-labeled-field-view, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions .ck-labeled-field-view {
			flex: 1 1 auto;
		}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-labeled-field-view .ck-input, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions .ck-labeled-field-view .ck-input {
				width: 100%;
				min-width: 50px;
			}
/* Styles specific for inputs area. */
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs {
		/* To display all controls in line when there's an error under the input */
		align-items: flex-start;
	}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-button-prev > .ck-icon {
			transform: rotate(90deg);
		}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-button-next > .ck-icon {
			transform: rotate(-90deg);
		}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-results-counter {
			top: 50%;
			transform: translateY(-50%);

			color: hsl(220, 6%, 81%);

			color: var(--ck-color-base-border);
		}
[dir="ltr"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-results-counter {
				right: 0.6em;
				right: var(--ck-spacing-standard);
	}
[dir="rtl"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs .ck-results-counter {
				left: 0.6em;
				left: var(--ck-spacing-standard);
	}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-labeled-field-replace {
			flex: 0 0 100%;
			padding-top: 0.6em;
			padding-top: var(--ck-spacing-standard);
		}
[dir="ltr"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-labeled-field-replace {
				margin-left: 0;
	}
[dir="rtl"] .ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs > .ck-labeled-field-replace {
				margin-right: 0;
	}
/* Styles specific for actions area. */
.ck.ck-find-and-replace-form .ck-find-and-replace-form__actions {
		flex-wrap: wrap;
		justify-content: flex-end;
		margin-top: calc( -1 * calc(0.6em * 1.5) );
		margin-top: calc( -1 * var(--ck-spacing-large) );
	}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > .ck-button-find {
			font-weight: bold;

			/* Beef the find button up a little. It's the main action button in the form */
		}
.ck.ck-find-and-replace-form .ck-find-and-replace-form__actions > .ck-button-find .ck-button__label {
				padding-left: calc(0.6em * 1.5);
				padding-left: var(--ck-spacing-large);
				padding-right: calc(0.6em * 1.5);
				padding-right: var(--ck-spacing-large);
			}
.ck.ck-find-and-replace-form .ck-switchbutton {
		width: 100%;
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		justify-content: space-between;
		align-items: center;
	}
@media screen and (max-width: 600px) {
	.ck.ck-find-and-replace-form {
		width: 300px;

		/* Don't let the form overflow from the dialog (https://github.com/cksource/ckeditor5-commercial/issues/5913) */
		max-width: 100%;

		/* Styles specific for inputs area. */
	}
		.ck.ck-find-and-replace-form.ck-find-and-replace-form__input {
			flex-wrap: wrap;
		}

			.ck.ck-find-and-replace-form.ck-find-and-replace-form__input .ck-labeled-field-view {
				flex: 1 0 auto;
				width: 100%;
				margin-bottom: 0.6em;
				margin-bottom: var(--ck-spacing-standard);
			}

			.ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button {
				text-align: center;
			}

				.ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button:first-of-type {
					flex: 1 1 auto;
				}

					[dir="ltr"] .ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button:first-of-type {
						margin-left: 0;
	}

					[dir="rtl"] .ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button:first-of-type {
						margin-right: 0;
	}

					.ck.ck-find-and-replace-form.ck-find-and-replace-form__input > .ck-button:first-of-type .ck-button__label {
						width: 100%;
						text-align: center;
					}

		/* Styles specific for actions area. */
		.ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) {
			flex-wrap: wrap;
			flex: 1 1 auto;
		}

			.ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button {
				text-align: center;
			}

				.ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button:first-of-type {
					flex: 1 1 auto;
				}

					[dir="ltr"] .ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button:first-of-type {
						margin-left: 0;
	}

					[dir="rtl"] .ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button:first-of-type {
						margin-right: 0;
	}

				.ck.ck-find-and-replace-form.ck-find-and-replace-form__actions > :not(.ck-labeled-field-view) > .ck-button .ck-button__label {
					width: 100%;
					text-align: center;
				}
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Resize dropdown's button label. */
.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label {
		width: 8em;
	}
.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item {
		min-width: 18em;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Note: This file should contain the wireframe styles only. But since there are no such styles,
 * it acts as a message to the builder telling that it should look for the corresponding styles
 * **in the theme** when compiling the editor.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-html-embed-content-width: calc(100% - 1.5 * var(--ck-icon-size));
	--ck-html-embed-source-height: 10em;
	--ck-html-embed-unfocused-outline-width: 1px;
	--ck-html-embed-content-min-height: calc(var(--ck-icon-size) + var(--ck-spacing-standard));

	--ck-html-embed-source-disabled-background: var(--ck-color-base-foreground);
	--ck-html-embed-source-disabled-color: hsl(0deg 0% 45%);
}
/* The feature container. */
.ck-widget.raw-html-embed {
	font-size: 13px;
	font-size: var(--ck-font-size-base);
	background-color: hsl(0, 0%, 98%);
	background-color: var(--ck-color-base-foreground);
}
.ck-widget.raw-html-embed:not(.ck-widget_selected):not(:hover) {
		outline: 1px dashed hsl(0, 0%, 87%);
		outline: var(--ck-html-embed-unfocused-outline-width) dashed var(--ck-color-widget-blurred-border);
	}
/* HTML embed widget itself should respect UI language direction */
.ck-widget.raw-html-embed[dir="ltr"] {
		text-align: left;
	}
.ck-widget.raw-html-embed[dir="rtl"] {
		text-align: right;
	}
/* ----- Embed label in the upper left corner ----------------------------------------------- */
.ck-widget.raw-html-embed::before {
		content: attr(data-html-embed-label);
		top: calc(-1 * 1px);
		top: calc(-1 * var(--ck-html-embed-unfocused-outline-width));
		left: 0.6em;
		left: var(--ck-spacing-standard);
		background: hsl(0deg 0% 60%);
		transition: background 200ms ease;
		transition: background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);
		padding: calc(calc(0.6em * 0.3) + 1px) calc(0.6em * 0.5) calc(0.6em * 0.3);
		padding: calc(var(--ck-spacing-tiny) + var(--ck-html-embed-unfocused-outline-width)) var(--ck-spacing-small) var(--ck-spacing-tiny);
		border-radius: 0 0 2px 2px;
		border-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);
		color: hsl(0, 0%, 100%);
		color: var(--ck-color-base-background);
		font-size: 0.7em;
		font-size: var(--ck-font-size-tiny);
		font-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
		font-family: var(--ck-font-face);
	}
.ck-widget.raw-html-embed[dir="rtl"]::before {
		left: auto;
		right: 0.6em;
		right: var(--ck-spacing-standard);
	}
/* Make space for label but it only collides in LTR languages */
.ck-widget.raw-html-embed[dir="ltr"] .ck-widget__type-around .ck-widget__type-around__button.ck-widget__type-around__button_before {
		margin-left: 50px;
	}
.ck.ck-editor__editable.ck-blurred .ck-widget.raw-html-embed.ck-widget_selected::before {
		top: 0px;
		padding: calc(0.6em * 0.3) calc(0.6em * 0.5);
		padding: var(--ck-spacing-tiny) var(--ck-spacing-small);
	}
.ck.ck-editor__editable:not(.ck-blurred) .ck-widget.raw-html-embed.ck-widget_selected::before {
		top: 0;
		padding: calc(0.6em * 0.3) calc(0.6em * 0.5);
		padding: var(--ck-spacing-tiny) var(--ck-spacing-small);
		background: hsl(218, 81.8%, 56.9%);
		background: var(--ck-color-focus-border);
	}
.ck.ck-editor__editable .ck-widget.raw-html-embed:not(.ck-widget_selected):hover::before {
		top: 0px;
		padding: calc(0.6em * 0.3) calc(0.6em * 0.5);
		padding: var(--ck-spacing-tiny) var(--ck-spacing-small);
	}
/* ----- Emebed internals --------------------------------------------------------------------- */
.ck-widget.raw-html-embed .raw-html-embed__content-wrapper {
		padding: 0.6em;
		padding: var(--ck-spacing-standard);
	}
/* The switch mode button wrapper. */
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper {
		top: 0.6em;
		top: var(--ck-spacing-standard);
		right: 0.6em;
		right: var(--ck-spacing-standard);
	}
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button.raw-html-embed__save-button {
			color: hsl(120, 100%, 27%);
			color: var(--ck-color-button-save);
		}
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button.raw-html-embed__cancel-button {
			color: hsl(15, 100%, 43%);
			color: var(--ck-color-button-cancel);
		}
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper .ck-button:not(:first-child) {
			margin-top: calc(0.6em * 0.5);
			margin-top: var(--ck-spacing-small);
		}
.ck-widget.raw-html-embed[dir="rtl"] .raw-html-embed__buttons-wrapper {
		left: 0.6em;
		left: var(--ck-spacing-standard);
		right: auto;
	}
/* The edit source element. */
.ck-widget.raw-html-embed .raw-html-embed__source {
		box-sizing: border-box;
		height: 10em;
		height: var(--ck-html-embed-source-height);
		width: calc(100% - 1.5 * calc(1.84615 * 1em));
		width: var(--ck-html-embed-content-width);
		resize: none;
		min-width: 0;
		padding: 0.6em;
		padding: var(--ck-spacing-standard);

		font-family: monospace;
		-moz-tab-size: 4;
		  -o-tab-size: 4;
		     tab-size: 4;
		white-space: pre-wrap;
		font-size: 13px;
		font-size: var(--ck-font-size-base); /* Safari needs this. */

		/* HTML code is direction–agnostic. */
		text-align: left;
		direction: ltr;
	}
.ck-widget.raw-html-embed .raw-html-embed__source[disabled] {
			background: hsl(0, 0%, 98%);
			background: var(--ck-html-embed-source-disabled-background);
			color: hsl(0deg 0% 45%);
			color: var(--ck-html-embed-source-disabled-color);

			/* Safari needs this for the proper text color in disabled input (https://github.com/ckeditor/ckeditor5/issues/8320). */
			-webkit-text-fill-color: hsl(0deg 0% 45%);
			-webkit-text-fill-color: var(--ck-html-embed-source-disabled-color);
			opacity: 1;
		}
/* The preview data container. */
.ck-widget.raw-html-embed .raw-html-embed__preview {
		min-height: calc(calc(1.84615 * 1em) + 0.6em);
		min-height: var(--ck-html-embed-content-min-height);
		width: calc(100% - 1.5 * calc(1.84615 * 1em));
		width: var(--ck-html-embed-content-width);

		/* Disable all mouse interaction as long as the editor is not read–only. */
	}
.ck-editor__editable:not(.ck-read-only) .ck-widget.raw-html-embed .raw-html-embed__preview {
			pointer-events: none;
		}
.ck-widget.raw-html-embed .raw-html-embed__preview-content {
		box-sizing: border-box;
		background-color: hsl(0, 0%, 98%);
		background-color: var(--ck-color-base-foreground);
	}
.ck-widget.raw-html-embed .raw-html-embed__preview-content > * {
			margin-left: auto;
			margin-right: auto;
		}
.ck-widget.raw-html-embed .raw-html-embed__preview-placeholder {
		color: hsl(0deg 0% 45%);
		color: var(--ck-html-embed-source-disabled-color)
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-image-insert-insert-by-url-width: 250px;
}
.ck.ck-image-insert-url {
	--ck-input-width: 100%;
}
.ck.ck-image-insert-url .ck-image-insert-url__action-row {
		grid-column-gap: calc(0.6em * 1.5);
		grid-column-gap: var(--ck-spacing-large);
		margin-top: calc(0.6em * 1.5);
		margin-top: var(--ck-spacing-large);
	}
.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-save,
		.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-cancel {
			justify-content: center;
			min-width: auto;
		}
.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button .ck-button__label {
			color: hsl(0, 0%, 20%);
			color: var(--ck-color-text);
		}
.ck.ck-image-insert-form > .ck.ck-button {
		display: block;
		width: 100%;
	}
[dir="ltr"] .ck.ck-image-insert-form > .ck.ck-button {
			text-align: left;
	}
[dir="rtl"] .ck.ck-image-insert-form > .ck.ck-button {
			text-align: right;
	}
.ck.ck-image-insert-form > .ck.ck-collapsible {

		min-width: 250px;

		min-width: var(--ck-image-insert-insert-by-url-width);
	}
.ck.ck-image-insert-form > .ck.ck-collapsible:not(:first-child) {
			border-top: 1px solid hsl(220, 6%, 81%);
			border-top: 1px solid var(--ck-color-base-border);
		}
.ck.ck-image-insert-form > .ck.ck-collapsible:not(:last-child) {
			border-bottom: 1px solid hsl(220, 6%, 81%);
			border-bottom: 1px solid var(--ck-color-base-border);
		}
/* This is the case when there are no other integrations configured than insert by URL */
.ck.ck-image-insert-form > .ck.ck-image-insert-url {
		min-width: 250px;
		min-width: var(--ck-image-insert-insert-by-url-width);
		padding: calc(0.6em * 1.5);
		padding: var(--ck-spacing-large);
	}
.ck.ck-image-insert-form:focus {
		outline: none;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-image-upload-icon: hsl(0, 0%, 100%);
	--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);

	/* Match the icon size with the linked image indicator brought by the link image feature. */
	--ck-image-upload-icon-size: 20;
	--ck-image-upload-icon-width: 2px;
	--ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);
}
.ck-image-upload-complete-icon {
	opacity: 0;
	background: hsl(120, 100%, 27%);
	background: var(--ck-color-image-upload-icon-background);
	animation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;
	animation-fill-mode: forwards, forwards;
	animation-duration: 500ms, 500ms;

	/* To make animation scalable. */
	font-size: calc(1px * 20);
	font-size: calc(1px * var(--ck-image-upload-icon-size));

	/* Hide completed upload icon after 3 seconds. */
	animation-delay: 0ms, 3000ms;

	/*
	 * Use CSS math to simulate container queries.
	 * https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things
	 */
	overflow: hidden;
	width: calc(clamp(0px, 100% - 50px, 1px) * 20);
	width: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));
	height: calc(clamp(0px, 100% - 50px, 1px) * 20);
	height: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));

	/* This is check icon element made from border-width mixed with animations. */
}
.ck-image-upload-complete-icon::after {
		/* Because of border transformation we need to "hard code" left position. */
		left: 25%;

		top: 50%;
		opacity: 0;
		height: 0;
		width: 0;

		transform: scaleX(-1) rotate(135deg);
		transform-origin: left top;
		border-top: 2px solid hsl(0, 0%, 100%);
		border-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);
		border-right: 2px solid hsl(0, 0%, 100%);
		border-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);

		animation-name: ck-upload-complete-icon-check;
		animation-duration: 500ms;
		animation-delay: 500ms;
		animation-fill-mode: forwards;

		/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */
		box-sizing: border-box;
	}
@media (prefers-reduced-motion: reduce) {
.ck-image-upload-complete-icon {
		animation-duration: 0ms;
}

		.ck-image-upload-complete-icon::after {
			animation: none;
			opacity: 1;
			width: 0.3em;
			height: 0.45em;
		}
	}
@keyframes ck-upload-complete-icon-show {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}
@keyframes ck-upload-complete-icon-hide {
	from {
		opacity: 1;
	}

	to {
		opacity: 0;
	}
}
@keyframes ck-upload-complete-icon-check {
	0% {
		opacity: 1;
		width: 0;
		height: 0;
	}
	33% {
		width: 0.3em;
		height: 0;
	}
	100% {
		opacity: 1;
		width: 0.3em;
		height: 0.45em;
	}
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);
	--ck-upload-placeholder-loader-size: 32px;
	--ck-upload-placeholder-image-aspect-ratio: 2.8;
}
.ck .ck-image-upload-placeholder {
	/* We need to control the full width of the SVG gray background. */
	width: 100%;
	margin: 0;
}
.ck .ck-image-upload-placeholder.image-inline {
		width: calc( 2 * 32px * 2.8 );
		width: calc( 2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio) );
	}
.ck .ck-image-upload-placeholder img {
		/*
		 * This is an arbitrary aspect for a 1x1 px GIF to display to the user. Not too tall, not too short.
		 * There's nothing special about this number except that it should make the image placeholder look like
		 * a real image during this short period after the upload started and before the image was read from the
		 * file system (and a rich preview was loaded).
		 */
		aspect-ratio: 2.8;
		aspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);
	}
.ck .ck-upload-placeholder-loader {
	width: 100%;
	height: 100%;
}
.ck .ck-upload-placeholder-loader::before {
		width: 32px;
		width: var(--ck-upload-placeholder-loader-size);
		height: 32px;
		height: var(--ck-upload-placeholder-loader-size);
		border-radius: 50%;
		border-top: 3px solid hsl(0, 0%, 70%);
		border-top: 3px solid var(--ck-color-upload-placeholder-loader);
		border-right: 2px solid transparent;
		animation: ck-upload-placeholder-loader 1s linear infinite;
	}
@keyframes ck-upload-placeholder-loader {
	to {
		transform: rotate( 360deg );
	}
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Showing animation. */
.ck.ck-editor__editable .image.ck-appear, .ck.ck-editor__editable .image-inline.ck-appear {
			animation: fadeIn 700ms;
		}
@media (prefers-reduced-motion: reduce) {
.ck.ck-editor__editable .image.ck-appear, .ck.ck-editor__editable .image-inline.ck-appear {
				opacity: 1;
				animation: none;
		}
			}
/* Upload progress bar. */
.ck.ck-editor__editable .image .ck-progress-bar,
	.ck.ck-editor__editable .image-inline .ck-progress-bar {
		height: 2px;
		width: 0;
		background: hsl(209, 92%, 70%);
		background: var(--ck-color-upload-bar-background);
		transition: width 100ms;
	}
@keyframes fadeIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* Class added to span element surrounding currently selected link. */
.ck .ck-link_selected {
	background: hsla(201, 100%, 56%, 0.1);
	background: var(--ck-color-link-selected-background);

	/* Give linked inline images some outline to let the user know they are also part of the link. */
}
.ck .ck-link_selected span.image-inline {
		outline: 3px solid hsla(201, 100%, 56%, 0.1);
		outline: var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background);
	}
/*
 * Classes used by the "fake visual selection" displayed in the content when an input
 * in the link UI has focus (the browser does not render the native selection in this state).
 */
.ck .ck-fake-link-selection {
	background: hsla(201, 100%, 56%, 0.3);
	background: var(--ck-color-link-fake-selection);
}
/* A collapsed fake visual selection. */
.ck .ck-fake-link-selection_collapsed {
	height: 100%;
	border-right: 1px solid hsl(0, 0%, 20%);
	border-right: 1px solid var(--ck-color-base-text);
	margin-right: -1px;
	outline: solid 1px hsla(0, 0%, 100%, .5);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Makes element unselectable.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-link-actions .ck-button.ck-link-actions__preview {
		padding-left: 0;
		padding-right: 0;
	}
.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label {
			padding: 0 calc(0.6em * 0.8);
			padding: 0 var(--ck-spacing-medium);
			color: hsl(240, 100%, 47%);
			color: var(--ck-color-link-default);
			text-overflow: ellipsis;
			cursor: pointer;

			/* Match the box model of the link editor form's input so the balloon
			does not change width when moving between actions and the form. */
			max-width: 18em;
			max-width: var(--ck-input-width);
			min-width: 3em;
			text-align: center;
		}
.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label:hover {
				text-decoration: underline;
			}
.ck.ck-link-actions .ck-button.ck-link-actions__preview,
		.ck.ck-link-actions .ck-button.ck-link-actions__preview:hover,
		.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus,
		.ck.ck-link-actions .ck-button.ck-link-actions__preview:active {
			background: none;
		}
.ck.ck-link-actions .ck-button.ck-link-actions__preview:active {
			box-shadow: none;
		}
.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus .ck-button__label {
				text-decoration: underline;
			}
[dir="ltr"] .ck.ck-link-actions .ck-button:not(:first-child) {
			margin-left: 0.6em;
			margin-left: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-link-actions .ck-button:not(:last-child) {
			margin-left: 0.6em;
			margin-left: var(--ck-spacing-standard);
		}
@media screen and (max-width: 600px) {
		.ck.ck-link-actions .ck-button.ck-link-actions__preview {
			margin: 0.6em 0.6em 0;
			margin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0;
		}

			.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label {
				min-width: 0;
				max-width: 100%;
			}
			[dir="ltr"] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview) {
				margin-left: 0;
	}

			[dir="rtl"] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview) {
				margin-left: 0;
	}
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Style link form differently when manual decorators are available.
 * See: https://github.com/ckeditor/ckeditor5-link/issues/186.
 */
.ck.ck-link-form_layout-vertical {
	padding: 0;
	min-width: 18em;
	min-width: var(--ck-input-width);
}
.ck.ck-link-form_layout-vertical .ck-labeled-field-view {
		margin: calc(0.6em * 1.5) calc(0.6em * 1.5) calc(0.6em * 0.5);
		margin: var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small);
	}
.ck.ck-link-form_layout-vertical .ck-labeled-field-view .ck-input-text {
			min-width: 0;
			width: 100%;
		}
.ck.ck-link-form_layout-vertical > .ck-button {
		padding: 0.6em;
		padding: var(--ck-spacing-standard);
		margin: 0;
		width: 50%;
		border-radius: 0;
	}
.ck.ck-link-form_layout-vertical > .ck-button:not(:focus) {
			border-top: 1px solid hsl(220, 6%, 81%);
			border-top: 1px solid var(--ck-color-base-border);
		}
[dir="ltr"] .ck.ck-link-form_layout-vertical > .ck-button {
			margin-left: 0;
	}
[dir="rtl"] .ck.ck-link-form_layout-vertical > .ck-button {
			margin-left: 0;
	}
[dir="rtl"] .ck.ck-link-form_layout-vertical > .ck-button:last-of-type {
				border-right: 1px solid hsl(220, 6%, 81%);
				border-right: 1px solid var(--ck-color-base-border);
			}
/* Using additional `.ck` class for stronger CSS specificity than `.ck.ck-link-form > :not(:first-child)`. */
.ck.ck-link-form_layout-vertical .ck.ck-list {
		margin: 0 calc(0.6em * 1.5);
		margin: 0 var(--ck-spacing-large);
	}
.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton {
			padding: 0;
			width: 100%;
		}
.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton:hover {
				background: none;
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/* Match the icon size with the upload indicator brought by the image upload feature. */
	--ck-link-image-indicator-icon-size: 20;
	--ck-link-image-indicator-icon-is-visible: clamp(0px, 100% - 50px, 1px);
}
/* Linked image indicator */
.ck.ck-editor__editable figure.image > a::after, .ck.ck-editor__editable a span.image-inline::after {
			content: "";

			/*
			 * Smaller images should have the icon closer to the border.
			 * Match the icon position with the upload indicator brought by the image upload feature.
			 */
			top: min(calc(0.6em * 0.8), 6%);
			top: min(var(--ck-spacing-medium), 6%);
			right: min(calc(0.6em * 0.8), 6%);
			right: min(var(--ck-spacing-medium), 6%);

			background-color: hsla(0, 0%, 0%, .4);
			background-image: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTExLjA3NyAxNSAuOTkxLTEuNDE2YS43NS43NSAwIDEgMSAxLjIyOS44NmwtMS4xNDggMS42NGEuNzQ4Ljc0OCAwIDAgMS0uMjE3LjIwNiA1LjI1MSA1LjI1MSAwIDAgMS04LjUwMy01Ljk1NS43NDEuNzQxIDAgMCAxIC4xMi0uMjc0bDEuMTQ3LTEuNjM5YS43NS43NSAwIDEgMSAxLjIyOC44Nkw0LjkzMyAxMC43bC4wMDYuMDAzYTMuNzUgMy43NSAwIDAgMCA2LjEzMiA0LjI5NGwuMDA2LjAwNHptNS40OTQtNS4zMzVhLjc0OC43NDggMCAwIDEtLjEyLjI3NGwtMS4xNDcgMS42MzlhLjc1Ljc1IDAgMSAxLTEuMjI4LS44NmwuODYtMS4yM2EzLjc1IDMuNzUgMCAwIDAtNi4xNDQtNC4zMDFsLS44NiAxLjIyOWEuNzUuNzUgMCAwIDEtMS4yMjktLjg2bDEuMTQ4LTEuNjRhLjc0OC43NDggMCAwIDEgLjIxNy0uMjA2IDUuMjUxIDUuMjUxIDAgMCAxIDguNTAzIDUuOTU1em0tNC41NjMtMi41MzJhLjc1Ljc1IDAgMCAxIC4xODQgMS4wNDVsLTMuMTU1IDQuNTA1YS43NS43NSAwIDEgMS0xLjIyOS0uODZsMy4xNTUtNC41MDZhLjc1Ljc1IDAgMCAxIDEuMDQ1LS4xODR6Ii8+PC9zdmc+);
			background-size: 14px;
			background-repeat: no-repeat;
			background-position: center;
			border-radius: 100%;

			/*
			* Use CSS math to simulate container queries.
			* https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things
			*/
			overflow: hidden;
			width: calc(clamp(0px, 100% - 50px, 1px) * 20);
			width: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));
			height: calc(clamp(0px, 100% - 50px, 1px) * 20);
			height: calc(var(--ck-link-image-indicator-icon-is-visible) * var(--ck-link-image-indicator-icon-size));
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/* When there are no list styles and there is no collapsible. */
.ck.ck-list-properties.ck-list-properties_without-styles {
		padding: calc(0.6em * 1.5);
		padding: var(--ck-spacing-large);
	}
.ck.ck-list-properties.ck-list-properties_without-styles > * {
			min-width: 14em;
		}
.ck.ck-list-properties.ck-list-properties_without-styles > * + * {
				margin-top: 0.6em;
				margin-top: var(--ck-spacing-standard);
			}
/*
	 * When the numbered list property fields (start at, reversed) should be displayed,
	 * more horizontal space is needed. Reconfigure the style grid to create that space.
	 */
.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-list-styles-list {
			grid-template-columns: repeat( 4, auto );
		}
/* When list styles are rendered and property fields are in a collapsible. */
.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-collapsible {
			border-top: 1px solid hsl(220, 6%, 81%);
			border-top: 1px solid var(--ck-color-base-border);
		}
.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-collapsible > .ck-collapsible__children > * {
					width: 100%;
				}
.ck.ck-list-properties.ck-list-properties_with-numbered-properties > .ck-collapsible > .ck-collapsible__children > * + * {
						margin-top: 0.6em;
						margin-top: var(--ck-spacing-standard);
					}
.ck.ck-list-properties .ck.ck-numbered-list-properties__start-index .ck-input {
		min-width: auto;
		width: 100%;
	}
.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order {
		background: transparent;
		padding-left: 0;
		padding-right: 0;
		margin-bottom: calc(-1 * calc(0.6em * 0.3));
		margin-bottom: calc(-1 * var(--ck-spacing-tiny));
	}
.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:active, .ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:hover {
			box-shadow: none;
			border-color: transparent;
			background: none;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-list-style-button-size: 44px;
}
.ck.ck-list-styles-list {
	grid-template-columns: repeat( 3, auto );
	row-gap: calc(0.6em * 0.8);
	row-gap: var(--ck-spacing-medium);
	-moz-column-gap: calc(0.6em * 0.8);
	     column-gap: calc(0.6em * 0.8);
	-moz-column-gap: var(--ck-spacing-medium);
	     column-gap: var(--ck-spacing-medium);
	padding: calc(0.6em * 1.5);
	padding: var(--ck-spacing-large);
}
.ck.ck-list-styles-list .ck-button {
		/* Make the button look like a thumbnail (the icon "takes it all"). */
		width: 44px;
		width: var(--ck-list-style-button-size);
		height: 44px;
		height: var(--ck-list-style-button-size);
		padding: 0;

		/*
		 * Buttons are aligned by the grid so disable default button margins to not collide with the
		 * gaps in the grid.
		 */
		margin: 0;

		/*
		 * Make sure the button border (which is displayed on focus, BTW) does not steal pixels
		 * from the button dimensions and, as a result, decrease the size of the icon
		 * (which becomes blurry as it scales down).
		 */
		box-sizing: content-box;
	}
.ck.ck-list-styles-list .ck-button .ck-icon {
			width: 44px;
			width: var(--ck-list-style-button-size);
			height: 44px;
			height: var(--ck-list-style-button-size);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-media-embed-placeholder-icon-size: 3em;

	--ck-color-media-embed-placeholder-url-text: hsl(0, 0%, 46%);
	--ck-color-media-embed-placeholder-url-text-hover: var(--ck-color-base-text);
}
.ck-media__wrapper {
	margin: 0 auto;
}
.ck-media__wrapper .ck-media__placeholder {
		padding: calc( 3 * 0.6em );
		padding: calc( 3 * var(--ck-spacing-standard) );
		background: hsl(0, 0%, 98%);
		background: var(--ck-color-base-foreground);
	}
.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon {
			min-width: 3em;
			min-width: var(--ck-media-embed-placeholder-icon-size);
			height: 3em;
			height: var(--ck-media-embed-placeholder-icon-size);
			margin-bottom: calc(0.6em * 1.5);
			margin-bottom: var(--ck-spacing-large);
			background-position: center;
			background-size: cover;
		}
.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon .ck-icon {
				width: 100%;
				height: 100%;
			}
.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text {
			color: hsl(0, 0%, 46%);
			color: var(--ck-color-media-embed-placeholder-url-text);
			white-space: nowrap;
			text-align: center;
			font-style: italic;
			text-overflow: ellipsis;
		}
.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: hsl(0, 0%, 20%);
				color: var(--ck-color-media-embed-placeholder-url-text-hover);
				cursor: pointer;
				text-decoration: underline;
			}
.ck-media__wrapper[data-oembed-url*="open.spotify.com"] {
		max-width: 300px;
		max-height: 380px;
	}
.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon,
	.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon,
	.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon,
	.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon {
		background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0yMDYuNDc3IDI2MC45bC0yOC45ODcgMjguOTg3YTUuMjE4IDUuMjE4IDAgMCAwIDMuNzggMS42MWg0OS42MjFjMS42OTQgMCAzLjE5LS43OTggNC4xNDYtMi4wMzd6IiBmaWxsPSIjNWM4OGM1Ii8+PHBhdGggZD0iTTIyNi43NDIgMjIyLjk4OGMtOS4yNjYgMC0xNi43NzcgNy4xNy0xNi43NzcgMTYuMDE0LjAwNyAyLjc2Mi42NjMgNS40NzQgMi4wOTMgNy44NzUuNDMuNzAzLjgzIDEuNDA4IDEuMTkgMi4xMDcuMzMzLjUwMi42NSAxLjAwNS45NSAxLjUwOC4zNDMuNDc3LjY3My45NTcuOTg4IDEuNDQgMS4zMSAxLjc2OSAyLjUgMy41MDIgMy42MzcgNS4xNjguNzkzIDEuMjc1IDEuNjgzIDIuNjQgMi40NjYgMy45OSAyLjM2MyA0LjA5NCA0LjAwNyA4LjA5MiA0LjYgMTMuOTE0di4wMTJjLjE4Mi40MTIuNTE2LjY2Ni44NzkuNjY3LjQwMy0uMDAxLjc2OC0uMzE0LjkzLS43OTkuNjAzLTUuNzU2IDIuMjM4LTkuNzI5IDQuNTg1LTEzLjc5NC43ODItMS4zNSAxLjY3My0yLjcxNSAyLjQ2NS0zLjk5IDEuMTM3LTEuNjY2IDIuMzI4LTMuNCAzLjYzOC01LjE2OS4zMTUtLjQ4Mi42NDUtLjk2Mi45ODgtMS40MzkuMy0uNTAzLjYxNy0xLjAwNi45NS0xLjUwOC4zNTktLjcuNzYtMS40MDQgMS4xOS0yLjEwNyAxLjQyNi0yLjQwMiAyLTUuMTE0IDIuMDA0LTcuODc1IDAtOC44NDQtNy41MTEtMTYuMDE0LTE2Ljc3Ni0xNi4wMTR6IiBmaWxsPSIjZGQ0YjNlIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxlbGxpcHNlIHJ5PSI1LjU2NCIgcng9IjUuODI4IiBjeT0iMjM5LjAwMiIgY3g9IjIyNi43NDIiIGZpbGw9IiM4MDJkMjciIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTE5MC4zMDEgMjM3LjI4M2MtNC42NyAwLTguNDU3IDMuODUzLTguNDU3IDguNjA2czMuNzg2IDguNjA3IDguNDU3IDguNjA3YzMuMDQzIDAgNC44MDYtLjk1OCA2LjMzNy0yLjUxNiAxLjUzLTEuNTU3IDIuMDg3LTMuOTEzIDIuMDg3LTYuMjkgMC0uMzYyLS4wMjMtLjcyMi0uMDY0LTEuMDc5aC04LjI1N3YzLjA0M2g0Ljg1Yy0uMTk3Ljc1OS0uNTMxIDEuNDUtMS4wNTggMS45ODYtLjk0Mi45NTgtMi4wMjggMS41NDgtMy45MDEgMS41NDgtMi44NzYgMC01LjIwOC0yLjM3Mi01LjIwOC01LjI5OSAwLTIuOTI2IDIuMzMyLTUuMjk5IDUuMjA4LTUuMjk5IDEuMzk5IDAgMi42MTguNDA3IDMuNTg0IDEuMjkzbDIuMzgxLTIuMzhjMC0uMDAyLS4wMDMtLjAwNC0uMDA0LS4wMDUtMS41ODgtMS41MjQtMy42Mi0yLjIxNS01Ljk1NS0yLjIxNXptNC40MyA1LjY2bC4wMDMuMDA2di0uMDAzeiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjE1LjE4NCAyNTEuOTI5bC03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVjLjI4Ny0uNjQ5LjQ0OS0xLjM2Ni40NDktMi4xMjN2LTMxLjE2NWMtLjQ2OS42NzUtLjkzNCAxLjM0OS0xLjM4MiAyLjAwNS0uNzkyIDEuMjc1LTEuNjgyIDIuNjQtMi40NjUgMy45OS0yLjM0NyA0LjA2NS0zLjk4MiA4LjAzOC00LjU4NSAxMy43OTQtLjE2Mi40ODUtLjUyNy43OTgtLjkzLjc5OS0uMzYzLS4wMDEtLjY5Ny0uMjU1LS44NzktLjY2N3YtLjAxMmMtLjU5My01LjgyMi0yLjIzNy05LjgyLTQuNi0xMy45MTQtLjc4My0xLjM1LTEuNjczLTIuNzE1LTIuNDY2LTMuOTktMS4xMzctMS42NjYtMi4zMjctMy40LTMuNjM3LTUuMTY5bC0uMDAyLS4wMDN6IiBmaWxsPSIjYzNjM2MzIi8+PHBhdGggZD0iTTIxMi45ODMgMjQ4LjQ5NWwtMzYuOTUyIDM2Ljk1M3YuODEyYTUuMjI3IDUuMjI3IDAgMCAwIDUuMjM4IDUuMjM4aDEuMDE1bDM1LjY2Ni0zNS42NjZhMTM2LjI3NSAxMzYuMjc1IDAgMCAwLTIuNzY0LTMuOSAzNy41NzUgMzcuNTc1IDAgMCAwLS45ODktMS40NGMtLjI5OS0uNTAzLS42MTYtMS4wMDYtLjk1LTEuNTA4LS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjExLjk5OCAyNjEuMDgzbC02LjE1MiA2LjE1MSAyNC4yNjQgMjQuMjY0aC43ODFhNS4yMjcgNS4yMjcgMCAwIDAgNS4yMzktNS4yMzh2LTEuMDQ1eiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48L2c+PC9zdmc+);
	}
.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder {
		background: hsl(220, 46%, 48%);
	}
.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__icon {
			background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMDI0cHgiIGhlaWdodD0iMTAyNHB4IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPiAgICAgICAgPHRpdGxlPkZpbGwgMTwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz48L2RlZnM+ICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImZMb2dvX1doaXRlIiBmaWxsPSIjRkZGRkZFIj4gICAgICAgICAgICA8cGF0aCBkPSJNOTY3LjQ4NCwwIEw1Ni41MTcsMCBDMjUuMzA0LDAgMCwyNS4zMDQgMCw1Ni41MTcgTDAsOTY3LjQ4MyBDMCw5OTguNjk0IDI1LjI5NywxMDI0IDU2LjUyMiwxMDI0IEw1NDcsMTAyNCBMNTQ3LDYyOCBMNDE0LDYyOCBMNDE0LDQ3MyBMNTQ3LDQ3MyBMNTQ3LDM1OS4wMjkgQzU0NywyMjYuNzY3IDYyNy43NzMsMTU0Ljc0NyA3NDUuNzU2LDE1NC43NDcgQzgwMi4yNjksMTU0Ljc0NyA4NTAuODQyLDE1OC45NTUgODY1LDE2MC44MzYgTDg2NSwyOTkgTDc4My4zODQsMjk5LjAzNyBDNzE5LjM5MSwyOTkuMDM3IDcwNywzMjkuNTI5IDcwNywzNzQuMjczIEw3MDcsNDczIEw4NjAuNDg3LDQ3MyBMODQwLjUwMSw2MjggTDcwNyw2MjggTDcwNywxMDI0IEw5NjcuNDg0LDEwMjQgQzk5OC42OTcsMTAyNCAxMDI0LDk5OC42OTcgMTAyNCw5NjcuNDg0IEwxMDI0LDU2LjUxNSBDMTAyNCwyNS4zMDMgOTk4LjY5NywwIDk2Ny40ODQsMCIgaWQ9IkZpbGwtMSI+PC9wYXRoPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+);
		}
.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text {
			color: hsl(220, 100%, 90%);
		}
.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: hsl(0, 0%, 100%);
			}
.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder {
		background: linear-gradient(-135deg,hsl(246, 100%, 39%),hsl(302, 100%, 36%),hsl(0, 100%, 48%));
	}
.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__icon {
			background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI1MDRweCIgaGVpZ2h0PSI1MDRweCIgdmlld0JveD0iMCAwIDUwNCA1MDQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+ICAgICAgICA8dGl0bGU+Z2x5cGgtbG9nb19NYXkyMDE2PC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtMSIgcG9pbnRzPSIwIDAuMTU5IDUwMy44NDEgMC4xNTkgNTAzLjg0MSA1MDMuOTQgMCA1MDMuOTQiPjwvcG9seWdvbj4gICAgPC9kZWZzPiAgICA8ZyBpZD0iZ2x5cGgtbG9nb19NYXkyMDE2IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxnIGlkPSJHcm91cC0zIj4gICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+ICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+ICAgICAgICAgICAgPC9tYXNrPiAgICAgICAgICAgIDxnIGlkPSJDbGlwLTIiPjwvZz4gICAgICAgICAgICA8cGF0aCBkPSJNMjUxLjkyMSwwLjE1OSBDMTgzLjUwMywwLjE1OSAxNzQuOTI0LDAuNDQ5IDE0OC4wNTQsMS42NzUgQzEyMS4yNCwyLjg5OCAxMDIuOTI3LDcuMTU3IDg2LjkwMywxMy4zODUgQzcwLjMzNywxOS44MjIgNTYuMjg4LDI4LjQzNiA0Mi4yODIsNDIuNDQxIEMyOC4yNzcsNTYuNDQ3IDE5LjY2Myw3MC40OTYgMTMuMjI2LDg3LjA2MiBDNi45OTgsMTAzLjA4NiAyLjczOSwxMjEuMzk5IDEuNTE2LDE0OC4yMTMgQzAuMjksMTc1LjA4MyAwLDE4My42NjIgMCwyNTIuMDggQzAsMzIwLjQ5NyAwLjI5LDMyOS4wNzYgMS41MTYsMzU1Ljk0NiBDMi43MzksMzgyLjc2IDYuOTk4LDQwMS4wNzMgMTMuMjI2LDQxNy4wOTcgQzE5LjY2Myw0MzMuNjYzIDI4LjI3Nyw0NDcuNzEyIDQyLjI4Miw0NjEuNzE4IEM1Ni4yODgsNDc1LjcyMyA3MC4zMzcsNDg0LjMzNyA4Ni45MDMsNDkwLjc3NSBDMTAyLjkyNyw0OTcuMDAyIDEyMS4yNCw1MDEuMjYxIDE0OC4wNTQsNTAyLjQ4NCBDMTc0LjkyNCw1MDMuNzEgMTgzLjUwMyw1MDQgMjUxLjkyMSw1MDQgQzMyMC4zMzgsNTA0IDMyOC45MTcsNTAzLjcxIDM1NS43ODcsNTAyLjQ4NCBDMzgyLjYwMSw1MDEuMjYxIDQwMC45MTQsNDk3LjAwMiA0MTYuOTM4LDQ5MC43NzUgQzQzMy41MDQsNDg0LjMzNyA0NDcuNTUzLDQ3NS43MjMgNDYxLjU1OSw0NjEuNzE4IEM0NzUuNTY0LDQ0Ny43MTIgNDg0LjE3OCw0MzMuNjYzIDQ5MC42MTYsNDE3LjA5NyBDNDk2Ljg0Myw0MDEuMDczIDUwMS4xMDIsMzgyLjc2IDUwMi4zMjUsMzU1Ljk0NiBDNTAzLjU1MSwzMjkuMDc2IDUwMy44NDEsMzIwLjQ5NyA1MDMuODQxLDI1Mi4wOCBDNTAzLjg0MSwxODMuNjYyIDUwMy41NTEsMTc1LjA4MyA1MDIuMzI1LDE0OC4yMTMgQzUwMS4xMDIsMTIxLjM5OSA0OTYuODQzLDEwMy4wODYgNDkwLjYxNiw4Ny4wNjIgQzQ4NC4xNzgsNzAuNDk2IDQ3NS41NjQsNTYuNDQ3IDQ2MS41NTksNDIuNDQxIEM0NDcuNTUzLDI4LjQzNiA0MzMuNTA0LDE5LjgyMiA0MTYuOTM4LDEzLjM4NSBDNDAwLjkxNCw3LjE1NyAzODIuNjAxLDIuODk4IDM1NS43ODcsMS42NzUgQzMyOC45MTcsMC40NDkgMzIwLjMzOCwwLjE1OSAyNTEuOTIxLDAuMTU5IFogTTI1MS45MjEsNDUuNTUgQzMxOS4xODYsNDUuNTUgMzI3LjE1NCw0NS44MDcgMzUzLjcxOCw0Ny4wMTkgQzM3OC4yOCw0OC4xMzkgMzkxLjYxOSw1Mi4yNDMgNDAwLjQ5Niw1NS42OTMgQzQxMi4yNTUsNjAuMjYzIDQyMC42NDcsNjUuNzIyIDQyOS40NjIsNzQuNTM4IEM0MzguMjc4LDgzLjM1MyA0NDMuNzM3LDkxLjc0NSA0NDguMzA3LDEwMy41MDQgQzQ1MS43NTcsMTEyLjM4MSA0NTUuODYxLDEyNS43MiA0NTYuOTgxLDE1MC4yODIgQzQ1OC4xOTMsMTc2Ljg0NiA0NTguNDUsMTg0LjgxNCA0NTguNDUsMjUyLjA4IEM0NTguNDUsMzE5LjM0NSA0NTguMTkzLDMyNy4zMTMgNDU2Ljk4MSwzNTMuODc3IEM0NTUuODYxLDM3OC40MzkgNDUxLjc1NywzOTEuNzc4IDQ0OC4zMDcsNDAwLjY1NSBDNDQzLjczNyw0MTIuNDE0IDQzOC4yNzgsNDIwLjgwNiA0MjkuNDYyLDQyOS42MjEgQzQyMC42NDcsNDM4LjQzNyA0MTIuMjU1LDQ0My44OTYgNDAwLjQ5Niw0NDguNDY2IEMzOTEuNjE5LDQ1MS45MTYgMzc4LjI4LDQ1Ni4wMiAzNTMuNzE4LDQ1Ny4xNCBDMzI3LjE1OCw0NTguMzUyIDMxOS4xOTEsNDU4LjYwOSAyNTEuOTIxLDQ1OC42MDkgQzE4NC42NSw0NTguNjA5IDE3Ni42ODQsNDU4LjM1MiAxNTAuMTIzLDQ1Ny4xNCBDMTI1LjU2MSw0NTYuMDIgMTEyLjIyMiw0NTEuOTE2IDEwMy4zNDUsNDQ4LjQ2NiBDOTEuNTg2LDQ0My44OTYgODMuMTk0LDQzOC40MzcgNzQuMzc5LDQyOS42MjEgQzY1LjU2NCw0MjAuODA2IDYwLjEwNCw0MTIuNDE0IDU1LjUzNCw0MDAuNjU1IEM1Mi4wODQsMzkxLjc3OCA0Ny45OCwzNzguNDM5IDQ2Ljg2LDM1My44NzcgQzQ1LjY0OCwzMjcuMzEzIDQ1LjM5MSwzMTkuMzQ1IDQ1LjM5MSwyNTIuMDggQzQ1LjM5MSwxODQuODE0IDQ1LjY0OCwxNzYuODQ2IDQ2Ljg2LDE1MC4yODIgQzQ3Ljk4LDEyNS43MiA1Mi4wODQsMTEyLjM4MSA1NS41MzQsMTAzLjUwNCBDNjAuMTA0LDkxLjc0NSA2NS41NjMsODMuMzUzIDc0LjM3OSw3NC41MzggQzgzLjE5NCw2NS43MjIgOTEuNTg2LDYwLjI2MyAxMDMuMzQ1LDU1LjY5MyBDMTEyLjIyMiw1Mi4yNDMgMTI1LjU2MSw0OC4xMzkgMTUwLjEyMyw0Ny4wMTkgQzE3Ni42ODcsNDUuODA3IDE4NC42NTUsNDUuNTUgMjUxLjkyMSw0NS41NSBaIiBpZD0iRmlsbC0xIiBmaWxsPSIjRkZGRkZGIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgICAgIDxwYXRoIGQ9Ik0yNTEuOTIxLDMzNi4wNTMgQzIwNS41NDMsMzM2LjA1MyAxNjcuOTQ3LDI5OC40NTcgMTY3Ljk0NywyNTIuMDggQzE2Ny45NDcsMjA1LjcwMiAyMDUuNTQzLDE2OC4xMDYgMjUxLjkyMSwxNjguMTA2IEMyOTguMjk4LDE2OC4xMDYgMzM1Ljg5NCwyMDUuNzAyIDMzNS44OTQsMjUyLjA4IEMzMzUuODk0LDI5OC40NTcgMjk4LjI5OCwzMzYuMDUzIDI1MS45MjEsMzM2LjA1MyBaIE0yNTEuOTIxLDEyMi43MTUgQzE4MC40NzQsMTIyLjcxNSAxMjIuNTU2LDE4MC42MzMgMTIyLjU1NiwyNTIuMDggQzEyMi41NTYsMzIzLjUyNiAxODAuNDc0LDM4MS40NDQgMjUxLjkyMSwzODEuNDQ0IEMzMjMuMzY3LDM4MS40NDQgMzgxLjI4NSwzMjMuNTI2IDM4MS4yODUsMjUyLjA4IEMzODEuMjg1LDE4MC42MzMgMzIzLjM2NywxMjIuNzE1IDI1MS45MjEsMTIyLjcxNSBaIiBpZD0iRmlsbC00IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgICAgICA8cGF0aCBkPSJNNDE2LjYyNywxMTcuNjA0IEM0MTYuNjI3LDEzNC4zIDQwMy4wOTIsMTQ3LjgzNCAzODYuMzk2LDE0Ny44MzQgQzM2OS43MDEsMTQ3LjgzNCAzNTYuMTY2LDEzNC4zIDM1Ni4xNjYsMTE3LjYwNCBDMzU2LjE2NiwxMDAuOTA4IDM2OS43MDEsODcuMzczIDM4Ni4zOTYsODcuMzczIEM0MDMuMDkyLDg3LjM3MyA0MTYuNjI3LDEwMC45MDggNDE2LjYyNywxMTcuNjA0IiBpZD0iRmlsbC01IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgIDwvZz48L3N2Zz4=);
		}
/* stylelint-disable-next-line no-descending-specificity */
.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text {
			color: hsl(302, 100%, 94%);
		}
.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: hsl(0, 0%, 100%);
			}
.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder {
		/* Use gradient to contrast with focused widget (ckeditor/ckeditor5-media-embed#22). */
		background: linear-gradient( to right, hsl(201, 85%, 70%), hsl(201, 85%, 35%) );
	}
.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__icon {
			background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IldoaXRlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQwMCA0MDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5zdDB7ZmlsbDojRkZGRkZGO308L3N0eWxlPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MDAsMjAwYzAsMTEwLjUtODkuNSwyMDAtMjAwLDIwMFMwLDMxMC41LDAsMjAwUzg5LjUsMCwyMDAsMFM0MDAsODkuNSw0MDAsMjAweiBNMTYzLjQsMzA1LjVjODguNywwLDEzNy4yLTczLjUsMTM3LjItMTM3LjJjMC0yLjEsMC00LjItMC4xLTYuMmM5LjQtNi44LDE3LjYtMTUuMywyNC4xLTI1Yy04LjYsMy44LTE3LjksNi40LTI3LjcsNy42YzEwLTYsMTcuNi0xNS40LDIxLjItMjYuN2MtOS4zLDUuNS0xOS42LDkuNS0zMC42LDExLjdjLTguOC05LjQtMjEuMy0xNS4yLTM1LjItMTUuMmMtMjYuNiwwLTQ4LjIsMjEuNi00OC4yLDQ4LjJjMCwzLjgsMC40LDcuNSwxLjMsMTFjLTQwLjEtMi03NS42LTIxLjItOTkuNC01MC40Yy00LjEsNy4xLTYuNSwxNS40LTYuNSwyNC4yYzAsMTYuNyw4LjUsMzEuNSwyMS41LDQwLjFjLTcuOS0wLjItMTUuMy0yLjQtMjEuOC02YzAsMC4yLDAsMC40LDAsMC42YzAsMjMuNCwxNi42LDQyLjgsMzguNyw0Ny4zYy00LDEuMS04LjMsMS43LTEyLjcsMS43Yy0zLjEsMC02LjEtMC4zLTkuMS0wLjljNi4xLDE5LjIsMjMuOSwzMy4xLDQ1LDMzLjVjLTE2LjUsMTIuOS0zNy4zLDIwLjYtNTkuOSwyMC42Yy0zLjksMC03LjctMC4yLTExLjUtMC43QzExMC44LDI5Ny41LDEzNi4yLDMwNS41LDE2My40LDMwNS41Ii8+PC9zdmc+);
		}
.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text {
			color: hsl(201, 100%, 86%);
		}
.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: hsl(0, 0%, 100%);
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-mention-background: hsla(341, 100%, 30%, 0.1);
	--ck-color-mention-text: hsl(341, 100%, 30%);
}
.ck-content .mention {
	background: hsla(341, 100%, 30%, 0.1);
	background: var(--ck-color-mention-background);
	color: hsl(341, 100%, 30%);
	color: var(--ck-color-mention-text);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-restricted-editing-exception-background: hsla(31, 100%, 65%, .2);
	--ck-color-restricted-editing-exception-hover-background: hsla(31, 100%, 65%, .35);
	--ck-color-restricted-editing-exception-brackets: hsla(31, 100%, 40%, .4);
	--ck-color-restricted-editing-selected-exception-background: hsla(31, 100%, 65%, .5);
	--ck-color-restricted-editing-selected-exception-brackets: hsla(31, 100%, 40%, .6);
}
.ck-editor__editable .restricted-editing-exception {
	transition: .2s ease-in-out background;
	background-color: hsla(31, 100%, 65%, .2);
	background-color: var(--ck-color-restricted-editing-exception-background);
	border: 1px solid;
	-o-border-image: linear-gradient(
		to right,
		hsla(31, 100%, 40%, .4) 0%,
		hsla(31, 100%, 40%, .4) 5px,
		hsla(0, 0%, 0%, 0) 6px,
		hsla(0, 0%, 0%, 0) calc(100% - 6px),
		hsla(31, 100%, 40%, .4) calc(100% - 5px),
		hsla(31, 100%, 40%, .4) 100%
	) 1;
	   border-image: linear-gradient(
		to right,
		hsla(31, 100%, 40%, .4) 0%,
		hsla(31, 100%, 40%, .4) 5px,
		hsla(0, 0%, 0%, 0) 6px,
		hsla(0, 0%, 0%, 0) calc(100% - 6px),
		hsla(31, 100%, 40%, .4) calc(100% - 5px),
		hsla(31, 100%, 40%, .4) 100%
	) 1;
	-o-border-image: linear-gradient(
		to right,
		var(--ck-color-restricted-editing-exception-brackets) 0%,
		var(--ck-color-restricted-editing-exception-brackets) 5px,
		hsla(0, 0%, 0%, 0) 6px,
		hsla(0, 0%, 0%, 0) calc(100% - 6px),
		var(--ck-color-restricted-editing-exception-brackets) calc(100% - 5px),
		var(--ck-color-restricted-editing-exception-brackets) 100%
	) 1;
	   border-image: linear-gradient(
		to right,
		var(--ck-color-restricted-editing-exception-brackets) 0%,
		var(--ck-color-restricted-editing-exception-brackets) 5px,
		hsla(0, 0%, 0%, 0) 6px,
		hsla(0, 0%, 0%, 0) calc(100% - 6px),
		var(--ck-color-restricted-editing-exception-brackets) calc(100% - 5px),
		var(--ck-color-restricted-editing-exception-brackets) 100%
	) 1;
}
@media (prefers-reduced-motion: reduce) {
.ck-editor__editable .restricted-editing-exception {
		transition: none;
}
	}
.ck-editor__editable .restricted-editing-exception.restricted-editing-exception_selected {
		background-color: hsla(31, 100%, 65%, .5);
		background-color: var(--ck-color-restricted-editing-selected-exception-background);
		-o-border-image: linear-gradient(
			to right,
			hsla(31, 100%, 40%, .6) 0%,
			hsla(31, 100%, 40%, .6) 5px,
			hsla(31, 100%, 40%, .6) calc(100% - 5px),
			hsla(31, 100%, 40%, .6) 100%
		) 1;
		   border-image: linear-gradient(
			to right,
			hsla(31, 100%, 40%, .6) 0%,
			hsla(31, 100%, 40%, .6) 5px,
			hsla(31, 100%, 40%, .6) calc(100% - 5px),
			hsla(31, 100%, 40%, .6) 100%
		) 1;
		-o-border-image: linear-gradient(
			to right,
			var(--ck-color-restricted-editing-selected-exception-brackets) 0%,
			var(--ck-color-restricted-editing-selected-exception-brackets) 5px,
			var(--ck-color-restricted-editing-selected-exception-brackets) calc(100% - 5px),
			var(--ck-color-restricted-editing-selected-exception-brackets) 100%
		) 1;
		   border-image: linear-gradient(
			to right,
			var(--ck-color-restricted-editing-selected-exception-brackets) 0%,
			var(--ck-color-restricted-editing-selected-exception-brackets) 5px,
			var(--ck-color-restricted-editing-selected-exception-brackets) calc(100% - 5px),
			var(--ck-color-restricted-editing-selected-exception-brackets) 100%
		) 1;
	}
.ck-editor__editable .restricted-editing-exception.restricted-editing-exception_collapsed {
		/* Empty exception should have the same width as exception with at least 1 char */
		padding-left: 1ch;
	}
.ck-restricted-editing_mode_restricted {
	cursor: default;

	/* We also have to override all elements inside the restricted editable to prevent cursor switching between default and text
	during the pointer movement. */
}
.ck-restricted-editing_mode_restricted * {
		cursor: default;
	}
.ck-restricted-editing_mode_restricted .restricted-editing-exception {
		cursor: text;
	}
.ck-restricted-editing_mode_restricted .restricted-editing-exception * {
			cursor: text;
		}
.ck-restricted-editing_mode_restricted .restricted-editing-exception:hover {
			background: hsla(31, 100%, 65%, .35);
			background: var(--ck-color-restricted-editing-exception-hover-background);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
:root {
	--ck-character-grid-tile-size: 24px;
}
.ck.ck-character-grid {
	overflow-y: auto;
	overflow-x: hidden;
}
.ck.ck-character-grid .ck-character-grid__tiles {
		grid-template-columns: repeat(auto-fill, minmax(24px, 1fr));
		grid-template-columns: repeat(auto-fill, minmax(var(--ck-character-grid-tile-size), 1fr));
		margin: 0.6em calc(0.6em * 1.5);
		margin: var(--ck-spacing-standard) var(--ck-spacing-large);
		grid-gap: 0.6em;
		grid-gap: var(--ck-spacing-standard);
	}
.ck.ck-character-grid .ck-character-grid__tile {
		width: 24px;
		width: var(--ck-character-grid-tile-size);
		height: 24px;
		height: var(--ck-character-grid-tile-size);
		min-width: 24px;
		min-width: var(--ck-character-grid-tile-size);
		min-height: 24px;
		min-height: var(--ck-character-grid-tile-size);
		font-size: 1.5em;
		padding: 0;
		transition: .2s ease box-shadow;
		border: 0;
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-character-grid .ck-character-grid__tile {
			transition: none;
	}
		}
.ck.ck-character-grid .ck-character-grid__tile:focus:not( .ck-disabled ),
		.ck.ck-character-grid .ck-character-grid__tile:hover:not( .ck-disabled ) {
			/* Disable the default .ck-button's border ring. */
			border: 0;
			box-shadow: inset 0 0 0 1px hsl(0, 0%, 100%), 0 0 0 2px hsl(218, 81.8%, 56.9%);
			box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);
		}
/* Make sure the glyph is rendered in the center of the button */
.ck.ck-character-grid .ck-character-grid__tile .ck-button__label {
			line-height: 24px;
			line-height: var(--ck-character-grid-tile-size);
			width: 100%;
			text-align: center;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-character-info {
	padding: calc(0.6em * 0.5) calc(0.6em * 1.5);
	padding: var(--ck-spacing-small) var(--ck-spacing-large);
	border-top: 1px solid hsl(220, 6%, 81%);
	border-top: 1px solid var(--ck-color-base-border);
}
.ck.ck-character-info > * {
		text-transform: uppercase;
		font-size: 0.75em;
		font-size: var(--ck-font-size-small);
	}
.ck.ck-character-info .ck-character-info__name {
		max-width: 280px;
		text-overflow: ellipsis;
		overflow: hidden;
	}
.ck.ck-character-info .ck-character-info__code {
		opacity: .6;
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-special-characters-navigation > .ck-label {
		max-width: 160px;
		text-overflow: ellipsis;
		overflow: hidden;
	}
.ck.ck-special-characters-navigation > .ck-dropdown .ck-dropdown__panel {
		/* There could be dozens of categories available. Use scroll to prevent a 10e6px dropdown. */
		max-height: 250px;
		overflow-y: auto;
		overflow-x: hidden;
	}
@media screen and (max-width: 600px) {
.ck.ck-special-characters-navigation {
		max-width: 190px;
}

		.ck.ck-special-characters-navigation > .ck-form__header__label {
			text-overflow: ellipsis;
			overflow: hidden;
		}
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-dropdown.ck-style-dropdown.ck-style-dropdown_multiple-active > .ck-button > .ck-button__label {
	font-style: italic;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-style-panel-button-width: 120px;
	--ck-style-panel-button-height: 80px;
	--ck-style-panel-button-label-background: hsl(0, 0%, 94.1%);
	--ck-style-panel-button-hover-label-background: hsl(0, 0%, 92.1%);
	--ck-style-panel-button-hover-border-color: hsl(0, 0%, 70%);
}
.ck.ck-style-panel .ck-style-grid {
	row-gap: calc(0.6em * 1.5);
	row-gap: var(--ck-spacing-large);
	-moz-column-gap: calc(0.6em * 1.5);
	     column-gap: calc(0.6em * 1.5);
	-moz-column-gap: var(--ck-spacing-large);
	     column-gap: var(--ck-spacing-large);
}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button {
		--ck-color-button-default-hover-background: var(--ck-color-base-background);
		--ck-color-button-default-active-background: var(--ck-color-base-background);

		padding: 0;
		width: 120px;
		width: var(--ck-style-panel-button-width);
		height: 80px;
		height: var(--ck-style-panel-button-height);

		/* Let default .ck-button :focus styles apply */
	}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:not(:focus) {
			border: 1px solid hsl(220, 6%, 81%);
			border: 1px solid var(--ck-color-base-border);
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-button__label {
			height: 22px;
			line-height: 22px;
			width: 100%;
			padding: 0 calc(0.6em * 0.8);
			padding: 0 var(--ck-spacing-medium);
			overflow: hidden;
			text-overflow: ellipsis;
			flex-shrink: 0;
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-style-grid__button__preview {
			width: 100%;
			overflow: hidden;
			opacity: .9;

			padding: calc(0.6em * 0.8);

			padding: var(--ck-spacing-medium);
			background: hsl(0, 0%, 100%);
			background: var(--ck-color-base-background);
			border: 2px solid hsl(0, 0%, 100%);
			border: 2px solid var(--ck-color-base-background);
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled {
			--ck-color-button-default-disabled-background: var(--ck-color-base-foreground);

			/* Let default .ck-button :focus styles apply */
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled:not(:focus) {
				border-color: hsl(0, 0%, 94.1%);
				border-color: var(--ck-style-panel-button-label-background);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-disabled .ck-style-grid__button__preview {
				opacity: .4;

				border-color: hsl(0, 0%, 98%);

				border-color: var(--ck-color-base-foreground);
				filter: saturate(.3);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on {
			border-color: hsl(218.1, 100%, 58%);
			border-color: var(--ck-color-base-active);
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on .ck-button__label {
				box-shadow: 0 -1px 0 hsl(218.1, 100%, 58%);
				box-shadow: 0 -1px 0 var(--ck-color-base-active);
				z-index: 1; /* Stay on top of the preview with the shadow. */
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button.ck-on:hover {
				border-color: hsl(218.2, 100%, 52.5%);
				border-color: var(--ck-color-base-active-focus);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:not(.ck-on) .ck-button__label {
				background: hsl(0, 0%, 94.1%);
				background: var(--ck-style-panel-button-label-background);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:not(.ck-on):hover .ck-button__label {
				background: hsl(0, 0%, 92.1%);
				background: var(--ck-style-panel-button-hover-label-background);
			}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:hover:not(.ck-disabled):not(.ck-on) {
			border-color: hsl(0, 0%, 70%);
			border-color: var(--ck-style-panel-button-hover-border-color);
		}
.ck.ck-style-panel .ck-style-grid .ck-style-grid__button:hover:not(.ck-disabled):not(.ck-on) .ck-style-grid__button__preview {
				opacity: 1;
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-style-panel .ck-style-panel__style-group > .ck-label {
		margin: calc(0.6em * 1.5) 0;
		margin: var(--ck-spacing-large) 0;
	}
.ck.ck-style-panel .ck-style-panel__style-group:first-child > .ck-label {
			margin-top: 0;
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-style-panel-max-height: 470px;
}
.ck.ck-style-panel {
	padding: calc(0.6em * 1.5);
	padding: var(--ck-spacing-large);
	overflow-y: auto;
	max-height: 470px;
	max-height: var(--ck-style-panel-max-height);
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
[dir="ltr"] .ck.ck-input-color > .ck.ck-input-text {
			border-top-right-radius: 0;
			border-bottom-right-radius: 0;
	}
[dir="rtl"] .ck.ck-input-color > .ck.ck-input-text {
			border-top-left-radius: 0;
			border-bottom-left-radius: 0;
	}
/* Make sure the focused input is always on top of the dropdown button so its
		   outline and border are never cropped (also when the input is read-only). */
.ck.ck-input-color > .ck.ck-input-text:focus {
			z-index: 0;
		}
.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button {
			padding: 0;
		}
[dir="ltr"] .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button {
				border-top-left-radius: 0;
				border-bottom-left-radius: 0;
	}
[dir="ltr"] .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button:not(:focus) {
					border-left: 1px solid transparent;
				}
[dir="rtl"] .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button {
				border-top-right-radius: 0;
				border-bottom-right-radius: 0;
	}
[dir="rtl"] .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button:not(:focus) {
					border-right: 1px solid transparent;
				}
.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button.ck-disabled {
				background: hsl(0, 0%, 95%);
				background: var(--ck-color-input-disabled-background);
			}
.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button > .ck.ck-input-color__button__preview {
				border-radius: 0;

				width: 20px;
				height: 20px;
				border: 1px solid hsl(220, 6%, 81%);
				border: 1px solid var(--ck-color-input-border);
			}
.ck-rounded-corners .ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button > .ck.ck-input-color__button__preview,
	.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button > .ck.ck-input-color__button__preview.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
.ck.ck-input-color > .ck.ck-dropdown > .ck.ck-button.ck-input-color__button > .ck.ck-input-color__button__preview > .ck.ck-input-color__button__preview__no-color-indicator {
					top: -30%;
					left: 50%;
					height: 150%;
					width: 8%;
					background: hsl(0, 100%, 50%);
					border-radius: 2px;
					transform: rotate(45deg);
					transform-origin: 50%;
				}
.ck.ck-input-color .ck.ck-input-color__remove-color {
		width: 100%;
		padding: calc(0.6em / 2) 0.6em;
		padding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);

		border-bottom-left-radius: 0;
		border-bottom-right-radius: 0;
	}
.ck.ck-input-color .ck.ck-input-color__remove-color:not(:focus) {
			border-bottom: 1px solid hsl(220, 6%, 81%);
			border-bottom: 1px solid var(--ck-color-input-border);
		}
[dir="ltr"] .ck.ck-input-color .ck.ck-input-color__remove-color {
			border-top-right-radius: 0;
	}
[dir="rtl"] .ck.ck-input-color .ck.ck-input-color__remove-color {
			border-top-left-radius: 0;
	}
.ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon {
			margin-right: 0.6em;
			margin-right: var(--ck-spacing-standard);
		}
[dir="rtl"] .ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon {
				margin-right: 0;
				margin-left: 0.6em;
				margin-left: var(--ck-spacing-standard);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-form {
	padding: 0 0 calc(0.6em * 1.5);
	padding: 0 0 var(--ck-spacing-large);
}
.ck.ck-form:focus {
		/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */
		outline: none;
	}
.ck.ck-form .ck.ck-input-text {
		min-width: 100%;
		width: 0;
	}
.ck.ck-form .ck.ck-dropdown {
		min-width: 100%;
	}
.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus) {
				border: 1px solid hsl(220, 6%, 81%);
				border: 1px solid var(--ck-color-base-border);
			}
.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label {
				width: 100%;
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-form__row {
	padding: 0.6em calc(0.6em * 1.5) 0;
	padding: var(--ck-spacing-standard) var(--ck-spacing-large) 0;

	/* Ignore labels that work as fieldset legends */
}
[dir="ltr"] .ck.ck-form__row > *:not(.ck-label) + * {
				margin-left: calc(0.6em * 1.5);
				margin-left: var(--ck-spacing-large);
	}
[dir="rtl"] .ck.ck-form__row > *:not(.ck-label) + * {
				margin-right: calc(0.6em * 1.5);
				margin-right: var(--ck-spacing-large);
	}
.ck.ck-form__row > .ck-label {
		width: 100%;
		min-width: 100%;
	}
.ck.ck-form__row.ck-table-form__action-row {
		margin-top: calc(0.6em * 1.5);
		margin-top: var(--ck-spacing-large);
	}
.ck.ck-form__row.ck-table-form__action-row .ck-button .ck-button__label {
			color: hsl(0, 0%, 20%);
			color: var(--ck-color-text);
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-insert-table-dropdown-padding: 10px;
	--ck-insert-table-dropdown-box-height: 11px;
	--ck-insert-table-dropdown-box-width: 12px;
	--ck-insert-table-dropdown-box-margin: 1px;
}
.ck .ck-insert-table-dropdown__grid {
	/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */
	width: calc(12px * 10 + 1px * 20 + 10px * 2);
	width: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);
	padding: 10px 10px 0;
	padding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;
}
.ck .ck-insert-table-dropdown__label,
.ck[dir=rtl] .ck-insert-table-dropdown__label {
	text-align: center;
}
.ck .ck-insert-table-dropdown-grid-box {
	min-width: 12px;
	min-width: var(--ck-insert-table-dropdown-box-width);
	min-height: 11px;
	min-height: var(--ck-insert-table-dropdown-box-height);
	margin: 1px;
	margin: var(--ck-insert-table-dropdown-box-margin);
	border: 1px solid hsl(220, 6%, 81%);
	border: 1px solid var(--ck-color-base-border);
	border-radius: 1px;
	outline: none;
	transition: none;
}
@media (prefers-reduced-motion: reduce) {
.ck .ck-insert-table-dropdown-grid-box {
		transition: none;
}
	}
.ck .ck-insert-table-dropdown-grid-box:focus {
		box-shadow: none;
	}
.ck .ck-insert-table-dropdown-grid-box.ck-on {
		border-color: hsl(218, 81.8%, 56.9%);
		border-color: var(--ck-color-focus-border);
		background: hsl(212.4, 89.3%, 89%);
		background: var(--ck-color-focus-outer-shadow);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-table-cell-properties-form {
	width: 320px;
}
.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__padding-row {
			align-self: flex-end;
			padding: 0;
			width: 25%;
		}
.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar {
				background: none;

				/* Compensate for missing input label that would push the margin (toolbar has no inputs). */
				margin-top: 0.6em;
				margin-top: var(--ck-spacing-standard);
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-color-selector-focused-cell-background: hsla(212, 90%, 80%, .3);
}
/**
		 * While setting outline is fine, the border should not be modified here
		 * because it overrides the default table cell border color which is not expected.
		 * So do not use `@mixin ck-focus-ring;` here, or any other border styles.
		 * See more: https://github.com/ckeditor/ckeditor5/issues/16979
		 */
.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,
		.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,
		.ck-widget.table td.ck-editor__nested-editable:focus,
		.ck-widget.table th.ck-editor__nested-editable:focus {
			/* A very slight background to highlight the focused cell */
			background: hsla(212, 90%, 80%, .3);
			background: var(--ck-color-selector-focused-cell-background);
			outline: 1px solid hsl(218, 81.8%, 56.9%);
			outline: 1px solid var(--ck-color-focus-border);
			outline-offset: -1px; /* progressive enhancement - no IE support */
		}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
:root {
	--ck-table-properties-error-arrow-size: 6px;
	--ck-table-properties-min-error-width: 150px;
}
.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-labeled-field-view > .ck-label {
					font-size: 0.7em;
					font-size: var(--ck-font-size-tiny);
					text-align: center;
				}
.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-style,
			.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-width {
				width: 80px;
				min-width: 80px;
				max-width: 80px;
			}
.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row {
			padding: 0;
		}
.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width,
			.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height {
				margin: 0
			}
.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator {
				align-self: flex-end;
				display: inline-block;
				height: 2.3em;
				height: var(--ck-ui-component-min-height);
				line-height: 2.3em;
				line-height: var(--ck-ui-component-min-height);
				margin: 0 calc(0.6em * 0.5);
				margin: 0 var(--ck-spacing-small);
			}
.ck.ck-table-form .ck.ck-labeled-field-view {
		padding-top: 0.6em;
		padding-top: var(--ck-spacing-standard);
	}
.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status {
			border-radius: 0;

			background: hsl(15, 100%, 43%);

			background: var(--ck-color-base-error);
			color: hsl(0, 0%, 100%);
			color: var(--ck-color-base-background);
			padding: calc(0.6em * 0.5) calc(0.6em * 0.8);
			padding: var(--ck-spacing-small) var(--ck-spacing-medium);
			min-width: 150px;
			min-width: var(--ck-table-properties-min-error-width);
			text-align: center;

			animation: ck-table-form-labeled-view-status-appear .15s ease both;
		}
.ck-rounded-corners .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status,
	.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
	}
/* The arrow pointing towards the field. */
.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status::after {
				border-color: transparent transparent hsl(15, 100%, 43%) transparent;
				border-color: transparent transparent var(--ck-color-base-error) transparent;
				border-width: 0 6px 6px 6px;
				border-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);
				border-style: solid;
			}
@media (prefers-reduced-motion: reduce) {
.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status {
				animation: none;
		}
			}
/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */
.ck.ck-table-form .ck.ck-labeled-field-view .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {
			display: none;
		}
@keyframes ck-table-form-labeled-view-status-appear {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
.ck.ck-table-properties-form {
	width: 320px;
}
.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row {
			align-self: flex-end;
			padding: 0;
		}
.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar {
				background: none;

				/* Compensate for missing input label that would push the margin (toolbar has no inputs). */
				margin-top: 0.6em;
				margin-top: var(--ck-spacing-standard);
			}
.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items > * {
					width: 40px;
				}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);
}
.ck.ck-editor__editable .table table td.ck-editor__editable_selected,
	.ck.ck-editor__editable .table table th.ck-editor__editable_selected {
		position: relative;
		caret-color: transparent;
		outline: medium none invert;
		outline: initial;
		box-shadow: none;
		box-shadow: initial;

		/* https://github.com/ckeditor/ckeditor5/issues/6446 */
	}
.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after, .ck.ck-editor__editable .table table th.ck-editor__editable_selected:after {
			content: '';
			pointer-events: none;
			background-color: hsla(208, 90%, 80%, .3);
			background-color: var(--ck-table-selected-cell-background);
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;
		}
.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::-moz-selection, .ck.ck-editor__editable .table table th.ck-editor__editable_selected ::-moz-selection {
			background-color: transparent;
		}
.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,
		.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,
		.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,
		.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus {
			background-color: transparent;
		}
/*
		 * To reduce the amount of noise, all widgets in the table selection have no outline and no selection handle.
		 * See https://github.com/ckeditor/ckeditor5/issues/9491.
		 */
.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget, .ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget {
			outline: medium none invert;
			outline: initial;
		}
.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget > .ck-widget__selection-handle, .ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget > .ck-widget__selection-handle {
				display: none;
			}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-widget-outline-thickness: 3px;
	--ck-widget-handler-icon-size: 16px;
	--ck-widget-handler-animation-duration: 200ms;
	--ck-widget-handler-animation-curve: ease;

	--ck-color-widget-blurred-border: hsl(0, 0%, 87%);
	--ck-color-widget-hover-border: hsl(43, 100%, 62%);
	--ck-color-widget-editable-focus-background: var(--ck-color-base-background);
	--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);
}
.ck .ck-widget {
	outline-width: 3px;
	outline-width: var(--ck-widget-outline-thickness);
	outline-style: solid;
	outline-color: transparent;
	transition: outline-color 200ms ease;
	transition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);
}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget {
		transition: none;
}
	}
.ck .ck-widget.ck-widget_selected,
	.ck .ck-widget.ck-widget_selected:hover {
		outline: 3px solid hsl(218, 81.8%, 56.9%);
		outline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);
	}
.ck .ck-widget:hover {
		outline-color: hsl(43, 100%, 62%);
		outline-color: var(--ck-color-widget-hover-border);
	}
.ck .ck-editor__nested-editable {
	border: 1px solid transparent;

	/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.
	These styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */
}
.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,
	.ck .ck-editor__nested-editable:focus {
		box-shadow: 2px 2px 3px hsla(0, 0%, 0%, 0.1) inset, 0 0;
		box-shadow: var(--ck-inner-shadow), 0 0;
	}
@media (forced-colors: none) {
		.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused, .ck .ck-editor__nested-editable:focus {
			background-color: hsl(0, 0%, 100%);
			background-color: var(--ck-color-widget-editable-focus-background);
		}
	}
/**
		 * Focus border should not be applied to table cells because it overrides the default table cell border color.
		 * In other words - in some scenarios, the part of the table cell border has focus color style, which is not expected behavior
		 * because it should be the same as the table cell border color.
		 */
.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused:not(td, th), .ck .ck-editor__nested-editable:focus:not(td, th) {
			/* Disable native outline. */
			outline: none;
			border: 1px solid hsl(218, 81.8%, 56.9%);
			border: var(--ck-focus-ring);
		}
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
		padding: 4px;
		box-sizing: border-box;

		/* Background and opacity will be animated as the handler shows up or the widget gets selected. */
		background-color: transparent;
		opacity: 0;

		/* Transition:
		   * background-color for the .ck-widget_selected state change,
		   * visibility for hiding the handler,
		   * opacity for the proper look of the icon when the handler disappears. */
		transition:
			background-color 200ms ease,
			visibility 200ms ease,
			opacity 200ms ease;
		transition:
			background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),
			visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),
			opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);

		/* Make only top corners round. */
		border-radius: 2px 2px 0 0;
		border-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;

		/* Place the drag handler outside the widget wrapper. */
		transform: translateY(-100%);
		left: calc(0px - 3px);
		left: calc(0px - var(--ck-widget-outline-thickness));
		top: 0;
	}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
			transition: none;
	}
		}
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon {
			/* Make sure the dimensions of the icon are independent of the fon-size of the content. */
			width: 16px;
			width: var(--ck-widget-handler-icon-size);
			height: 16px;
			height: var(--ck-widget-handler-icon-size);
			color: hsl(0, 0%, 100%);
			color: var(--ck-color-widget-drag-handler-icon-color);

			/* The "selected" part of the icon is invisible by default */
		}
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator {
				opacity: 0;

				/* Note: The animation is longer on purpose. Simply feels better. */
				transition: opacity 300ms ease;
				transition: opacity 300ms var(--ck-widget-handler-animation-curve);
			}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator {
					transition: none;
			}
				}
/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */
.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator {
			opacity: 1;
		}
/* Show the selection handler on mouse hover over the widget, but not for nested widgets. */
.ck .ck-widget.ck-widget_with-selection-handle:hover > .ck-widget__selection-handle {
		opacity: 1;
		background-color: hsl(43, 100%, 62%);
		background-color: var(--ck-color-widget-hover-border);
	}
/* Show the selection handler when the widget is selected, but not for nested widgets. */
.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover > .ck-widget__selection-handle {
			opacity: 1;
			background-color: hsl(218, 81.8%, 56.9%);
			background-color: var(--ck-color-focus-border);

			/* When the widget is selected, notify the user using the proper look of the icon. */
		}
.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator, .ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover > .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator {
				opacity: 1;
			}
/* In a RTL environment, align the selection handler to the right side of the widget */
/* stylelint-disable-next-line no-descending-specificity */
.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
	left: auto;
	right: calc(0px - 3px);
	right: calc(0px - var(--ck-widget-outline-thickness));
}
/* https://github.com/ckeditor/ckeditor5/issues/6415 */
.ck.ck-editor__editable.ck-read-only .ck-widget {
	/* Prevent the :hover outline from showing up because of the used outline-color transition. */
	transition: none;
}
.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected) {
		/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.
		 * See: https://github.com/ckeditor/ckeditor5/issues/1261
		 *
		 * Leave the unit because this custom property is used in calc() by other features.
		 * See: https://github.com/ckeditor/ckeditor5/issues/6775
		 */
		--ck-widget-outline-thickness: 0px;
	}
.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,
		.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover {
			background: hsl(0, 0%, 87%);
			background: var(--ck-color-widget-blurred-border);
		}
/* Style the widget when it's selected but the editable it belongs to lost focus. */
/* stylelint-disable-next-line no-descending-specificity */
.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,
	.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover {
		outline-color: hsl(0, 0%, 87%);
		outline-color: var(--ck-color-widget-blurred-border);
	}
.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle > .ck-widget__selection-handle,
			.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover > .ck-widget__selection-handle,
			.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle > .ck-widget__selection-handle:hover,
			.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover > .ck-widget__selection-handle:hover {
				background: hsl(0, 0%, 87%);
				background: var(--ck-color-widget-blurred-border);
			}
.ck.ck-editor__editable > .ck-widget.ck-widget_with-selection-handle:first-child,
.ck.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {
	/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.
	In fact, anything with overflow: hidden.
	https://github.com/ckeditor/ckeditor5-block-quote/issues/28
	https://github.com/ckeditor/ckeditor5-widget/issues/44
	https://github.com/ckeditor/ckeditor5-widget/issues/66 */
	margin-top: calc(1em + 16px);
	margin-top: calc(1em + var(--ck-widget-handler-icon-size));
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-resizer-size: 10px;

	/* Set the resizer with a 50% offset. */
	--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);
	--ck-resizer-border-width: 1px;
}
.ck .ck-widget__resizer {
	outline: 1px solid hsl(218, 81.8%, 56.9%);
	outline: 1px solid var(--ck-color-resizer);
}
.ck .ck-widget__resizer__handle {
	width: 10px;
	width: var(--ck-resizer-size);
	height: 10px;
	height: var(--ck-resizer-size);
	background: hsl(218, 81.8%, 56.9%);
	background: var(--ck-color-focus-border);
	border: 1px solid hsl(0, 0%, 100%);
	border: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);
	border-radius: 2px;
	border-radius: var(--ck-resizer-border-radius);
}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left {
		top: calc( ( 10px / -2 ) - 2px);
		top: var(--ck-resizer-offset);
		left: calc( ( 10px / -2 ) - 2px);
		left: var(--ck-resizer-offset);
	}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right {
		top: calc( ( 10px / -2 ) - 2px);
		top: var(--ck-resizer-offset);
		right: calc( ( 10px / -2 ) - 2px);
		right: var(--ck-resizer-offset);
	}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right {
		bottom: calc( ( 10px / -2 ) - 2px);
		bottom: var(--ck-resizer-offset);
		right: calc( ( 10px / -2 ) - 2px);
		right: var(--ck-resizer-offset);
	}
.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left {
		bottom: calc( ( 10px / -2 ) - 2px);
		bottom: var(--ck-resizer-offset);
		left: calc( ( 10px / -2 ) - 2px);
		left: var(--ck-resizer-offset);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-widget-type-around-button-size: 20px;
	--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);
	--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);
	--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);
	--ck-color-widget-type-around-button-radar-start-alpha: 0;
	--ck-color-widget-type-around-button-radar-end-alpha: .3;
	--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);
}
/*
	 * Styles of the type around buttons
	 */
.ck .ck-widget .ck-widget__type-around__button {
		width: 20px;
		width: var(--ck-widget-type-around-button-size);
		height: 20px;
		height: var(--ck-widget-type-around-button-size);
		background: var(--ck-color-widget-type-around-button);
		border-radius: 100px;
		transition: opacity 200ms ease, background 200ms ease;
		transition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);

		opacity: 0;

		pointer-events: none;
	}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget .ck-widget__type-around__button {
			transition: none;
	}
		}
.ck .ck-widget .ck-widget__type-around__button svg {
			width: 10px;
			height: 8px;
			transform: translate(-50%,-50%);
			transition: transform .5s ease;
			margin-top: 1px;
		}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget .ck-widget__type-around__button svg {
				transition: none;
		}
			}
.ck .ck-widget .ck-widget__type-around__button svg * {
				stroke-dasharray: 10;
				stroke-dashoffset: 0;

				fill: none;
				stroke: hsl(0, 0%, 100%);
				stroke: var(--ck-color-widget-type-around-button-icon);
				stroke-width: 1.5px;
				stroke-linecap: round;
				stroke-linejoin: round;
			}
.ck .ck-widget .ck-widget__type-around__button svg line {
				stroke-dasharray: 7;
			}
.ck .ck-widget .ck-widget__type-around__button:hover {
			/*
			 * Display the "sonar" around the button when hovered.
			 */
			animation: ck-widget-type-around-button-sonar 1s ease infinite;

			/*
			 * Animate active button's icon.
			 */
		}
.ck .ck-widget .ck-widget__type-around__button:hover svg polyline {
					animation: ck-widget-type-around-arrow-dash 2s linear;
				}
.ck .ck-widget .ck-widget__type-around__button:hover svg line {
					animation: ck-widget-type-around-arrow-tip-dash 2s linear;
				}
@media (prefers-reduced-motion: reduce) {
.ck .ck-widget .ck-widget__type-around__button:hover {
				animation: none;
		}
					.ck .ck-widget .ck-widget__type-around__button:hover svg polyline {
						animation: none;
					}

					.ck .ck-widget .ck-widget__type-around__button:hover svg line {
						animation: none;
					}
			}
/*
	 * Show type around buttons when the widget gets selected or being hovered.
	 */
.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button, .ck .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__button {
			opacity: 1;
			pointer-events: auto;
		}
/*
	 * Styles for the buttons when the widget is NOT selected (but the buttons are visible
	 * and still can be hovered).
	 */
.ck .ck-widget:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {
		background: hsl(43, 100%, 62%);
		background: var(--ck-color-widget-type-around-button-hover);
	}
/*
	 * Styles for the buttons when:
	 * - the widget is selected,
	 * - or the button is being hovered (regardless of the widget state).
	 */
.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,
	.ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover {
		background: hsl(218, 81.8%, 56.9%);
		background: var(--ck-color-widget-type-around-button-active);
	}
.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button::after, .ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover::after {
			width: calc(20px - 2px);
			width: calc(var(--ck-widget-type-around-button-size) - 2px);
			height: calc(20px - 2px);
			height: calc(var(--ck-widget-type-around-button-size) - 2px);
			border-radius: 100px;
			background: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);
		}
/*
	 * Styles for the "before" button when the widget has a selection handle. Because some space
	 * is consumed by the handle, the button must be moved slightly to the right to let it breathe.
	 */
.ck .ck-widget.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {
		margin-left: 20px;
	}
/*
	 * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.
	 */
.ck .ck-widget .ck-widget__type-around__fake-caret {
		pointer-events: none;
		height: 1px;
		animation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;

		/*
		 * The semi-transparent-outline+background combo improves the contrast
		 * when the background underneath the fake caret is dark.
		 */
		outline: solid 1px hsla(0, 0%, 100%, .5);
		background: hsl(0, 0%, 20%);
		background: var(--ck-color-base-text);
	}
/*
	 * Styles of the widget when the "fake caret" is blinking (e.g. upon keyboard navigation).
	 * Despite the widget being physically selected in the model, its outline should disappear.
	 */
.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before,
		.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after {
			outline-color: transparent;
		}
/*
		 * When the "fake caret" is visible we simulate that the widget is not selected
		 * (despite being physically selected), so the outline color should be for the
		 * unselected widget.
		 */
.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover {
			outline-color: hsl(43, 100%, 62%);
			outline-color: var(--ck-color-widget-hover-border);
		}
/*
		 * Styles of the type around buttons when the "fake caret" is blinking (e.g. upon keyboard navigation).
		 * In this state, the type around buttons would collide with the fake carets so they should disappear.
		 */
.ck .ck-widget.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__button, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__button {
			opacity: 0;
			pointer-events: none;
		}
/*
		 * Fake horizontal caret integration with the selection handle. When the caret is visible, simply
		 * hide the handle because it intersects with the caret (and does not make much sense anyway).
		 */
.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover > .ck-widget__selection-handle {
					opacity: 0
				}
/*
		 * Fake horizontal caret integration with the resize UI. When the caret is visible, simply
		 * hide the resize UI because it creates too much noise. It can be visible when the user
		 * hovers the widget, though.
		 */
.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {
			opacity: 0
		}
/*
 * Styles for the "before" button when the widget has a selection handle in an RTL environment.
 * The selection handler is aligned to the right side of the widget so there is no need to create
 * additional space for it next to the "before" button.
 */
.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {
	margin-left: 0;
	margin-right: 20px;
}
/*
 * Hide type around buttons when the widget is selected as a child of a selected
 * nested editable (e.g. mulit-cell table selection).
 *
 * See https://github.com/ckeditor/ckeditor5/issues/7263.
 */
.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button, .ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__button {
				opacity: 0;
				pointer-events: none;
			}
/*
 * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).
 */
.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {
	background: hsl(0, 0%, 87%);
	background: var(--ck-color-widget-type-around-button-blurred-editable);
}
.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) svg * {
		stroke: hsl(0,0%,60%);
	}
@keyframes ck-widget-type-around-arrow-dash {
	0% {
		stroke-dashoffset: 10;
	}
	20%, 100% {
		stroke-dashoffset: 0;
	}
}
@keyframes ck-widget-type-around-arrow-tip-dash {
	0%, 20% {
		stroke-dashoffset: 7;
	}
	40%, 100% {
		stroke-dashoffset: 0;
	}
}
@keyframes ck-widget-type-around-button-sonar {
	0% {
		box-shadow: 0 0 0 0 hsla(218, 81.8%, 56.9%, 0);
		box-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));
	}
	50% {
		box-shadow: 0 0 0 5px hsla(218, 81.8%, 56.9%, .3);
		box-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));
	}
	100% {
		box-shadow: 0 0 0 5px hsla(218, 81.8%, 56.9%, 0);
		box-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));
	}
}
@keyframes ck-widget-type-around-fake-caret-pulse {
	0% {
		opacity: 1;
	}
	49% {
		opacity: 1;
	}
	50% {
		opacity: 0;
	}
	99% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content code {
	background-color: hsla(0, 0%, 78%, 0.3);
	padding: .15em;
	border-radius: 2px;
}

.ck.ck-editor__editable .ck-code_selected  {
	background-color: hsla(0, 0%, 78%, 0.5);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content blockquote {
	/* See #12 */
	overflow: hidden;

	/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */
	padding-right: 1.5em;
	padding-left: 1.5em;

	margin-left: 0;
	margin-right: 0;
	font-style: italic;
	border-left: solid 5px hsl(0, 0%, 80%);
}

.ck-content[dir="rtl"] blockquote {
	border-left: 0;
	border-right: solid 5px hsl(0, 0%, 80%);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-bookmark-icon-hover-fill-color: var(--ck-color-widget-hover-border);
	--ck-bookmark-icon-selected-fill-color: var(--ck-color-focus-border);
	--ck-bookmark-icon-animation-duration: var(--ck-widget-handler-animation-duration);
	--ck-bookmark-icon-animation-curve: var(--ck-widget-handler-animation-curve);
}

.ck-bookmark.ck-widget {
		outline: none;
	}

.ck-bookmark.ck-widget .ck-bookmark__icon .ck-icon__fill {
			transition: fill 200ms ease;
			transition: fill var(--ck-bookmark-icon-animation-duration) var(--ck-bookmark-icon-animation-curve);
		}

.ck-bookmark.ck-widget:hover .ck-bookmark__icon .ck-icon__fill {
				fill: hsl(43, 100%, 62%);
				fill: var(--ck-bookmark-icon-hover-fill-color);
			}

.ck-bookmark.ck-widget.ck-widget_selected .ck-bookmark__icon .ck-icon__fill {
				fill: hsl(218, 81.8%, 56.9%);
				fill: var(--ck-bookmark-icon-selected-fill-color);
			}

.ck-bookmark.ck-widget.ck-widget_selected,
		.ck-bookmark.ck-widget.ck-widget_selected:hover {
			outline: none;
		}

.ck-bookmark.ck-widget .ck-bookmark__icon {
			position: relative;
			/* To make it align with text baseline. */
			top: -0.1em;
		}

.ck-bookmark.ck-widget .ck-bookmark__icon .ck-icon {
				height: 1.2em;
				width: auto;
				vertical-align: middle;
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-bookmark-view:focus {
		outline: none;
	}

.ck.ck-bookmark-form {
	display: flex;
	align-items: flex-start;
}

@media screen and (max-width: 600px) {

.ck.ck-bookmark-form {
		flex-wrap: wrap;
}

		.ck.ck-bookmark-form .ck-button,
		.ck.ck-bookmark-form .ck-labeled-field-view {
			flex-basis: 100%;
		}

		.ck.ck-bookmark-form .ck-button {
			justify-content: center;
		}
	}

@media screen and (max-width: 600px) {
				.ck.ck-bookmark-form.ck-responsive-form > .ck-button:nth-last-child(1) {
					margin: calc(0.6em * 1.5);
					margin: var(--ck-spacing-large);
					padding: 0 0.6em;
					padding: 0 var(--ck-spacing-standard);
					border-radius: 2px;
					border-radius: var(--ck-border-radius);
				}
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * Makes element unselectable.
 */

.ck.ck-bookmark-actions {
	display: flex;
	align-items: center;
}

.ck.ck-bookmark-actions .ck-bookmark-actions__preview {
		max-width: 18em;
		max-width: var(--ck-input-width);
		min-width: 3em;
		font-weight: normal;
		text-overflow: ellipsis;
		text-align: center;
		overflow: hidden;

		-moz-user-select: none;

		-webkit-user-select: none;

		user-select: none;
		cursor: default;
	}

@media screen and (max-width: 600px) {

.ck.ck-bookmark-actions {
		display: flex;
		flex-wrap: wrap;
}

		.ck.ck-bookmark-actions .ck-bookmark-actions__preview {
			flex-basis: 100%;
			margin: 0.6em 0.6em 0;
			margin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0;
			min-width: auto;
		}
	}

@media screen and (max-width: 600px) {

.ck.ck-bookmark-actions.ck-responsive-form .ck-button {
				flex-basis: 50%;
				margin-top: 0.6em;
				margin-top: var(--ck-spacing-standard);
		}
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	/* Based on default CKBox theme colors */
	--ck-image-processing-highlight-color: hsl(220, 10%, 98%);
	--ck-image-processing-background-color: hsl(220, 10%, 90%);
}

.ck.ck-editor__editable .image.image-processing {
			position: relative;
		}

.ck.ck-editor__editable .image.image-processing:before {
				content: '';

				position: absolute;
				top: 0;
				left: 0;
				z-index: 1;

				height: 100%;
				width: 100%;

				background: linear-gradient(
					90deg,
					hsl(220, 10%, 90%),
					hsl(220, 10%, 98%),
					hsl(220, 10%, 90%)
				);

				background: linear-gradient(
					90deg,
					var(--ck-image-processing-background-color),
					var(--ck-image-processing-highlight-color),
					var(--ck-image-processing-background-color)
				);
				background-size: 200% 100%;

				animation: ck-image-processing-animation 2s linear infinite;
			}

.ck.ck-editor__editable .image.image-processing img {
				height: 100%;
			}

@keyframes ck-image-processing-animation {
	0% {
		background-position: 200% 0;
	}
	100% {
		background-position: -200% 0;
	}
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
	 * Vertical drop target (in text).
	 */

.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position {
		display: inline;
		position: relative;
		pointer-events: none;
	}

.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span {
			position: absolute;
			width: 0;
		}

/*
	 * Styles of the widget being dragged (its preview).
	 */

.ck.ck-editor__editable .ck-widget:-webkit-drag > .ck-widget__selection-handle {
			display: none;
		}

.ck.ck-editor__editable .ck-widget:-webkit-drag > .ck-widget__type-around {
			display: none;
		}

.ck.ck-clipboard-drop-target-line {
	position: absolute;
	pointer-events: none;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content pre {
	padding: 1em;
	color: hsl(0, 0%, 20.8%);
	background: hsla(0, 0%, 78%, 0.3);
	border: 1px solid hsl(0, 0%, 77%);
	border-radius: 2px;

	/* Code block are language direction–agnostic. */
	text-align: left;
	direction: ltr;

	-moz-tab-size: 4;

	  -o-tab-size: 4;

	     tab-size: 4;
	white-space: pre-wrap;

	/* Don't inherit the style, e.g. when in a block quote. */
	font-style: normal;

	/* Don't let the code be squashed e.g. when in a table cell. */
	min-width: 200px;
}

.ck-content pre code {
		background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;
		background: initial;
		padding: 0;
		border-radius: 0;
	}

.ck.ck-editor__editable pre {
	position: relative;
}

.ck.ck-editor__editable pre[data-language]::after {
		content: attr(data-language);
		position: absolute;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-editor {
	/* All the elements within `.ck-editor` are positioned relatively to it.
	 If any element needs to be positioned with respect to the <body>, etc.,
	 it must land outside of the `.ck-editor` in DOM. */
	position: relative;
}

.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar {
		/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */
		z-index: calc( 1 + 999 );
		z-index: var(--ck-z-panel);
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-menu-bar {
	border: none;
	border-bottom: 1px solid hsl(220, 6%, 81%);
	border-bottom: 1px solid var(--ck-color-toolbar-border);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-emoji-grid-tile-size: 27px;
}

.ck.ck-emoji .ck.ck-emoji__tiles {
		max-width: 100%;
		max-height: min(265px, 40vh);

		overflow-y: auto;
		overflow-x: hidden;
		border-top: 1px solid hsl(220, 6%, 81%);
		border-top: 1px solid var(--ck-color-base-border);
	}

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__grid {
			display: grid;
			grid-template-columns: repeat(auto-fill, minmax(27px, 1fr));
			grid-template-columns: repeat(auto-fill, minmax(var(--ck-emoji-grid-tile-size), 1fr));
			margin: 0.6em calc(0.6em * 1.5);
			margin: var(--ck-spacing-standard) var(--ck-spacing-large);
			grid-gap: calc(0.6em * 0.5);
			grid-gap: var(--ck-spacing-small);
		}

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile {
			width: 27px;
			width: var(--ck-emoji-grid-tile-size);
			height: 27px;
			height: var(--ck-emoji-grid-tile-size);
			min-width: 27px;
			min-width: var(--ck-emoji-grid-tile-size);
			min-height: 27px;
			min-height: var(--ck-emoji-grid-tile-size);
			font-size: 1.5em;
			padding: 0;
			transition: .2s ease box-shadow;
			border: 0;
		}

@media (prefers-reduced-motion: reduce) {

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile {
				transition: none;
		}
			}

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:focus:not(.ck-disabled),
			.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile:hover:not(.ck-disabled) {
				/* Disable the default .ck-button's border ring. */
				border: 0;
				box-shadow: inset 0 0 0 1px hsl(0, 0%, 100%), 0 0 0 2px hsl(218, 81.8%, 56.9%);
				box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);
			}

/* Make sure the glyph is rendered in the center of the button */

.ck.ck-emoji .ck.ck-emoji__tiles .ck-emoji__tile .ck-button__label {
				line-height: 27px;
				line-height: var(--ck-emoji-grid-tile-size);
				width: 100%;
				text-align: center;
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-emoji__categories-list {
	display: flex;
	justify-content: space-between;
	margin: 0 calc(0.6em * 1.5);
	margin: 0 var(--ck-spacing-large);
}

.ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text {
		border-width: 0;
		border-bottom-width: 2px;
		border-bottom-style: solid;
		border-bottom-color: transparent;
		padding: 0;
		font-size: 1.4em;
		font-size: var(--ck-font-size-big);
		min-width: 1.4em;
		min-width: var(--ck-font-size-big);
		min-height: 1.4em;
		min-height: var(--ck-font-size-big);
	}

.ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text.ck-emoji__category-item.ck-on {
			border-bottom-color: hsl(218.1, 100%, 58%);
			border-bottom-color: var(--ck-color-base-active);
		}

.ck.ck-emoji__categories-list > .ck.ck-button.ck-button_with-text > span {
			margin: auto;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-emoji__skin-tone {
	margin-left: 0.6em;
	margin-left: var(--ck-spacing-standard);
}

.ck.ck-emoji__skin-tone > .ck.ck-dropdown .ck.ck-list__item {
			min-width: 1em;
		}

.ck.ck-emoji__skin-tone > .ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label {
				width: auto;
				width: initial;
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-emoji {
	width: 320px;
}

.ck .ck.ck-emoji__search {
	display: flex;
	padding: calc(0.6em * 1.5);
	padding: var(--ck-spacing-large);
	padding-bottom: calc(0.6em * 0.8);
	padding-bottom: var(--ck-spacing-medium);
	justify-content: space-between;
	align-items: center;
}

/*
 * Classes used by the "fake visual selection" displayed in the content when an input
 * in the emoji picker UI has focus (the browser does not render the native selection in this state).
 */
.ck .ck-fake-emoji-selection {
	background: hsla(201, 100%, 56%, 0.3);
	background: var(--ck-color-link-fake-selection);
}

/* A collapsed fake visual selection. */
.ck .ck-fake-emoji-selection_collapsed {
	height: 100%;
	border-right: 1px solid hsl(0, 0%, 20%);
	border-right: 1px solid var(--ck-color-base-text);
	margin-right: -1px;
	outline: solid 1px hsla(0, 0%, 100%, .5);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* See ckeditor/ckeditor5#936. */
.ck.ck-placeholder,
.ck .ck-placeholder {
	position: relative;
}
.ck.ck-placeholder::before, .ck .ck-placeholder::before {
		position: absolute;
		left: 0;
		right: 0;
		content: attr(data-placeholder);

		/* See ckeditor/ckeditor5#469. */
		pointer-events: none;
	}

/* See ckeditor/ckeditor5#1987. */
.ck.ck-read-only .ck-placeholder::before {
		display: none;
	}

/*
 * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.
 * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.
 * See https://github.com/ckeditor/ckeditor5/issues/11418.
 */
.ck.ck-reset_all .ck-placeholder {
	position: relative;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Elements marked by the Renderer as hidden should be invisible in the editor. */
.ck.ck-editor__editable span[data-ck-unsafe-element] {
	display: none;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-find-result {
	background: hsl(60, 100%, 50%);
	background: var(--ck-color-highlight-background);
	color: hsl(0, 0%, 20%);
	color: var(--ck-color-text);
}

.ck-find-result_selected {
	background: hsl(29, 100%, 60%);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-find-and-replace-form {
	max-width: 100%;
}

.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions {
		display: flex;

		/* The inputs area styles */
	}

.ck.ck-find-and-replace-form .ck-find-and-replace-form__inputs.ck-find-and-replace-form__inputs .ck-results-counter, .ck.ck-find-and-replace-form .ck-find-and-replace-form__actions.ck-find-and-replace-form__inputs .ck-results-counter {
			position: absolute;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* The values should be synchronized with the "FONT_SIZE_PRESET_UNITS" object in the "/src/fontsize/utils.js" file. */

/* Styles should be prefixed with the `.ck-content` class.
See https://github.com/ckeditor/ckeditor5/issues/6636 */
.ck-content .text-tiny {
		font-size: .7em;
	}
.ck-content .text-small {
		font-size: .85em;
	}
.ck-content .text-big {
		font-size: 1.4em;
	}
.ck-content .text-huge {
		font-size: 1.8em;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-heading_heading1 .ck-button__label {
	font-size: 20px;
}

.ck.ck-heading_heading2 .ck-button__label {
	font-size: 17px;
}

.ck.ck-heading_heading3 .ck-button__label {
	font-size: 14px;
}

.ck[class*="ck-heading_heading"] {
	font-weight: bold;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-highlight-marker-yellow: hsl(60, 97%, 73%);
	--ck-highlight-marker-green: hsl(120, 93%, 68%);
	--ck-highlight-marker-pink: hsl(345, 96%, 73%);
	--ck-highlight-marker-blue: hsl(201, 97%, 72%);
	--ck-highlight-pen-red: hsl(0, 85%, 49%);
	--ck-highlight-pen-green: hsl(112, 100%, 27%);
}

.ck-content .marker-yellow {
		background-color: hsl(60, 97%, 73%);
		background-color: var(--ck-highlight-marker-yellow);
	}
.ck-content .marker-green {
		background-color: hsl(120, 93%, 68%);
		background-color: var(--ck-highlight-marker-green);
	}
.ck-content .marker-pink {
		background-color: hsl(345, 96%, 73%);
		background-color: var(--ck-highlight-marker-pink);
	}
.ck-content .marker-blue {
		background-color: hsl(201, 97%, 72%);
		background-color: var(--ck-highlight-marker-blue);
	}

.ck-content .pen-red {
		color: hsl(0, 85%, 49%);
		color: var(--ck-highlight-pen-red);

		/* Override default yellow background of `<mark>` from user agent stylesheet */
		background-color: transparent;
	}
.ck-content .pen-green {
		color: hsl(112, 100%, 27%);
		color: var(--ck-highlight-pen-green);

		/* Override default yellow background of `<mark>` from user agent stylesheet */
		background-color: transparent;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */


.ck-editor__editable .ck-horizontal-line {
	/* Necessary to render properly next to floated objects, e.g. side image case. */
	display: flow-root;
}

.ck-content hr {
	margin: 15px 0;
	height: 4px;
	background: hsl(0, 0%, 87%);
	border: 0;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* The feature container. */
.ck-widget.raw-html-embed {
	/* Give the embed some air. */
	/* The first value should be equal to --ck-spacing-large variable if used in the editor context
	to avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */
	margin: 0.9em auto;
	position: relative;
	display: flow-root;

	/* Give the html embed some minimal width in the content to prevent them
	from being "squashed" in tight spaces, e.g. in table cells (https://github.com/ckeditor/ckeditor5/issues/8331) */
	min-width: 15em;

	/* Don't inherit the style, e.g. when in a block quote. */
	font-style: normal;

	/* ----- Emebed label in the upper left corner ----------------------------------------------- */
}
.ck-widget.raw-html-embed::before {
		position: absolute;

		/* Make sure the content does not cover the label. */
		z-index: 1;
	}
/* ----- Emebed internals --------------------------------------------------------------------- */
/* The switch mode button wrapper. */
.ck-widget.raw-html-embed .raw-html-embed__buttons-wrapper {
		position: absolute;
		display: flex;
		flex-direction: column;
	}
.ck-widget.raw-html-embed .raw-html-embed__preview {
		position: relative;
		overflow: hidden;
		display: flex;
	}
.ck-widget.raw-html-embed .raw-html-embed__preview-content {
		width: 100%;
		position: relative;
		margin: auto;

		/* Gives spacing to the small renderable elements, so they always cover the placeholder. */
		display: table;
		border-collapse: separate;
		border-spacing: 7px;
	}
.ck-widget.raw-html-embed .raw-html-embed__preview-placeholder {
		position: absolute;
		left: 0;
		top: 0;
		right: 0;
		bottom: 0;

		display: flex;
		align-items: center;
		justify-content: center;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-html-object-embed-unfocused-outline-width: 1px;
}

.ck-widget.html-object-embed {
	font-size: 13px;
	font-size: var(--ck-font-size-base);
	background-color: hsl(0, 0%, 98%);
	background-color: var(--ck-color-base-foreground);
	padding: calc(0.6em * 0.5);
	padding: var(--ck-spacing-small);
	/* Leave space for label */
	padding-top: calc(0.7em + calc(0.6em * 1.5));
	padding-top: calc(var(--ck-font-size-tiny) + var(--ck-spacing-large));
	min-width: calc(76px + 0.6em);
	min-width: calc(76px + var(--ck-spacing-standard));
}

.ck-widget.html-object-embed:not(.ck-widget_selected):not(:hover) {
		outline: 1px dashed hsl(0, 0%, 87%);
		outline: var(--ck-html-object-embed-unfocused-outline-width) dashed var(--ck-color-widget-blurred-border);
	}

.ck-widget.html-object-embed::before {
		font-weight: normal;
		font-style: normal;
		position: absolute;
		content: attr(data-html-object-embed-label);
		top: 0;
		left: 0.6em;
		left: var(--ck-spacing-standard);
		background: hsl(0deg 0% 60%);
		transition: background 200ms ease;
		transition: background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);
		padding: calc(calc(0.6em * 0.3) + 1px) calc(0.6em * 0.5) calc(0.6em * 0.3);
		padding: calc(var(--ck-spacing-tiny) + var(--ck-html-object-embed-unfocused-outline-width)) var(--ck-spacing-small) var(--ck-spacing-tiny);
		border-radius: 0 0 2px 2px;
		border-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);
		color: hsl(0, 0%, 100%);
		color: var(--ck-color-base-background);
		font-size: 0.7em;
		font-size: var(--ck-font-size-tiny);
		font-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
		font-family: var(--ck-font-face);
	}

/* Make space for label. */

.ck-widget.html-object-embed .ck-widget__type-around .ck-widget__type-around__button.ck-widget__type-around__button_before {
		margin-left: 50px;
	}

.ck-widget.html-object-embed .html-object-embed__content {
		/* Disable user interaction with embed content */
		pointer-events: none;
	}

div.ck-widget.html-object-embed {
	margin: 1em auto;
}

span.ck-widget.html-object-embed {
	display: inline-block;
}


/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-color-image-caption-background: hsl(0, 0%, 97%);
	--ck-color-image-caption-text: hsl(0, 0%, 20%);
	--ck-color-image-caption-highlighted-background: hsl(52deg 100% 50%);
}

/* Content styles */
.ck-content .image > figcaption {
	display: table-caption;
	caption-side: bottom;
	word-break: break-word;
	color: hsl(0, 0%, 20%);
	color: var(--ck-color-image-caption-text);
	background-color: hsl(0, 0%, 97%);
	background-color: var(--ck-color-image-caption-background);
	padding: .6em;
	font-size: .75em;
	outline-offset: -1px;

	/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */
}
@media (forced-colors: active) {
.ck-content .image > figcaption {
		background-color: transparent;
		background-color: initial;
		color: inherit;
}
	}

/* Editing styles */
@media (forced-colors: none) {
		.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {
		animation: ck-image-caption-highlight .6s ease-out;
		}
	}
@media (prefers-reduced-motion: reduce) {
.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {
		animation: none;
}
	}

@keyframes ck-image-caption-highlight {
	0% {
		background-color: hsl(52deg 100% 50%);
		background-color: var(--ck-color-image-caption-highlighted-background);
	}

	100% {
		background-color: hsl(0, 0%, 97%);
		background-color: var(--ck-color-image-caption-background);
	}
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-image-insert-url {
	width: 400px;
	padding: calc(0.6em * 1.5) calc(0.6em * 1.5) 0;
	padding: var(--ck-spacing-large) var(--ck-spacing-large) 0;
}

.ck.ck-image-insert-url .ck-image-insert-url__action-row {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Preserve aspect ratio of the resized image after introducing image height attribute. */
.ck-content img.image_resized {
	height: auto;
}

.ck-content .image.image_resized {
	max-width: 100%;
	/*
	The `<figure>` element for resized images must not use `display:table` as browsers do not support `max-width` for it well.
	See https://stackoverflow.com/questions/4019604/chrome-safari-ignoring-max-width-in-table/14420691#14420691 for more.
	Fortunately, since we control the width, there is no risk that the image will look bad.
	*/
	display: block;
	box-sizing: border-box;
}

.ck-content .image.image_resized img {
		/* For resized images it is the `<figure>` element that determines the image width. */
		width: 100%;
	}

.ck-content .image.image_resized > figcaption {
		/* The `<figure>` element uses `display:block`, so `<figcaption>` also has to. */
		display: block;
	}

/* The resized inline image nested in the table should respect its parent size.
	See https://github.com/ckeditor/ckeditor5/issues/9117. */

.ck.ck-editor__editable td .image-inline.image_resized img, .ck.ck-editor__editable th .image-inline.image_resized img {
			max-width: 100%;
		}

[dir="ltr"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {
	margin-right: 0.6em;
	margin-right: var(--ck-spacing-standard);
}

[dir="rtl"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {
	margin-left: 0.6em;
	margin-left: var(--ck-spacing-standard);
}

.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label {
	width: 4em;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-image-custom-resize-form {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: flex-start;
}

.ck.ck-image-custom-resize-form .ck-labeled-field-view {
		display: inline-block;
	}

.ck.ck-image-custom-resize-form .ck-label {
		display: none;
	}

@media screen and (max-width: 600px) {

.ck.ck-image-custom-resize-form {
		flex-wrap: wrap;
}

		.ck.ck-image-custom-resize-form .ck-labeled-field-view {
			flex-basis: 100%;
		}

		.ck.ck-image-custom-resize-form .ck-button {
			flex-basis: 50%;
		}
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-image-style-spacing: 1.5em;
	--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);
}

/* See: https://github.com/ckeditor/ckeditor5/issues/16317 */

/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback
		confirming successful application of the style if image width exceeds the editor's size.
		See https://github.com/ckeditor/ckeditor5/issues/9342 */

.ck-content .image.image-style-block-align-left,
		.ck-content .image.image-style-block-align-right {
			max-width: calc(100% - 1.5em);
			max-width: calc(100% - var(--ck-image-style-spacing));
		}

/* Allows displaying multiple floating images in the same line.
		See https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */

.ck-content .image.image-style-align-left,
		.ck-content .image.image-style-align-right {
			clear: none;
		}

.ck-content .image.image-style-side {
			float: right;
			margin-left: 1.5em;
			margin-left: var(--ck-image-style-spacing);
			max-width: 50%;
		}

.ck-content .image.image-style-align-left {
			float: left;
			margin-right: 1.5em;
			margin-right: var(--ck-image-style-spacing);
		}

.ck-content .image.image-style-align-right {
			float: right;
			margin-left: 1.5em;
			margin-left: var(--ck-image-style-spacing);
		}

.ck-content .image.image-style-block-align-right {
			margin-right: 0;
			margin-left: auto;
		}

.ck-content .image.image-style-block-align-left {
			margin-left: 0;
			margin-right: auto;
		}

.ck-content .image-style-align-center {
		margin-left: auto;
		margin-right: auto;
	}

.ck-content .image-style-align-left {
		float: left;
		margin-right: 1.5em;
		margin-right: var(--ck-image-style-spacing);
	}

.ck-content .image-style-align-right {
		float: right;
		margin-left: 1.5em;
		margin-left: var(--ck-image-style-spacing);
	}

/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */

.ck-content p + .image.image-style-align-left,
	.ck-content p + .image.image-style-align-right,
	.ck-content p + .image.image-style-side {
		margin-top: 0;
	}

.ck-content .image-inline.image-style-align-left,
		.ck-content .image-inline.image-style-align-right {
			margin-top: calc(1.5em / 2);
			margin-top: var(--ck-inline-image-style-spacing);
			margin-bottom: calc(1.5em / 2);
			margin-bottom: var(--ck-inline-image-style-spacing);
		}

.ck-content .image-inline.image-style-align-left {
			margin-right: calc(1.5em / 2);
			margin-right: var(--ck-inline-image-style-spacing);
		}

.ck-content .image-inline.image-style-align-right {
			margin-left: calc(1.5em / 2);
			margin-left: var(--ck-inline-image-style-spacing);
		}

/* The button should display as a regular drop-down if the action button
	is forced to fire the same action as the arrow button. */

.ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__action:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__action:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {
				background-color: hsl(212, 100%, 97.1%);
				background-color: var(--ck-color-button-on-background);
			}

.ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__action:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__action:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled)::after, .ck.ck-splitbutton.ck-splitbutton_flatten:hover > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover)::after, .ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover)::after {
					display: none;
				}

.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__action:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__arrow:not(.ck-disabled),
			.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {
				background-color: hsl(211.7, 100%, 92.9%);
				background-color: var(--ck-color-button-on-hover-background);
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-text-alternative-form {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
}

.ck.ck-text-alternative-form .ck-labeled-field-view {
		display: inline-block;
	}

.ck.ck-text-alternative-form .ck-label {
		display: none;
	}

@media screen and (max-width: 600px) {

.ck.ck-text-alternative-form {
		flex-wrap: wrap;
}

		.ck.ck-text-alternative-form .ck-labeled-field-view {
			flex-basis: 100%;
		}

		.ck.ck-text-alternative-form .ck-button {
			flex-basis: 50%;
		}
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-editor__editable .image,
	.ck.ck-editor__editable .image-inline {
		position: relative;
	}

/* Upload progress bar. */

.ck.ck-editor__editable .image .ck-progress-bar,
	.ck.ck-editor__editable .image-inline .ck-progress-bar {
		position: absolute;
		top: 0;
		left: 0;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-image-upload-complete-icon {
	display: block;
	position: absolute;

	/*
	 * Smaller images should have the icon closer to the border.
	 * Match the icon position with the linked image indicator brought by the link image feature.
	 */
	top: min(calc(0.6em * 0.8), 6%);
	top: min(var(--ck-spacing-medium), 6%);
	right: min(calc(0.6em * 0.8), 6%);
	right: min(var(--ck-spacing-medium), 6%);
	border-radius: 50%;
	z-index: 1;
}

.ck-image-upload-complete-icon::after {
		content: "";
		position: absolute;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-upload-placeholder-loader {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	top: 0;
	left: 0;
}

.ck .ck-upload-placeholder-loader::before {
		content: '';
		position: relative;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content .image {
		display: table;
		clear: both;
		text-align: center;

		/* Make sure there is some space between the content and the image. Center image by default. */
		/* The first value should be equal to --ck-spacing-large variable if used in the editor context
	 	to avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */
		margin: 0.9em auto;

		/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */
		min-width: 50px;
	}

.ck-content .image img {
			/* Prevent unnecessary margins caused by line-height (see #44). */
			display: block;

			/* Center the image if its width is smaller than the content's width. */
			margin: 0 auto;

			/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */
			max-width: 100%;

			/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */
			min-width: 100%;

			/* Keep proportions of the block image if the height is set and the image is wider than the editor width.
			See https://github.com/ckeditor/ckeditor5/issues/14542. */
			height: auto;
		}

.ck-content .image-inline {
		/*
		 * Normally, the .image-inline would have "display: inline-block" and "img { width: 100% }" (to follow the wrapper while resizing).
		 * Unfortunately, together with "srcset", it gets automatically stretched up to the width of the editing root.
		 * This strange behavior does not happen with inline-flex.
		 */
		display: inline-flex;

		/* While being resized, don't allow the image to exceed the width of the editing root. */
		max-width: 100%;

		/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */
		align-items: flex-start;

		/* When the picture is present it must act as a flex container to let the img resize properly */
	}

.ck-content .image-inline picture {
			display: flex;
		}

/* When the picture is present, it must act like a resizable img. */

.ck-content .image-inline picture,
		.ck-content .image-inline img {
			/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */
			flex-grow: 1;
			flex-shrink: 1;

			/* Prevents overflowing the editing root boundaries when an inline image is very wide. */
			max-width: 100%;
		}

/*
	 * Inhertit the content styles padding of the <figcaption> in case the integration overrides `text-align: center`
	 * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native
	 * caret does, and not at the edge of <figcaption>.
	 */

.ck.ck-editor__editable .image > figcaption.ck-placeholder::before {
		padding-left: inherit;
		padding-right: inherit;

		/*
		 * Make sure the image caption placeholder doesn't overflow the placeholder area.
		 * See https://github.com/ckeditor/ckeditor5/issues/9162.
		 */
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

/*
	 * See https://github.com/ckeditor/ckeditor5/issues/15115.
	 */

.ck.ck-editor__editable .image {
		z-index: 1;

		/*
		 * Make sure the selected image always stays on top of its siblings.
		 * See https://github.com/ckeditor/ckeditor5/issues/9108.
		 */
	}

.ck.ck-editor__editable .image.ck-widget_selected {
			z-index: 2;
		}

/*
	 * See https://github.com/ckeditor/ckeditor5/issues/15115.
	 */

.ck.ck-editor__editable .image-inline {
		z-index: 1;

		/*
		 * Make sure the selected inline image always stays on top of its siblings.
		 * See https://github.com/ckeditor/ckeditor5/issues/9108.
		 */
	}

.ck.ck-editor__editable .image-inline.ck-widget_selected {
			z-index: 2;

			/*
			 * Make sure the native browser selection style is not displayed.
			 * Inline image widgets have their own styles for the selected state and
			 * leaving this up to the browser is asking for a visual collision.
			 */
		}

.ck.ck-editor__editable .image-inline.ck-widget_selected ::-moz-selection {
				display: none;
			}

.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection {
				display: none;
			}

/* Keep proportions of the inline image if the height is set and the image is wider than the editor width.
	See https://github.com/ckeditor/ckeditor5/issues/14542. */

.ck.ck-editor__editable .image-inline img {
		height: auto;
	}

/* The inline image nested in the table should have its original size if not resized.
	See https://github.com/ckeditor/ckeditor5/issues/9117. */

.ck.ck-editor__editable td .image-inline img, .ck.ck-editor__editable th .image-inline img {
			max-width: none;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-editor__editable img.image_placeholder {
		background-size: 100% 100%;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* Linked image indicator */

.ck.ck-editor__editable figure.image > a::after, .ck.ck-editor__editable a span.image-inline::after {
			display: block;
			position: absolute;
		}


/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-link-actions {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
}

.ck.ck-link-actions .ck-link-actions__preview {
		display: inline-block;
	}

.ck.ck-link-actions .ck-link-actions__preview .ck-button__label {
			overflow: hidden;
		}

@media screen and (max-width: 600px) {

.ck.ck-link-actions {
		flex-wrap: wrap;
}

		.ck.ck-link-actions .ck-link-actions__preview {
			flex-basis: 100%;
		}

		.ck.ck-link-actions .ck-button:not(.ck-link-actions__preview) {
			flex-basis: 50%;
		}
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-link-form {
	display: flex;
	align-items: flex-start;
}

.ck.ck-link-form .ck-label {
		display: none;
	}

@media screen and (max-width: 600px) {

.ck.ck-link-form {
		flex-wrap: wrap;
}

		.ck.ck-link-form .ck-labeled-field-view {
			flex-basis: 100%;
		}

		.ck.ck-link-form .ck-button {
			flex-basis: 50%;
		}
	}

/*
 * Style link form differently when manual decorators are available.
 * See: https://github.com/ckeditor/ckeditor5-link/issues/186.
 */
.ck.ck-link-form_layout-vertical {
	display: block;

	/*
	 * Whether the form is in the responsive mode or not, if there are decorator buttons
	 * keep the top margin of action buttons medium.
	 */
}
.ck.ck-link-form_layout-vertical .ck-button.ck-button-save,
		.ck.ck-link-form_layout-vertical .ck-button.ck-button-cancel {
			margin-top: calc(0.6em * 0.8);
			margin-top: var(--ck-spacing-medium);
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-editor__editable .ck-list-bogus-paragraph {
	display: block;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-list-styles-list {
	display: grid;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content ol {
	list-style-type: decimal;
}

.ck-content ol ol {
		list-style-type: lower-latin;
	}

.ck-content ol ol ol {
			list-style-type: lower-roman;
		}

.ck-content ol ol ol ol {
				list-style-type: upper-latin;
			}

.ck-content ol ol ol ol ol {
					list-style-type: upper-roman;
				}

.ck-content ul {
	list-style-type: disc;
}

.ck-content ul ul {
		list-style-type: circle;
	}

.ck-content ul ul ul {
			list-style-type: square;
		}

.ck-content ul ul ul ul {
				list-style-type: square;
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-todo-list-checkmark-size: 16px;
}

/*
 * To-do list content styles.
 */
.ck-content .todo-list {
	list-style: none;
}
.ck-content .todo-list li {
		position: relative;
		margin-bottom: 5px;
	}
.ck-content .todo-list li .todo-list {
			margin-top: 5px;
		}
.ck-content .todo-list .todo-list__label > input {
			-webkit-appearance: none;
			display: inline-block;
			position: relative;
			width: 16px;
			width: var(--ck-todo-list-checkmark-size);
			height: 16px;
			height: var(--ck-todo-list-checkmark-size);
			vertical-align: middle;
			/* Needed on iOS */
			border: 0;
			/* LTR styles */
			left: -25px;
			margin-right: -15px;
			right: 0;
			margin-left: 0;
			/* RTL styles */
		}
.ck-content[dir=rtl] .todo-list .todo-list__label > input {
		left: 0;
		margin-right: 0;
		right: -25px;
		margin-left: -15px;
	}
.ck-content .todo-list .todo-list__label > input::before {
		display: block;
		position: absolute;
		box-sizing: border-box;
		content: '';
		width: 100%;
		height: 100%;
		border: 1px solid hsl(0, 0%, 20%);
		border-radius: 2px;
		transition: 250ms ease-in-out box-shadow;
	}
@media (prefers-reduced-motion: reduce) {
.ck-content .todo-list .todo-list__label > input::before {
			transition: none;
	}
		}
.ck-content .todo-list .todo-list__label > input::after {
		display: block;
		position: absolute;
		box-sizing: content-box;
		pointer-events: none;
		content: '';

		/* Calculate tick position, size and border-width proportional to the checkmark size. */
		left: calc( 16px / 3 );
		left: calc( var(--ck-todo-list-checkmark-size) / 3 );
		top: calc( 16px / 5.3 );
		top: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
		width: calc( 16px / 5.3 );
		width: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
		height: calc( 16px / 2.6 );
		height: calc( var(--ck-todo-list-checkmark-size) / 2.6 );
		border-style: solid;
		border-color: transparent;
		border-width: 0 calc( 16px / 8 ) calc( 16px / 8 ) 0;
		border-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;
		transform: rotate(45deg);
	}
.ck-content .todo-list .todo-list__label > input[checked]::before {
			background: hsl(126, 64%, 41%);
			border-color: hsl(126, 64%, 41%);
		}
.ck-content .todo-list .todo-list__label > input[checked]::after {
			border-color: hsl(0, 0%, 100%);
		}
.ck-content .todo-list .todo-list__label .todo-list__label__description {
			vertical-align: middle;
		}
.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox] {
			position: absolute;
		}

/*
 * To-do list editing view styles.
 */
/*
	 * To-do list should be interactive only during the editing
	 * (https://github.com/ckeditor/ckeditor5/issues/2090).
	 */
.ck-editor__editable.ck-content .todo-list .todo-list__label > input,
	.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input {
		cursor: pointer;
	}
.ck-editor__editable.ck-content .todo-list .todo-list__label > input:hover::before, .ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input:hover::before {
			box-shadow: 0 0 0 5px hsla(0, 0%, 0%, 0.1);
		}
/*
	 * Document Lists - editing view has an additional span around checkbox.
	 */
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input {
		-webkit-appearance: none;
		display: inline-block;
		position: relative;
		width: 16px;
		width: var(--ck-todo-list-checkmark-size);
		height: 16px;
		height: var(--ck-todo-list-checkmark-size);
		vertical-align: middle;
		/* Needed on iOS */
		border: 0;
		/* LTR styles */
		left: -25px;
		margin-right: -15px;
		right: 0;
		margin-left: 0;
		/* RTL styles */
	}
.ck-editor__editable.ck-content[dir=rtl] .todo-list .todo-list__label > span[contenteditable=false] > input {
		left: 0;
		margin-right: 0;
		right: -25px;
		margin-left: -15px;
	}
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input::before {
		display: block;
		position: absolute;
		box-sizing: border-box;
		content: '';
		width: 100%;
		height: 100%;
		border: 1px solid hsl(0, 0%, 20%);
		border-radius: 2px;
		transition: 250ms ease-in-out box-shadow;
	}
@media (prefers-reduced-motion: reduce) {
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input::before {
			transition: none;
	}
		}
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input::after {
		display: block;
		position: absolute;
		box-sizing: content-box;
		pointer-events: none;
		content: '';

		/* Calculate tick position, size and border-width proportional to the checkmark size. */
		left: calc( 16px / 3 );
		left: calc( var(--ck-todo-list-checkmark-size) / 3 );
		top: calc( 16px / 5.3 );
		top: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
		width: calc( 16px / 5.3 );
		width: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
		height: calc( 16px / 2.6 );
		height: calc( var(--ck-todo-list-checkmark-size) / 2.6 );
		border-style: solid;
		border-color: transparent;
		border-width: 0 calc( 16px / 8 ) calc( 16px / 8 ) 0;
		border-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;
		transform: rotate(45deg);
	}
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input[checked]::before {
			background: hsl(126, 64%, 41%);
			border-color: hsl(126, 64%, 41%);
		}
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input[checked]::after {
			border-color: hsl(0, 0%, 100%);
		}
.ck-editor__editable.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox] {
			position: absolute;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content .media {
	/* Don't allow floated content overlap the media.
	https://github.com/ckeditor/ckeditor5-media-embed/issues/53 */
	clear: both;

	/* Make sure there is some space between the content and the media. */
	/* The first value should be equal to --ck-spacing-large variable if used in the editor context
	to avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */
	margin: 0.9em 0;

	/* Make sure media is not overriden with Bootstrap default `flex` value.
	See: https://github.com/ckeditor/ckeditor5/issues/1373. */
	display: block;

	/* Give the media some minimal width in the content to prevent them
	from being "squashed" in tight spaces, e.g. in table cells (#44) */
	min-width: 15em;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-media__wrapper .ck-media__placeholder {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url {
			/* Otherwise the URL will overflow when the content is very narrow. */
			max-width: 100%;

			position: relative;
		}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-media__placeholder__url__text {
				overflow: hidden;
				display: block;
			}

.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder__icon * {
			display: none;
		}

/* Disable all mouse interaction as long as the editor is not read–only.
   https://github.com/ckeditor/ckeditor5-media-embed/issues/58 */
.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper > *:not(.ck-media__placeholder) {
	pointer-events: none;
}

/* Disable all mouse interaction when the widget is not selected (e.g. to avoid opening links by accident).
   https://github.com/ckeditor/ckeditor5-media-embed/issues/18 */
.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder {
	pointer-events: none;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-vertical-form .ck-button::after {
		content: "";
		width: 0;
		position: absolute;
		right: -1px;
		top: -1px;
		bottom: -1px;
		z-index: 1;
	}

.ck-vertical-form .ck-button:focus::after {
		display: none;
	}

@media screen and (max-width: 600px) {
			.ck.ck-responsive-form .ck-button::after {
				content: "";
				width: 0;
				position: absolute;
				right: -1px;
				top: -1px;
				bottom: -1px;
				z-index: 1;
			}

			.ck.ck-responsive-form .ck-button:focus::after {
				display: none;
			}
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-media-form {
	display: flex;
	align-items: flex-start;
	flex-direction: row;
	flex-wrap: nowrap;
	width: 400px;
}

.ck.ck-media-form .ck-labeled-field-view {
		display: inline-block;
		width: 100%;
	}

.ck.ck-media-form .ck-label {
		display: none;
	}

.ck.ck-media-form .ck-input {
		width: 100%;
	}

@media screen and (max-width: 600px) {

.ck.ck-media-form {
		flex-wrap: wrap;
}

		.ck.ck-media-form .ck-labeled-field-view {
			flex-basis: 100%;
		}

		.ck.ck-media-form .ck-button {
			flex-basis: 50%;
		}
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-mention-list-max-height: 300px;
}

.ck.ck-mentions {
	max-height: 300px;
	max-height: var(--ck-mention-list-max-height);

	overflow-y: auto;

	/* Prevent unnecessary horizontal scrollbar in Safari
	https://github.com/ckeditor/ckeditor5-mention/issues/41 */
	overflow-x: hidden;

	overscroll-behavior: contain;

	/* Prevent unnecessary vertical scrollbar in Safari
	https://github.com/ckeditor/ckeditor5-mention/issues/41 */
}

.ck.ck-mentions > .ck-list__item {
		overflow: hidden;
		flex-shrink: 0;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-color-minimap-tracker-background: 208, 0%, 51%;
	--ck-color-minimap-iframe-outline: hsl(0deg 0% 75%);
	--ck-color-minimap-iframe-shadow: hsl(0deg 0% 0% / 11%);
	--ck-color-minimap-progress-background: hsl(0,0%,40%);
}

.ck.ck-minimap {
	position: absolute;
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
	background: hsl(0, 0%, 100%);
	background: var(--ck-color-base-background);
}

.ck.ck-minimap,
	.ck.ck-minimap iframe {
		width: 100%;
		height: 100%;
	}

.ck.ck-minimap iframe {
		border: 0;
		pointer-events: none;
		position: relative;
		outline: 1px solid hsl(0deg 0% 75%);
		outline: 1px solid var(--ck-color-minimap-iframe-outline);
		box-shadow: 0 2px 5px hsl(0deg 0% 0% / 11%);
		box-shadow: 0 2px 5px var(--ck-color-minimap-iframe-shadow);
		margin: 0;
	}

.ck.ck-minimap .ck.ck-minimap__position-tracker {
		position: absolute;
		width: 100%;
		top: 0;
		background: hsla( 208, 0%, 51%, .2 );
		background: hsla( var(--ck-color-minimap-tracker-background), .2 );
		z-index: 1;
		transition: background 100ms ease-in-out;
	}

@media (prefers-reduced-motion: reduce) {

.ck.ck-minimap .ck.ck-minimap__position-tracker {
			transition: none;
	}
		}

.ck.ck-minimap .ck.ck-minimap__position-tracker:hover {
			background:hsla( 208, 0%, 51%, .3 );
			background:hsla( var(--ck-color-minimap-tracker-background), .3 );
		}

.ck.ck-minimap .ck.ck-minimap__position-tracker.ck-minimap__position-tracker_dragging,
		.ck.ck-minimap .ck.ck-minimap__position-tracker.ck-minimap__position-tracker_dragging:hover {
			background:hsla( 208, 0%, 51%, .4 );
			background:hsla( var(--ck-color-minimap-tracker-background), .4 );
		}

.ck.ck-minimap .ck.ck-minimap__position-tracker.ck-minimap__position-tracker_dragging::after, .ck.ck-minimap .ck.ck-minimap__position-tracker.ck-minimap__position-tracker_dragging:hover::after {
				opacity: 1;
			}

.ck.ck-minimap .ck.ck-minimap__position-tracker::after {
			content: attr(data-progress) "%";
			position: absolute;
			top: 5px;
			right: 5px;
			background: hsl(0,0%,40%);
			background: var(--ck-color-minimap-progress-background);
			color: hsl(0, 0%, 100%);
			color: var(--ck-color-base-background);
			border: 1px solid hsl(0, 0%, 100%);
			border: 1px solid var(--ck-color-base-background);
			padding: 2px 4px;
			font-size: 10px;
			border-radius: 3px;
			opacity: 0;
			transition: opacity 100ms ease-in-out;
		}

@media (prefers-reduced-motion: reduce) {

.ck.ck-minimap .ck.ck-minimap__position-tracker::after {
				transition: none;
		}
			}


/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content .page-break {
	position: relative;
	clear: both;
	padding: 5px 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ck-content .page-break::after {
		content: '';
		position: absolute;
		border-bottom: 2px dashed hsl(0, 0%, 77%);
		width: 100%;
	}

.ck-content .page-break__label {
	position: relative;
	z-index: 1;
	padding: .3em .6em;
	display: block;
	text-transform: uppercase;
	border: 1px solid hsl(0, 0%, 77%);
	border-radius: 2px;
	font-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
	font-size: 0.75em;
	font-weight: bold;
	color: hsl(0, 0%, 20%);
	background: hsl(0, 0%, 100%);
	box-shadow: 2px 2px 1px hsla(0, 0%, 0%, 0.15);

	/* Disable the possibility to select the label text by the user. */
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
}

/* Do not show the page break element inside the print preview window. */
@media print {
	.ck-content .page-break {
		padding: 0;
	}

		.ck-content .page-break::after {
			display: none;
		}

	/*
	 * From time to time placing page-break directly after a block element with margin causes appending a new blank page in pagination mode.
	 * Removing margin-bottom from the block element fixes that issue and the margin is not being moved to the next blank page.
	 *
	 * Keep this in sync with the pagination plugins.
	 */
	.ck-content *:has(+ .page-break) {
		margin-bottom: 0;
	}
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-show-blocks-border-color: hsl(0, 0%, 46%);
}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>ADDRESS</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>ADDRESS</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>ADDRESS</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) address {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>ADDRESS</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>ASIDE</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>ASIDE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>ASIDE</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) aside {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>ASIDE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>BLOCKQUOTE</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>BLOCKQUOTE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>BLOCKQUOTE</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) blockquote {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>BLOCKQUOTE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>DETAILS</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>DETAILS</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>DETAILS</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) details {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>DETAILS</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>DIV</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>DIV</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *):not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>DIV</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) div:not(.ck-widget, .ck-widget *) {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>DIV</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>FOOTER</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>FOOTER</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>FOOTER</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) footer {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>FOOTER</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H1</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H1</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H1</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h1 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H1</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H2</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H2</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H2</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h2 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H2</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H3</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H3</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H3</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h3 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H3</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H4</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H4</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H4</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h4 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H4</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H5</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H5</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H5</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h5 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H5</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H6</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H6</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>H6</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) h6 {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>H6</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>HEADER</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>HEADER</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>HEADER</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) header {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>HEADER</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>MAIN</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>MAIN</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>MAIN</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) main {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>MAIN</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>NAV</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>NAV</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>NAV</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) nav {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>NAV</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>PRE</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>PRE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>PRE</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) pre {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>PRE</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>OL</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>OL</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>OL</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ol {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>OL</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>UL</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>UL</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>UL</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) ul {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>UL</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>P</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>P</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>P</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) p {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>P</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>SECTION</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>SECTION</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>SECTION</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) section {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>SECTION</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-repeat: no-repeat;
		padding-top: 15px;
		/* Fix for Multi-root editor
	https://github.com/ckeditor/ckeditor5/issues/15969 */
	}

[dir=ltr] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>FIGCAPTION</text></svg>");
		background-position: 1px 1px;
	}

[dir=rtl] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>FIGCAPTION</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

.ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption:not(.ck-widget_selected):not(.ck-widget:hover) {
		outline: 1px dashed hsl(0, 0%, 46%);
		outline: 1px dashed var(--ck-show-blocks-border-color);
	}

[dir="ltr"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-image: url("data:image/svg+xml;utf8,<svg width=%27120%27 height=%2712%27 xmlns=%27http://www.w3.org/2000/svg%27 ><text style=%27paint-order:stroke fill; clip-path: inset%28-3px%29%27 stroke=%27%23EAEAEA%27 stroke-width=%2713%27 dominant-baseline=%27middle%27 fill=%27black%27 x=%273%27 y=%277%27 font-size=%279px%27 font-family=%27Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace%27>FIGCAPTION</text></svg>");
		background-position: 1px 1px;
	}

[dir="rtl"] .ck.ck-editor__editable.ck-editor__editable_inline.ck-show-blocks:not(.ck-widget) :where(figure.image, figure.table) figcaption {
		background-image: url("data:image/svg+xml;utf8,<svg width='120' height='12' xmlns='http://www.w3.org/2000/svg' ><text style='paint-order:stroke fill; clip-path: inset(-3px); transform:translate(-2px, 0)' stroke='%23EAEAEA' stroke-width='13' dominant-baseline='middle' fill='black' x='100%' text-anchor='end' y='7' font-size='9px' font-family='Consolas, %22Lucida Console%22, %22Lucida Sans Typewriter%22, %22DejaVu Sans Mono%22, %22Bitstream Vera Sans Mono%22, %22Liberation Mono%22, Monaco, %22Courier New%22, Courier, monospace'>FIGCAPTION</text></svg>");
		background-position: calc(100% - 1px) 1px;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A visual style of focused element's border.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A helper to combine multiple shadows.
 */
/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

.ck-source-editing-area {
	position: relative;
	overflow: hidden;
}

.ck-source-editing-area::after,
.ck-source-editing-area textarea {
	padding: calc(0.6em * 1.5);
	padding: var(--ck-spacing-large);
	margin: 0;
	border: 1px solid transparent;
	line-height: 1.84615;
	line-height: var(--ck-line-height-base);
	font-size: 1em;
	font-size: var(--ck-font-size-normal);
	font-family: monospace;
	white-space: pre-wrap;
}

.ck-source-editing-area::after {
	content: attr(data-value) " ";
	visibility: hidden;
	display: block;
}

.ck-source-editing-area textarea {
	position: absolute;
	width: 100%;
	height: 100%;
	resize: none;
	outline: none;
	overflow: hidden;
	box-sizing: border-box;

	border-color: hsl(220, 6%, 81%);

	border-color: var(--ck-color-base-border);

	border-radius: 0;
}

.ck-rounded-corners .ck-source-editing-area textarea,
	.ck-source-editing-area textarea.ck-rounded-corners {
		border-radius: 2px;
		border-radius: var(--ck-border-radius);
		border-top-left-radius: 0;
		border-top-right-radius: 0;
	}

.ck-source-editing-area textarea:not([readonly]):focus {
		/* Disable native outline. */
		outline: none;
		border: 1px solid hsl(218, 81.8%, 56.9%);
		border: var(--ck-focus-ring);
		box-shadow: 2px 2px 3px hsla(0, 0%, 0%, 0.1) inset, 0 0;
		box-shadow: var(--ck-inner-shadow), 0 0;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-character-grid {
	max-width: 100%;
}

.ck.ck-character-grid .ck-character-grid__tiles {
		display: grid;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-character-info {
	display: flex;
	justify-content: space-between;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Note: This file should contain the wireframe styles only. But since there are no such styles,
 * it acts as a message to the builder telling that it should look for the corresponding styles
 * **in the theme** when compiling the editor.
 */

.ck.ck-special-characters > .ck-dialog__content > div {
		width: 350px;
		max-width: 100%;
		height: 100%;

		display: grid;
		grid-column-gap: 0px;
		grid-row-gap: 0px;
		grid-template-columns: 1fr;
		grid-template-rows: auto 1fr auto;
	}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories {
			grid-area: 1 / 1 / 2 / 2;
			padding: calc(0.6em * 0.8) calc(0.6em * 1.5);
			padding: var(--ck-spacing-medium) var(--ck-spacing-large);
		}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view {
				padding-top: 0.6em;
				padding-top: var(--ck-spacing-standard);
				width: 100%;
			}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view .ck.ck-labeled-field-view__status {
					background: hsl(15, 100%, 43%);
					background: var(--ck-color-base-error);
					color: hsl(0, 0%, 100%);
					color: var(--ck-color-base-background);
					padding: calc(0.6em * 0.5) calc(0.6em * 0.8);
					padding: var(--ck-spacing-small) var(--ck-spacing-medium);
					min-width: 150px;
					min-width: var(--ck-table-properties-min-error-width);
					text-align: center;

					animation: ck-table-form-labeled-view-status-appear .15s ease both;

					/* The arrow pointing towards the field. */
				}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view .ck.ck-labeled-field-view__status::after {
						border-color: transparent transparent hsl(15, 100%, 43%) transparent;
						border-color: transparent transparent var(--ck-color-base-error) transparent;
						border-width: 0 6px 6px 6px;
						border-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);
						border-style: solid;
					}

@media (prefers-reduced-motion: reduce) {

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view .ck.ck-labeled-field-view__status {
						animation: none;
				}
					}

/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {
					display: none;
				}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories > .ck-labeled-field-view > .ck-label {
					font-size: 0.7em;
					font-size: var(--ck-font-size-tiny);
					text-align: center;
				}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories .ck-dropdown {
				display: block;
				width: 100%;
			}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories .ck-dropdown > button:not(:focus) {
						border: 1px solid hsl(220, 6%, 81%);
						border: 1px solid var(--ck-color-base-border);
					}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-categories .ck-dropdown > button > span {
						width: 100%;
					}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-grid {
			grid-area: 2 / 1 / 3 / 2;
			max-height: 200px;
		}

.ck.ck-special-characters > .ck-dialog__content > div > .ck-character-info {
			grid-area: 3 / 1 / 4 / 2;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-style-panel-columns: 3;
}

.ck.ck-style-panel .ck-style-grid {
	display: grid;
	grid-template-columns: repeat(3,auto);
	grid-template-columns: repeat(var(--ck-style-panel-columns),auto);
	justify-content: start;
}

.ck.ck-style-panel .ck-style-grid .ck-style-grid__button {
		display: flex;
		justify-content: space-between;
		flex-direction: column;
	}

.ck.ck-style-panel .ck-style-grid .ck-style-grid__button .ck-style-grid__button__preview {
			display: flex;
			align-content: center;
			justify-content: flex-start;
			align-items: center;
			flex-grow: 1;
			flex-basis: 100%;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck-content .table {
	/* Give the table widget some air and center it horizontally */
	/* The first value should be equal to --ck-spacing-large variable if used in the editor context
	to avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */
	margin: 0.9em auto;
	display: table;
}

.ck-content .table table {
		/* The table cells should have slight borders */
		border-collapse: collapse;
		border-spacing: 0;

		/* Table width and height are set on the parent <figure>. Make sure the table inside stretches
		to the full dimensions of the container (https://github.com/ckeditor/ckeditor5/issues/6186). */
		width: 100%;
		height: 100%;

		/* The outer border of the table should be slightly darker than the inner lines.
		Also see https://github.com/ckeditor/ckeditor5-table/issues/50. */
		border: 1px double hsl(0, 0%, 70%);
	}

.ck-content .table table td,
		.ck-content .table table th {
			min-width: 2em;
			padding: .4em;

			/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it's not necessary here.
			However, the border is a content style, so it should use .ck-content (so it works outside the editor).
			Hence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */
			border: 1px solid hsl(0, 0%, 75%);
		}

.ck-content .table table th {
			font-weight: bold;
			background: hsla(0, 0%, 0%, 5%);
		}

/**
 * Expanding the table to the full height of the parent container is necessary because tables
 * are rendered inside <figure> elements, which is kinda buggy in table height calculation.
 * While setting `height: 100%` fixes the issue in the editing mode described here:
 * https://github.com/ckeditor/ckeditor5/issues/6186
 *
 * it's causing another issue with the table height in the print preview mode here:
 * https://github.com/ckeditor/ckeditor5/issues/16856
 *
 * For now, resetting the height to `initial` in the print mode works as a workaround.
 */
@media print {
	.ck-content .table table {
		height: auto;
		height: initial;
	}
}

/* Text alignment of the table header should match the editor settings and override the native browser styling,
when content is available outside the editor. See https://github.com/ckeditor/ckeditor5/issues/6638 */
.ck-content[dir="rtl"] .table th {
	text-align: right;
}

.ck-content[dir="ltr"] .table th {
	text-align: left;
}

.ck-editor__editable .ck-table-bogus-paragraph {
	/*
	 * Use display:inline-block to force Chrome/Safari to limit text mutations to this element.
	 * See https://github.com/ckeditor/ckeditor5/issues/6062.
	 */
	display: inline-block;

	/*
	 * Inline HTML elements nested in the span should always be dimensioned in relation to the whole cell width.
	 * See https://github.com/ckeditor/ckeditor5/issues/9117.
	 */
	width: 100%;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-insert-table-dropdown__grid {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-form__row {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;

	/* Ignore labels that work as fieldset legends */
}

.ck.ck-form__row > *:not(.ck-label) {
		flex-grow: 1;
	}

.ck.ck-form__row.ck-table-form__action-row .ck-button-save,
		.ck.ck-form__row.ck-table-form__action-row .ck-button-cancel {
			justify-content: center;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row {
			flex-wrap: wrap;
		}

.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type {
					/* 4 buttons out of 7 (h-alignment + v-alignment) = 0.57 */
					flex-grow: 0.57;
				}

.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type {
					/* 3 buttons out of 7 (h-alignment + v-alignment) = 0.43 */
					flex-grow: 0.43;
				}

.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button {
					flex-grow: 1;
				}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-input-color {
	width: 100%;
	display: flex;
	flex-direction: row-reverse;
}

.ck.ck-input-color > input.ck.ck-input-text {
		min-width: auto;
		flex-grow: 1;
	}

.ck.ck-input-color > div.ck.ck-dropdown {
		min-width: auto;

		/* This dropdown has no arrow but a color preview instead. */
	}

.ck.ck-input-color > div.ck.ck-dropdown > .ck-input-color__button .ck-dropdown__arrow {
			display: none;
		}

.ck.ck-input-color .ck.ck-input-color__button {
		/* Resolving issue with misaligned buttons on Safari (see #10589) */
		display: flex;
	}

.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview {
			position: relative;
			overflow: hidden;
		}

.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview > .ck.ck-input-color__button__preview__no-color-indicator {
				position: absolute;
				display: block;
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-table-form .ck-form__row.ck-table-form__border-row {
			flex-wrap: wrap;
		}

.ck.ck-table-form .ck-form__row.ck-table-form__background-row {
			flex-wrap: wrap;
		}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row {
			flex-wrap: wrap;
			align-items: center;
		}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view {
				display: flex;
				flex-direction: column-reverse;
				align-items: center;
			}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view .ck.ck-dropdown {
					flex-grow: 0;
				}

.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator {
				flex-grow: 0;
			}

.ck.ck-table-form .ck.ck-labeled-field-view {
		/* Allow absolute positioning of the status (error) balloons. */
		position: relative;
	}

.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status {
			position: absolute;
			left: 50%;
			bottom: calc( -1 * 6px );
			bottom: calc( -1 * var(--ck-table-properties-error-arrow-size) );
			transform: translate(-50%,100%);

			/* Make sure the balloon status stays on top of other form elements. */
			z-index: 1;

			/* The arrow pointing towards the field. */
		}

.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status::after {
				content: "";
				position: absolute;
				top: calc( -1 * 6px );
				top: calc( -1 * var(--ck-table-properties-error-arrow-size) );
				left: 50%;
				transform: translateX( -50% );
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row {
			flex-wrap: wrap;
			flex-basis: 0;
			align-content: baseline;
		}

.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items {
				flex-wrap: nowrap;
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-color-selector-caption-background: hsl(0, 0%, 97%);
	--ck-color-selector-caption-text: hsl(0, 0%, 20%);
	--ck-color-selector-caption-highlighted-background: hsl(52deg 100% 50%);
}

/* Content styles */
.ck-content .table > figcaption {
	display: table-caption;
	caption-side: top;
	word-break: break-word;
	text-align: center;
	color: hsl(0, 0%, 20%);
	color: var(--ck-color-selector-caption-text);
	background-color: hsl(0, 0%, 97%);
	background-color: var(--ck-color-selector-caption-background);
	padding: .6em;
	font-size: .75em;
	outline-offset: -1px;

	/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */
}
@media (forced-colors: active) {
		.ck-content .table > figcaption {
		background-color: transparent;
		background-color: initial;
		color: inherit;
		}
	}

/* Editing styles */
@media (forced-colors: none) {
		.ck.ck-editor__editable .table > figcaption.table__caption_highlighted {
			animation: ck-table-caption-highlight .6s ease-out;
		}
	}
.ck.ck-editor__editable .table > figcaption.ck-placeholder::before {
		padding-left: inherit;
		padding-right: inherit;

		/*
		 * Make sure the table caption placeholder doesn't overflow the placeholder area.
		 * See https://github.com/ckeditor/ckeditor5/issues/9162.
		 */
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

@keyframes ck-table-caption-highlight {
	0% {
		background-color: hsl(52deg 100% 50%);
		background-color: var(--ck-color-selector-caption-highlighted-background);
	}

	100% {
		background-color: hsl(0, 0%, 97%);
		background-color: var(--ck-color-selector-caption-background);
	}
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-color-selector-column-resizer-hover: var(--ck-color-base-active);
	--ck-table-column-resizer-width: 7px;

	/* The offset used for absolute positioning of the resizer element, so that it is placed exactly above the cell border.
	   The value is: minus half the width of the resizer decreased additionaly by the half the width of the border (0.5px). */
	--ck-table-column-resizer-position-offset: calc(var(--ck-table-column-resizer-width) * -0.5 - 0.5px);
}

.ck-content .table .ck-table-resized {
	table-layout: fixed;
}

.ck-content .table table {
	overflow: hidden;
}

.ck-content .table td,
.ck-content .table th {
	/* To prevent text overflowing beyond its cell when columns are resized by resize handler
	(https://github.com/ckeditor/ckeditor5/pull/14379#issuecomment-1589460978). */
	overflow-wrap: break-word;
	position: relative;
}

.ck.ck-editor__editable .table .ck-table-column-resizer {
	position: absolute;
	top: 0;
	bottom: 0;
	right: calc(7px * -0.5 - 0.5px);
	right: var(--ck-table-column-resizer-position-offset);
	width: 7px;
	width: var(--ck-table-column-resizer-width);
	cursor: col-resize;
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
	z-index: 1;
	z-index: var(--ck-z-default);
}

.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer {
	display: none;
}

/* The resizer elements, which are extended to an extremely high height, break the drag & drop feature in Chrome. To make it work again,
   all resizers must be hidden while the table is dragged. */
.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer {
	display: none;
}

.ck.ck-editor__editable .table .ck-table-column-resizer:hover,
.ck.ck-editor__editable .table .ck-table-column-resizer__active {
	background-color: hsl(218.1, 100%, 58%);
	background-color: var(--ck-color-selector-column-resizer-hover);
	opacity: 0.25;
	/* The resizer element resides in each cell so to occupy the entire height of the table, which is unknown from a CSS point of view,
	   it is extended to an extremely high height. Even for screens with a very high pixel density, the resizer will fulfill its role as
	   it should, i.e. for a screen of 476 ppi the total height of the resizer will take over 350 sheets of A4 format, which is totally
	   unrealistic height for a single table. */
	top: -999999px;
	bottom: -999999px;
}

.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer {
	left: calc(7px * -0.5 - 0.5px);
	left: var(--ck-table-column-resizer-position-offset);
	right: auto;
	right: initial;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * A class which hides an element in DOM.
 */

.ck-hidden {
	/* Override selector specificity. Otherwise, all elements with some display
	style defined will override this one, which is not a desired result. */
	display: none !important;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	--ck-z-default: 1;
	--ck-z-panel: calc( var(--ck-z-default) + 999 );
	--ck-z-dialog: 9999;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
/**
 * A class that disables all transitions of the element and its children.
 */
.ck-transitions-disabled,
.ck-transitions-disabled * {
	transition: none !important;
}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/* where 7.5(px) is the font size of the powered by label and 13(px) is the base font size. */
	--ck-powered-by-font-size: calc(var(--ck-font-size-base) * 7.5 / 13);
	/* where 10(px) is the line height of the powered by label and 13(px) is the base font size. */
	--ck-powered-by-line-height: calc(var(--ck-font-size-base) * 10 / 13);
	/* where -0.2(px) is the letter spacing of the powered by label and 13(px) is the base font size. */
	--ck-powered-by-letter-spacing: calc(var(--ck-font-size-base) * -0.2 / 13);
	--ck-powered-by-padding-vertical: 2px;
	--ck-powered-by-padding-horizontal: 4px;
	--ck-powered-by-text-color: hsl(0, 0%, 31%);
	--ck-powered-by-border-radius: var(--ck-border-radius);
	--ck-powered-by-background: hsl(0, 0%, 100%);
	--ck-powered-by-border-color: var(--ck-color-focus-border);

	--ck-powered-by-svg-width: 53;
	--ck-powered-by-svg-height: 10;
	--ck-powered-by-icon-width: calc(var(--ck-font-size-base) * var(--ck-powered-by-svg-width) / 13);
	--ck-powered-by-icon-height: calc(var(--ck-font-size-base) * var(--ck-powered-by-svg-height) / 13);
}
.ck.ck-balloon-panel.ck-powered-by-balloon {
	--ck-border-radius: var(--ck-powered-by-border-radius);

	box-shadow: none;
	background: hsl(0, 0%, 100%);
	background: var(--ck-powered-by-background);
	min-height: 0;
	min-height: initial;
	z-index: calc( calc( 1 + 999 ) - 1 );
	z-index: calc( var(--ck-z-panel) - 1 );
}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by {
		line-height: calc(13px * 10 / 13);
		line-height: var(--ck-powered-by-line-height);
	}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by a {
			cursor: pointer;
			display: flex;
			align-items: center;
			opacity: .66;
			filter: grayscale(80%);
			line-height: calc(13px * 10 / 13);
			line-height: var(--ck-powered-by-line-height);
			padding: 2px 4px;
			padding: var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal);
		}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-powered-by__label {
			font-size: calc(13px * 7.5 / 13);
			font-size: var(--ck-powered-by-font-size);
			letter-spacing: calc(13px * -0.2 / 13);
			letter-spacing: var(--ck-powered-by-letter-spacing);
			padding-left: 2px;
			text-transform: uppercase;
			font-weight: bold;
			margin-right: 4px;
			cursor: pointer;
			line-height: normal;
			color: hsl(0, 0%, 31%);
			color: var(--ck-powered-by-text-color);

		}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-icon {
			display: block;
			cursor: pointer;
			width: calc(13px * 53 / 13);
			width: var(--ck-powered-by-icon-width);
			height: calc(13px * 10 / 13);
			height: var(--ck-powered-by-icon-height);
		}
.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by:hover a {
				filter: grayscale(0%);
				opacity: 1;
			}
.ck.ck-balloon-panel.ck-powered-by-balloon[class*="position_inside"] {
		border-color: transparent;
	}
.ck.ck-balloon-panel.ck-powered-by-balloon[class*="position_border"] {
		border: 1px solid hsl(218, 81.8%, 56.9%);
		border: var(--ck-focus-ring);
		border-color: hsl(218, 81.8%, 56.9%);
		border-color: var(--ck-powered-by-border-color);
	}
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */
:root {
	/* where 7.5(px) is the font size of the evaluation badge label and 13(px) is the base font size. */
	--ck-evaluation-badge-font-size: calc(var(--ck-font-size-base) * 7.5 / 13);
	/* where 7.5(px) is the line height of the evaluation badge label and 13(px) is the base font size. */
	--ck-evaluation-badge-line-height: calc(var(--ck-font-size-base) * 7.5 / 13);
	/* where -0.2(px) is the letter spacing of the evaluation badge label and 13(px) is the base font size. */
	--ck-evaluation-badge-letter-spacing: calc(var(--ck-font-size-base) * -0.2 / 13);
	--ck-evaluation-badge-padding-vertical: 2px;
	--ck-evaluation-badge-padding-horizontal: 4px;
	--ck-evaluation-badge-text-color: hsl(0, 0%, 31%);
	--ck-evaluation-badge-border-radius: var(--ck-border-radius);
	--ck-evaluation-badge-background: hsl(0, 0%, 100%);
	--ck-evaluation-badge-border-color: var(--ck-color-focus-border);
}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon {
	--ck-border-radius: var(--ck-evaluation-badge-border-radius);

	box-shadow: none;
	background: hsl(0, 0%, 100%);
	background: var(--ck-evaluation-badge-background);
	min-height: 0;
	min-height: initial;
	z-index: calc( calc( 1 + 999 ) - 1 );
	z-index: calc( var(--ck-z-panel) - 1 );
}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon .ck.ck-evaluation-badge {
		line-height: calc(13px * 7.5 / 13);
		line-height: var(--ck-evaluation-badge-line-height);
		padding: 2px 4px;
		padding: var(--ck-evaluation-badge-padding-vertical) var(--ck-evaluation-badge-padding-horizontal);
	}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon .ck.ck-evaluation-badge .ck-evaluation-badge__label {
			display: block;
			padding: 0 2px;
			font-size: calc(13px * 7.5 / 13);
			font-size: var(--ck-evaluation-badge-font-size);
			letter-spacing: calc(13px * -0.2 / 13);
			letter-spacing: var(--ck-evaluation-badge-letter-spacing);
			font-weight: bold;
			line-height: normal;
			text-transform: uppercase;
			color: hsl(0, 0%, 31%);
			color: var(--ck-evaluation-badge-text-color);
		}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon[class*="position_inside"] {
		border-color: transparent;
	}
.ck.ck-balloon-panel.ck-evaluation-badge-balloon[class*="position_border"] {
		border: 1px solid hsl(218, 81.8%, 56.9%);
		border: var(--ck-focus-ring);
		border-color: hsl(218, 81.8%, 56.9%);
		border-color: var(--ck-evaluation-badge-border-color);
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Makes element unselectable.
 */
/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-button,
a.ck.ck-button {
	-moz-user-select: none;
	-webkit-user-select: none;
	user-select: none;

	position: relative;
	display: inline-flex;
	align-items: center;
}

[dir="ltr"] .ck.ck-button, [dir="ltr"] a.ck.ck-button {
		justify-content: left;
	}

[dir="rtl"] .ck.ck-button, [dir="rtl"] a.ck.ck-button {
		justify-content: right;
	}

.ck.ck-button .ck-button__label, a.ck.ck-button .ck-button__label {
		display: none;
	}

.ck.ck-button.ck-button_with-text .ck-button__label, a.ck.ck-button.ck-button_with-text .ck-button__label {
			display: inline-block;
		}

/* Center the icon horizontally in a button without text. */

.ck.ck-button:not(.ck-button_with-text),  a.ck.ck-button:not(.ck-button_with-text)  {
		justify-content: center;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-button.ck-switchbutton .ck-button__toggle {
		display: block;
	}

.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {
			display: block;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-list-item-button {
	min-height: 0;
	min-height: initial;
	width: 100%;
	border-radius: 0;
}

[dir="ltr"] .ck.ck-list-item-button {
		text-align: left;
	}

[dir="rtl"] .ck.ck-list-item-button {
		text-align: right;
	}

[dir="ltr"] .ck.ck-list-item-button.ck-list-item-button_toggleable {
			padding-left: calc(0.6em * 0.5);
			padding-left: var(--ck-spacing-small);
	}

[dir="rtl"] .ck.ck-list-item-button.ck-list-item-button_toggleable {
			padding-right: calc(0.6em * 0.5);
			padding-right: var(--ck-spacing-small);
	}

.ck.ck-list-item-button .ck-list-item-button__check-holder {
		display: inline-flex;
		width: .9em;
		height: .9em;
	}

[dir="ltr"] .ck.ck-list-item-button .ck-list-item-button__check-holder {
			margin-right: calc(0.6em * 0.5);
			margin-right: var(--ck-spacing-small);
	}

[dir="rtl"] .ck.ck-list-item-button .ck-list-item-button__check-holder {
			margin-left: calc(0.6em * 0.5);
			margin-left: var(--ck-spacing-small);
	}

.ck.ck-list-item-button .ck-list-item-button__check-icon {
		height: 100%;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-collapsible.ck-collapsible_collapsed > .ck-collapsible__children {
		display: none;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-color-grid {
	display: grid;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.color-picker-hex-input {
	width: -moz-max-content;
	width: max-content;
}

.color-picker-hex-input .ck.ck-input {
		min-width: 0;
		min-width: initial;
	}

.ck.ck-color-picker__row {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: space-between;
	margin: calc(0.6em * 1.5) 0 0;
	margin: var(--ck-spacing-large) 0 0;
	width: auto;
	width: initial;
}

.ck.ck-color-picker__row .ck.ck-labeled-field-view {
		padding-top: 0;
		padding-top: initial;
	}

.ck.ck-color-picker__row .ck.ck-input-text {
		width: auto;
		width: initial;
	}

.ck.ck-color-picker__row .ck-color-picker__hash-view {
		padding-top: calc(0.6em * 0.3);
		padding-top: var(--ck-spacing-tiny);
		padding-right: calc(0.6em * 0.8);
		padding-right: var(--ck-spacing-medium);
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/* View fragment with color grids. */

.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color,
		.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker {
			display: flex;
			align-items: center;
		}

[dir="rtl"] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color, [dir="rtl"] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker {
				justify-content: flex-start;
	}

/* View fragment with a color picker. */

.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar {
			display: flex;
			flex-direction: row;
			justify-content: space-around;
		}

.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-save,
			.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-cancel {
				flex: 1 1
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-dialog .ck.ck-dialog__actions {
		display: flex;
		justify-content: flex-end;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-dialog-overlay {
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
	overscroll-behavior: none;

	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	top: 0;
}

.ck.ck-dialog-overlay.ck-dialog-overlay__transparent {
		pointer-events: none;
		animation: none;
		background: none;
	}

.ck.ck-dialog {
	overscroll-behavior: none;
	width: -moz-fit-content;
	width: fit-content;
	position: absolute;
}

.ck.ck-dialog .ck.ck-form__header  {
		flex-shrink: 0;
	}

/* Modals should not be draggable. */

.ck.ck-dialog:not(.ck-dialog_modal) .ck.ck-form__header .ck-form__header__label {
			cursor: grab;
		}

.ck.ck-dialog-overlay.ck-dialog-overlay__transparent .ck.ck-dialog {
		pointer-events: all;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-dropdown-max-width: 75vw;
}

.ck.ck-dropdown {
	display: inline-block;
	position: relative;
}

.ck.ck-dropdown .ck-dropdown__arrow {
		pointer-events: none;
		z-index: 1;
		z-index: var(--ck-z-default);
	}

/* Dropdown button should span horizontally, e.g. in vertical toolbars */

.ck.ck-dropdown .ck-button.ck-dropdown__button {
		width: 100%;
	}

.ck.ck-dropdown .ck-dropdown__panel {
		display: none;
		z-index: calc( 1 + 999 );
		z-index: var(--ck-z-panel);
		max-width: 75vw;
		max-width: var(--ck-dropdown-max-width);

		position: absolute;
	}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible {
			display: inline-block;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme {
			bottom: 100%;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s {
			/*
			 * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.
			 * See https://github.com/ckeditor/ckeditor5/issues/1053.
			 */
			top: 100%;
			bottom: auto;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se {
			left: 0px;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw {
			right: 0px;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n {
			/* Positioning panels relative to the center of the button */
			left: 50%;
			transform: translateX(-50%);
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw {
			/* Positioning panels relative to the middle-west of the button */
			left: 75%;
			transform: translateX(-75%);
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme {
			/* Positioning panels relative to the middle-east of the button */
			left: 25%;
			transform: translateX(-25%);
		}

/*
 * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.
 * See https://github.com/ckeditor/ckeditor5/issues/7874
 */
.ck.ck-toolbar .ck-dropdown__panel {
	z-index: calc( calc( 1 + 999 ) + 1 );
	z-index: calc( var(--ck-z-panel) + 1 );
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-splitbutton {
	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit;
}

.ck.ck-splitbutton .ck-splitbutton__action:focus {
		z-index: calc(1 + 1);
		z-index: calc(var(--ck-z-default) + 1);
	}


/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-toolbar-dropdown-max-width: 60vw;
}

.ck.ck-toolbar-dropdown > .ck-dropdown__panel {
	/* https://github.com/ckeditor/ckeditor5/issues/5586 */
	width: -moz-max-content;
	width: max-content;
	max-width: 60vw;
	max-width: var(--ck-toolbar-dropdown-max-width);
}

.ck.ck-toolbar-dropdown > .ck-dropdown__panel .ck-button:focus {
			z-index: calc(1 + 1);
			z-index: calc(var(--ck-z-default) + 1);
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-dropdown-menu-list__nested-menu__button > .ck-dropdown-menu-list__nested-menu__button__arrow {
	pointer-events: none;
	z-index: 1;
	z-index: var(--ck-z-default);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-balloon-panel.ck-dropdown-menu__nested-menu__panel {
	position: absolute;
	max-height: 314px; /* With the default settings, this is equal to 10 menu items. */
	overflow-y: auto;
	z-index: calc(calc( 1 + 999 ) + 1);
	z-index: calc(var(--ck-z-panel) + 1);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-dropdown-menu-list__nested-menu {
	display: block;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-aria-live-announcer {
	position: absolute;
	left: -10000px;
	top: -10000px;
}

.ck.ck-aria-live-region-list {
	list-style-type: none;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-form__header {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
}

.ck.ck-form__header h2.ck-form__header__label {
		flex-grow: 1;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-icon {
	vertical-align: middle;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-label {
	display: block;
}

.ck.ck-voice-label {
	display: none;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper {
		display: flex;
		position: relative;
	}

.ck.ck-labeled-field-view .ck.ck-label {
		display: block;
		position: absolute;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Makes element unselectable.
 */

.ck.ck-list {
	-moz-user-select: none;
	-webkit-user-select: none;
	user-select: none;

	display: flex;
	flex-direction: column;
}

.ck.ck-list .ck-list__item,
	.ck.ck-list .ck-list__separator {
		display: block;
	}

/* Make sure that whatever child of the list item gets focus, it remains on the
	top. Thanks to that, styles like box-shadow, outline, etc. are not masked by
	adjacent list items. */

.ck.ck-list .ck-list__item > *:focus {
		position: relative;
		z-index: 1;
		z-index: var(--ck-z-default);
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	/* Make sure the balloon arrow does not float over its children. */
	--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);
}

.ck.ck-balloon-panel {
	display: none;
	position: absolute;

	z-index: calc( 1 + 999 );

	z-index: var(--ck-z-panel);
}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::before,
		.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::after {
			content: "";
			position: absolute;
		}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::before {
			z-index: calc(1 - 3);
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::after {
			z-index: calc(calc(1 - 3) + 1);
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel[class*="arrow_n"]::before {
			z-index: calc(1 - 3);
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel[class*="arrow_n"]::after {
			z-index: calc(calc(1 - 3) + 1);
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::before {
			z-index: calc(1 - 3);
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::after {
			z-index: calc(calc(1 - 3) + 1);
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel.ck-balloon-panel_visible {
		display: block;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-balloon-rotator__navigation {
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Buttons inside a toolbar should be centered when rotator bar is wider.
 * See: https://github.com/ckeditor/ckeditor5-ui/issues/495
 */
.ck .ck-balloon-rotator__content .ck-toolbar {
	justify-content: center;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-fake-panel {
	position: absolute;

	/* Fake panels should be placed under main balloon content. */
	z-index: calc(calc( 1 + 999 ) - 1);
	z-index: calc(var(--ck-z-panel) - 1);
}

.ck .ck-fake-panel div {
	position: absolute;
}

.ck .ck-fake-panel div:nth-child( 1 ) {
	z-index: 2;
}

.ck .ck-fake-panel div:nth-child( 2 ) {
	z-index: 1;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-sticky-panel .ck-sticky-panel__content_sticky {
		z-index: calc( 1 + 999 );
		z-index: var(--ck-z-panel); /* #315 */
		position: fixed;
		top: 0;
	}

.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit {
		top: auto;
		position: absolute;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-autocomplete {
	position: relative;
}

.ck.ck-autocomplete > .ck-search__results {
		position: absolute;
		z-index: calc( 1 + 999 );
		z-index: var(--ck-z-panel);
	}

.ck.ck-autocomplete > .ck-search__results.ck-search__results_n {
			bottom: 100%;
		}

.ck.ck-autocomplete > .ck-search__results.ck-search__results_s {
			top: 100%;
			bottom: auto;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-search > .ck-labeled-field-view > .ck-labeled-field-view__input-wrapper > .ck-icon {
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
		}

[dir="ltr"] .ck.ck-search > .ck-labeled-field-view > .ck-labeled-field-view__input-wrapper > .ck-icon {
				left: calc(0.6em * 0.8);
				left: var(--ck-spacing-medium);
	}

[dir="rtl"] .ck.ck-search > .ck-labeled-field-view > .ck-labeled-field-view__input-wrapper > .ck-icon {
				right: calc(0.6em * 0.8);
				right: var(--ck-spacing-medium);
	}

.ck.ck-search > .ck-labeled-field-view .ck-search__reset {
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
		}

.ck.ck-search > .ck-search__results > .ck-search__info > span:first-child {
				display: block;
			}

/* Hide the filtered view when nothing was found */

.ck.ck-search > .ck-search__results > .ck-search__info:not(.ck-hidden) ~ * {
				display: none;
			}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-highlighted-text mark {
	background: hsl(60, 100%, 50%);
	background: var(--ck-color-highlight-background);
	vertical-align: baseline;
	vertical-align: initial;
	font-weight: inherit;
	line-height: inherit;
	font-size: inherit;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Makes element unselectable.
 */

.ck.ck-balloon-panel.ck-tooltip {
	-moz-user-select: none;
	-webkit-user-select: none;
	user-select: none;

	z-index: calc( 9999 + 100 );

	z-index: calc( var(--ck-z-dialog) + 100 );
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-toolbar-spinner-size: 18px;
}

.ck.ck-spinner-container {
	display: block;
	position: relative;
}

.ck.ck-spinner {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	margin: 0 auto;
	transform: translateY(-50%);
	z-index: 1;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/**
 * Makes element unselectable.
 */

.ck.ck-toolbar {
	-moz-user-select: none;
	-webkit-user-select: none;
	user-select: none;

	display: flex;
	flex-flow: row nowrap;
	align-items: center;
}

.ck.ck-toolbar > .ck-toolbar__items {
		display: flex;
		flex-flow: row wrap;
		align-items: center;
		flex-grow: 1;

	}

.ck.ck-toolbar .ck.ck-toolbar__separator {
		display: inline-block;

		/*
		 * A leading or trailing separator makes no sense (separates from nothing on one side).
		 * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and
		 * moved to another toolbar in the dropdown.
		 */
	}

.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,
		.ck.ck-toolbar .ck.ck-toolbar__separator:last-child {
			display: none;
		}

.ck.ck-toolbar .ck-toolbar__line-break {
		flex-basis: 100%;
	}

.ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items {
		flex-wrap: nowrap;
	}

.ck.ck-toolbar.ck-toolbar_vertical > .ck-toolbar__items {
		flex-direction: column;
	}

.ck.ck-toolbar.ck-toolbar_floating > .ck-toolbar__items {
		flex-wrap: nowrap;
	}

.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown > .ck-dropdown__button .ck-dropdown__arrow {
			display: none;
		}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-block-toolbar-button {
	position: absolute;
	z-index: 1;
	z-index: var(--ck-z-default);
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-menu-bar__menu > .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {
		pointer-events: none;
		z-index: 1;
		z-index: var(--ck-z-default);
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-menu-bar-menu-max-width: 75vw;
	--ck-menu-bar-nested-menu-horizontal-offset: 5px;
}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {
	z-index: calc( 1 + 999 );
	z-index: var(--ck-z-panel);
	max-width: 75vw;
	max-width: var(--ck-menu-bar-menu-max-width);
	position: absolute;
}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw {
		bottom: 100%;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw {
		top: 100%;
		bottom: auto;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se {
		left: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw {
		right: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en {
		left: calc( 100% - 5px );
		left: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es {
		top: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en {
		bottom: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws,
	.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn {
		right: calc( 100% - 5px );
		right: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws {
		top: 0px;
	}

.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn {
		bottom: 0px;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck.ck-menu-bar__menu {
	display: block;
	position: relative;
}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

:root {
	--ck-color-resizer: var(--ck-color-focus-border);
	--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);
	--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);

	--ck-resizer-border-radius: var(--ck-border-radius);
	--ck-resizer-tooltip-offset: 10px;
	--ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);
}

.ck .ck-widget {
	/* This is neccessary for type around UI to be positioned properly. */
	position: relative;
}

.ck .ck-widget.ck-widget_with-selection-handle {
	/* Make the widget wrapper a relative positioning container for the drag handle. */
	position: relative;
}

.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
		position: absolute;
	}

.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon {
			/* Make sure the icon in not a subject to font-size or line-height to avoid
			unnecessary spacing around it. */
			display: block;
		}

/* Show the selection handle on mouse hover over the widget, but not for nested widgets. */

.ck .ck-widget.ck-widget_with-selection-handle:hover > .ck-widget__selection-handle {
		visibility: visible;
	}

/* Show the selection handle when the widget is selected, but not for nested widgets. */

.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle {
		visibility: visible;
	}

.ck .ck-size-view {
	background: hsl(0, 0%, 15%);
	background: var(--ck-color-resizer-tooltip-background);
	color: hsl(0, 0%, 95%);
	color: var(--ck-color-resizer-tooltip-text);
	border: 1px solid hsl(0, 0%, 95%);
	border: 1px solid var(--ck-color-resizer-tooltip-text);
	border-radius: 2px;
	border-radius: var(--ck-resizer-border-radius);
	font-size: 0.7em;
	font-size: var(--ck-font-size-tiny);
	display: block;
	padding: 0 calc(0.6em * 0.5);
	padding: 0 var(--ck-spacing-small);
	height: calc(calc(0.6em * 0.5) * 2 + 10px);
	height: var(--ck-resizer-tooltip-height);
	line-height: calc(calc(0.6em * 0.5) * 2 + 10px);
	line-height: var(--ck-resizer-tooltip-height);
}

.ck .ck-size-view.ck-orientation-top-left,
	.ck .ck-size-view.ck-orientation-top-right,
	.ck .ck-size-view.ck-orientation-bottom-right,
	.ck .ck-size-view.ck-orientation-bottom-left,
	.ck .ck-size-view.ck-orientation-above-center {
		position: absolute;
	}

.ck .ck-size-view.ck-orientation-top-left {
		top: 10px;
		top: var(--ck-resizer-tooltip-offset);
		left: 10px;
		left: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-top-right {
		top: 10px;
		top: var(--ck-resizer-tooltip-offset);
		right: 10px;
		right: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-bottom-right {
		bottom: 10px;
		bottom: var(--ck-resizer-tooltip-offset);
		right: 10px;
		right: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-bottom-left {
		bottom: 10px;
		bottom: var(--ck-resizer-tooltip-offset);
		left: 10px;
		left: var(--ck-resizer-tooltip-offset);
	}

/* Class applied if the widget is too small to contain the size label */

.ck .ck-size-view.ck-orientation-above-center {
		top: calc(calc(calc(0.6em * 0.5) * 2 + 10px) * -1);
		top: calc(var(--ck-resizer-tooltip-height) * -1);
		left: 50%;
		transform: translate(-50%);
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

.ck .ck-widget_with-resizer {
	/* Make the widget wrapper a relative positioning container for the drag handle. */
	position: relative;
}

.ck .ck-widget__resizer {
	display: none;
	position: absolute;

	/* The wrapper itself should not interfere with the pointer device, only the handles should. */
	pointer-events: none;

	left: 0;
	top: 0;
}

.ck-focused .ck-widget_with-resizer.ck-widget_selected > .ck-widget__resizer {
		display: block;
	}

.ck .ck-widget__resizer__handle {
	position: absolute;

	/* Resizers are the only UI elements that should interfere with a pointer device. */
	pointer-events: all;
}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left,
	.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right {
		cursor: nwse-resize;
	}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right,
	.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left {
		cursor: nesw-resize;
	}

/*
 * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
 */

/*
	 * Styles of the type around buttons
	 */

.ck .ck-widget .ck-widget__type-around__button {
		display: block;
		position: absolute;
		overflow: hidden;
		z-index: 1;
		z-index: var(--ck-z-default);
	}

.ck .ck-widget .ck-widget__type-around__button svg {
			position: absolute;
			top: 50%;
			left: 50%;
			z-index: calc(1 + 2);
			z-index: calc(var(--ck-z-default) + 2);
		}

.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before {
			/* Place it in the middle of the outline */
			top: calc(-0.5 * 3px);
			top: calc(-0.5 * var(--ck-widget-outline-thickness));
			left: min(10%, 30px);

			transform: translateY(-50%);
		}

.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after {
			/* Place it in the middle of the outline */
			bottom: calc(-0.5 * 3px);
			bottom: calc(-0.5 * var(--ck-widget-outline-thickness));
			right: min(10%, 30px);

			transform: translateY(50%);
		}

/*
	 * Styles for the buttons when:
	 * - the widget is selected,
	 * - or the button is being hovered (regardless of the widget state).
	 */

.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button::after, .ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover::after {
			content: "";
			display: block;
			position: absolute;
			top: 1px;
			left: 1px;
			z-index: calc(1 + 1);
			z-index: calc(var(--ck-z-default) + 1);
		}

/*
	 * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.
	 */

.ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		display: none;
		position: absolute;
		left: 0;
		right: 0;
	}

/*
	 * When the widget is hovered the "fake caret" would normally be narrower than the
	 * extra outline displayed around the widget. Let's extend the "fake caret" to match
	 * the full width of the widget.
	 */

.ck .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		left: calc( -1 * 3px );
		left: calc( -1 * var(--ck-widget-outline-thickness) );
		right: calc( -1 * 3px );
		right: calc( -1 * var(--ck-widget-outline-thickness) );
	}

/*
	 * Styles for the horizontal "fake caret" when it should be displayed before the widget (backward keyboard navigation).
	 */

.ck .ck-widget.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		top: calc( -1 * 3px - 1px );
		top: calc( -1 * var(--ck-widget-outline-thickness) - 1px );
		display: block;
	}

/*
	 * Styles for the horizontal "fake caret" when it should be displayed after the widget (forward keyboard navigation).
	 */

.ck .ck-widget.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		bottom: calc( -1 * 3px - 1px );
		bottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );
		display: block;
	}

/*
 * Integration with the read-only mode of the editor.
 */
.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {
	display: none;
}

/*
 * Integration with the restricted editing mode (feature) of the editor.
 */
.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {
	display: none;
}

/*
 * Integration with the #isEnabled property of the WidgetTypeAround plugin.
 */
.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {
	display: none;
}


@charset "UTF-8";
.react-datepicker__year-read-view--down-arrow,
.react-datepicker__month-read-view--down-arrow,
.react-datepicker__month-year-read-view--down-arrow, .react-datepicker__navigation-icon::before {
  border-color: #ccc;
  border-style: solid;
  border-width: 3px 3px 0 0;
  content: "";
  display: block;
  height: 9px;
  position: absolute;
  top: 6px;
  width: 9px;
}
.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle, .react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle {
  margin-left: -4px;
  position: absolute;
  width: 0;
}
.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::before, .react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::before, .react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::after, .react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::after {
  box-sizing: content-box;
  position: absolute;
  border: 8px solid transparent;
  height: 0;
  width: 1px;
  content: "";
  z-index: -1;
  border-width: 8px;
  left: -8px;
}
.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::before, .react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::before {
  border-bottom-color: #aeaeae;
}

.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle {
  top: 0;
  margin-top: -8px;
}
.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::before, .react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::after {
  border-top: none;
  border-bottom-color: #f0f0f0;
}
.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::after {
  top: 0;
}
.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle::before {
  top: -1px;
  border-bottom-color: #aeaeae;
}

.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle {
  bottom: 0;
  margin-bottom: -8px;
}
.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::before, .react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::after {
  border-bottom: none;
  border-top-color: #fff;
}
.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::after {
  bottom: 0;
}
.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle::before {
  bottom: -1px;
  border-top-color: #aeaeae;
}

.react-datepicker-wrapper {
  display: inline-block;
  padding: 0;
  border: 0;
}

.react-datepicker {
  font-family: "Helvetica Neue", helvetica, arial, sans-serif;
  font-size: 0.8rem;
  background-color: #fff;
  color: #000;
  border: 1px solid #aeaeae;
  border-radius: 0.3rem;
  display: inline-block;
  position: relative;
}

.react-datepicker--time-only .react-datepicker__triangle {
  left: 35px;
}
.react-datepicker--time-only .react-datepicker__time-container {
  border-left: 0;
}
.react-datepicker--time-only .react-datepicker__time,
.react-datepicker--time-only .react-datepicker__time-box {
  border-bottom-left-radius: 0.3rem;
  border-bottom-right-radius: 0.3rem;
}

.react-datepicker__triangle {
  position: absolute;
  left: 50px;
}

.react-datepicker-popper {
  z-index: 1;
}
.react-datepicker-popper[data-placement^=bottom] {
  padding-top: 10px;
}
.react-datepicker-popper[data-placement=bottom-end] .react-datepicker__triangle, .react-datepicker-popper[data-placement=top-end] .react-datepicker__triangle {
  left: auto;
  right: 50px;
}
.react-datepicker-popper[data-placement^=top] {
  padding-bottom: 10px;
}
.react-datepicker-popper[data-placement^=right] {
  padding-left: 8px;
}
.react-datepicker-popper[data-placement^=right] .react-datepicker__triangle {
  left: auto;
  right: 42px;
}
.react-datepicker-popper[data-placement^=left] {
  padding-right: 8px;
}
.react-datepicker-popper[data-placement^=left] .react-datepicker__triangle {
  left: 42px;
  right: auto;
}

.react-datepicker__header {
  text-align: center;
  background-color: #f0f0f0;
  border-bottom: 1px solid #aeaeae;
  border-top-left-radius: 0.3rem;
  padding: 8px 0;
  position: relative;
}
.react-datepicker__header--time {
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
}
.react-datepicker__header--time:not(.react-datepicker__header--time--only) {
  border-top-left-radius: 0;
}
.react-datepicker__header:not(.react-datepicker__header--has-time-select) {
  border-top-right-radius: 0.3rem;
}

.react-datepicker__year-dropdown-container--select,
.react-datepicker__month-dropdown-container--select,
.react-datepicker__month-year-dropdown-container--select,
.react-datepicker__year-dropdown-container--scroll,
.react-datepicker__month-dropdown-container--scroll,
.react-datepicker__month-year-dropdown-container--scroll {
  display: inline-block;
  margin: 0 15px;
}

.react-datepicker__current-month,
.react-datepicker-time__header,
.react-datepicker-year-header {
  margin-top: 0;
  color: #000;
  font-weight: bold;
  font-size: 0.944rem;
}

.react-datepicker-time__header {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.react-datepicker__navigation {
  align-items: center;
  background: none;
  display: flex;
  justify-content: center;
  text-align: center;
  cursor: pointer;
  position: absolute;
  top: 2px;
  padding: 0;
  border: none;
  z-index: 1;
  height: 32px;
  width: 32px;
  text-indent: -999em;
  overflow: hidden;
}
.react-datepicker__navigation--previous {
  left: 2px;
}
.react-datepicker__navigation--next {
  right: 2px;
}
.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button) {
  right: 85px;
}
.react-datepicker__navigation--years {
  position: relative;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.react-datepicker__navigation--years-previous {
  top: 4px;
}
.react-datepicker__navigation--years-upcoming {
  top: -4px;
}
.react-datepicker__navigation:hover *::before {
  border-color: #a6a6a6;
}

.react-datepicker__navigation-icon {
  position: relative;
  top: -1px;
  font-size: 20px;
  width: 0;
}
.react-datepicker__navigation-icon--next {
  left: -2px;
}
.react-datepicker__navigation-icon--next::before {
  transform: rotate(45deg);
  left: -7px;
}
.react-datepicker__navigation-icon--previous {
  right: -2px;
}
.react-datepicker__navigation-icon--previous::before {
  transform: rotate(225deg);
  right: -7px;
}

.react-datepicker__month-container {
  float: left;
}

.react-datepicker__year {
  margin: 0.4rem;
  text-align: center;
}
.react-datepicker__year-wrapper {
  display: flex;
  flex-wrap: wrap;
  max-width: 180px;
}
.react-datepicker__year .react-datepicker__year-text {
  display: inline-block;
  width: 4rem;
  margin: 2px;
}

.react-datepicker__month {
  margin: 0.4rem;
  text-align: center;
}
.react-datepicker__month .react-datepicker__month-text,
.react-datepicker__month .react-datepicker__quarter-text {
  display: inline-block;
  width: 4rem;
  margin: 2px;
}

.react-datepicker__input-time-container {
  clear: both;
  width: 100%;
  float: left;
  margin: 5px 0 10px 15px;
  text-align: left;
}
.react-datepicker__input-time-container .react-datepicker-time__caption {
  display: inline-block;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container {
  display: inline-block;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input {
  display: inline-block;
  margin-left: 10px;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input {
  width: auto;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time] {
  -moz-appearance: textfield;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter {
  margin-left: 5px;
  display: inline-block;
}

.react-datepicker__time-container {
  float: right;
  border-left: 1px solid #aeaeae;
  width: 85px;
}
.react-datepicker__time-container--with-today-button {
  display: inline;
  border: 1px solid #aeaeae;
  border-radius: 0.3rem;
  position: absolute;
  right: -87px;
  top: 0;
}
.react-datepicker__time-container .react-datepicker__time {
  position: relative;
  background: white;
  border-bottom-right-radius: 0.3rem;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box {
  width: 85px;
  overflow-x: hidden;
  margin: 0 auto;
  text-align: center;
  border-bottom-right-radius: 0.3rem;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list {
  list-style: none;
  margin: 0;
  height: calc(195px + 1.7rem / 2);
  overflow-y: scroll;
  padding-right: 0;
  padding-left: 0;
  width: 100%;
  box-sizing: content-box;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item {
  height: 30px;
  padding: 5px 10px;
  white-space: nowrap;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover {
  cursor: pointer;
  background-color: #f0f0f0;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected {
  background-color: #216ba5;
  color: white;
  font-weight: bold;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover {
  background-color: #216ba5;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled {
  color: #ccc;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover {
  cursor: default;
  background-color: transparent;
}

.react-datepicker__week-number {
  color: #ccc;
  display: inline-block;
  width: 1.7rem;
  line-height: 1.7rem;
  text-align: center;
  margin: 0.166rem;
}
.react-datepicker__week-number.react-datepicker__week-number--clickable {
  cursor: pointer;
}
.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected,
.react-datepicker__week-number--keyboard-selected):hover {
  border-radius: 0.3rem;
  background-color: #f0f0f0;
}
.react-datepicker__week-number--selected {
  border-radius: 0.3rem;
  background-color: #216ba5;
  color: #fff;
}
.react-datepicker__week-number--selected:hover {
  background-color: #1d5d90;
}
.react-datepicker__week-number--keyboard-selected {
  border-radius: 0.3rem;
  background-color: #2a87d0;
  color: #fff;
}
.react-datepicker__week-number--keyboard-selected:hover {
  background-color: #1d5d90;
}

.react-datepicker__day-names {
  white-space: nowrap;
  margin-bottom: -8px;
}

.react-datepicker__week {
  white-space: nowrap;
}

.react-datepicker__day-name,
.react-datepicker__day,
.react-datepicker__time-name {
  color: #000;
  display: inline-block;
  width: 1.7rem;
  line-height: 1.7rem;
  text-align: center;
  margin: 0.166rem;
}

.react-datepicker__day,
.react-datepicker__month-text,
.react-datepicker__quarter-text,
.react-datepicker__year-text {
  cursor: pointer;
}
.react-datepicker__day:hover,
.react-datepicker__month-text:hover,
.react-datepicker__quarter-text:hover,
.react-datepicker__year-text:hover {
  border-radius: 0.3rem;
  background-color: #f0f0f0;
}
.react-datepicker__day--today,
.react-datepicker__month-text--today,
.react-datepicker__quarter-text--today,
.react-datepicker__year-text--today {
  font-weight: bold;
}
.react-datepicker__day--highlighted,
.react-datepicker__month-text--highlighted,
.react-datepicker__quarter-text--highlighted,
.react-datepicker__year-text--highlighted {
  border-radius: 0.3rem;
  background-color: #3dcc4a;
  color: #fff;
}
.react-datepicker__day--highlighted:hover,
.react-datepicker__month-text--highlighted:hover,
.react-datepicker__quarter-text--highlighted:hover,
.react-datepicker__year-text--highlighted:hover {
  background-color: #32be3f;
}
.react-datepicker__day--highlighted-custom-1,
.react-datepicker__month-text--highlighted-custom-1,
.react-datepicker__quarter-text--highlighted-custom-1,
.react-datepicker__year-text--highlighted-custom-1 {
  color: magenta;
}
.react-datepicker__day--highlighted-custom-2,
.react-datepicker__month-text--highlighted-custom-2,
.react-datepicker__quarter-text--highlighted-custom-2,
.react-datepicker__year-text--highlighted-custom-2 {
  color: green;
}
.react-datepicker__day--holidays,
.react-datepicker__month-text--holidays,
.react-datepicker__quarter-text--holidays,
.react-datepicker__year-text--holidays {
  position: relative;
  border-radius: 0.3rem;
  background-color: #ff6803;
  color: #fff;
}
.react-datepicker__day--holidays .holiday-overlay,
.react-datepicker__month-text--holidays .holiday-overlay,
.react-datepicker__quarter-text--holidays .holiday-overlay,
.react-datepicker__year-text--holidays .holiday-overlay {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  background-color: #333;
  color: #fff;
  padding: 4px;
  border-radius: 4px;
  white-space: nowrap;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s, opacity 0.3s ease-in-out;
}
.react-datepicker__day--holidays:hover,
.react-datepicker__month-text--holidays:hover,
.react-datepicker__quarter-text--holidays:hover,
.react-datepicker__year-text--holidays:hover {
  background-color: #cf5300;
}
.react-datepicker__day--holidays:hover .holiday-overlay,
.react-datepicker__month-text--holidays:hover .holiday-overlay,
.react-datepicker__quarter-text--holidays:hover .holiday-overlay,
.react-datepicker__year-text--holidays:hover .holiday-overlay {
  visibility: visible;
  opacity: 1;
}
.react-datepicker__day--selected, .react-datepicker__day--in-selecting-range, .react-datepicker__day--in-range,
.react-datepicker__month-text--selected,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--selected,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--selected,
.react-datepicker__year-text--in-selecting-range,
.react-datepicker__year-text--in-range {
  border-radius: 0.3rem;
  background-color: #216ba5;
  color: #fff;
}
.react-datepicker__day--selected:hover, .react-datepicker__day--in-selecting-range:hover, .react-datepicker__day--in-range:hover,
.react-datepicker__month-text--selected:hover,
.react-datepicker__month-text--in-selecting-range:hover,
.react-datepicker__month-text--in-range:hover,
.react-datepicker__quarter-text--selected:hover,
.react-datepicker__quarter-text--in-selecting-range:hover,
.react-datepicker__quarter-text--in-range:hover,
.react-datepicker__year-text--selected:hover,
.react-datepicker__year-text--in-selecting-range:hover,
.react-datepicker__year-text--in-range:hover {
  background-color: #1d5d90;
}
.react-datepicker__day--keyboard-selected,
.react-datepicker__month-text--keyboard-selected,
.react-datepicker__quarter-text--keyboard-selected,
.react-datepicker__year-text--keyboard-selected {
  border-radius: 0.3rem;
  background-color: #bad9f1;
  color: rgb(0, 0, 0);
}
.react-datepicker__day--keyboard-selected:hover,
.react-datepicker__month-text--keyboard-selected:hover,
.react-datepicker__quarter-text--keyboard-selected:hover,
.react-datepicker__year-text--keyboard-selected:hover {
  background-color: #1d5d90;
}
.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--in-range),
.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--in-range),
.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--in-range),
.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--in-range) {
  background-color: rgba(33, 107, 165, 0.5);
}
.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range), .react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range) {
  background-color: #f0f0f0;
  color: #000;
}
.react-datepicker__day--disabled,
.react-datepicker__month-text--disabled,
.react-datepicker__quarter-text--disabled,
.react-datepicker__year-text--disabled {
  cursor: default;
  color: #ccc;
}
.react-datepicker__day--disabled:hover,
.react-datepicker__month-text--disabled:hover,
.react-datepicker__quarter-text--disabled:hover,
.react-datepicker__year-text--disabled:hover {
  background-color: transparent;
}

.react-datepicker__input-container {
  position: relative;
  display: inline-block;
  width: 100%;
}
.react-datepicker__input-container .react-datepicker__calendar-icon {
  position: absolute;
  padding: 0.5rem;
  box-sizing: content-box;
}

.react-datepicker__view-calendar-icon input {
  padding: 6px 10px 5px 25px;
}

.react-datepicker__year-read-view,
.react-datepicker__month-read-view,
.react-datepicker__month-year-read-view {
  border: 1px solid transparent;
  border-radius: 0.3rem;
  position: relative;
}
.react-datepicker__year-read-view:hover,
.react-datepicker__month-read-view:hover,
.react-datepicker__month-year-read-view:hover {
  cursor: pointer;
}
.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,
.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,
.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,
.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,
.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,
.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow {
  border-top-color: #b3b3b3;
}
.react-datepicker__year-read-view--down-arrow,
.react-datepicker__month-read-view--down-arrow,
.react-datepicker__month-year-read-view--down-arrow {
  transform: rotate(135deg);
  right: -16px;
  top: 0;
}

.react-datepicker__year-dropdown,
.react-datepicker__month-dropdown,
.react-datepicker__month-year-dropdown {
  background-color: #f0f0f0;
  position: absolute;
  width: 50%;
  left: 25%;
  top: 30px;
  z-index: 1;
  text-align: center;
  border-radius: 0.3rem;
  border: 1px solid #aeaeae;
}
.react-datepicker__year-dropdown:hover,
.react-datepicker__month-dropdown:hover,
.react-datepicker__month-year-dropdown:hover {
  cursor: pointer;
}
.react-datepicker__year-dropdown--scrollable,
.react-datepicker__month-dropdown--scrollable,
.react-datepicker__month-year-dropdown--scrollable {
  height: 150px;
  overflow-y: scroll;
}

.react-datepicker__year-option,
.react-datepicker__month-option,
.react-datepicker__month-year-option {
  line-height: 20px;
  width: 100%;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.react-datepicker__year-option:first-of-type,
.react-datepicker__month-option:first-of-type,
.react-datepicker__month-year-option:first-of-type {
  border-top-left-radius: 0.3rem;
  border-top-right-radius: 0.3rem;
}
.react-datepicker__year-option:last-of-type,
.react-datepicker__month-option:last-of-type,
.react-datepicker__month-year-option:last-of-type {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  border-bottom-left-radius: 0.3rem;
  border-bottom-right-radius: 0.3rem;
}
.react-datepicker__year-option:hover,
.react-datepicker__month-option:hover,
.react-datepicker__month-year-option:hover {
  background-color: #ccc;
}
.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,
.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,
.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming {
  border-bottom-color: #b3b3b3;
}
.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,
.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,
.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous {
  border-top-color: #b3b3b3;
}
.react-datepicker__year-option--selected,
.react-datepicker__month-option--selected,
.react-datepicker__month-year-option--selected {
  position: absolute;
  left: 15px;
}

.react-datepicker__close-icon {
  cursor: pointer;
  background-color: transparent;
  border: 0;
  outline: 0;
  padding: 0 6px 0 0;
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  display: table-cell;
  vertical-align: middle;
}
.react-datepicker__close-icon::after {
  cursor: pointer;
  background-color: #216ba5;
  color: #fff;
  border-radius: 50%;
  height: 16px;
  width: 16px;
  padding: 2px;
  font-size: 12px;
  line-height: 1;
  text-align: center;
  display: table-cell;
  vertical-align: middle;
  content: "×";
}
.react-datepicker__close-icon--disabled {
  cursor: default;
}
.react-datepicker__close-icon--disabled::after {
  cursor: default;
  background-color: #ccc;
}

.react-datepicker__today-button {
  background: #f0f0f0;
  border-top: 1px solid #aeaeae;
  cursor: pointer;
  text-align: center;
  font-weight: bold;
  padding: 5px 0;
  clear: left;
}

.react-datepicker__portal {
  position: fixed;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.8);
  left: 0;
  top: 0;
  justify-content: center;
  align-items: center;
  display: flex;
  z-index: 2147483647;
}
.react-datepicker__portal .react-datepicker__day-name,
.react-datepicker__portal .react-datepicker__day,
.react-datepicker__portal .react-datepicker__time-name {
  width: 3rem;
  line-height: 3rem;
}
@media (max-width: 400px), (max-height: 550px) {
  .react-datepicker__portal .react-datepicker__day-name,
  .react-datepicker__portal .react-datepicker__day,
  .react-datepicker__portal .react-datepicker__time-name {
    width: 2rem;
    line-height: 2rem;
  }
}
.react-datepicker__portal .react-datepicker__current-month,
.react-datepicker__portal .react-datepicker-time__header {
  font-size: 1.44rem;
}

.react-datepicker__children-container {
  width: 13.8rem;
  margin: 0.4rem;
  padding-right: 0.2rem;
  padding-left: 0.2rem;
  height: auto;
}

.react-datepicker__aria-live {
  position: absolute;
  clip-path: circle(0);
  border: 0;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  width: 1px;
  white-space: nowrap;
}

.react-datepicker__calendar-icon {
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
}

@charset "UTF-8";
.vjs-modal-dialog .vjs-modal-dialog-content, .video-js .vjs-modal-dialog, .vjs-button > .vjs-icon-placeholder:before, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.vjs-button > .vjs-icon-placeholder:before, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {
  text-align: center;
}

@font-face {
  font-family: VideoJS;
  src: url(data:application/font-woff;charset=utf-8;base64,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) format("woff");
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-play, .video-js .vjs-play-control .vjs-icon-placeholder, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-play:before, .video-js .vjs-play-control .vjs-icon-placeholder:before, .video-js .vjs-big-play-button .vjs-icon-placeholder:before {
  content: "\f101";
}

.vjs-icon-play-circle {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-play-circle:before {
  content: "\f102";
}

.vjs-icon-pause, .video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-pause:before, .video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before {
  content: "\f103";
}

.vjs-icon-volume-mute, .video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-volume-mute:before, .video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before {
  content: "\f104";
}

.vjs-icon-volume-low, .video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-volume-low:before, .video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before {
  content: "\f105";
}

.vjs-icon-volume-mid, .video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-volume-mid:before, .video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before {
  content: "\f106";
}

.vjs-icon-volume-high, .video-js .vjs-mute-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-volume-high:before, .video-js .vjs-mute-control .vjs-icon-placeholder:before {
  content: "\f107";
}

.vjs-icon-fullscreen-enter, .video-js .vjs-fullscreen-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-fullscreen-enter:before, .video-js .vjs-fullscreen-control .vjs-icon-placeholder:before {
  content: "\f108";
}

.vjs-icon-fullscreen-exit, .video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-fullscreen-exit:before, .video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before {
  content: "\f109";
}

.vjs-icon-square {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-square:before {
  content: "\f10a";
}

.vjs-icon-spinner {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-spinner:before {
  content: "\f10b";
}

.vjs-icon-subtitles, .video-js .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder, .video-js .vjs-subtitles-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-subtitles:before, .video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before, .video-js .vjs-subtitles-button .vjs-icon-placeholder:before {
  content: "\f10c";
}

.vjs-icon-captions, .video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,
.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder, .video-js .vjs-captions-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-captions:before, .video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,
.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before, .video-js .vjs-captions-button .vjs-icon-placeholder:before {
  content: "\f10d";
}

.vjs-icon-chapters, .video-js .vjs-chapters-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-chapters:before, .video-js .vjs-chapters-button .vjs-icon-placeholder:before {
  content: "\f10e";
}

.vjs-icon-share {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-share:before {
  content: "\f10f";
}

.vjs-icon-cog {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-cog:before {
  content: "\f110";
}

.vjs-icon-circle, .vjs-seek-to-live-control .vjs-icon-placeholder, .video-js .vjs-volume-level, .video-js .vjs-play-progress {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-circle:before, .vjs-seek-to-live-control .vjs-icon-placeholder:before, .video-js .vjs-volume-level:before, .video-js .vjs-play-progress:before {
  content: "\f111";
}

.vjs-icon-circle-outline {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-circle-outline:before {
  content: "\f112";
}

.vjs-icon-circle-inner-circle {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-circle-inner-circle:before {
  content: "\f113";
}

.vjs-icon-hd {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-hd:before {
  content: "\f114";
}

.vjs-icon-cancel, .video-js .vjs-control.vjs-close-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-cancel:before, .video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before {
  content: "\f115";
}

.vjs-icon-replay, .video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-replay:before, .video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before {
  content: "\f116";
}

.vjs-icon-facebook {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-facebook:before {
  content: "\f117";
}

.vjs-icon-gplus {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-gplus:before {
  content: "\f118";
}

.vjs-icon-linkedin {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-linkedin:before {
  content: "\f119";
}

.vjs-icon-twitter {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-twitter:before {
  content: "\f11a";
}

.vjs-icon-tumblr {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-tumblr:before {
  content: "\f11b";
}

.vjs-icon-pinterest {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-pinterest:before {
  content: "\f11c";
}

.vjs-icon-audio-description, .video-js .vjs-descriptions-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-audio-description:before, .video-js .vjs-descriptions-button .vjs-icon-placeholder:before {
  content: "\f11d";
}

.vjs-icon-audio, .video-js .vjs-audio-button .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-audio:before, .video-js .vjs-audio-button .vjs-icon-placeholder:before {
  content: "\f11e";
}

.vjs-icon-next-item {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-next-item:before {
  content: "\f11f";
}

.vjs-icon-previous-item {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-previous-item:before {
  content: "\f120";
}

.vjs-icon-picture-in-picture-enter, .video-js .vjs-picture-in-picture-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-picture-in-picture-enter:before, .video-js .vjs-picture-in-picture-control .vjs-icon-placeholder:before {
  content: "\f121";
}

.vjs-icon-picture-in-picture-exit, .video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder {
  font-family: VideoJS;
  font-weight: normal;
  font-style: normal;
}
.vjs-icon-picture-in-picture-exit:before, .video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder:before {
  content: "\f122";
}

.video-js {
  display: block;
  vertical-align: top;
  box-sizing: border-box;
  color: #fff;
  background-color: #000;
  position: relative;
  padding: 0;
  font-size: 10px;
  line-height: 1;
  font-weight: normal;
  font-style: normal;
  font-family: Arial, Helvetica, sans-serif;
  word-break: initial;
}
.video-js:-moz-full-screen {
  position: absolute;
}
.video-js:-webkit-full-screen {
  width: 100% !important;
  height: 100% !important;
}

.video-js[tabindex="-1"] {
  outline: none;
}

.video-js *,
.video-js *:before,
.video-js *:after {
  box-sizing: inherit;
}

.video-js ul {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  list-style-position: outside;
  margin-left: 0;
  margin-right: 0;
  margin-top: 0;
  margin-bottom: 0;
}

.video-js.vjs-fluid,
.video-js.vjs-16-9,
.video-js.vjs-4-3,
.video-js.vjs-9-16,
.video-js.vjs-1-1 {
  width: 100%;
  max-width: 100%;
  height: 0;
}

.video-js.vjs-16-9 {
  padding-top: 56.25%;
}

.video-js.vjs-4-3 {
  padding-top: 75%;
}

.video-js.vjs-9-16 {
  padding-top: 177.7777777778%;
}

.video-js.vjs-1-1 {
  padding-top: 100%;
}

.video-js.vjs-fill {
  width: 100%;
  height: 100%;
}

.video-js .vjs-tech {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

body.vjs-full-window {
  padding: 0;
  margin: 0;
  height: 100%;
}

.vjs-full-window .video-js.vjs-fullscreen {
  position: fixed;
  overflow: hidden;
  z-index: 1000;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
}

.video-js.vjs-fullscreen:not(.vjs-ios-native-fs) {
  width: 100% !important;
  height: 100% !important;
  padding-top: 0 !important;
}

.video-js.vjs-fullscreen.vjs-user-inactive {
  cursor: none;
}

.vjs-hidden {
  display: none !important;
}

.vjs-disabled {
  opacity: 0.5;
  cursor: default;
}

.video-js .vjs-offscreen {
  height: 1px;
  left: -9999px;
  position: absolute;
  top: 0;
  width: 1px;
}

.vjs-lock-showing {
  display: block !important;
  opacity: 1;
  visibility: visible;
}

.vjs-no-js {
  padding: 20px;
  color: #fff;
  background-color: #000;
  font-size: 18px;
  font-family: Arial, Helvetica, sans-serif;
  text-align: center;
  width: 300px;
  height: 150px;
  margin: 0px auto;
}

.vjs-no-js a,
.vjs-no-js a:visited {
  color: #66A8CC;
}

.video-js .vjs-big-play-button {
  font-size: 3em;
  line-height: 1.5em;
  height: 1.63332em;
  width: 3em;
  display: block;
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 0;
  cursor: pointer;
  opacity: 1;
  border: 0.06666em solid #fff;
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.7);
  border-radius: 0.3em;
  transition: all 0.4s;
}
.vjs-big-play-centered .vjs-big-play-button {
  top: 50%;
  left: 50%;
  margin-top: -0.81666em;
  margin-left: -1.5em;
}

.video-js:hover .vjs-big-play-button,
.video-js .vjs-big-play-button:focus {
  border-color: #fff;
  background-color: #73859f;
  background-color: rgba(115, 133, 159, 0.5);
  transition: all 0s;
}

.vjs-controls-disabled .vjs-big-play-button,
.vjs-has-started .vjs-big-play-button,
.vjs-using-native-controls .vjs-big-play-button,
.vjs-error .vjs-big-play-button {
  display: none;
}

.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause .vjs-big-play-button {
  display: block;
}

.video-js button {
  background: none;
  border: none;
  color: inherit;
  display: inline-block;
  font-size: inherit;
  line-height: inherit;
  text-transform: none;
  text-decoration: none;
  transition: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.vjs-control .vjs-button {
  width: 100%;
  height: 100%;
}

.video-js .vjs-control.vjs-close-button {
  cursor: pointer;
  height: 3em;
  position: absolute;
  right: 0;
  top: 0.5em;
  z-index: 2;
}
.video-js .vjs-modal-dialog {
  background: rgba(0, 0, 0, 0.8);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.8), rgba(255, 255, 255, 0));
  overflow: auto;
}

.video-js .vjs-modal-dialog > * {
  box-sizing: border-box;
}

.vjs-modal-dialog .vjs-modal-dialog-content {
  font-size: 1.2em;
  line-height: 1.5;
  padding: 20px 24px;
  z-index: 1;
}

.vjs-menu-button {
  cursor: pointer;
}

.vjs-menu-button.vjs-disabled {
  cursor: default;
}

.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu {
  display: none;
}

.vjs-menu .vjs-menu-content {
  display: block;
  padding: 0;
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  overflow: auto;
}

.vjs-menu .vjs-menu-content > * {
  box-sizing: border-box;
}

.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu {
  display: none;
}

.vjs-menu li {
  list-style: none;
  margin: 0;
  padding: 0.2em 0;
  line-height: 1.4em;
  font-size: 1.2em;
  text-align: center;
  text-transform: lowercase;
}

.vjs-menu li.vjs-menu-item:focus,
.vjs-menu li.vjs-menu-item:hover,
.js-focus-visible .vjs-menu li.vjs-menu-item:hover {
  background-color: #73859f;
  background-color: rgba(115, 133, 159, 0.5);
}

.vjs-menu li.vjs-selected,
.vjs-menu li.vjs-selected:focus,
.vjs-menu li.vjs-selected:hover,
.js-focus-visible .vjs-menu li.vjs-selected:hover {
  background-color: #fff;
  color: #2B333F;
}

.video-js .vjs-menu *:not(.vjs-selected):focus:not(:focus-visible),
.js-focus-visible .vjs-menu *:not(.vjs-selected):focus:not(.focus-visible) {
  background: none;
}

.vjs-menu li.vjs-menu-title {
  text-align: center;
  text-transform: uppercase;
  font-size: 1em;
  line-height: 2em;
  padding: 0;
  margin: 0 0 0.3em 0;
  font-weight: bold;
  cursor: default;
}

.vjs-menu-button-popup .vjs-menu {
  display: none;
  position: absolute;
  bottom: 0;
  width: 10em;
  left: -3em;
  height: 0em;
  margin-bottom: 1.5em;
  border-top-color: rgba(43, 51, 63, 0.7);
}

.vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.7);
  position: absolute;
  width: 100%;
  bottom: 1.5em;
  max-height: 15em;
}

.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content,
.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  max-height: 5em;
}

.vjs-layout-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  max-height: 10em;
}

.vjs-layout-medium .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  max-height: 14em;
}

.vjs-layout-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,
.vjs-layout-x-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,
.vjs-layout-huge .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
  max-height: 25em;
}

.vjs-workinghover .vjs-menu-button-popup.vjs-hover .vjs-menu,
.vjs-menu-button-popup .vjs-menu.vjs-lock-showing {
  display: block;
}

.video-js .vjs-menu-button-inline {
  transition: all 0.4s;
  overflow: hidden;
}

.video-js .vjs-menu-button-inline:before {
  width: 2.222222222em;
}

.video-js .vjs-menu-button-inline:hover,
.video-js .vjs-menu-button-inline:focus,
.video-js .vjs-menu-button-inline.vjs-slider-active,
.video-js.vjs-no-flex .vjs-menu-button-inline {
  width: 12em;
}

.vjs-menu-button-inline .vjs-menu {
  opacity: 0;
  height: 100%;
  width: auto;
  position: absolute;
  left: 4em;
  top: 0;
  padding: 0;
  margin: 0;
  transition: all 0.4s;
}

.vjs-menu-button-inline:hover .vjs-menu,
.vjs-menu-button-inline:focus .vjs-menu,
.vjs-menu-button-inline.vjs-slider-active .vjs-menu {
  display: block;
  opacity: 1;
}

.vjs-no-flex .vjs-menu-button-inline .vjs-menu {
  display: block;
  opacity: 1;
  position: relative;
  width: auto;
}

.vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu,
.vjs-no-flex .vjs-menu-button-inline:focus .vjs-menu,
.vjs-no-flex .vjs-menu-button-inline.vjs-slider-active .vjs-menu {
  width: auto;
}

.vjs-menu-button-inline .vjs-menu-content {
  width: auto;
  height: 100%;
  margin: 0;
  overflow: hidden;
}

.video-js .vjs-control-bar {
  display: none;
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3em;
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.7);
}

.vjs-has-started .vjs-control-bar {
  display: flex;
  visibility: visible;
  opacity: 1;
  transition: visibility 0.1s, opacity 0.1s;
}

.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
  visibility: visible;
  opacity: 0;
  transition: visibility 1s, opacity 1s;
}

.vjs-controls-disabled .vjs-control-bar,
.vjs-using-native-controls .vjs-control-bar,
.vjs-error .vjs-control-bar {
  display: none !important;
}

.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
  opacity: 1;
  visibility: visible;
}

.vjs-has-started.vjs-no-flex .vjs-control-bar {
  display: table;
}

.video-js .vjs-control {
  position: relative;
  text-align: center;
  margin: 0;
  padding: 0;
  height: 100%;
  width: 4em;
  flex: none;
}

.vjs-button > .vjs-icon-placeholder:before {
  font-size: 1.8em;
  line-height: 1.67;
}

.vjs-button > .vjs-icon-placeholder {
  display: block;
}

.video-js .vjs-control:focus:before,
.video-js .vjs-control:hover:before,
.video-js .vjs-control:focus {
  text-shadow: 0em 0em 1em white;
}

.video-js .vjs-control-text {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.vjs-no-flex .vjs-control {
  display: table-cell;
  vertical-align: middle;
}

.video-js .vjs-custom-control-spacer {
  display: none;
}

.video-js .vjs-progress-control {
  cursor: pointer;
  flex: auto;
  display: flex;
  align-items: center;
  min-width: 4em;
  touch-action: none;
}

.video-js .vjs-progress-control.disabled {
  cursor: default;
}

.vjs-live .vjs-progress-control {
  display: none;
}

.vjs-liveui .vjs-progress-control {
  display: flex;
  align-items: center;
}

.vjs-no-flex .vjs-progress-control {
  width: auto;
}

.video-js .vjs-progress-holder {
  flex: auto;
  transition: all 0.2s;
  height: 0.3em;
}

.video-js .vjs-progress-control .vjs-progress-holder {
  margin: 0 10px;
}

.video-js .vjs-progress-control:hover .vjs-progress-holder {
  font-size: 1.6666666667em;
}

.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled {
  font-size: 1em;
}

.video-js .vjs-progress-holder .vjs-play-progress,
.video-js .vjs-progress-holder .vjs-load-progress,
.video-js .vjs-progress-holder .vjs-load-progress div {
  position: absolute;
  display: block;
  height: 100%;
  margin: 0;
  padding: 0;
  width: 0;
}

.video-js .vjs-play-progress {
  background-color: #fff;
}
.video-js .vjs-play-progress:before {
  font-size: 0.9em;
  position: absolute;
  right: -0.5em;
  top: -0.3333333333em;
  z-index: 1;
}

.video-js .vjs-load-progress {
  background: rgba(115, 133, 159, 0.5);
}

.video-js .vjs-load-progress div {
  background: rgba(115, 133, 159, 0.75);
}

.video-js .vjs-time-tooltip {
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 0.3em;
  color: #000;
  float: right;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1em;
  padding: 6px 8px 8px 8px;
  pointer-events: none;
  position: absolute;
  top: -3.4em;
  visibility: hidden;
  z-index: 1;
}

.video-js .vjs-progress-holder:focus .vjs-time-tooltip {
  display: none;
}

.video-js .vjs-progress-control:hover .vjs-time-tooltip,
.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip {
  display: block;
  font-size: 0.6em;
  visibility: visible;
}

.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip {
  font-size: 1em;
}

.video-js .vjs-progress-control .vjs-mouse-display {
  display: none;
  position: absolute;
  width: 1px;
  height: 100%;
  background-color: #000;
  z-index: 1;
}

.vjs-no-flex .vjs-progress-control .vjs-mouse-display {
  z-index: 0;
}

.video-js .vjs-progress-control:hover .vjs-mouse-display {
  display: block;
}

.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display {
  visibility: hidden;
  opacity: 0;
  transition: visibility 1s, opacity 1s;
}

.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display {
  display: none;
}

.vjs-mouse-display .vjs-time-tooltip {
  color: #fff;
  background-color: #000;
  background-color: rgba(0, 0, 0, 0.8);
}

.video-js .vjs-slider {
  position: relative;
  cursor: pointer;
  padding: 0;
  margin: 0 0.45em 0 0.45em;
  /* iOS Safari */
  -webkit-touch-callout: none;
  /* Safari */
  -webkit-user-select: none;
  /* Konqueror HTML */
  /* Firefox */
  -moz-user-select: none;
  /* Internet Explorer/Edge */
  /* Non-prefixed version, currently supported by Chrome and Opera */
  user-select: none;
  background-color: #73859f;
  background-color: rgba(115, 133, 159, 0.5);
}

.video-js .vjs-slider.disabled {
  cursor: default;
}

.video-js .vjs-slider:focus {
  text-shadow: 0em 0em 1em white;
  box-shadow: 0 0 1em #fff;
}

.video-js .vjs-mute-control {
  cursor: pointer;
  flex: none;
}
.video-js .vjs-volume-control {
  cursor: pointer;
  margin-right: 1em;
  display: flex;
}

.video-js .vjs-volume-control.vjs-volume-horizontal {
  width: 5em;
}

.video-js .vjs-volume-panel .vjs-volume-control {
  visibility: visible;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin-left: -1px;
}

.video-js .vjs-volume-panel {
  transition: width 1s;
}
.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control, .video-js .vjs-volume-panel:active .vjs-volume-control, .video-js .vjs-volume-panel:focus .vjs-volume-control, .video-js .vjs-volume-panel .vjs-volume-control:active, .video-js .vjs-volume-panel.vjs-hover .vjs-mute-control ~ .vjs-volume-control, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active {
  visibility: visible;
  opacity: 1;
  position: relative;
  transition: visibility 0.1s, opacity 0.1s, height 0.1s, width 0.1s, left 0s, top 0s;
}
.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal, .video-js .vjs-volume-panel.vjs-hover .vjs-mute-control ~ .vjs-volume-control.vjs-volume-horizontal, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal {
  width: 5em;
  height: 3em;
  margin-right: 0;
}
.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical, .video-js .vjs-volume-panel.vjs-hover .vjs-mute-control ~ .vjs-volume-control.vjs-volume-vertical, .video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical {
  left: -3.5em;
  transition: left 0s;
}
.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover, .video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active, .video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active {
  width: 10em;
  transition: width 0.1s;
}
.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only {
  width: 4em;
}

.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical {
  height: 8em;
  width: 3em;
  left: -3000em;
  transition: visibility 1s, opacity 1s, height 1s 1s, width 1s 1s, left 1s 1s, top 1s 1s;
}

.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal {
  transition: visibility 1s, opacity 1s, height 1s 1s, width 1s, left 1s 1s, top 1s 1s;
}

.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal {
  width: 5em;
  height: 3em;
  visibility: visible;
  opacity: 1;
  position: relative;
  transition: none;
}

.video-js.vjs-no-flex .vjs-volume-control.vjs-volume-vertical,
.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical {
  position: absolute;
  bottom: 3em;
  left: 0.5em;
}

.video-js .vjs-volume-panel {
  display: flex;
}

.video-js .vjs-volume-bar {
  margin: 1.35em 0.45em;
}

.vjs-volume-bar.vjs-slider-horizontal {
  width: 5em;
  height: 0.3em;
}

.vjs-volume-bar.vjs-slider-vertical {
  width: 0.3em;
  height: 5em;
  margin: 1.35em auto;
}

.video-js .vjs-volume-level {
  position: absolute;
  bottom: 0;
  left: 0;
  background-color: #fff;
}
.video-js .vjs-volume-level:before {
  position: absolute;
  font-size: 0.9em;
  z-index: 1;
}

.vjs-slider-vertical .vjs-volume-level {
  width: 0.3em;
}
.vjs-slider-vertical .vjs-volume-level:before {
  top: -0.5em;
  left: -0.3em;
  z-index: 1;
}

.vjs-slider-horizontal .vjs-volume-level {
  height: 0.3em;
}
.vjs-slider-horizontal .vjs-volume-level:before {
  top: -0.3em;
  right: -0.5em;
}

.video-js .vjs-volume-panel.vjs-volume-panel-vertical {
  width: 4em;
}

.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level {
  height: 100%;
}

.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level {
  width: 100%;
}

.video-js .vjs-volume-vertical {
  width: 3em;
  height: 8em;
  bottom: 8em;
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.7);
}

.video-js .vjs-volume-horizontal .vjs-menu {
  left: -2em;
}

.video-js .vjs-volume-tooltip {
  background-color: #fff;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 0.3em;
  color: #000;
  float: right;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1em;
  padding: 6px 8px 8px 8px;
  pointer-events: none;
  position: absolute;
  top: -3.4em;
  visibility: hidden;
  z-index: 1;
}

.video-js .vjs-volume-control:hover .vjs-volume-tooltip,
.video-js .vjs-volume-control:hover .vjs-progress-holder:focus .vjs-volume-tooltip {
  display: block;
  font-size: 1em;
  visibility: visible;
}

.video-js .vjs-volume-vertical:hover .vjs-volume-tooltip,
.video-js .vjs-volume-vertical:hover .vjs-progress-holder:focus .vjs-volume-tooltip {
  left: 1em;
  top: -12px;
}

.video-js .vjs-volume-control.disabled:hover .vjs-volume-tooltip {
  font-size: 1em;
}

.video-js .vjs-volume-control .vjs-mouse-display {
  display: none;
  position: absolute;
  width: 100%;
  height: 1px;
  background-color: #000;
  z-index: 1;
}

.video-js .vjs-volume-horizontal .vjs-mouse-display {
  width: 1px;
  height: 100%;
}

.vjs-no-flex .vjs-volume-control .vjs-mouse-display {
  z-index: 0;
}

.video-js .vjs-volume-control:hover .vjs-mouse-display {
  display: block;
}

.video-js.vjs-user-inactive .vjs-volume-control .vjs-mouse-display {
  visibility: hidden;
  opacity: 0;
  transition: visibility 1s, opacity 1s;
}

.video-js.vjs-user-inactive.vjs-no-flex .vjs-volume-control .vjs-mouse-display {
  display: none;
}

.vjs-mouse-display .vjs-volume-tooltip {
  color: #fff;
  background-color: #000;
  background-color: rgba(0, 0, 0, 0.8);
}

.vjs-poster {
  display: inline-block;
  vertical-align: middle;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: contain;
  background-color: #000000;
  cursor: pointer;
  margin: 0;
  padding: 0;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  height: 100%;
}

.vjs-has-started .vjs-poster {
  display: none;
}

.vjs-audio.vjs-has-started .vjs-poster {
  display: block;
}

.vjs-using-native-controls .vjs-poster {
  display: none;
}

.video-js .vjs-live-control {
  display: flex;
  align-items: flex-start;
  flex: auto;
  font-size: 1em;
  line-height: 3em;
}

.vjs-no-flex .vjs-live-control {
  display: table-cell;
  width: auto;
  text-align: left;
}

.video-js:not(.vjs-live) .vjs-live-control,
.video-js.vjs-liveui .vjs-live-control {
  display: none;
}

.video-js .vjs-seek-to-live-control {
  align-items: center;
  cursor: pointer;
  flex: none;
  display: inline-flex;
  height: 100%;
  padding-left: 0.5em;
  padding-right: 0.5em;
  font-size: 1em;
  line-height: 3em;
  width: auto;
  min-width: 4em;
}

.vjs-no-flex .vjs-seek-to-live-control {
  display: table-cell;
  width: auto;
  text-align: left;
}

.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control,
.video-js:not(.vjs-live) .vjs-seek-to-live-control {
  display: none;
}

.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge {
  cursor: auto;
}

.vjs-seek-to-live-control .vjs-icon-placeholder {
  margin-right: 0.5em;
  color: #888;
}

.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder {
  color: red;
}

.video-js .vjs-time-control {
  flex: none;
  font-size: 1em;
  line-height: 3em;
  min-width: 2em;
  width: auto;
  padding-left: 1em;
  padding-right: 1em;
}

.vjs-live .vjs-time-control {
  display: none;
}

.video-js .vjs-current-time,
.vjs-no-flex .vjs-current-time {
  display: none;
}

.video-js .vjs-duration,
.vjs-no-flex .vjs-duration {
  display: none;
}

.vjs-time-divider {
  display: none;
  line-height: 3em;
}

.vjs-live .vjs-time-divider {
  display: none;
}

.video-js .vjs-play-control {
  cursor: pointer;
}

.video-js .vjs-play-control .vjs-icon-placeholder {
  flex: none;
}

.vjs-text-track-display {
  position: absolute;
  bottom: 3em;
  left: 0;
  right: 0;
  top: 0;
  pointer-events: none;
}

.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display {
  bottom: 1em;
}

.video-js .vjs-text-track {
  font-size: 1.4em;
  text-align: center;
  margin-bottom: 0.1em;
}

.vjs-subtitles {
  color: #fff;
}

.vjs-captions {
  color: #fc6;
}

.vjs-tt-cue {
  display: block;
}

video::-webkit-media-text-track-display {
  transform: translateY(-3em);
}

.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display {
  transform: translateY(-1.5em);
}

.video-js .vjs-picture-in-picture-control {
  cursor: pointer;
  flex: none;
}
.video-js .vjs-fullscreen-control {
  cursor: pointer;
  flex: none;
}
.vjs-playback-rate > .vjs-menu-button,
.vjs-playback-rate .vjs-playback-rate-value {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.vjs-playback-rate .vjs-playback-rate-value {
  pointer-events: none;
  font-size: 1.5em;
  line-height: 2;
  text-align: center;
}

.vjs-playback-rate .vjs-menu {
  width: 4em;
  left: 0em;
}

.vjs-error .vjs-error-display .vjs-modal-dialog-content {
  font-size: 1.4em;
  text-align: center;
}

.vjs-error .vjs-error-display:before {
  color: #fff;
  content: "X";
  font-family: Arial, Helvetica, sans-serif;
  font-size: 4em;
  left: 0;
  line-height: 1;
  margin-top: -0.5em;
  position: absolute;
  text-shadow: 0.05em 0.05em 0.1em #000;
  text-align: center;
  top: 50%;
  vertical-align: middle;
  width: 100%;
}

.vjs-loading-spinner {
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -25px 0 0 -25px;
  opacity: 0.85;
  text-align: left;
  border: 6px solid rgba(43, 51, 63, 0.7);
  box-sizing: border-box;
  background-clip: padding-box;
  width: 50px;
  height: 50px;
  border-radius: 25px;
  visibility: hidden;
}

.vjs-seeking .vjs-loading-spinner,
.vjs-waiting .vjs-loading-spinner {
  display: block;
  animation: vjs-spinner-show 0s linear 0.3s forwards;
}

.vjs-loading-spinner:before,
.vjs-loading-spinner:after {
  content: "";
  position: absolute;
  margin: -6px;
  box-sizing: inherit;
  width: inherit;
  height: inherit;
  border-radius: inherit;
  opacity: 1;
  border: inherit;
  border-color: transparent;
  border-top-color: white;
}

.vjs-seeking .vjs-loading-spinner:before,
.vjs-seeking .vjs-loading-spinner:after,
.vjs-waiting .vjs-loading-spinner:before,
.vjs-waiting .vjs-loading-spinner:after {
  animation: vjs-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, vjs-spinner-fade 1.1s linear infinite;
}

.vjs-seeking .vjs-loading-spinner:before,
.vjs-waiting .vjs-loading-spinner:before {
  border-top-color: white;
}

.vjs-seeking .vjs-loading-spinner:after,
.vjs-waiting .vjs-loading-spinner:after {
  border-top-color: white;
  animation-delay: 0.44s;
}

@keyframes vjs-spinner-show {
  to {
    visibility: visible;
  }
}
@keyframes vjs-spinner-spin {
  100% {
    transform: rotate(360deg);
  }
}
@keyframes vjs-spinner-fade {
  0% {
    border-top-color: #73859f;
  }
  20% {
    border-top-color: #73859f;
  }
  35% {
    border-top-color: white;
  }
  60% {
    border-top-color: #73859f;
  }
  100% {
    border-top-color: #73859f;
  }
}
.vjs-chapters-button .vjs-menu ul {
  width: 24em;
}

.video-js .vjs-subs-caps-button + .vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder {
  vertical-align: middle;
  display: inline-block;
  margin-bottom: -0.1em;
}

.video-js .vjs-subs-caps-button + .vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before {
  font-family: VideoJS;
  content: "";
  font-size: 1.5em;
  line-height: inherit;
}

.video-js .vjs-audio-button + .vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder {
  vertical-align: middle;
  display: inline-block;
  margin-bottom: -0.1em;
}

.video-js .vjs-audio-button + .vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before {
  font-family: VideoJS;
  content: " ";
  font-size: 1.5em;
  line-height: inherit;
}

.video-js.vjs-layout-small .vjs-current-time,
.video-js.vjs-layout-small .vjs-time-divider,
.video-js.vjs-layout-small .vjs-duration,
.video-js.vjs-layout-small .vjs-remaining-time,
.video-js.vjs-layout-small .vjs-playback-rate,
.video-js.vjs-layout-small .vjs-chapters-button,
.video-js.vjs-layout-small .vjs-descriptions-button,
.video-js.vjs-layout-small .vjs-captions-button,
.video-js.vjs-layout-small .vjs-subtitles-button,
.video-js.vjs-layout-small .vjs-audio-button,
.video-js.vjs-layout-small .vjs-volume-control, .video-js.vjs-layout-x-small .vjs-current-time,
.video-js.vjs-layout-x-small .vjs-time-divider,
.video-js.vjs-layout-x-small .vjs-duration,
.video-js.vjs-layout-x-small .vjs-remaining-time,
.video-js.vjs-layout-x-small .vjs-playback-rate,
.video-js.vjs-layout-x-small .vjs-chapters-button,
.video-js.vjs-layout-x-small .vjs-descriptions-button,
.video-js.vjs-layout-x-small .vjs-captions-button,
.video-js.vjs-layout-x-small .vjs-subtitles-button,
.video-js.vjs-layout-x-small .vjs-audio-button,
.video-js.vjs-layout-x-small .vjs-volume-control, .video-js.vjs-layout-tiny .vjs-current-time,
.video-js.vjs-layout-tiny .vjs-time-divider,
.video-js.vjs-layout-tiny .vjs-duration,
.video-js.vjs-layout-tiny .vjs-remaining-time,
.video-js.vjs-layout-tiny .vjs-playback-rate,
.video-js.vjs-layout-tiny .vjs-chapters-button,
.video-js.vjs-layout-tiny .vjs-descriptions-button,
.video-js.vjs-layout-tiny .vjs-captions-button,
.video-js.vjs-layout-tiny .vjs-subtitles-button,
.video-js.vjs-layout-tiny .vjs-audio-button,
.video-js.vjs-layout-tiny .vjs-volume-control {
  display: none !important;
}
.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,
.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,
.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active, .video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,
.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,
.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active, .video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:hover,
.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:active,
.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active {
  width: auto;
  width: initial;
}
.video-js.vjs-layout-x-small:not(.vjs-liveui) .vjs-subs-caps-button, .video-js.vjs-layout-x-small:not(.vjs-live) .vjs-subs-caps-button, .video-js.vjs-layout-tiny .vjs-subs-caps-button {
  display: none;
}
.video-js.vjs-layout-x-small.vjs-liveui .vjs-custom-control-spacer, .video-js.vjs-layout-tiny .vjs-custom-control-spacer {
  flex: auto;
  display: block;
}
.video-js.vjs-layout-x-small.vjs-liveui.vjs-no-flex .vjs-custom-control-spacer, .video-js.vjs-layout-tiny.vjs-no-flex .vjs-custom-control-spacer {
  width: auto;
}
.video-js.vjs-layout-x-small.vjs-liveui .vjs-progress-control, .video-js.vjs-layout-tiny .vjs-progress-control {
  display: none;
}

.vjs-modal-dialog.vjs-text-track-settings {
  background-color: #2B333F;
  background-color: rgba(43, 51, 63, 0.75);
  color: #fff;
  height: 70%;
}

.vjs-text-track-settings .vjs-modal-dialog-content {
  display: table;
}

.vjs-text-track-settings .vjs-track-settings-colors,
.vjs-text-track-settings .vjs-track-settings-font,
.vjs-text-track-settings .vjs-track-settings-controls {
  display: table-cell;
}

.vjs-text-track-settings .vjs-track-settings-controls {
  text-align: right;
  vertical-align: bottom;
}

@supports (display: grid) {
  .vjs-text-track-settings .vjs-modal-dialog-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
    padding: 20px 24px 0px 24px;
  }

  .vjs-track-settings-controls .vjs-default-button {
    margin-bottom: 20px;
  }

  .vjs-text-track-settings .vjs-track-settings-controls {
    grid-column: 1/-1;
  }

  .vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content,
.vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content,
.vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content {
    grid-template-columns: 1fr;
  }
}
.vjs-track-setting > select {
  margin-right: 1em;
  margin-bottom: 0.5em;
}

.vjs-text-track-settings fieldset {
  margin: 5px;
  padding: 3px;
  border: none;
}

.vjs-text-track-settings fieldset span {
  display: inline-block;
}

.vjs-text-track-settings fieldset span > select {
  max-width: 7.3em;
}

.vjs-text-track-settings legend {
  color: #fff;
  margin: 0 0 5px 0;
}

.vjs-text-track-settings .vjs-label {
  position: absolute;
  clip: rect(1px 1px 1px 1px);
  clip: rect(1px, 1px, 1px, 1px);
  display: block;
  margin: 0 0 5px 0;
  padding: 0;
  border: 0;
  height: 1px;
  width: 1px;
  overflow: hidden;
}

.vjs-track-settings-controls button:focus,
.vjs-track-settings-controls button:active {
  outline-style: solid;
  outline-width: medium;
  background-image: linear-gradient(0deg, #fff 88%, #73859f 100%);
}

.vjs-track-settings-controls button:hover {
  color: rgba(43, 51, 63, 0.75);
}

.vjs-track-settings-controls button {
  background-color: #fff;
  background-image: linear-gradient(-180deg, #fff 88%, #73859f 100%);
  color: #2B333F;
  cursor: pointer;
  border-radius: 2px;
}

.vjs-track-settings-controls .vjs-default-button {
  margin-right: 1em;
}

@media print {
  .video-js > *:not(.vjs-tech):not(.vjs-poster) {
    visibility: hidden;
  }
}
.vjs-resize-manager {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
  z-index: -1000;
}

.js-focus-visible .video-js *:focus:not(.focus-visible) {
  outline: none;
}

.video-js *:focus:not(:focus-visible) {
  outline: none;
}

@keyframes react-loading-skeleton {
  100% {
    transform: translateX(100%);
  }
}

.react-loading-skeleton {
  --base-color: #ebebeb;
  --highlight-color: #f5f5f5;
  --animation-duration: 1.5s;
  --animation-direction: normal;
  --pseudo-element-display: block; /* Enable animation */

  background-color: var(--base-color);

  width: 100%;
  border-radius: 0.25rem;
  display: inline-flex;
  line-height: 1;

  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  overflow: hidden;
}

.react-loading-skeleton::after {
  content: ' ';
  display: var(--pseudo-element-display);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 100%;
  background-repeat: no-repeat;
  background-image: linear-gradient(
      90deg,
      var(--base-color) 0%,
      var(--highlight-color) 50%,
      var(--base-color) 100%
    );
  background-image: var(
    --custom-highlight-background,
    linear-gradient(
      90deg,
      var(--base-color) 0%,
      var(--highlight-color) 50%,
      var(--base-color) 100%
    )
  );
  transform: translateX(-100%);

  animation-name: react-loading-skeleton;
  animation-direction: var(--animation-direction);
  animation-duration: var(--animation-duration);
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

@media (prefers-reduced-motion) {
  .react-loading-skeleton {
    --pseudo-element-display: none; /* Disable animation */
  }
}

:root{--ion-color-primary: #0054e9;--ion-color-primary-rgb: 0, 84, 233;--ion-color-primary-contrast: #fff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #004acd;--ion-color-primary-tint: #1a65eb;--ion-color-secondary: #0163aa;--ion-color-secondary-rgb: 1, 99, 170;--ion-color-secondary-contrast: #fff;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #015796;--ion-color-secondary-tint: #1a73b3;--ion-color-tertiary: #6030ff;--ion-color-tertiary-rgb: 96, 48, 255;--ion-color-tertiary-contrast: #fff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #542ae0;--ion-color-tertiary-tint: #7045ff;--ion-color-success: #2dd55b;--ion-color-success-rgb: 45, 213, 91;--ion-color-success-contrast: #000;--ion-color-success-contrast-rgb: 0, 0, 0;--ion-color-success-shade: #28bb50;--ion-color-success-tint: #42d96b;--ion-color-warning: #ffc409;--ion-color-warning-rgb: 255, 196, 9;--ion-color-warning-contrast: #000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0ac08;--ion-color-warning-tint: #ffca22;--ion-color-danger: #c5000f;--ion-color-danger-rgb: 197, 0, 15;--ion-color-danger-contrast: #fff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #ad000d;--ion-color-danger-tint: #cb1a27;--ion-color-light: #f4f5f8;--ion-color-light-rgb: 244, 245, 248;--ion-color-light-contrast: #000;--ion-color-light-contrast-rgb: 0, 0, 0;--ion-color-light-shade: #d7d8da;--ion-color-light-tint: #f5f6f9;--ion-color-medium: #636469;--ion-color-medium-rgb: 99, 100, 105;--ion-color-medium-contrast: #fff;--ion-color-medium-contrast-rgb: 255, 255, 255;--ion-color-medium-shade: #57585c;--ion-color-medium-tint: #737478;--ion-color-dark: #222428;--ion-color-dark-rgb: 34, 36, 40;--ion-color-dark-contrast: #fff;--ion-color-dark-contrast-rgb: 255, 255, 255;--ion-color-dark-shade: #1e2023;--ion-color-dark-tint: #383a3e}html.ios{--ion-default-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif}html.md{--ion-default-font: "Roboto", "Helvetica Neue", sans-serif}html{--ion-dynamic-font: -apple-system-body;--ion-font-family: var(--ion-default-font)}body{background:var(--ion-background-color);color:var(--ion-text-color)}body.backdrop-no-scroll{overflow:hidden}html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,html.ios ion-modal ion-footer ion-toolbar:first-of-type,html.ios ion-footer.modal-footer-moving ion-toolbar:first-of-type{padding-top:6px}html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type{padding-bottom:6px}html.ios ion-modal ion-toolbar,html.ios .modal-footer-moving ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 8px);padding-left:calc(var(--ion-safe-area-left) + 8px)}@media screen and (min-width: 768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity: 0.18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity: 0;--box-shadow: none}html.ios ion-modal.modal-card .ion-page{border-top-left-radius:var(--border-radius)}.ion-color-primary{--ion-color-base: var(--ion-color-primary, #0054e9) !important;--ion-color-base-rgb: var(--ion-color-primary-rgb, 0, 84, 233) !important;--ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-primary-shade, #004acd) !important;--ion-color-tint: var(--ion-color-primary-tint, #1a65eb) !important}.ion-color-secondary{--ion-color-base: var(--ion-color-secondary, #0163aa) !important;--ion-color-base-rgb: var(--ion-color-secondary-rgb, 1, 99, 170) !important;--ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-secondary-shade, #015796) !important;--ion-color-tint: var(--ion-color-secondary-tint, #1a73b3) !important}.ion-color-tertiary{--ion-color-base: var(--ion-color-tertiary, #6030ff) !important;--ion-color-base-rgb: var(--ion-color-tertiary-rgb, 96, 48, 255) !important;--ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-tertiary-shade, #542ae0) !important;--ion-color-tint: var(--ion-color-tertiary-tint, #7045ff) !important}.ion-color-success{--ion-color-base: var(--ion-color-success, #2dd55b) !important;--ion-color-base-rgb: var(--ion-color-success-rgb, 45, 213, 91) !important;--ion-color-contrast: var(--ion-color-success-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-success-shade, #28bb50) !important;--ion-color-tint: var(--ion-color-success-tint, #42d96b) !important}.ion-color-warning{--ion-color-base: var(--ion-color-warning, #ffc409) !important;--ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;--ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;--ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important}.ion-color-danger{--ion-color-base: var(--ion-color-danger, #c5000f) !important;--ion-color-base-rgb: var(--ion-color-danger-rgb, 197, 0, 15) !important;--ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-danger-shade, #ad000d) !important;--ion-color-tint: var(--ion-color-danger-tint, #cb1a27) !important}.ion-color-light{--ion-color-base: var(--ion-color-light, #f4f5f8) !important;--ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;--ion-color-contrast: var(--ion-color-light-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;--ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important}.ion-color-medium{--ion-color-base: var(--ion-color-medium, #636469) !important;--ion-color-base-rgb: var(--ion-color-medium-rgb, 99, 100, 105) !important;--ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-medium-shade, #57585c) !important;--ion-color-tint: var(--ion-color-medium-tint, #737478) !important}.ion-color-dark{--ion-color-base: var(--ion-color-dark, #222428) !important;--ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;--ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;--ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important}.ion-page{left:0;right:0;top:0;bottom:0;display:flex;position:absolute;flex-direction:column;justify-content:space-between;contain:layout size style;z-index:0}.ion-page.ion-page-overlay-passthrough{pointer-events:none}ion-modal>.ion-page{position:relative;contain:layout style;height:100%}.split-pane-visible>.ion-page.split-pane-main{position:relative}ion-route,ion-route-redirect,ion-router,ion-select-option,ion-nav-controller,ion-menu-controller,ion-action-sheet-controller,ion-alert-controller,ion-loading-controller,ion-modal-controller,ion-picker-controller,ion-popover-controller,ion-toast-controller,.ion-page-hidden{display:none !important}.ion-page-invisible{opacity:0}.can-go-back>ion-header ion-back-button{display:block}html.plt-ios.plt-hybrid,html.plt-ios.plt-pwa{--ion-statusbar-padding: 20px}@supports(padding-top: 20px){html{--ion-safe-area-top: var(--ion-statusbar-padding)}}@supports(padding-top: env(safe-area-inset-top)){html{--ion-safe-area-top: var(--safe-area-inset-top, env(safe-area-inset-top));--ion-safe-area-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom));--ion-safe-area-left: var(--safe-area-inset-left, env(safe-area-inset-left));--ion-safe-area-right: var(--safe-area-inset-right, env(safe-area-inset-right))}}ion-card.ion-color .ion-inherit-color,ion-card-header.ion-color .ion-inherit-color{color:inherit}.menu-content{transform:translate3d(0,  0,  0)}.menu-content-open{cursor:pointer;touch-action:manipulation;pointer-events:none;overflow-y:hidden}.menu-content-open ion-content{--overflow: hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px rgba(0,0,0,.08)}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px rgba(0,0,0,.08)}.md .menu-content-reveal{box-shadow:4px 0px 16px rgba(0,0,0,.18)}.md .menu-content-push{box-shadow:4px 0px 16px rgba(0,0,0,.18)}ion-accordion-group.accordion-group-expand-inset>ion-accordion:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}ion-accordion-group.accordion-group-expand-inset>ion-accordion:last-of-type{border-bottom-left-radius:8px;border-bottom-right-radius:8px}ion-accordion-group>ion-accordion:last-of-type ion-item[slot=header]{--border-width: 0px}ion-accordion.accordion-animated>[slot=header] .ion-accordion-toggle-icon{transition:300ms transform cubic-bezier(0.25, 0.8, 0.5, 1)}@media(prefers-reduced-motion: reduce){ion-accordion .ion-accordion-toggle-icon{transition:none !important}}ion-accordion.accordion-expanding>[slot=header] .ion-accordion-toggle-icon,ion-accordion.accordion-expanded>[slot=header] .ion-accordion-toggle-icon{transform:rotate(180deg)}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-previous ion-item[slot=header]{--border-width: 0px;--inner-border-width: 0px}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanding:first-of-type,ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanded:first-of-type{margin-top:0}ion-input input::-webkit-date-and-time-value{text-align:start}.ion-datetime-button-overlay{--width: fit-content;--height: fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{width:320px;min-height:320px}[ion-last-focus],header[tabindex="-1"]:focus,[role=banner][tabindex="-1"]:focus,main[tabindex="-1"]:focus,[role=main][tabindex="-1"]:focus,h1[tabindex="-1"]:focus,[role=heading][aria-level="1"][tabindex="-1"]:focus{outline:none}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}
audio,canvas,progress,video{vertical-align:baseline}audio:not([controls]){display:none;height:0}b,strong{font-weight:bold}img{max-width:100%}hr{height:1px;border-width:0;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}label,input,select,textarea{font-family:inherit;line-height:normal}textarea{overflow:auto;height:auto;font:inherit;color:inherit}textarea::-moz-placeholder{padding-left:2px}textarea::placeholder{padding-left:2px}form,input,optgroup,select{margin:0;font:inherit;color:inherit}html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}a,a div,a span,a ion-icon,a ion-label,button,button div,button span,button ion-icon,button ion-label,.ion-tappable,[tappable],[tappable] div,[tappable] span,[tappable] ion-icon,[tappable] ion-label,input,textarea{touch-action:manipulation}a ion-label,button ion-label{pointer-events:none}button{padding:0;border:0;border-radius:0;font-family:inherit;font-style:inherit;font-feature-settings:inherit;font-variant:inherit;line-height:1;text-transform:none;cursor:pointer;-webkit-appearance:button}[tappable]{cursor:pointer}a[disabled],button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{width:100%;height:100%;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html.ion-ce body{display:block}html.plt-pwa{height:100vh}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;transform:translateZ(0);text-rendering:optimizeLegibility;overflow:hidden;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;overscroll-behavior-y:none;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}
html{font-family:var(--ion-font-family)}@supports(-webkit-touch-callout: none){html{font:16px var(--ion-font-family);font:var(--ion-dynamic-font, 16px var(--ion-font-family))}}a{background-color:transparent;color:#0054e9;color:var(--ion-color-primary, #0054e9)}h1,h2,h3,h4,h5,h6{margin-top:16px;margin-bottom:10px;font-weight:500;line-height:1.2}h1{margin-top:20px;font-size:1.625rem}h2{margin-top:18px;font-size:1.5rem}h3{font-size:1.375rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}small{font-size:75%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}
.ion-no-padding{--padding-start: 0;--padding-end: 0;--padding-top: 0;--padding-bottom: 0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.ion-padding{--padding-start: var(--ion-padding, 16px);--padding-end: var(--ion-padding, 16px);--padding-top: var(--ion-padding, 16px);--padding-bottom: var(--ion-padding, 16px);padding-inline-start:16px;padding-inline-start:var(--ion-padding, 16px);padding-inline-end:16px;padding-inline-end:var(--ion-padding, 16px);padding-top:16px;padding-top:var(--ion-padding, 16px);padding-bottom:16px;padding-bottom:var(--ion-padding, 16px)}.ion-padding-top{--padding-top: var(--ion-padding, 16px);padding-top:16px;padding-top:var(--ion-padding, 16px)}.ion-padding-start{--padding-start: var(--ion-padding, 16px);padding-inline-start:16px;padding-inline-start:var(--ion-padding, 16px)}.ion-padding-end{--padding-end: var(--ion-padding, 16px);padding-inline-end:16px;padding-inline-end:var(--ion-padding, 16px)}.ion-padding-bottom{--padding-bottom: var(--ion-padding, 16px);padding-bottom:16px;padding-bottom:var(--ion-padding, 16px)}.ion-padding-vertical{--padding-top: var(--ion-padding, 16px);--padding-bottom: var(--ion-padding, 16px);padding-top:16px;padding-top:var(--ion-padding, 16px);padding-bottom:16px;padding-bottom:var(--ion-padding, 16px)}.ion-padding-horizontal{--padding-start: var(--ion-padding, 16px);--padding-end: var(--ion-padding, 16px);padding-inline-start:16px;padding-inline-start:var(--ion-padding, 16px);padding-inline-end:16px;padding-inline-end:var(--ion-padding, 16px)}.ion-no-margin{--margin-start: 0;--margin-end: 0;--margin-top: 0;--margin-bottom: 0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.ion-margin{--margin-start: var(--ion-margin, 16px);--margin-end: var(--ion-margin, 16px);--margin-top: var(--ion-margin, 16px);--margin-bottom: var(--ion-margin, 16px);margin-inline-start:16px;margin-inline-start:var(--ion-margin, 16px);margin-inline-end:16px;margin-inline-end:var(--ion-margin, 16px);margin-top:16px;margin-top:var(--ion-margin, 16px);margin-bottom:16px;margin-bottom:var(--ion-margin, 16px)}.ion-margin-top{--margin-top: var(--ion-margin, 16px);margin-top:16px;margin-top:var(--ion-margin, 16px)}.ion-margin-start{--margin-start: var(--ion-margin, 16px);margin-inline-start:16px;margin-inline-start:var(--ion-margin, 16px)}.ion-margin-end{--margin-end: var(--ion-margin, 16px);margin-inline-end:16px;margin-inline-end:var(--ion-margin, 16px)}.ion-margin-bottom{--margin-bottom: var(--ion-margin, 16px);margin-bottom:16px;margin-bottom:var(--ion-margin, 16px)}.ion-margin-vertical{--margin-top: var(--ion-margin, 16px);--margin-bottom: var(--ion-margin, 16px);margin-top:16px;margin-top:var(--ion-margin, 16px);margin-bottom:16px;margin-bottom:var(--ion-margin, 16px)}.ion-margin-horizontal{--margin-start: var(--ion-margin, 16px);--margin-end: var(--ion-margin, 16px);margin-inline-start:16px;margin-inline-start:var(--ion-margin, 16px);margin-inline-end:16px;margin-inline-end:var(--ion-margin, 16px)}
.ion-float-left{float:left !important}.ion-float-right{float:right !important}.ion-float-start{float:left !important}:host-context([dir=rtl]) .ion-float-start{float:right !important}[dir=rtl] .ion-float-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-start:dir(rtl){float:right !important}}.ion-float-end{float:right !important}:host-context([dir=rtl]) .ion-float-end{float:left !important}[dir=rtl] .ion-float-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-end:dir(rtl){float:left !important}}@media(min-width: 576px){.ion-float-sm-left{float:left !important}.ion-float-sm-right{float:right !important}.ion-float-sm-start{float:left !important}:host-context([dir=rtl]) .ion-float-sm-start{float:right !important}[dir=rtl] .ion-float-sm-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-sm-start:dir(rtl){float:right !important}}.ion-float-sm-end{float:right !important}:host-context([dir=rtl]) .ion-float-sm-end{float:left !important}[dir=rtl] .ion-float-sm-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-sm-end:dir(rtl){float:left !important}}}@media(min-width: 768px){.ion-float-md-left{float:left !important}.ion-float-md-right{float:right !important}.ion-float-md-start{float:left !important}:host-context([dir=rtl]) .ion-float-md-start{float:right !important}[dir=rtl] .ion-float-md-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-md-start:dir(rtl){float:right !important}}.ion-float-md-end{float:right !important}:host-context([dir=rtl]) .ion-float-md-end{float:left !important}[dir=rtl] .ion-float-md-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-md-end:dir(rtl){float:left !important}}}@media(min-width: 992px){.ion-float-lg-left{float:left !important}.ion-float-lg-right{float:right !important}.ion-float-lg-start{float:left !important}:host-context([dir=rtl]) .ion-float-lg-start{float:right !important}[dir=rtl] .ion-float-lg-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-lg-start:dir(rtl){float:right !important}}.ion-float-lg-end{float:right !important}:host-context([dir=rtl]) .ion-float-lg-end{float:left !important}[dir=rtl] .ion-float-lg-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-lg-end:dir(rtl){float:left !important}}}@media(min-width: 1200px){.ion-float-xl-left{float:left !important}.ion-float-xl-right{float:right !important}.ion-float-xl-start{float:left !important}:host-context([dir=rtl]) .ion-float-xl-start{float:right !important}[dir=rtl] .ion-float-xl-start{float:right !important}@supports selector(:dir(rtl)){.ion-float-xl-start:dir(rtl){float:right !important}}.ion-float-xl-end{float:right !important}:host-context([dir=rtl]) .ion-float-xl-end{float:left !important}[dir=rtl] .ion-float-xl-end{float:left !important}@supports selector(:dir(rtl)){.ion-float-xl-end:dir(rtl){float:left !important}}}
.ion-text-center{text-align:center !important}.ion-text-justify{text-align:justify !important}.ion-text-start{text-align:start !important}.ion-text-end{text-align:end !important}.ion-text-left{text-align:left !important}.ion-text-right{text-align:right !important}.ion-text-nowrap{white-space:nowrap !important}.ion-text-wrap{white-space:normal !important}@media(min-width: 576px){.ion-text-sm-center{text-align:center !important}.ion-text-sm-justify{text-align:justify !important}.ion-text-sm-start{text-align:start !important}.ion-text-sm-end{text-align:end !important}.ion-text-sm-left{text-align:left !important}.ion-text-sm-right{text-align:right !important}.ion-text-sm-nowrap{white-space:nowrap !important}.ion-text-sm-wrap{white-space:normal !important}}@media(min-width: 768px){.ion-text-md-center{text-align:center !important}.ion-text-md-justify{text-align:justify !important}.ion-text-md-start{text-align:start !important}.ion-text-md-end{text-align:end !important}.ion-text-md-left{text-align:left !important}.ion-text-md-right{text-align:right !important}.ion-text-md-nowrap{white-space:nowrap !important}.ion-text-md-wrap{white-space:normal !important}}@media(min-width: 992px){.ion-text-lg-center{text-align:center !important}.ion-text-lg-justify{text-align:justify !important}.ion-text-lg-start{text-align:start !important}.ion-text-lg-end{text-align:end !important}.ion-text-lg-left{text-align:left !important}.ion-text-lg-right{text-align:right !important}.ion-text-lg-nowrap{white-space:nowrap !important}.ion-text-lg-wrap{white-space:normal !important}}@media(min-width: 1200px){.ion-text-xl-center{text-align:center !important}.ion-text-xl-justify{text-align:justify !important}.ion-text-xl-start{text-align:start !important}.ion-text-xl-end{text-align:end !important}.ion-text-xl-left{text-align:left !important}.ion-text-xl-right{text-align:right !important}.ion-text-xl-nowrap{white-space:nowrap !important}.ion-text-xl-wrap{white-space:normal !important}}
.ion-text-uppercase{text-transform:uppercase !important}.ion-text-lowercase{text-transform:lowercase !important}.ion-text-capitalize{text-transform:capitalize !important}@media(min-width: 576px){.ion-text-sm-uppercase{text-transform:uppercase !important}.ion-text-sm-lowercase{text-transform:lowercase !important}.ion-text-sm-capitalize{text-transform:capitalize !important}}@media(min-width: 768px){.ion-text-md-uppercase{text-transform:uppercase !important}.ion-text-md-lowercase{text-transform:lowercase !important}.ion-text-md-capitalize{text-transform:capitalize !important}}@media(min-width: 992px){.ion-text-lg-uppercase{text-transform:uppercase !important}.ion-text-lg-lowercase{text-transform:lowercase !important}.ion-text-lg-capitalize{text-transform:capitalize !important}}@media(min-width: 1200px){.ion-text-xl-uppercase{text-transform:uppercase !important}.ion-text-xl-lowercase{text-transform:lowercase !important}.ion-text-xl-capitalize{text-transform:capitalize !important}}
.ion-align-content-start{align-content:flex-start !important}.ion-align-content-end{align-content:flex-end !important}.ion-align-content-center{align-content:center !important}.ion-align-content-between{align-content:space-between !important}.ion-align-content-around{align-content:space-around !important}.ion-align-content-stretch{align-content:stretch !important}@media(min-width: 576px){.ion-align-content-sm-start{align-content:flex-start !important}.ion-align-content-sm-end{align-content:flex-end !important}.ion-align-content-sm-center{align-content:center !important}.ion-align-content-sm-between{align-content:space-between !important}.ion-align-content-sm-around{align-content:space-around !important}.ion-align-content-sm-stretch{align-content:stretch !important}}@media(min-width: 768px){.ion-align-content-md-start{align-content:flex-start !important}.ion-align-content-md-end{align-content:flex-end !important}.ion-align-content-md-center{align-content:center !important}.ion-align-content-md-between{align-content:space-between !important}.ion-align-content-md-around{align-content:space-around !important}.ion-align-content-md-stretch{align-content:stretch !important}}@media(min-width: 992px){.ion-align-content-lg-start{align-content:flex-start !important}.ion-align-content-lg-end{align-content:flex-end !important}.ion-align-content-lg-center{align-content:center !important}.ion-align-content-lg-between{align-content:space-between !important}.ion-align-content-lg-around{align-content:space-around !important}.ion-align-content-lg-stretch{align-content:stretch !important}}@media(min-width: 1200px){.ion-align-content-xl-start{align-content:flex-start !important}.ion-align-content-xl-end{align-content:flex-end !important}.ion-align-content-xl-center{align-content:center !important}.ion-align-content-xl-between{align-content:space-between !important}.ion-align-content-xl-around{align-content:space-around !important}.ion-align-content-xl-stretch{align-content:stretch !important}}.ion-align-items-start{align-items:start !important}.ion-align-items-end{align-items:end !important}.ion-align-items-center{align-items:center !important}.ion-align-items-stretch{align-items:stretch !important}.ion-align-items-baseline{align-items:baseline !important}@media(min-width: 576px){.ion-align-items-sm-start{align-items:start !important}.ion-align-items-sm-end{align-items:end !important}.ion-align-items-sm-center{align-items:center !important}.ion-align-items-sm-stretch{align-items:stretch !important}.ion-align-items-sm-baseline{align-items:baseline !important}}@media(min-width: 768px){.ion-align-items-md-start{align-items:start !important}.ion-align-items-md-end{align-items:end !important}.ion-align-items-md-center{align-items:center !important}.ion-align-items-md-stretch{align-items:stretch !important}.ion-align-items-md-baseline{align-items:baseline !important}}@media(min-width: 992px){.ion-align-items-lg-start{align-items:start !important}.ion-align-items-lg-end{align-items:end !important}.ion-align-items-lg-center{align-items:center !important}.ion-align-items-lg-stretch{align-items:stretch !important}.ion-align-items-lg-baseline{align-items:baseline !important}}@media(min-width: 1200px){.ion-align-items-xl-start{align-items:start !important}.ion-align-items-xl-end{align-items:end !important}.ion-align-items-xl-center{align-items:center !important}.ion-align-items-xl-stretch{align-items:stretch !important}.ion-align-items-xl-baseline{align-items:baseline !important}}.ion-align-self-start{align-self:start !important}.ion-align-self-end{align-self:end !important}.ion-align-self-center{align-self:center !important}.ion-align-self-stretch{align-self:stretch !important}.ion-align-self-baseline{align-self:baseline !important}.ion-align-self-auto{align-self:auto !important}@media(min-width: 576px){.ion-align-self-sm-start{align-self:start !important}.ion-align-self-sm-end{align-self:end !important}.ion-align-self-sm-center{align-self:center !important}.ion-align-self-sm-stretch{align-self:stretch !important}.ion-align-self-sm-baseline{align-self:baseline !important}.ion-align-self-sm-auto{align-self:auto !important}}@media(min-width: 768px){.ion-align-self-md-start{align-self:start !important}.ion-align-self-md-end{align-self:end !important}.ion-align-self-md-center{align-self:center !important}.ion-align-self-md-stretch{align-self:stretch !important}.ion-align-self-md-baseline{align-self:baseline !important}.ion-align-self-md-auto{align-self:auto !important}}@media(min-width: 992px){.ion-align-self-lg-start{align-self:start !important}.ion-align-self-lg-end{align-self:end !important}.ion-align-self-lg-center{align-self:center !important}.ion-align-self-lg-stretch{align-self:stretch !important}.ion-align-self-lg-baseline{align-self:baseline !important}.ion-align-self-lg-auto{align-self:auto !important}}@media(min-width: 1200px){.ion-align-self-xl-start{align-self:start !important}.ion-align-self-xl-end{align-self:end !important}.ion-align-self-xl-center{align-self:center !important}.ion-align-self-xl-stretch{align-self:stretch !important}.ion-align-self-xl-baseline{align-self:baseline !important}.ion-align-self-xl-auto{align-self:auto !important}}.ion-justify-content-start{justify-content:flex-start !important}.ion-justify-content-end{justify-content:flex-end !important}.ion-justify-content-center{justify-content:center !important}.ion-justify-content-between{justify-content:space-between !important}.ion-justify-content-around{justify-content:space-around !important}.ion-justify-content-evenly{justify-content:space-evenly !important}@media(min-width: 576px){.ion-justify-content-sm-start{justify-content:flex-start !important}.ion-justify-content-sm-end{justify-content:flex-end !important}.ion-justify-content-sm-center{justify-content:center !important}.ion-justify-content-sm-between{justify-content:space-between !important}.ion-justify-content-sm-around{justify-content:space-around !important}.ion-justify-content-sm-evenly{justify-content:space-evenly !important}}@media(min-width: 768px){.ion-justify-content-md-start{justify-content:flex-start !important}.ion-justify-content-md-end{justify-content:flex-end !important}.ion-justify-content-md-center{justify-content:center !important}.ion-justify-content-md-between{justify-content:space-between !important}.ion-justify-content-md-around{justify-content:space-around !important}.ion-justify-content-md-evenly{justify-content:space-evenly !important}}@media(min-width: 992px){.ion-justify-content-lg-start{justify-content:flex-start !important}.ion-justify-content-lg-end{justify-content:flex-end !important}.ion-justify-content-lg-center{justify-content:center !important}.ion-justify-content-lg-between{justify-content:space-between !important}.ion-justify-content-lg-around{justify-content:space-around !important}.ion-justify-content-lg-evenly{justify-content:space-evenly !important}}@media(min-width: 1200px){.ion-justify-content-xl-start{justify-content:flex-start !important}.ion-justify-content-xl-end{justify-content:flex-end !important}.ion-justify-content-xl-center{justify-content:center !important}.ion-justify-content-xl-between{justify-content:space-between !important}.ion-justify-content-xl-around{justify-content:space-around !important}.ion-justify-content-xl-evenly{justify-content:space-evenly !important}}.ion-flex-row{flex-direction:row !important}.ion-flex-row-reverse{flex-direction:row-reverse !important}.ion-flex-column{flex-direction:column !important}.ion-flex-column-reverse{flex-direction:column-reverse !important}@media(min-width: 576px){.ion-flex-sm-row{flex-direction:row !important}.ion-flex-sm-row-reverse{flex-direction:row-reverse !important}.ion-flex-sm-column{flex-direction:column !important}.ion-flex-sm-column-reverse{flex-direction:column-reverse !important}}@media(min-width: 768px){.ion-flex-md-row{flex-direction:row !important}.ion-flex-md-row-reverse{flex-direction:row-reverse !important}.ion-flex-md-column{flex-direction:column !important}.ion-flex-md-column-reverse{flex-direction:column-reverse !important}}@media(min-width: 992px){.ion-flex-lg-row{flex-direction:row !important}.ion-flex-lg-row-reverse{flex-direction:row-reverse !important}.ion-flex-lg-column{flex-direction:column !important}.ion-flex-lg-column-reverse{flex-direction:column-reverse !important}}@media(min-width: 1200px){.ion-flex-xl-row{flex-direction:row !important}.ion-flex-xl-row-reverse{flex-direction:row-reverse !important}.ion-flex-xl-column{flex-direction:column !important}.ion-flex-xl-column-reverse{flex-direction:column-reverse !important}}.ion-wrap{flex-wrap:wrap !important}.ion-nowrap{flex-wrap:nowrap !important}.ion-wrap-reverse{flex-wrap:wrap-reverse !important}.ion-flex-wrap{flex-wrap:wrap !important}.ion-flex-nowrap{flex-wrap:nowrap !important}.ion-flex-wrap-reverse{flex-wrap:wrap-reverse !important}@media(min-width: 576px){.ion-flex-sm-wrap{flex-wrap:wrap !important}.ion-flex-sm-nowrap{flex-wrap:nowrap !important}.ion-flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}}@media(min-width: 768px){.ion-flex-md-wrap{flex-wrap:wrap !important}.ion-flex-md-nowrap{flex-wrap:nowrap !important}.ion-flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}}@media(min-width: 992px){.ion-flex-lg-wrap{flex-wrap:wrap !important}.ion-flex-lg-nowrap{flex-wrap:nowrap !important}.ion-flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}}@media(min-width: 1200px){.ion-flex-xl-wrap{flex-wrap:wrap !important}.ion-flex-xl-nowrap{flex-wrap:nowrap !important}.ion-flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}}.ion-flex-1{flex:1 1 !important}.ion-flex-auto{flex:auto !important}.ion-flex-initial{flex:initial !important}.ion-flex-none{flex:none !important}@media(min-width: 576px){.ion-flex-sm-1{flex:1 1 !important}.ion-flex-sm-auto{flex:auto !important}.ion-flex-sm-initial{flex:initial !important}.ion-flex-sm-none{flex:none !important}}@media(min-width: 768px){.ion-flex-md-1{flex:1 1 !important}.ion-flex-md-auto{flex:auto !important}.ion-flex-md-initial{flex:initial !important}.ion-flex-md-none{flex:none !important}}@media(min-width: 992px){.ion-flex-lg-1{flex:1 1 !important}.ion-flex-lg-auto{flex:auto !important}.ion-flex-lg-initial{flex:initial !important}.ion-flex-lg-none{flex:none !important}}@media(min-width: 1200px){.ion-flex-xl-1{flex:1 1 !important}.ion-flex-xl-auto{flex:auto !important}.ion-flex-xl-initial{flex:initial !important}.ion-flex-xl-none{flex:none !important}}.ion-flex-grow-0{flex-grow:0 !important}.ion-flex-grow-1{flex-grow:1 !important}.ion-flex-shrink-0{flex-shrink:0 !important}.ion-flex-shrink-1{flex-shrink:1 !important}@media(min-width: 576px){.ion-flex-sm-grow-0{flex-grow:0 !important}.ion-flex-sm-grow-1{flex-grow:1 !important}.ion-flex-sm-shrink-0{flex-shrink:0 !important}.ion-flex-sm-shrink-1{flex-shrink:1 !important}}@media(min-width: 768px){.ion-flex-md-grow-0{flex-grow:0 !important}.ion-flex-md-grow-1{flex-grow:1 !important}.ion-flex-md-shrink-0{flex-shrink:0 !important}.ion-flex-md-shrink-1{flex-shrink:1 !important}}@media(min-width: 992px){.ion-flex-lg-grow-0{flex-grow:0 !important}.ion-flex-lg-grow-1{flex-grow:1 !important}.ion-flex-lg-shrink-0{flex-shrink:0 !important}.ion-flex-lg-shrink-1{flex-shrink:1 !important}}@media(min-width: 1200px){.ion-flex-xl-grow-0{flex-grow:0 !important}.ion-flex-xl-grow-1{flex-grow:1 !important}.ion-flex-xl-shrink-0{flex-shrink:0 !important}.ion-flex-xl-shrink-1{flex-shrink:1 !important}}.ion-order-first{order:-1 !important}.ion-order-0{order:0 !important}.ion-order-1{order:1 !important}.ion-order-2{order:2 !important}.ion-order-3{order:3 !important}.ion-order-4{order:4 !important}.ion-order-5{order:5 !important}.ion-order-6{order:6 !important}.ion-order-7{order:7 !important}.ion-order-8{order:8 !important}.ion-order-9{order:9 !important}.ion-order-10{order:10 !important}.ion-order-11{order:11 !important}.ion-order-12{order:12 !important}.ion-order-last{order:13 !important}@media(min-width: 576px){.ion-order-sm-first{order:-1 !important}.ion-order-sm-0{order:0 !important}.ion-order-sm-1{order:1 !important}.ion-order-sm-2{order:2 !important}.ion-order-sm-3{order:3 !important}.ion-order-sm-4{order:4 !important}.ion-order-sm-5{order:5 !important}.ion-order-sm-6{order:6 !important}.ion-order-sm-7{order:7 !important}.ion-order-sm-8{order:8 !important}.ion-order-sm-9{order:9 !important}.ion-order-sm-10{order:10 !important}.ion-order-sm-11{order:11 !important}.ion-order-sm-12{order:12 !important}.ion-order-sm-last{order:13 !important}}@media(min-width: 768px){.ion-order-md-first{order:-1 !important}.ion-order-md-0{order:0 !important}.ion-order-md-1{order:1 !important}.ion-order-md-2{order:2 !important}.ion-order-md-3{order:3 !important}.ion-order-md-4{order:4 !important}.ion-order-md-5{order:5 !important}.ion-order-md-6{order:6 !important}.ion-order-md-7{order:7 !important}.ion-order-md-8{order:8 !important}.ion-order-md-9{order:9 !important}.ion-order-md-10{order:10 !important}.ion-order-md-11{order:11 !important}.ion-order-md-12{order:12 !important}.ion-order-md-last{order:13 !important}}@media(min-width: 992px){.ion-order-lg-first{order:-1 !important}.ion-order-lg-0{order:0 !important}.ion-order-lg-1{order:1 !important}.ion-order-lg-2{order:2 !important}.ion-order-lg-3{order:3 !important}.ion-order-lg-4{order:4 !important}.ion-order-lg-5{order:5 !important}.ion-order-lg-6{order:6 !important}.ion-order-lg-7{order:7 !important}.ion-order-lg-8{order:8 !important}.ion-order-lg-9{order:9 !important}.ion-order-lg-10{order:10 !important}.ion-order-lg-11{order:11 !important}.ion-order-lg-12{order:12 !important}.ion-order-lg-last{order:13 !important}}@media(min-width: 1200px){.ion-order-xl-first{order:-1 !important}.ion-order-xl-0{order:0 !important}.ion-order-xl-1{order:1 !important}.ion-order-xl-2{order:2 !important}.ion-order-xl-3{order:3 !important}.ion-order-xl-4{order:4 !important}.ion-order-xl-5{order:5 !important}.ion-order-xl-6{order:6 !important}.ion-order-xl-7{order:7 !important}.ion-order-xl-8{order:8 !important}.ion-order-xl-9{order:9 !important}.ion-order-xl-10{order:10 !important}.ion-order-xl-11{order:11 !important}.ion-order-xl-12{order:12 !important}.ion-order-xl-last{order:13 !important}}
.ion-hide{display:none !important}.ion-hide-up{display:none !important}.ion-hide-down{display:none !important}@media(min-width: 576px){.ion-hide-sm-up{display:none !important}}@media(max-width: 575.98px){.ion-hide-sm-down{display:none !important}}@media(min-width: 768px){.ion-hide-md-up{display:none !important}}@media(max-width: 767.98px){.ion-hide-md-down{display:none !important}}@media(min-width: 992px){.ion-hide-lg-up{display:none !important}}@media(max-width: 991.98px){.ion-hide-lg-down{display:none !important}}@media(min-width: 1200px){.ion-hide-xl-up{display:none !important}}@media(max-width: 1199.98px){.ion-hide-xl-down{display:none !important}}.ion-display-none{display:none !important}@media(min-width: 576px){.ion-display-sm-none{display:none !important}}@media(min-width: 768px){.ion-display-md-none{display:none !important}}@media(min-width: 992px){.ion-display-lg-none{display:none !important}}@media(min-width: 1200px){.ion-display-xl-none{display:none !important}}.ion-display-inline{display:inline !important}@media(min-width: 576px){.ion-display-sm-inline{display:inline !important}}@media(min-width: 768px){.ion-display-md-inline{display:inline !important}}@media(min-width: 992px){.ion-display-lg-inline{display:inline !important}}@media(min-width: 1200px){.ion-display-xl-inline{display:inline !important}}.ion-display-inline-block{display:inline-block !important}@media(min-width: 576px){.ion-display-sm-inline-block{display:inline-block !important}}@media(min-width: 768px){.ion-display-md-inline-block{display:inline-block !important}}@media(min-width: 992px){.ion-display-lg-inline-block{display:inline-block !important}}@media(min-width: 1200px){.ion-display-xl-inline-block{display:inline-block !important}}.ion-display-block{display:block !important}@media(min-width: 576px){.ion-display-sm-block{display:block !important}}@media(min-width: 768px){.ion-display-md-block{display:block !important}}@media(min-width: 992px){.ion-display-lg-block{display:block !important}}@media(min-width: 1200px){.ion-display-xl-block{display:block !important}}.ion-display-flex{display:flex !important}@media(min-width: 576px){.ion-display-sm-flex{display:flex !important}}@media(min-width: 768px){.ion-display-md-flex{display:flex !important}}@media(min-width: 992px){.ion-display-lg-flex{display:flex !important}}@media(min-width: 1200px){.ion-display-xl-flex{display:flex !important}}.ion-display-inline-flex{display:inline-flex !important}@media(min-width: 576px){.ion-display-sm-inline-flex{display:inline-flex !important}}@media(min-width: 768px){.ion-display-md-inline-flex{display:inline-flex !important}}@media(min-width: 992px){.ion-display-lg-inline-flex{display:inline-flex !important}}@media(min-width: 1200px){.ion-display-xl-inline-flex{display:inline-flex !important}}.ion-display-grid{display:grid !important}@media(min-width: 576px){.ion-display-sm-grid{display:grid !important}}@media(min-width: 768px){.ion-display-md-grid{display:grid !important}}@media(min-width: 992px){.ion-display-lg-grid{display:grid !important}}@media(min-width: 1200px){.ion-display-xl-grid{display:grid !important}}.ion-display-inline-grid{display:inline-grid !important}@media(min-width: 576px){.ion-display-sm-inline-grid{display:inline-grid !important}}@media(min-width: 768px){.ion-display-md-inline-grid{display:inline-grid !important}}@media(min-width: 992px){.ion-display-lg-inline-grid{display:inline-grid !important}}@media(min-width: 1200px){.ion-display-xl-inline-grid{display:inline-grid !important}}.ion-display-table{display:table !important}@media(min-width: 576px){.ion-display-sm-table{display:table !important}}@media(min-width: 768px){.ion-display-md-table{display:table !important}}@media(min-width: 992px){.ion-display-lg-table{display:table !important}}@media(min-width: 1200px){.ion-display-xl-table{display:table !important}}.ion-display-table-cell{display:table-cell !important}@media(min-width: 576px){.ion-display-sm-table-cell{display:table-cell !important}}@media(min-width: 768px){.ion-display-md-table-cell{display:table-cell !important}}@media(min-width: 992px){.ion-display-lg-table-cell{display:table-cell !important}}@media(min-width: 1200px){.ion-display-xl-table-cell{display:table-cell !important}}.ion-display-table-row{display:table-row !important}@media(min-width: 576px){.ion-display-sm-table-row{display:table-row !important}}@media(min-width: 768px){.ion-display-md-table-row{display:table-row !important}}@media(min-width: 992px){.ion-display-lg-table-row{display:table-row !important}}@media(min-width: 1200px){.ion-display-xl-table-row{display:table-row !important}}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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QkFFQSxjQUVBLGNBRUEsd0JBR0YsSUFDRSxXQUdGLElBQ0UsZTtBQ2xHRixnQkFDRSxtQkFDQSxpQkFDQSxpQkFDQSxvQlBzVEUsY09wVGUsQ1BxVGYsZU9yVGUsQ1B5VWpCLGFPelVpQixDUDBVakIsZ0JPMVVpQixDQUduQixhQUNFLDBDQUNBLHdDQUNBLHdDQUNBLDJDUGtURSx5Qk9yVU0sQ1BxVU4sNkNPclVNLENQdVVOLHVCT3ZVTSxDUHVVTiwyQ092VU0sQ1BxVlIsZ0JPclZRLENQcVZSLG9DT3JWUSxDUHNWUixtQk90VlEsQ1BzVlIsdUNPdFZRLENBd0JWLGlCQUNFLHdDUDRUQSxnQk9yVlEsQ1BxVlIsb0NPclZRLENBOEJWLG1CQUNFLDBDUHNTRSx5Qk9yVU0sQ1BxVU4sNkNPclVNLENBb0NWLGlCQUNFLHdDUGtTRSx1Qk92VU0sQ1B1VU4sMkNPdlVNLENBMENWLG9CQUNFLDJDUDJTQSxtQk90VlEsQ1BzVlIsdUNPdFZRLENBZ0RWLHNCQUNFLHdDQUNBLDJDUG1TQSxnQk9yVlEsQ1BxVlIsb0NPclZRLENQc1ZSLG1CT3RWUSxDUHNWUix1Q090VlEsQ0F1RFYsd0JBQ0UsMENBQ0Esd0NQNFFFLHlCT3JVTSxDUHFVTiw2Q09yVU0sQ1B1VU4sdUJPdlVNLENQdVVOLDJDT3ZVTSxDQWtFVixlQUNFLGtCQUNBLGdCQUNBLGdCQUNBLG1CUDBQRSxhT3hQYyxDUHlQZCxjT3pQYyxDUDZRaEIsWU83UWdCLENQOFFoQixlTzlRZ0IsQ0FHbEIsWUFDRSx3Q0FDQSxzQ0FDQSxzQ0FDQSx5Q1BzUEUsd0JPcFVLLENQb1VMLDJDT3BVSyxDUHNVTCxzQk90VUssQ1BzVUwseUNPdFVLLENQb1ZQLGVPcFZPLENQb1ZQLGtDT3BWTyxDUHFWUCxrQk9yVk8sQ1BxVlAscUNPclZPLENBbUZULGdCQUNFLHNDUGdRQSxlT3BWTyxDUG9WUCxrQ09wVk8sQ0F5RlQsa0JBQ0Usd0NQME9FLHdCT3BVSyxDUG9VTCwyQ09wVUssQ0ErRlQsZ0JBQ0Usc0NQc09FLHNCT3RVSyxDUHNVTCx5Q090VUssQ0FxR1QsbUJBQ0UseUNQ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WmtMRiw0QlkzS0Esa0JBQ0UseUJaaUlGLDBCWTFJQSxnQkFDRSx5QlprTEYsNkJZM0tBLGtCQUNFLHlCQXdCQSxrQkFDRSx3Qlp3R0oseUJZekdFLHFCQUNFLHlCWndHSix5Qll6R0UscUJBQ0UseUJad0dKLHlCWXpHRSxxQkFDRSx5Qlp3R0osMEJZekdFLHFCQUNFLHlCQURGLG9CQUNFLDBCWndHSix5Qll6R0UsdUJBQ0UsMkJad0dKLHlCWXpHRSx1QkFDRSwyQlp3R0oseUJZekdFLHVCQUNFLDJCWndHSiwwQll6R0UsdUJBQ0UsMkJBREYsMEJBQ0UsZ0Nad0dKLHlCWXpHRSw2QkFDRSxpQ1p3R0oseUJZekdFLDZCQUNFLGlDWndHSix5Qll6R0UsNkJBQ0UsaUNad0dKLDBCWXpHRSw2QkFDRSxpQ0FERixtQkFDRSx5Qlp3R0oseUJZekdFLHNCQUNFLDBCWndHSix5Qll6R0Usc0JBQ0UsMEJad0dKLHlCWXpHRSxzQkFDRSwwQlp3R0osMEJZekdFLHNCQUNFLDBCQURGLGtCQUNFLHdCWndHSix5Qll6R0UscUJBQ0UseUJad0dKLHlCWXpHRSxxQkFDRSx5Qlp3R0oseUJZekdFLHFCQUNFLHlCWndHSiwwQll6R0UscUJBQ0UseUJBREYseUJBQ0UsK0Jad0dKLHlCWXpHRSw0QkFDRSxnQ1p3R0oseUJZekdFLDRCQUNFLGdDWndHSix5Qll6R0UsNEJBQ0UsZ0Nad0dKLDBCWXpHRSw0QkFDRSxnQ0FERixrQkFDRSx3Qlp3R0oseUJZekdFLHFCQUNFLHlCWndHSix5Qll6R0UscUJBQ0UseUJad0dKLHlCWXpHRSxxQkFDRSx5Qlp3R0osMEJZekdFLHFCQUNFLHlCQURGLHlCQUNFLCtCWndHSix5Qll6R0UsNEJBQ0UsZ0Nad0dKLHlCWXpHRSw0QkFDRSxnQ1p3R0oseUJZekdFLDRCQUNFLGdDWndHSiwwQll6R0UsNEJBQ0UsZ0NBREYsbUJBQ0UseUJad0dKLHlCWXpHRSxzQkFDRSwwQlp3R0oseUJZekdFLHNCQUNFLDBCWndHSix5Qll6R0Usc0JBQ0UsMEJad0dKLDBCWXpHRSxzQkFDRSwwQkFERix3QkFDRSw4Qlp3R0oseUJZekdFLDJCQUNFLCtCWndHSix5Qll6R0UsMkJBQ0UsK0Jad0dKLHlCWXpHRSwyQkFDRSwrQlp3R0osMEJZekdFLDJCQUNFLCtCQURGLHVCQUNFLDZCWndHSix5Qll6R0UsMEJBQ0UsOEJad0dKLHlCWXpHRSwwQkFDRSw4Qlp3R0oseUJZekdFLDBCQUNFLDhCWndHSiwwQll6R0UsMEJBQ0UsOEIiLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvZGlzdC9ja2VkaXRvcjUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9pbmRleC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9nbG9iYWxzL2dsb2JhbHMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvZ2xvYmFscy9fY29sb3JzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX2Rpc2FibGVkLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX2ZvY3VzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX2ZvbnRzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX3Jlc2V0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX3JvdW5kZWQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvZ2xvYmFscy9fc2hhZG93LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2dsb2JhbHMvX3NwYWNpbmcuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvbm9kZV9tb2R1bGVzL0Bja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9taXhpbnMvX3JvdW5kZWQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9ub2RlX21vZHVsZXMvQGNrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL21peGlucy9fc2hhZG93LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19yb3VuZGVkLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19zaGFkb3cuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19mb2N1cy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL21peGlucy9fZGlzYWJsZWQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvbWl4aW5zL19idXR0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9ub2RlX21vZHVsZXMvQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2J1dHRvbi9zd2l0Y2hidXR0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9idXR0b24vbGlzdGl0ZW1idXR0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9jb2xsYXBzaWJsZS9jb2xsYXBzaWJsZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2NvbG9yZ3JpZC9jb2xvcmdyaWQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9ub2RlX21vZHVsZXMvQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX21lZGlhY29sb3JzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvY29sb3JzZWxlY3Rvci9jb2xvcnNlbGVjdG9yLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L25vZGVfbW9kdWxlcy9AY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZ2FjdGlvbnMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL2xpc3Rkcm9wZG93bi5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL3NwbGl0YnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vdG9vbGJhcmRyb3Bkb3duLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVidXR0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudWxpc3RpdGVtLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVsaXN0aXRlbWJ1dHRvbi5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL21lbnUvZHJvcGRvd25tZW51cGFuZWwuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9lZGl0b3J1aS9hY2Nlc3NpYmlsaXR5aGVscC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2VkaXRvcnVpL2VkaXRvcnVpLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZm9ybWhlYWRlci9mb3JtaGVhZGVyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvaWNvbi9pY29uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9sYWJlbC9sYWJlbC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2xhYmVsZWRmaWVsZC9sYWJlbGVkZmllbGR2aWV3LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbGFiZWxlZGlucHV0L2xhYmVsZWRpbnB1dC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2xpc3QvbGlzdC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXJtZW51YnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudWxpc3RpdGVtLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudWxpc3RpdGVtYnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudXBhbmVsLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcGFuZWwvYmFsbG9vbnBhbmVsLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcGFuZWwvYmFsbG9vbnJvdGF0b3IuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9wYW5lbC9mYWtlcGFuZWwuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9wYW5lbC9zdGlja3lwYW5lbC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3Jlc3BvbnNpdmUtZm9ybS9yZXNwb25zaXZlZm9ybS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3NlYXJjaC9zZWFyY2guY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy90ZXh0YXJlYS90ZXh0YXJlYS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3Rvb2xiYXIvYmxvY2t0b29sYmFyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWVkaXRvci1jbGFzc2ljL2NsYXNzaWNlZGl0b3IuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtYm9va21hcmsvYm9va21hcmsuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtY2xpcGJvYXJkL2NsaXBib2FyZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1jb2RlLWJsb2NrL2NvZGVibG9jay5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1lbmdpbmUvcGxhY2Vob2xkZXIuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtZmluZC1hbmQtcmVwbGFjZS9maW5kYW5kcmVwbGFjZWZvcm0uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtaGVhZGluZy9oZWFkaW5nLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWhvcml6b250YWwtbGluZS9ob3Jpem9udGFsbGluZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1odG1sLWVtYmVkL2h0bWxlbWJlZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1pbWFnZS9pbWFnZWluc2VydC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1pbWFnZS9pbWFnZXVwbG9hZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1pbWFnZS9pbWFnZXVwbG9hZGljb24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtaW1hZ2UvaW1hZ2V1cGxvYWRsb2FkZXIuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtaW1hZ2UvaW1hZ2V1cGxvYWRwcm9ncmVzcy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1saW5rL2xpbmsuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbGluay9saW5rYWN0aW9ucy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L25vZGVfbW9kdWxlcy9AY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fdW5zZWxlY3RhYmxlLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LWxpbmsvbGlua2Zvcm0uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbGluay9saW5raW1hZ2UuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbGlzdC9saXN0cHJvcGVydGllcy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1saXN0L2xpc3RzdHlsZXMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbWVkaWEtZW1iZWQvbWVkaWFlbWJlZGVkaXRpbmcuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtbWVudGlvbi9tZW50aW9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXJlc3RyaWN0ZWQtZWRpdGluZy9yZXN0cmljdGVkZWRpdGluZy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvY2hhcmFjdGVyZ3JpZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvY2hhcmFjdGVyaW5mby5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvc3BlY2lhbGNoYXJhY3RlcnMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtc3R5bGUvc3R5bGUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtc3R5bGUvc3R5bGVncmlkLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXN0eWxlL3N0eWxlZ3JvdXAuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtc3R5bGUvc3R5bGVwYW5lbC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS9jb2xvcmlucHV0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXRhYmxlL2Zvcm0uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdGFibGUvZm9ybXJvdy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS9pbnNlcnR0YWJsZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS90YWJsZWNlbGxwcm9wZXJ0aWVzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXRhYmxlL3RhYmxlZWRpdGluZy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS10YWJsZS90YWJsZWZvcm0uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtdGFibGUvdGFibGVwcm9wZXJ0aWVzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXRhYmxlL3RhYmxlc2VsZWN0aW9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvY2tlZGl0b3I1LXdpZGdldC93aWRnZXQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9ja2VkaXRvcjUtd2lkZ2V0L3dpZGdldHJlc2l6ZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL2NrZWRpdG9yNS13aWRnZXQvd2lkZ2V0dHlwZWFyb3VuZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1iYXNpYy1zdHlsZXMvdGhlbWUvY29kZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1ibG9jay1xdW90ZS90aGVtZS9ibG9ja3F1b3RlLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWJvb2ttYXJrL3RoZW1lL2Jvb2ttYXJrLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWJvb2ttYXJrL3RoZW1lL2Jvb2ttYXJrZm9ybS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1ib29rbWFyay90aGVtZS9ib29rbWFya2FjdGlvbnMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtY2tib3gvdGhlbWUvY2tib3hpbWFnZWVkaXQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtY2xpcGJvYXJkL3RoZW1lL2NsaXBib2FyZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1jb2RlLWJsb2NrL3RoZW1lL2NvZGVibG9jay5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1lZGl0b3ItY2xhc3NpYy90aGVtZS9jbGFzc2ljZWRpdG9yLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWVkaXRvci1pbmxpbmUvdGhlbWUvaW5saW5lZWRpdG9yLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWVtb2ppL3RoZW1lL2Vtb2ppZ3JpZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1lbW9qaS90aGVtZS9lbW9qaWNhdGVnb3JpZXMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtZW1vamkvdGhlbWUvZW1vaml0b25lLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWVtb2ppL3RoZW1lL2Vtb2ppcGlja2VyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWVuZ2luZS90aGVtZS9wbGFjZWhvbGRlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1lbmdpbmUvdGhlbWUvcmVuZGVyZXIuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtZmluZC1hbmQtcmVwbGFjZS90aGVtZS9maW5kYW5kcmVwbGFjZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1maW5kLWFuZC1yZXBsYWNlL3RoZW1lL2ZpbmRhbmRyZXBsYWNlZm9ybS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1mb250L3RoZW1lL2ZvbnRzaXplLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWhlYWRpbmcvdGhlbWUvaGVhZGluZy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1oaWdobGlnaHQvdGhlbWUvaGlnaGxpZ2h0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWhvcml6b250YWwtbGluZS90aGVtZS9ob3Jpem9udGFsbGluZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1odG1sLWVtYmVkL3RoZW1lL2h0bWxlbWJlZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1odG1sLXN1cHBvcnQvdGhlbWUvZGF0YWZpbHRlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZWNhcHRpb24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtaW1hZ2UvdGhlbWUvaW1hZ2VpbnNlcnQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtaW1hZ2UvdGhlbWUvaW1hZ2VyZXNpemUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtaW1hZ2UvdGhlbWUvaW1hZ2VjdXN0b21yZXNpemVmb3JtLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWltYWdlL3RoZW1lL2ltYWdlc3R5bGUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtaW1hZ2UvdGhlbWUvdGV4dGFsdGVybmF0aXZlZm9ybS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZXVwbG9hZHByb2dyZXNzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWltYWdlL3RoZW1lL2ltYWdldXBsb2FkaWNvbi5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZXVwbG9hZGxvYWRlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1pbWFnZS90aGVtZS9pbWFnZXBsYWNlaG9sZGVyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWxpbmsvdGhlbWUvbGlua2ltYWdlLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWxpbmsvdGhlbWUvbGlua2FjdGlvbnMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtbGluay90aGVtZS9saW5rZm9ybS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1saXN0L3RoZW1lL2RvY3VtZW50bGlzdC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1saXN0L3RoZW1lL2xpc3RzdHlsZXMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtbGlzdC90aGVtZS9saXN0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LWxpc3QvdGhlbWUvdG9kb2xpc3QuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtbWVkaWEtZW1iZWQvdGhlbWUvbWVkaWFlbWJlZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC90aGVtZS9tZWRpYWVtYmVkZWRpdGluZy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL3Jlc3BvbnNpdmUtZm9ybS9yZXNwb25zaXZlZm9ybS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC90aGVtZS9tZWRpYWZvcm0uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtbWVudGlvbi90aGVtZS9tZW50aW9udWkuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtbWluaW1hcC90aGVtZS9taW5pbWFwLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXBhZ2UtYnJlYWsvdGhlbWUvcGFnZWJyZWFrLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXNob3ctYmxvY2tzL3RoZW1lL3Nob3dibG9ja3MuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtc291cmNlLWVkaXRpbmcvdGhlbWUvc291cmNlZWRpdGluZy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L25vZGVfbW9kdWxlcy9AY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19mb2N1cy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvdGhlbWUvY2hhcmFjdGVyZ3JpZC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvdGhlbWUvY2hhcmFjdGVyaW5mby5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvdGhlbWUvc3BlY2lhbGNoYXJhY3RlcnMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtc3R5bGUvdGhlbWUvc3R5bGVncmlkLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL3RhYmxlLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL2luc2VydHRhYmxlLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL2Zvcm1yb3cuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGFibGUvdGhlbWUvdGFibGVjZWxscHJvcGVydGllcy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10YWJsZS90aGVtZS9jb2xvcmlucHV0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL3RhYmxlZm9ybS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS10YWJsZS90aGVtZS90YWJsZXByb3BlcnRpZXMuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdGFibGUvdGhlbWUvdGFibGVjYXB0aW9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXRhYmxlL3RoZW1lL3RhYmxlY29sdW1ucmVzaXplLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2dsb2JhbHMvZ2xvYmFscy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9nbG9iYWxzL19oaWRkZW4uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvZ2xvYmFscy9femluZGV4LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2dsb2JhbHMvX3RyYW5zaXRpb24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvZ2xvYmFscy9fcG93ZXJlZGJ5LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2dsb2JhbHMvX2V2YWx1YXRpb25iYWRnZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL191bnNlbGVjdGFibGUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9idXR0b24vc3dpdGNoYnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvYnV0dG9uL2xpc3RpdGVtYnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvY29sbGFwc2libGUvY29sbGFwc2libGUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9jb2xvcmdyaWQvY29sb3JncmlkLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXIuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9jb2xvcnNlbGVjdG9yL2NvbG9yc2VsZWN0b3IuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nYWN0aW9ucy5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2cuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2Ryb3Bkb3duL3NwbGl0YnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvZHJvcGRvd24vdG9vbGJhcmRyb3Bkb3duLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVidXR0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudXBhbmVsLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9hcmlhbGl2ZWFubm91bmNlci9hcmlhbGl2ZWFubm91bmNlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2Zvcm1oZWFkZXIvZm9ybWhlYWRlci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2ljb24vaWNvbi5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvbGFiZWxlZGZpZWxkL2xhYmVsZWRmaWVsZHZpZXcuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9saXN0L2xpc3QuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9wYW5lbC9iYWxsb29ucGFuZWwuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9wYW5lbC9iYWxsb29ucm90YXRvci5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL3BhbmVsL2Zha2VwYW5lbC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL3BhbmVsL3N0aWNreXBhbmVsLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS11aS90aGVtZS9jb21wb25lbnRzL3NlYXJjaC9zZWFyY2guY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9oaWdobGlnaHRlZHRleHQvaGlnaGxpZ2h0ZWR0ZXh0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvc3Bpbm5lci9zcGlubmVyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvdG9vbGJhci9ibG9ja3Rvb2xiYXIuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtdWkvdGhlbWUvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXJtZW51YnV0dG9uLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudXBhbmVsLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXVpL3RoZW1lL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tlZGl0b3I1L3BhY2thZ2VzL2NrZWRpdG9yNS13aWRnZXQvdGhlbWUvd2lkZ2V0LmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja2VkaXRvcjUvcGFja2FnZXMvY2tlZGl0b3I1LXdpZGdldC90aGVtZS93aWRnZXRyZXNpemUuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2NrZWRpdG9yNS9wYWNrYWdlcy9ja2VkaXRvcjUtd2lkZ2V0L3RoZW1lL3dpZGdldHR5cGVhcm91bmQuY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0LWRhdGVwaWNrZXIvZGlzdC9yZWFjdC1kYXRlcGlja2VyLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy92aWRlby5qcy9kaXN0L3ZpZGVvLWpzLmNzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1sb2FkaW5nLXNrZWxldG9uL2Rpc3Qvc2tlbGV0b24uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bpb25pYy9yZWFjdC9zcmMvY3NzL2NvcmUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AaW9uaWMvcmVhY3Qvc3JjL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwudmFycy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bpb25pYy9yZWFjdC9zcmMvdGhlbWVzL2lvbmljLm1peGlucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bpb25pYy9yZWFjdC9zcmMvdGhlbWVzL2lvbmljLmdsb2JhbHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AaW9uaWMvcmVhY3Qvc3JjL2NvbXBvbmVudHMvbWVudS9tZW51Lmlvcy52YXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGlvbmljL3JlYWN0L3NyYy9jb21wb25lbnRzL21lbnUvbWVudS5tZC52YXJzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGlvbmljL3JlYWN0L3NyYy9jc3Mvbm9ybWFsaXplLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGlvbmljL3JlYWN0L3NyYy9jc3Mvc3RydWN0dXJlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGlvbmljL3JlYWN0L3NyYy9jc3MvdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bpb25pYy9yZWFjdC9zcmMvY3NzL3BhZGRpbmcuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AaW9uaWMvcmVhY3Qvc3JjL2Nzcy9mbG9hdC1lbGVtZW50cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bpb25pYy9yZWFjdC9zcmMvY3NzL3RleHQtYWxpZ25tZW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvQGlvbmljL3JlYWN0L3NyYy9jc3MvdGV4dC10cmFuc2Zvcm1hdGlvbi5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL0Bpb25pYy9yZWFjdC9zcmMvY3NzL2ZsZXgtdXRpbHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9AaW9uaWMvcmVhY3Qvc3JjL2Nzcy9kaXNwbGF5LnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogUmVzZXQgKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZDogXHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgOTglKTtcblx0LS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDEwMCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMjIwLCA2JSwgODElKTtcblx0LS1jay1jb2xvci1iYXNlLWFjdGlvbjogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDEwNCwgNTAuMiUsIDQyLjUlKTtcblx0LS1jay1jb2xvci1iYXNlLWZvY3VzOiBcdFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgyMDksIDkyJSwgNzAlKTtcblx0LS1jay1jb2xvci1iYXNlLXRleHQ6IFx0XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCAyMCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYWN0aXZlOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMjE4LjEsIDEwMCUsIDU4JSk7XG5cdC0tY2stY29sb3ItYmFzZS1hY3RpdmUtZm9jdXM6XHRcdFx0XHRcdFx0XHRcdGhzbCgyMTguMiwgMTAwJSwgNTIuNSUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtZXJyb3I6XHRcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTUsIDEwMCUsIDQzJSk7XG5cblx0LyogLS0gR2VuZXJpYyBjb2xvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1mb2N1cy1ib3JkZXItY29vcmRpbmF0ZXM6IFx0XHRcdFx0XHRcdDIxOCwgODEuOCUsIDU2LjklO1xuXHQtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlcykpO1xuXHQtLWNrLWNvbG9yLWZvY3VzLW91dGVyLXNoYWRvdzpcdFx0XHRcdFx0XHRcdFx0aHNsKDIxMi40LCA4OS4zJSwgODklKTtcblx0LS1jay1jb2xvci1mb2N1cy1kaXNhYmxlZC1zaGFkb3c6XHRcdFx0XHRcdFx0XHRoc2xhKDIwOSwgOTAlLCA3MiUsLjMpO1xuXHQtLWNrLWNvbG9yLWZvY3VzLWVycm9yLXNoYWRvdzpcdFx0XHRcdFx0XHRcdFx0aHNsYSg5LDEwMCUsNTYlLC4zKTtcblx0LS1jay1jb2xvci10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0LS1jay1jb2xvci1zaGFkb3ctZHJvcDogXHRcdFx0XHRcdFx0XHRcdFx0aHNsYSgwLCAwJSwgMCUsIDAuMTUpO1xuXHQtLWNrLWNvbG9yLXNoYWRvdy1kcm9wLWFjdGl2ZTpcdFx0XHRcdFx0XHRcdFx0aHNsYSgwLCAwJSwgMCUsIDAuMik7XG5cdC0tY2stY29sb3Itc2hhZG93LWlubmVyOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2xhKDAsIDAlLCAwJSwgMC4xKTtcblxuXHQvKiAtLSBCdXR0b25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdHRyYW5zcGFyZW50O1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQ6IFx0XHRcdFx0aHNsKDAsIDAlLCA5NC4xJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWJhY2tncm91bmQ6IFx0XHRcdFx0aHNsKDAsIDAlLCA5NC4xJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtZGlzYWJsZWQtYmFja2dyb3VuZDogXHRcdFx0XHR0cmFuc3BhcmVudDtcblxuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdGhzbCgyMTIsIDEwMCUsIDk3LjElKTtcblx0LS1jay1jb2xvci1idXR0b24tb24taG92ZXItYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0aHNsKDIxMS43LCAxMDAlLCA5Mi45JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWFjdGl2ZS1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0aHNsKDIxMS43LCAxMDAlLCA5Mi45JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWRpc2FibGVkLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRoc2woMjExLCAxNSUsIDk1JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWNvbG9yOlx0XHRcdFx0XHRcdFx0XHRcdGhzbCgyMTguMSwgMTAwJSwgNTglKTtcblxuXG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWFjdGlvbik7XG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0aHNsKDEwNCwgNTMuMiUsIDQwLjIlKTtcblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLWFjdGl2ZS1iYWNrZ3JvdW5kOiBcdFx0XHRcdGhzbCgxMDQsIDUzLjIlLCA0MC4yJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBcdFx0XHRcdGhzbCgxMDQsIDQ0JSwgNTglKTtcblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLXRleHQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdC0tY2stY29sb3ItYnV0dG9uLXNhdmU6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgxMjAsIDEwMCUsIDI3JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWNhbmNlbDogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDE1LCAxMDAlLCA0MyUpO1xuXG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vZmYtYmFja2dyb3VuZDpcdFx0XHRcdFx0aHNsKDAsIDAlLCA1Ny42JSk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vZmYtaG92ZXItYmFja2dyb3VuZDpcdFx0XHRcdGhzbCgwLCAwJSwgNDklKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9uLWJhY2tncm91bmQ6XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9uLWhvdmVyLWJhY2tncm91bmQ6XHRcdFx0XHRoc2woMTA0LCA1My4yJSwgNDAuMiUpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24taW5uZXItYmFja2dyb3VuZDpcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLWlubmVyLXNoYWRvdzpcdFx0XHRcdFx0XHRoc2xhKDAsIDAlLCAwJSwgMC4xKTtcblxuXHQvKiAtLSBEcm9wZG93biAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHQvKiAtLSBEaWFsb2cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWRpYWxvZy1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY3VzdG9tLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWRpYWxvZy1mb3JtLWhlYWRlci1ib3JkZXI6IFx0XHRcdFx0XHRcdHZhcigtLWNrLWN1c3RvbS1ib3JkZXIpO1xuXG5cdC8qIC0tIElucHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItaW5wdXQtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItaW5wdXQtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdC0tY2stY29sb3ItaW5wdXQtZXJyb3ItYm9yZGVyOlx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcblx0LS1jay1jb2xvci1pbnB1dC10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA5NSUpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJvcmRlcjogXHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtdGV4dDogXHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDQ2JSk7XG5cblx0LyogLS0gTGlzdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1saXN0LWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQ6IFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1idXR0b24tb24tY29sb3IpO1xuXHQtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLWJhY2tncm91bmQtZm9jdXM6IFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWNvbG9yKTtcblx0LS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi10ZXh0Olx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdC8qIC0tIFBhbmVsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItcGFuZWwtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0LyogLS0gVG9vbGJhciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci10b29sYmFyLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0LyogLS0gVG9vbHRpcCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci10b29sdGlwLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHQtLWNrLWNvbG9yLXRvb2x0aXAtdGV4dDogXHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHQvKiAtLSBFbmdpbmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWVuZ2luZS1wbGFjZWhvbGRlci10ZXh0OiBcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDQ0JSk7XG5cblx0LyogLS0gVXBsb2FkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci11cGxvYWQtYmFyLWJhY2tncm91bmQ6XHRcdCBcdFx0XHRcdFx0aHNsKDIwOSwgOTIlLCA3MCUpO1xuXG5cdC8qIC0tIExpbmsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWxpbmstZGVmYXVsdDpcdFx0XHRcdFx0XHRcdFx0XHRoc2woMjQwLCAxMDAlLCA0NyUpO1xuXHQtLWNrLWNvbG9yLWxpbmstc2VsZWN0ZWQtYmFja2dyb3VuZDpcdFx0XHRcdFx0XHRoc2xhKDIwMSwgMTAwJSwgNTYlLCAwLjEpO1xuXHQtLWNrLWNvbG9yLWxpbmstZmFrZS1zZWxlY3Rpb246XHRcdFx0XHRcdFx0XHRcdGhzbGEoMjAxLCAxMDAlLCA1NiUsIDAuMyk7XG5cblx0LyogLS0gU2VhcmNoIHJlc3VsdCBoaWdobGlnaHQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItaGlnaGxpZ2h0LWJhY2tncm91bmQ6XHRcdFx0XHRcdFx0XHRoc2woNjAsIDEwMCUsIDUwJSk7XG5cblx0LyogLS0gR2VuZXJpYyBjb2xvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItbGlnaHQtcmVkOlx0XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDAsIDEwMCUsIDkwJSk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQvKipcblx0ICogQW4gb3BhY2l0eSB2YWx1ZSBvZiBkaXNhYmxlZCBVSSBpdGVtLlxuXHQgKi9cblx0LS1jay1kaXNhYmxlZC1vcGFjaXR5OiAuNTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC8qKlxuXHQgKiBUaGUgZ2VvbWV0cnkgb2YgdGhlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdy5cblx0ICovXG5cdC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5OiAwIDAgMCAzcHg7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdy5cblx0ICovXG5cdC0tY2stZm9jdXMtb3V0ZXItc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnkpIHZhcigtLWNrLWNvbG9yLWZvY3VzLW91dGVyLXNoYWRvdyk7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdyAod2hlbiBkaXNhYmxlZCkuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLWRpc2FibGVkLW91dGVyLXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5KSB2YXIoLS1jay1jb2xvci1mb2N1cy1kaXNhYmxlZC1zaGFkb3cpO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBvdXRlciBzaGFkb3cgKHdoZW4gaGFzIGVycm9ycykuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLWVycm9yLW91dGVyLXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5KSB2YXIoLS1jay1jb2xvci1mb2N1cy1lcnJvci1zaGFkb3cpO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIgb3Igb3V0bGluZS5cblx0ICovXG5cdC0tY2stZm9jdXMtcmluZzogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWZvbnQtc2l6ZS1iYXNlOiAxM3B4O1xuXHQtLWNrLWxpbmUtaGVpZ2h0LWJhc2U6IDEuODQ2MTU7XG5cdC0tY2stZm9udC1mYWNlOiBIZWx2ZXRpY2EsIEFyaWFsLCBUYWhvbWEsIFZlcmRhbmEsIFNhbnMtU2VyaWY7XG5cblx0LS1jay1mb250LXNpemUtdGlueTogMC43ZW07XG5cdC0tY2stZm9udC1zaXplLXNtYWxsOiAwLjc1ZW07XG5cdC0tY2stZm9udC1zaXplLW5vcm1hbDogMWVtO1xuXHQtLWNrLWZvbnQtc2l6ZS1iaWc6IDEuNGVtO1xuXHQtLWNrLWZvbnQtc2l6ZS1sYXJnZTogMS44ZW07XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQvKiBUaGlzIGlzIHN1cGVyLWltcG9ydGFudC4gVGhpcyBpcyAqKm1hbnVhbGx5KiogYWRqdXN0ZWQgc28gYSBidXR0b24gd2l0aG91dCBhbiBpY29uXG5cdGlzIG5ldmVyIHNtYWxsZXIgdGhhbiBhIGJ1dHRvbiB3aXRoIGljb24sIGFkZGl0aW9uYWxseSBtYWtpbmcgc3VyZSB0aGF0IHRleHQtbGVzcyBidXR0b25zXG5cdGFyZSBwZXJmZWN0IHNxdWFyZXMuIFRoZSB2YWx1ZSBpcyBhbHNvIHNoYXJlZCBieSBvdGhlciBjb21wb25lbnRzIHdoaWNoIHNob3VsZCBzdGF5IFwiaW4tbGluZVwiXG5cdHdpdGggYnV0dG9ucy4gKi9cblx0LS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodDogMi4zZW07XG59XG4vKipcbiAqIFJlc2V0cyBhbiBlbGVtZW50LCBpZ25vcmluZyBpdHMgY2hpbGRyZW4uXG4gKi9cbi5jay5jay1yZXNldCxcbi5jay5jay1yZXNldF9hbGwsXG4uY2stcmVzZXRfYWxsICo6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR3aWR0aDogYXV0bztcblx0aGVpZ2h0OiBhdXRvO1xuXHRwb3NpdGlvbjogc3RhdGljO1xuXG5cdC8qIERvIG5vdCBpbmNsdWRlIGluaGVyaXRhYmxlIHJ1bGVzIGhlcmUuICovXG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR0cmFuc2l0aW9uOiBub25lO1xuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTA1ICovXG5cdHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cbi8qKlxuICogUmVzZXRzIGFuIGVsZW1lbnQgQU5EIGl0cyBjaGlsZHJlbi5cbiAqL1xuLmNrLmNrLXJlc2V0X2FsbCxcbi5jay1yZXNldF9hbGwgKjpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdC8qIFRoZXNlIGFyZSBydWxlIGluaGVyaXRlZCBieSBhbGwgY2hpbGRyZW4gZWxlbWVudHMuICovXG5cdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKS92YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKSB2YXIoLS1jay1mb250LWZhY2UpO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdGN1cnNvcjogYXV0bztcblx0ZmxvYXQ6IG5vbmU7XG59XG4uY2stcmVzZXRfYWxsIC5jay1ydGwgKjpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cbi5jay1yZXNldF9hbGwgaWZyYW1lOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHQvKiBGb3IgSUUgKi9cblx0XHR2ZXJ0aWNhbC1hbGlnbjogaW5oZXJpdDtcblx0fVxuLmNrLXJlc2V0X2FsbCB0ZXh0YXJlYTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xuXHR9XG4uY2stcmVzZXRfYWxsIHRleHRhcmVhOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopLFxuXHQuY2stcmVzZXRfYWxsIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopLFxuXHQuY2stcmVzZXRfYWxsIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0Y3Vyc29yOiB0ZXh0O1xuXHR9XG4uY2stcmVzZXRfYWxsIHRleHRhcmVhW2Rpc2FibGVkXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSxcblx0LmNrLXJlc2V0X2FsbCBpbnB1dFt0eXBlPVwidGV4dFwiXVtkaXNhYmxlZF06bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKiksXG5cdC5jay1yZXNldF9hbGwgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdW2Rpc2FibGVkXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHR9XG4uY2stcmVzZXRfYWxsIGZpZWxkc2V0Om5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdGJvcmRlcjogMnB4IGdyb292ZSBoc2woMjU1LCA3JSwgODglKTtcblx0fVxuLmNrLXJlc2V0X2FsbCBidXR0b246bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKik6Oi1tb3otZm9jdXMtaW5uZXIge1xuXHRcdC8qIFNlZSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzU1MTc3NDQvcmVtb3ZlLWV4dHJhLWJ1dHRvbi1zcGFjaW5nLXBhZGRpbmctaW4tZmlyZWZveCAqL1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Ym9yZGVyOiAwXG5cdH1cbi8qKlxuICogRGVmYXVsdCBVSSBydWxlcyBmb3IgUlRMIGxhbmd1YWdlcy5cbiAqL1xuLmNrW2Rpcj1cInJ0bFwiXSxcbi5ja1tkaXI9XCJydGxcIl0gLmNrIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBEZWZhdWx0IGJvcmRlci1yYWRpdXMgdmFsdWUuXG4gKi9cbjpyb290e1xuXHQtLWNrLWJvcmRlci1yYWRpdXM6IDJweDtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBlbGVtZW50J3MgaW5uZXIgc2hhZG93IChpLmUuIGlucHV0KS5cblx0ICovXG5cdC0tY2staW5uZXItc2hhZG93OiAycHggMnB4IDNweCB2YXIoLS1jay1jb2xvci1zaGFkb3ctaW5uZXIpIGluc2V0O1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBlbGVtZW50J3MgZHJvcCBzaGFkb3cgKGkuZS4gcGFuZWwpLlxuXHQgKi9cblx0LS1jay1kcm9wLXNoYWRvdzogMCAxcHggMnB4IDFweCB2YXIoLS1jay1jb2xvci1zaGFkb3ctZHJvcCk7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGVsZW1lbnQncyBhY3RpdmUgc2hhZG93IChpLmUuIGNvbW1lbnQgb3Igc3VnZ2VzdGlvbikuXG5cdCAqL1xuXHQtLWNrLWRyb3Atc2hhZG93LWFjdGl2ZTogMCAzcHggNnB4IDFweCB2YXIoLS1jay1jb2xvci1zaGFkb3ctZHJvcC1hY3RpdmUpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1zcGFjaW5nLXVuaXQ6IFx0XHRcdFx0XHRcdDAuNmVtO1xuXHQtLWNrLXNwYWNpbmctbGFyZ2U6IFx0XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAxLjUpO1xuXHQtLWNrLXNwYWNpbmctc3RhbmRhcmQ6IFx0XHRcdFx0XHR2YXIoLS1jay1zcGFjaW5nLXVuaXQpO1xuXHQtLWNrLXNwYWNpbmctbWVkaXVtOiBcdFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC44KTtcblx0LS1jay1zcGFjaW5nLXNtYWxsOiBcdFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC41KTtcblx0LS1jay1zcGFjaW5nLXRpbnk6IFx0XHRcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDAuMyk7XG5cdC0tY2stc3BhY2luZy1leHRyYS10aW55OiBcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDAuMTYpO1xufVxuXG4vKiBDb21wb25lbnRzICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuLmNrLmNrLWF1dG9jb21wbGV0ZSA+IC5jay1zZWFyY2hfX3Jlc3VsdHMge1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHRtYXgtaGVpZ2h0OiAyMDBweDtcblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYm9yZGVyKTtcblx0XHRtaW4td2lkdGg6IGF1dG87XG5cdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWF1dG9jb21wbGV0ZSA+IC5jay1zZWFyY2hfX3Jlc3VsdHMsXG5cdC5jay5jay1hdXRvY29tcGxldGUgPiAuY2stc2VhcmNoX19yZXN1bHRzLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay1hdXRvY29tcGxldGUgPiAuY2stc2VhcmNoX19yZXN1bHRzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1kcm9wLXNoYWRvdyksIDAgMDtcblx0fVxuLmNrLmNrLWF1dG9jb21wbGV0ZSA+IC5jay1zZWFyY2hfX3Jlc3VsdHMuY2stc2VhcmNoX19yZXN1bHRzX24ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXG5cdFx0XHQvKiBQcmV2ZW50IGR1cGxpY2F0ZWQgYm9yZGVycyBiZXR3ZWVuIHRoZSBpbnB1dCBhbmQgdGhlIHJlc3VsdHMgcGFuZS4gKi9cblx0XHRcdG1hcmdpbi1ib3R0b206IC0xcHg7XG5cdFx0fVxuLmNrLmNrLWF1dG9jb21wbGV0ZSA+IC5jay1zZWFyY2hfX3Jlc3VsdHMuY2stc2VhcmNoX19yZXN1bHRzX3Mge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXG5cdFx0XHQvKiBQcmV2ZW50IGR1cGxpY2F0ZWQgYm9yZGVycyBiZXR3ZWVuIHRoZSBpbnB1dCBhbmQgdGhlIHJlc3VsdHMgcGFuZS4gKi9cblx0XHRcdG1hcmdpbi10b3A6IC0xcHg7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlci5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgY2xhc3Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgYW4gZWxlbWVudCBob2xkaW5nIGl0IGlzIGRpc2FibGVkLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgYSBidXR0b24gb2YgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJhY2tncm91bmQgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJvcmRlciAtIEJvcmRlciBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZCk7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0LyogQSB2ZXJ5IGltcG9ydGFudCBwaWVjZSBvZiBzdHlsaW5nLiBHbyB0byB2YXJpYWJsZSBkZWNsYXJhdGlvbiB0byBsZWFybiBtb3JlLiAqL1xuXHRtaW4td2lkdGg6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblx0bWluLWhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXG5cdC8qIE5vcm1hbGl6ZSB0aGUgaGVpZ2h0IG9mIHRoZSBsaW5lLiBSZW1vdmluZyB0aGlzIHdpbGwgYnJlYWsgY29uc2lzdGVudCBoZWlnaHRcblx0YW1vbmcgdGV4dCBhbmQgdGV4dC1sZXNzIGJ1dHRvbnMgKHdpdGggaWNvbnMpLiAqL1xuXHRsaW5lLWhlaWdodDogMTtcblxuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0O1xuXG5cdC8qIEF2b2lkIGZsaWNrZXJpbmcgd2hlbiB0aGUgZm91Y3MgYm9yZGVyIHNob3dzIHVwLiAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXHQvKiBBcHBseSBzb21lIHNtb290aCB0cmFuc2l0aW9uIHRvIHRoZSBib3gtc2hhZG93IGFuZCBib3JkZXIuICovXG5cdHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjJzIGVhc2UtaW4tb3V0LCBib3JkZXIgLjJzIGVhc2UtaW4tb3V0O1xuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTg5ICovXG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cbi5jay5jay1idXR0b246bm90KC5jay1kaXNhYmxlZCk6aG92ZXIsIGEuY2suY2stYnV0dG9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cbi5jay5jay1idXR0b246bm90KC5jay1kaXNhYmxlZCk6YWN0aXZlLCBhLmNrLmNrLWJ1dHRvbjpub3QoLmNrLWRpc2FibGVkKTphY3RpdmUge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWJhY2tncm91bmQpO1xuXHRcdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvOTggKi9cbi5jay5jay1idXR0b24uY2stZGlzYWJsZWQsIGEuY2suY2stYnV0dG9uLmNrLWRpc2FibGVkIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcblx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stYnV0dG9uLFxuXHQuY2stcm91bmRlZC1jb3JuZXJzIGEuY2suY2stYnV0dG9uLFxuXHQuY2suY2stYnV0dG9uLmNrLXJvdW5kZWQtY29ybmVycyxcblx0YS5jay5jay1idXR0b24uY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcbn1cblx0fVxuLmNrLmNrLWJ1dHRvbjphY3RpdmUsXG5cdGEuY2suY2stYnV0dG9uOmFjdGl2ZSxcblx0LmNrLmNrLWJ1dHRvbjpmb2N1cyxcblx0YS5jay5jay1idXR0b246Zm9jdXMge1xuXHRcdC8qIERpc2FibGUgbmF0aXZlIG91dGxpbmUuICovXG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdyksIDAgMDtcblx0fVxuLyogQWxsb3cgaWNvbiBjb2xvcmluZyB1c2luZyB0aGUgdGV4dCBcImNvbG9yXCIgcHJvcGVydHkuICovXG4uY2suY2stYnV0dG9uIC5jay1idXR0b25fX2ljb24gdXNlLFxuXHRcdGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2ljb24gdXNlLFxuXHRcdC5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9faWNvbiB1c2UgKixcblx0XHRhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHVzZSAqIHtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdH1cbi5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwsIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0XHRmb250LXNpemU6IGluaGVyaXQ7XG5cdFx0Zm9udC13ZWlnaHQ6IGluaGVyaXQ7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0Y3Vyc29yOiBpbmhlcml0O1xuXG5cdFx0LyogTXVzdCBiZSBjb25zaXN0ZW50IHdpdGggLmNrLWljb24ncyB2ZXJ0aWNhbCBhbGlnbi4gT3RoZXJ3aXNlLCBidXR0b25zIHdpdGggYW5kXG5cdFx0d2l0aG91dCBsYWJlbHMgKGJ1dCB3aXRoIGljb25zKSBoYXZlIGRpZmZlcmVudCBzaXplcyBpbiBDaHJvbWUgKi9cblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwsIFtkaXI9XCJsdHJcIl0gYS5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsLCBbZGlyPVwicnRsXCJdIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG4uY2suY2stYnV0dG9uIC5jay1idXR0b25fX2tleXN0cm9rZSwgYS5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fa2V5c3Ryb2tlIHtcblx0XHRjb2xvcjogaW5oZXJpdDtcblxuXHRcdG9wYWNpdHk6IC41O1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fa2V5c3Ryb2tlLCBbZGlyPVwibHRyXCJdIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2tleXN0cm9rZSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19rZXlzdHJva2UsIFtkaXI9XCJydGxcIl0gYS5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fa2V5c3Ryb2tlIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvNzAgKi9cbi5jay5jay1idXR0b24uY2stZGlzYWJsZWQ6YWN0aXZlLFxuXHRcdGEuY2suY2stYnV0dG9uLmNrLWRpc2FibGVkOmFjdGl2ZSxcblx0XHQuY2suY2stYnV0dG9uLmNrLWRpc2FibGVkOmZvY3VzLFxuXHRcdGEuY2suY2stYnV0dG9uLmNrLWRpc2FibGVkOmZvY3VzIHtcblx0XHRcdC8qIFRoZSBkaXNhYmxlZCBidXR0b24gc2hvdWxkIGhhdmUgYSBzbGlnaHRseSBsZXNzIHZpc2libGUgc2hhZG93IHdoZW4gZm9jdXNlZC4gKi9cblx0XHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWZvY3VzLWRpc2FibGVkLW91dGVyLXNoYWRvdyksIDAgMDtcblx0XHR9XG4uY2suY2stYnV0dG9uLmNrLWRpc2FibGVkIC5jay1idXR0b25fX2ljb24sIGEuY2suY2stYnV0dG9uLmNrLWRpc2FibGVkIC5jay1idXR0b25fX2ljb24ge1xuXHRcdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdFx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy85OCAqL1xuLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19sYWJlbCwgYS5jay5jay1idXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdFx0fVxuLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19rZXlzdHJva2UsIGEuY2suY2stYnV0dG9uLmNrLWRpc2FibGVkIC5jay1idXR0b25fX2tleXN0cm9rZSB7XG5cdFx0XHRvcGFjaXR5OiAuMztcblx0XHR9XG4uY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQsIGEuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHQvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCAuY2stYnV0dG9uX19pY29uLCBbZGlyPVwibHRyXCJdIGEuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLWJ1dHRvbl9faWNvbiB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCAuY2stYnV0dG9uX19pY29uLCBbZGlyPVwicnRsXCJdIGEuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLWJ1dHRvbl9faWNvbiB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLWtleXN0cm9rZSAuY2stYnV0dG9uX19sYWJlbCwgYS5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgta2V5c3Ryb2tlIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHR9XG4vKiBBIHN0eWxlIG9mIHRoZSBidXR0b24gd2hpY2ggaXMgY3VycmVudGx5IG9uLCBlLmcuIGl0cyBmZWF0dXJlIGlzIGFjdGl2ZS4gKi9cbi5jay5jay1idXR0b24uY2stb24sIGEuY2suY2stYnV0dG9uLmNrLW9uIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tb24tYmFja2dyb3VuZCk7XG5cblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWNvbG9yKTtcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1vbjpub3QoLmNrLWRpc2FibGVkKTpob3ZlciwgYS5jay5jay1idXR0b24uY2stb246bm90KC5jay1kaXNhYmxlZCk6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cbi5jay5jay1idXR0b24uY2stb246bm90KC5jay1kaXNhYmxlZCk6YWN0aXZlLCBhLmNrLmNrLWJ1dHRvbi5jay1vbjpub3QoLmNrLWRpc2FibGVkKTphY3RpdmUge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcblx0XHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzk4ICovXG4uY2suY2stYnV0dG9uLmNrLW9uLmNrLWRpc2FibGVkLCBhLmNrLmNrLWJ1dHRvbi5jay1vbi5jay1kaXNhYmxlZCB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHR9XG4uY2suY2stYnV0dG9uLmNrLWJ1dHRvbi1zYXZlLCBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b24tc2F2ZSB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1zYXZlKTtcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1idXR0b24tY2FuY2VsLCBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b24tY2FuY2VsIHtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLWNhbmNlbCk7XG5cdH1cbi8qIEEgc3R5bGUgb2YgdGhlIGJ1dHRvbiB3aGljaCBoYW5kbGVzIHRoZSBwcmltYXJ5IGFjdGlvbi4gKi9cbi5jay5jay1idXR0b24tYWN0aW9uLFxuYS5jay5jay1idXR0b24tYWN0aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kKTtcblxuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi10ZXh0KTtcbn1cbi5jay5jay1idXR0b24tYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyLCBhLmNrLmNrLWJ1dHRvbi1hY3Rpb246bm90KC5jay1kaXNhYmxlZCk6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG4uY2suY2stYnV0dG9uLWFjdGlvbjpub3QoLmNrLWRpc2FibGVkKTphY3RpdmUsIGEuY2suY2stYnV0dG9uLWFjdGlvbjpub3QoLmNrLWRpc2FibGVkKTphY3RpdmUge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1hY3RpdmUtYmFja2dyb3VuZCk7XG5cdFx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy85OCAqL1xuLmNrLmNrLWJ1dHRvbi1hY3Rpb24uY2stZGlzYWJsZWQsIGEuY2suY2stYnV0dG9uLWFjdGlvbi5jay1kaXNhYmxlZCB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcblx0fVxuLmNrLmNrLWJ1dHRvbi1ib2xkLFxuYS5jay5jay1idXR0b24tYm9sZCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKiBOb3RlOiBUbyBhdm9pZCByZW5kZXJpbmcgaXNzdWVzIChhbGlhc2luZykgYnV0IHRvIHByZXNlcnZlIHRoZSByZXNwb25zaXZlIG5hdHVyZVxub2YgdGhlIGNvbXBvbmVudCwgZmxvYXRpbmfigJNwb2ludCBudW1iZXJzIGhhdmUgYmVlbiB1c2VkIHdoaWNoLCBmb3IgdGhlIGRlZmF1bHQgZm9udCBzaXplXG4oc2VlOiAtLWNrLWZvbnQtc2l6ZS1iYXNlKSwgd2lsbCBnZW5lcmF0ZSBzaW1wbGUgaW50ZWdlcnMuICovXG46cm9vdCB7XG5cdC8qIDM0cHggYXQgMTNweCBmb250LXNpemUgKi9cblx0LS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS13aWR0aDogMi42MTUzODQ2MTU0ZW07XG5cdC8qIDE0cHggYXQgMTNweCBmb250LXNpemUgKi9cblx0LS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS1pbm5lci1zaXplOiBjYWxjKDEuMDc2OTIzMDc2OWVtICsgMXB4KTtcblx0LS1jay1zd2l0Y2gtYnV0dG9uLXRyYW5zbGF0aW9uOiBjYWxjKFxuXHRcdHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLXdpZHRoKSAtXG5cdFx0dmFyKC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtaW5uZXItc2l6ZSkgLVxuXHRcdDJweCAvKiBCb3JkZXIgKi9cblx0KTtcblx0LS1jay1zd2l0Y2gtYnV0dG9uLWlubmVyLWhvdmVyLXNoYWRvdzogMCAwIDAgNXB4IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24taW5uZXItc2hhZG93KTtcbn1cbi8qIFVubGlrZSBhIHJlZ3VsYXIgYnV0dG9uLCB0aGUgc3dpdGNoIGJ1dHRvbiB0ZXh0IGNvbG9yIGFuZCBiYWNrZ3JvdW5kIHNob3VsZCBuZXZlciBjaGFuZ2UuXG5cdCAqIENoYW5naW5nIHRvZ2dsZSBzd2l0Y2ggKGJhY2tncm91bmQsIG91dGxpbmUpIGlzIGVub3VnaCB0byBjYXJyeSB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlXG5cdCAqIHN0YXRlIG9mIHRoZSBlbnRpcmUgY29tcG9uZW50IChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMjUxOSlcblx0ICovXG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiwgLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b246aG92ZXIsIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uOmZvY3VzLCAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbjphY3RpdmUsIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uOmhvdmVyLCAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbi5jay1vbjpmb2N1cywgLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb246YWN0aXZlIHtcblx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHQvKiBTZXBhcmF0ZSB0aGUgbGFiZWwgZnJvbSB0aGUgc3dpdGNoICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHQvKiBTZXBhcmF0ZSB0aGUgbGFiZWwgZnJvbSB0aGUgc3dpdGNoICovXG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkpO1xuXHR9XG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHQvKiBBcHBseSBzb21lIHNtb290aCB0cmFuc2l0aW9uIHRvIHRoZSBib3gtc2hhZG93IGFuZCBib3JkZXIuICovXG5cdFx0LyogR2VudGx5IGFuaW1hdGUgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHRvZ2dsZSBzd2l0Y2ggKi9cblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDQwMG1zIGVhc2UsIGJveC1zaGFkb3cgLjJzIGVhc2UtaW4tb3V0LCBvdXRsaW5lIC4ycyBlYXNlLWluLW91dDtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHR3aWR0aDogdmFyKC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtd2lkdGgpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb2ZmLWJhY2tncm91bmQpO1xuXHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSxcblx0LmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgdG9nZ2xlIGlzIGFsd2F5cyB0byB0aGUgcmlnaHQgYXMgZmFyIGFzIHBvc3NpYmxlLiAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgdG9nZ2xlIGlzIGFsd2F5cyB0byB0aGUgbGVmdCBhcyBmYXIgYXMgcG9zc2libGUuICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdH1cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHRcdHdpZHRoOiB2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS1pbm5lci1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtaW5uZXItc2l6ZSk7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLWlubmVyLWJhY2tncm91bmQpO1xuXG5cdFx0XHQvKiBHZW50bHkgYW5pbWF0ZSB0aGUgaW5uZXIgcGFydCBvZiB0aGUgdG9nZ2xlIHN3aXRjaCAqL1xuXHRcdFx0dHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7XG5cdFx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lcixcblx0LmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogY2FsYyguNSAqIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpKTtcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0XHR9XG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGU6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vZmYtaG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlOmhvdmVyIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLWlubmVyLWhvdmVyLXNoYWRvdyk7XG5cdFx0XHR9XG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHR9XG4vKiBPdmVycmlkaW5nIGRlZmF1bHQgLmNrLWJ1dHRvbjpmb2N1cyBzdHlsZXMgKyBhbiBvdXRsaW5lIGFyb3VuZCB0aGUgdG9vZ2xlICovXG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbjpmb2N1cyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uOmZvY3VzIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKSwgMCAwIDAgNXB4IHZhcigtLWNrLWNvbG9yLWZvY3VzLW91dGVyLXNoYWRvdyk7XG5cdFx0XHRvdXRsaW5lLW9mZnNldDogMXB4O1xuXHRcdFx0b3V0bGluZTogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0fVxuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9uLWJhY2tncm91bmQpO1xuXHRcdH1cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uIC5jay1idXR0b25fX3RvZ2dsZTpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0XHR9XG4vKlxuXHRcdFx0XHQqIE1vdmUgdGhlIHRvZ2dsZSBzd2l0Y2ggdG8gdGhlIHJpZ2h0LiBJdCB3aWxsIGJlIGFuaW1hdGVkLlxuXHRcdFx0XHQqL1xuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbi5jay1vbiAuY2stYnV0dG9uX190b2dnbGUgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lciB7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCB2YXIoIC0tY2stc3dpdGNoLWJ1dHRvbi10cmFuc2xhdGlvbiApICk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCggY2FsYyggLTEgKiB2YXIoIC0tY2stc3dpdGNoLWJ1dHRvbi10cmFuc2xhdGlvbiApICkgKTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b24ge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcbn1cbi5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbixcblx0LmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uLmNrLW9uIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJhY2tncm91bmQpO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci10ZXh0KTtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b246aGFzKC5jay1saXN0LWl0ZW0tYnV0dG9uX19jaGVjay1ob2xkZXIpIHtcblx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uOmhhcyguY2stbGlzdC1pdGVtLWJ1dHRvbl9fY2hlY2staG9sZGVyKSB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLypcblx0ICogYC5jay1vbmAgY2xhc3MgYW5kIGJhY2tncm91bmQgc3R5bGluZyBpcyBvdmVycmlkZGVuIGZvciBgY2stYnV0dG9uYCBpbiBtYW55IHBsYWNlcy5cblx0ICogVGhpcyBpcyBhIHdvcmthcm91bmQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGJhY2tncm91bmQgaXMgbm90IG92ZXJyaWRkZW4gYW5kIHVzZXMgc2ltaWxhclxuXHQgKiBzZWxlY3RvciBzcGVjaWZpY2l0eSBhcyB0aGUgb3RoZXIgb3ZlcnJpZGVzLlxuXHQgKi9cbi5jay5jay1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKSxcblx0LmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uLmNrLWJ1dHRvbi5jay1vbjpob3Zlcixcblx0LmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uLmNrLW9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbl90b2dnbGVhYmxlKSxcblx0LmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uLmNrLW9uOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpOm5vdCguY2stZGlzYWJsZWQpLCAuY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b24uY2stYnV0dG9uLmNrLW9uOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpLCAuY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b24uY2stb246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uX3RvZ2dsZWFibGUpOm5vdCguY2stZGlzYWJsZWQpLCAuY2suY2stYnV0dG9uLmNrLWxpc3QtaXRlbS1idXR0b24uY2stb246aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stY29sbGFwc2libGUtYXJyb3ctc2l6ZTogY2FsYygwLjUgKiB2YXIoLS1jay1pY29uLXNpemUpKTtcbn1cbi5jay5jay1jb2xsYXBzaWJsZSA+IC5jay5jay1idXR0b24ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdH1cbi5jay5jay1jb2xsYXBzaWJsZSA+IC5jay5jay1idXR0b246Zm9jdXMge1xuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0fVxuLmNrLmNrLWNvbGxhcHNpYmxlID4gLmNrLmNrLWJ1dHRvbjphY3RpdmUsIC5jay5jay1jb2xsYXBzaWJsZSA+IC5jay5jay1idXR0b246bm90KDpmb2N1cyksIC5jay5jay1jb2xsYXBzaWJsZSA+IC5jay5jay1idXR0b246aG92ZXI6bm90KDpmb2N1cykge1xuXHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG4uY2suY2stY29sbGFwc2libGUgPiAuY2suY2stYnV0dG9uID4gLmNrLWljb24ge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stY29sbGFwc2libGUtYXJyb3ctc2l6ZSk7XG5cdFx0fVxuLmNrLmNrLWNvbGxhcHNpYmxlID4gLmNrLWNvbGxhcHNpYmxlX19jaGlsZHJlbiB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4uY2suY2stY29sbGFwc2libGUuY2stY29sbGFwc2libGVfY29sbGFwc2VkID4gLmNrLmNrLWJ1dHRvbiAuY2staWNvbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stY29sb3ItZ3JpZC10aWxlLXNpemU6IDI0cHg7XG5cblx0LyogTm90IHVzaW5nIGdsb2JhbCBjb2xvcnMgaGVyZSBiZWNhdXNlIHRoZXNlIG1heSBjaGFuZ2UgYnV0IHNvbWUgY29sb3JzIGluIGEgcGFsbGV0dGVcblx0ICogcmVxdWlyZSBzcGVjaWFsIHRyZWF0bWVudC4gRm9yIGluc3RhbmNlLCB0aGlzIGVuc3VyZXMgbm8gbWF0dGVyIHdoYXQgdGhlIFVJIHRleHQgY29sb3IgaXMsXG5cdCAqIHRoZSBjaGVjayBpY29uIHdpbGwgbG9vayBnb29kIG9uIHRoZSBibGFjayBjb2xvciB0aWxlLiAqL1xuXHQtLWNrLWNvbG9yLWNvbG9yLWdyaWQtY2hlY2staWNvbjogaHNsKDIxMiwgODElLCA0NiUpO1xufVxuLmNrLmNrLWNvbG9yLWdyaWQge1xuXHRncmlkLWdhcDogNXB4O1xuXHRwYWRkaW5nOiA4cHg7XG59XG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZSB7XG5cdHRyYW5zaXRpb246IC4ycyBlYXNlIGJveC1zaGFkb3c7XG59XG5AbWVkaWEgKGZvcmNlZC1jb2xvcnM6IG5vbmUpIHtcblx0XHQuY2suY2stY29sb3ItZ3JpZF9fdGlsZSB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplKTtcblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplKTtcblx0XHRtaW4taGVpZ2h0OiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDA7XG5cdFx0fVxuXG5cdFx0LmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUuY2stb24sXG5cdFx0LmNrLmNrLWNvbG9yLWdyaWRfX3RpbGU6Zm9jdXM6bm90KCAuY2stZGlzYWJsZWQgKSxcblx0XHQuY2suY2stY29sb3ItZ3JpZF9fdGlsZTpob3Zlcjpub3QoIC5jay1kaXNhYmxlZCApIHtcblx0XHRcdC8qIERpc2FibGUgdGhlIGRlZmF1bHQgLmNrLWJ1dHRvbidzIGJvcmRlciByaW5nLiAqL1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdH1cblxuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci10aWxlX2JvcmRlcmVkIHtcblx0XHRcdGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuXG5cdFx0LmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUuY2stb24ge1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHRcdH1cblxuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlOmZvY3VzOm5vdCggLmNrLWRpc2FibGVkICksXG5cdFx0LmNrLmNrLWNvbG9yLWdyaWRfX3RpbGU6aG92ZXI6bm90KCAuY2stZGlzYWJsZWQgKSB7XG5cdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKSwgMCAwIDAgMnB4IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0fVxuXHR9XG4vKlxuXHQgKiBJbiBoaWdoIGNvbnRyYXN0IG1vZGUsIHRoZSBjb2xvcnMgYXJlIHJlcGxhY2VkIHdpdGggdGV4dCBsYWJlbHMuXG5cdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDkwNy5cblx0ICovXG5AbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuXHRcdC5jay5jay1jb2xvci1ncmlkX190aWxlIHtcblx0XHR3aWR0aDogdW5zZXQ7XG5cdFx0aGVpZ2h0OiB1bnNldDtcblx0XHRtaW4td2lkdGg6IHVuc2V0O1xuXHRcdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHRcdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXG5cdFx0LmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay1jb2xvci1ncmlkX190aWxlIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xufVxuXHR9XG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZS5jay1kaXNhYmxlZCB7XG5cdFx0Y3Vyc29yOiB1bnNldDtcblx0XHR0cmFuc2l0aW9uOiB1bnNldDtcblx0fVxuLmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUgLmNrLmNrLWljb24ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWNvbG9yLWdyaWQtY2hlY2staWNvbik7XG5cdH1cbi5jay5jay1jb2xvci1ncmlkX190aWxlLmNrLW9uIC5jay5jay1pY29uIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cbi5jay5jay1jb2xvci1ncmlkX19sYWJlbCB7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qIFZpZXcgZnJhZ21lbnQgd2l0aCBjb2xvciBncmlkcy4gKi9cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fcmVtb3ZlLWNvbG9yLFxuXHRcdC5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItcGlja2VyIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItcGlja2VyIHtcblx0XHRcdHBhZGRpbmc6IGNhbGModmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgLyAyKSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHR9XG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXBpY2tlcjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItcGlja2VyIC5jay5jay1pY29uIHtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQgLmNrLWJ1dHRvbi5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItcGlja2VyIC5jay5jay1pY29uIHtcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItZ3JpZHMtZnJhZ21lbnQgbGFiZWwuY2suY2stY29sb3ItZ3JpZF9fbGFiZWwge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IHVuc2V0O1xuXHRcdH1cbi8qIFZpZXcgZnJhZ21lbnQgd2l0aCBhIGNvbG9yIHBpY2tlci4gKi9cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IC5jay5jay1jb2xvci1waWNrZXIge1xuXHRcdFx0cGFkZGluZzogOHB4O1xuXHRcdH1cbi5jay5jay1jb2xvci1zZWxlY3RvciAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IC5jay5jay1jb2xvci1waWNrZXIgLmhleC1jb2xvci1waWNrZXIge1xuXHRcdFx0XHRoZWlnaHQ6IDEwMHB4O1xuXHRcdFx0XHRtaW4td2lkdGg6IDE4MHB4O1xuXHRcdFx0fVxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQgLmNrLmNrLWNvbG9yLXBpY2tlciAuaGV4LWNvbG9yLXBpY2tlcjo6cGFydChzYXR1cmF0aW9uKSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgMCAwO1xuXHRcdFx0XHR9XG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLXBpY2tlci1mcmFnbWVudCAuY2suY2stY29sb3ItcGlja2VyIC5oZXgtY29sb3ItcGlja2VyOjpwYXJ0KGh1ZSkge1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRcdFx0fVxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQgLmNrLmNrLWNvbG9yLXBpY2tlciAuaGV4LWNvbG9yLXBpY2tlcjo6cGFydChzYXR1cmF0aW9uLXBvaW50ZXIpLFxuXHRcdFx0XHQuY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLXBpY2tlci1mcmFnbWVudCAuY2suY2stY29sb3ItcGlja2VyIC5oZXgtY29sb3ItcGlja2VyOjpwYXJ0KGh1ZS1wb2ludGVyKSB7XG5cdFx0XHRcdFx0d2lkdGg6IDE1cHg7XG5cdFx0XHRcdFx0aGVpZ2h0OiAxNXB4O1xuXHRcdFx0XHR9XG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLXBpY2tlci1mcmFnbWVudCAuY2suY2stY29sb3Itc2VsZWN0b3JfYWN0aW9uLWJhciB7XG5cdFx0XHRwYWRkaW5nOiAwIDhweCA4cHg7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stZGlhbG9nLW92ZXJsYXktYmFja2dyb3VuZC1jb2xvcjogaHNsYSggMCwgMCUsIDAlLCAuNSApO1xuXHQtLWNrLWRpYWxvZy1kcm9wLXNoYWRvdzogMHB4IDBweCA2cHggMnB4IGhzbCgwZGVnIDAlIDAlIC8gMTUlKTtcblx0LS1jay1kaWFsb2ctbWF4LXdpZHRoOiAxMDB2dztcblx0LS1jay1kaWFsb2ctbWF4LWhlaWdodDogOTB2aDtcblx0LS1jay1jb2xvci1kaWFsb2ctYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1kaWFsb2ctZm9ybS1oZWFkZXItYm9yZGVyOiB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG59XG4uY2suY2stZGlhbG9nLW92ZXJsYXkge1xuXHRhbmltYXRpb246IGNrLWRpYWxvZy1mYWRlLWluIC4zcztcblx0YmFja2dyb3VuZDogdmFyKC0tY2stZGlhbG9nLW92ZXJsYXktYmFja2dyb3VuZC1jb2xvcik7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotZGlhbG9nKTtcbn1cbi5jay5jay1kaWFsb2cge1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdC0tY2stZHJvcC1zaGFkb3c6IHZhcigtLWNrLWRpYWxvZy1kcm9wLXNoYWRvdyk7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZGlhbG9nLWJhY2tncm91bmQpO1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1kaWFsb2ctbWF4LWhlaWdodCk7XG5cdG1heC13aWR0aDogdmFyKC0tY2stZGlhbG9nLW1heC13aWR0aCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0b3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbn1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWRpYWxvZyxcblx0LmNrLmNrLWRpYWxvZy5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG4uY2suY2stZGlhbG9nIHtcblx0Ym94LXNoYWRvdzogdmFyKC0tY2stZHJvcC1zaGFkb3cpLCAwIDA7XG59XG4uY2suY2stZGlhbG9nIC5jay5jay1mb3JtX19oZWFkZXIge1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kaWFsb2ctZm9ybS1oZWFkZXItYm9yZGVyKTtcblx0fVxuLmNrLWRpYWxvZy1zY3JvbGwtbG9ja2VkIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cbkBrZXlmcmFtZXMgY2stZGlhbG9nLWZhZGUtaW4ge1xuXHQwJSB7XG5cdFx0YmFja2dyb3VuZDogaHNsYSggMCwgMCUsIDAlLCAwICk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1kaWFsb2ctb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yKTtcblx0fVxufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1kaWFsb2cgLmNrLmNrLWRpYWxvZ19fYWN0aW9ucyB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cbi5jay5jay1kaWFsb2cgLmNrLmNrLWRpYWxvZ19fYWN0aW9ucyA+ICogKyAqIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVsZW1lbnQgaG9sZGluZyBpdCBpcyBkaXNhYmxlZC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZTogY2FsYygwLjUgKiB2YXIoLS1jay1pY29uLXNpemUpKTtcbn1cbi5jay5jay1kcm9wZG93biB7XG5cdC8qIEVuYWJsZSBmb250IHNpemUgaW5oZXJpdGFuY2UsIHdoaWNoIGFsbG93cyBmbHVpZCBVSSBzY2FsaW5nLiAqL1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG59XG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLWFycm93LXNpemUpO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0LyogQSBzcGFjZSB0byBhY2NvbW1vZGF0ZSB0aGUgdHJpYW5nbGUuICovXG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0LyogQSBzcGFjZSB0byBhY2NvbW1vZGF0ZSB0aGUgdHJpYW5nbGUuICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cbi5jay5jay1kcm9wZG93bi5jay1kaXNhYmxlZCAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRvcGFjaXR5OiB2YXIoLS1jay1kaXNhYmxlZC1vcGFjaXR5KTtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkge1xuXHRcdFx0XHQvKiBNYWtlIHN1cmUgZHJvcGRvd25zIHdpdGgganVzdCBhbiBpY29uIGhhdmUgdGhlIHJpZ2h0IGlubmVyIHNwYWNpbmcgKi9cblx0XHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdFx0LyogTWFrZSBzdXJlIGRyb3Bkb3ducyB3aXRoIGp1c3QgYW4gaWNvbiBoYXZlIHRoZSByaWdodCBpbm5lciBzcGFjaW5nICovXG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuLyogIzIzICovXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdHdpZHRoOiA3ZW07XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy83MCAqL1xuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRvcGFjaXR5OiB2YXIoLS1jay1kaXNhYmxlZC1vcGFjaXR5KTtcblx0XHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MTYgKi9cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24uY2stb24ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbl9sYWJlbC13aWR0aF9hdXRvIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzg2OTkgKi9cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24uY2stb2ZmOmFjdGl2ZSxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uLmNrLW9uOmFjdGl2ZSB7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdH1cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24uY2stb2ZmOmFjdGl2ZTpmb2N1cywgLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbi5jay1vbjphY3RpdmU6Zm9jdXMge1xuXHRcdFx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdFx0XHR9XG4uY2suY2stZHJvcGRvd25fX3BhbmVsIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYm9yZGVyKTtcblx0Ym90dG9tOiAwO1xuXG5cdC8qIE1ha2Ugc3VyZSB0aGUgcGFuZWwgaXMgYXQgbGVhc3QgYXMgd2lkZSBhcyB0aGUgZHJvcC1kb3duJ3MgYnV0dG9uLiAqL1xuXHRtaW4td2lkdGg6IDEwMCU7XG59XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1kcm9wZG93bl9fcGFuZWwsXG5cdC5jay5jay1kcm9wZG93bl9fcGFuZWwuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xuXG5cdC8qIERpc2FibGVkIGNvcm5lciBib3JkZXIgcmFkaXVzIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgLmRyb3Bkb3duX19idXR0b25cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODE2ICovXG59XG4uY2suY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zZSB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc3cge1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9uZSB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbncge1xuXHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stZHJvcGRvd25fX3BhbmVsOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4uY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3Qge1xuXHQvKiBEaXNhYmxlZCByYWRpdXMgb2YgdG9wLWxlZnQgYm9yZGVyIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCAuZHJvcGRvd25fX2J1dHRvblxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MTYgKi9cblx0Ym9yZGVyLXJhZGl1czogMDtcbn1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCA+IC5jay1saXN0LFxuXHQuY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3QuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG4vKiBNYWtlIHN1cmUgdGhlIGJ1dHRvbiBiZWxvbmdpbmcgdG8gdGhlIGZpcnN0L2xhc3QgY2hpbGQgb2YgdGhlIGxpc3QgZ29lcyB3ZWxsIHdpdGggdGhlXG5cdGJvcmRlciByYWRpdXMgb2YgdGhlIGVudGlyZSBwYW5lbC4gKi9cbi5jay5jay1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwgPiAuY2stbGlzdCAuY2stbGlzdF9faXRlbTpmaXJzdC1jaGlsZCA+IC5jay1idXR0b24ge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHR9XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwgPiAuY2stbGlzdCAuY2stbGlzdF9faXRlbTpmaXJzdC1jaGlsZCA+IC5jay1idXR0b24sXG5cdC5jay5jay1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwgPiAuY2stbGlzdCAuY2stbGlzdF9faXRlbTpmaXJzdC1jaGlsZCA+IC5jay1idXR0b24uY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwgPiAuY2stbGlzdCAuY2stbGlzdF9faXRlbTpsYXN0LWNoaWxkID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCA+IC5jay1saXN0IC5jay1saXN0X19pdGVtOmxhc3QtY2hpbGQgPiAuY2stYnV0dG9uLFxuXHQuY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06bGFzdC1jaGlsZCA+IC5jay1idXR0b24uY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbjpyb290IHtcblx0LS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5MiUpO1xuXHQtLWNrLWNvbG9yLXNwbGl0LWJ1dHRvbi1ob3Zlci1ib3JkZXI6IGhzbCgwLCAwJSwgNzAlKTtcbn1cbi8qXG5cdCAqIE5vdGU6IGNrLXJvdW5kZWQgYW5kIGNrLWRpciBtaXhpbnMgZG9uJ3QgZ28gdG9nZXRoZXIgKGJlY2F1c2UgdGhleSBib3RoIHVzZSBAbmVzdCkuXG5cdCAqL1xuW2Rpcj1cImx0clwiXSAuY2suY2stc3BsaXRidXR0b246aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbiwgW2Rpcj1cImx0clwiXSAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uIHtcblx0XHRcdC8qIERvbid0IHJvdW5kIHRoZSBhY3Rpb24gYnV0dG9uIG9uIHRoZSByaWdodCBzaWRlICovXG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdW5zZXQ7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdW5zZXQ7XG5cdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stc3BsaXRidXR0b246aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbiwgW2Rpcj1cInJ0bFwiXSAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uIHtcblx0XHRcdC8qIERvbid0IHJvdW5kIHRoZSBhY3Rpb24gYnV0dG9uIG9uIHRoZSBsZWZ0IHNpZGUgKi9cblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHVuc2V0O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdW5zZXQ7XG5cdFx0fVxuLmNrLmNrLXNwbGl0YnV0dG9uID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdyB7XG5cdFx0LyogSXQncyBhIHRleHQtbGVzcyBidXR0b24gYW5kIHNpbmNlIHRoZSBpY29uIGlzIHBvc2l0aW9uZWQgYWJzb2x1dGVseSBpbiBzdWNoIHNpdHVhdGlvbixcblx0XHRpdCBtdXN0IGdldCBzb21lIGFyYml0cmFyeSBtaW4td2lkdGguICovXG5cdFx0bWluLXdpZHRoOiB1bnNldDtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stc3BsaXRidXR0b24gPiAuY2stc3BsaXRidXR0b25fX2Fycm93IHtcblx0XHRcdC8qIERvbid0IHJvdW5kIHRoZSBhcnJvdyBidXR0b24gb24gdGhlIGxlZnQgc2lkZSAqL1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdW5zZXQ7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB1bnNldDtcblx0XHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1zcGxpdGJ1dHRvbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3cge1xuXHRcdFx0LyogRG9uJ3Qgcm91bmQgdGhlIGFycm93IGJ1dHRvbiBvbiB0aGUgcmlnaHQgc2lkZSAqL1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHVuc2V0O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHVuc2V0O1xuXHRcdH1cbi5jay5jay1zcGxpdGJ1dHRvbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3cgc3ZnIHtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKTtcblx0XHR9XG4vKiBNYWtlIHN1cmUgdGhlIGRpdmlkZXIgc3RyZXRjaGVzIDEwMCUgaGVpZ2h0IG9mIHRoZSBidXR0b25cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTA5MzYgKi9cbi5jay5jay1zcGxpdGJ1dHRvbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KDpmb2N1cykge1xuXHRcdGJvcmRlci10b3Atd2lkdGg6IDBweDtcblx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7XG5cdH1cbi8qIERvbid0IHJvdW5kIHRoZSBib3R0b20gbGVmdCBhbmQgcmlnaHQgY29ybmVycyBvZiB0aGUgYnV0dG9ucyB3aGVuIFwib3BlblwiXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgxNiAqL1xuLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4ge1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4sXG5cdC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbiwgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4uY2stcm91bmRlZC1jb3JuZXJzID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24ge1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3csIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuLmNrLXJvdW5kZWQtY29ybmVycyA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3cge1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdH1cbi8qIFdoZW4gdGhlIHNwbGl0IGJ1dHRvbiBpcyBcIm9wZW5cIiAodGhlIGFycm93IGlzIG9uKSBvciBiZWluZyBob3ZlcmVkLCBpdCBzaG91bGQgZ2V0IHNvbWUgc3R5bGluZ1xuXHRhcyBhIHdob2xlLiBUaGUgYmFja2dyb3VuZCBvZiBib3RoIGJ1dHRvbnMgc2hvdWxkIHN0YW5kIG91dCBhbmQgdGhlcmUgc2hvdWxkIGJlIGEgdmlzdWFsXG5cdHNlcGFyYXRpb24gYmV0d2VlbiBib3RoIGJ1dHRvbnMuICovXG4vKiBXaGVuIHRoZSBzcGxpdCBidXR0b24gaG92ZXJlZCBhcyBhIHdob2xlLCBub3QgYXMgaW5kaXZpZHVhbCBidXR0b25zLiAqL1xuLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stYnV0dG9uOm5vdCguY2stb24pOm5vdCguY2stZGlzYWJsZWQpOm5vdCg6aG92ZXIpLCAuY2suY2stc3BsaXRidXR0b246aG92ZXIgPiAuY2stYnV0dG9uOm5vdCguY2stb24pOm5vdCguY2stZGlzYWJsZWQpOm5vdCg6aG92ZXIpIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXNwbGl0LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG4vKiBTcGxpdGJ1dHRvbiBzZXBhcmF0b3IgbmVlZHMgdG8gYmUgc2V0IHdpdGggdGhlIDo6YWZ0ZXIgcHNldWRvc2VsZWN0b3Jcblx0XHR0byBkaXNwbGF5IHByb3Blcmx5IHRoZSBib3JkZXJzIG9uIGZvY3VzICovXG4uY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6OmFmdGVyLCAuY2suY2stc3BsaXRidXR0b246aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHdpZHRoOiAxcHg7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYm9yZGVyKTtcblx0XHR9XG4vKiBNYWtlIHN1cmUgdGhlIGRpdmlkZXIgYmV0d2VlbiB0aGUgYnV0dG9ucyBsb29rcyBmaW5lIHdoZW4gdGhlIGJ1dHRvbiBpcyBmb2N1c2VkICovXG4uY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6Zm9jdXM6OmFmdGVyLCAuY2suY2stc3BsaXRidXR0b246aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93OmZvY3VzOjphZnRlciB7XG5cdFx0XHQtLWNrLWNvbG9yLXNwbGl0LWJ1dHRvbi1ob3Zlci1ib3JkZXI6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6OmFmdGVyLCBbZGlyPVwibHRyXCJdIC5jay5jay1zcGxpdGJ1dHRvbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6OmFmdGVyIHtcblx0XHRcdFx0bGVmdDogLTFweDtcblx0XHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciwgW2Rpcj1cInJ0bFwiXSAuY2suY2stc3BsaXRidXR0b246aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciB7XG5cdFx0XHRcdHJpZ2h0OiAtMXB4O1xuXHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay10b29sYmFyLWRyb3Bkb3duIC5jay10b29sYmFyIHtcblx0Ym9yZGVyOiAwO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgY2xhc3Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgYW4gZWxlbWVudCBob2xkaW5nIGl0IGlzIGRpc2FibGVkLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIGEgYnV0dG9uIG9mIGdpdmVuIGJhY2tncm91bmQgY29sb3IuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICogQHBhcmFtIHtTdHJpbmd9ICRib3JkZXIgLSBCb3JkZXIgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBBbGwgbWVudSBidXR0b25zLlxuICovXG4uY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiB7XG5cdHdpZHRoOiAxMDAlO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblx0Ym9yZGVyLXJhZGl1czogMDtcbn1cbi5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cbi5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uOmZvY3VzOm5vdCguY2stb24pIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cbi5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdGZsZXgtZ3JvdzogMTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR9XG4uY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbi5jay1kaXNhYmxlZCA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRvcGFjaXR5OiB2YXIoLS1jay1kaXNhYmxlZC1vcGFjaXR5KTtcblx0fVxuLyogU3BhY2luZyBpbiBidXR0b25zIHRoYXQgbWlzcyB0aGUgaWNvbi4gKi9cbi5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uLmNrLWljb24tc3BhY2luZzpub3QoOmhhcyguY2stYnV0dG9uX19pY29uKSkgPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0bWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY2staWNvbi1zaXplKSAtIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0fVxuLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24gPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLWFycm93LXNpemUpO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uID4gLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblxuXHRcdFx0LyogTnVkZ2UgdGhlIGFycm93IGdlbnRseSB0byB0aGUgcmlnaHQgYmVjYXVzZSBpdHMgY2VudGVyIG9mIGdyYXZpdHkgaXMgdG8gdGhlIGxlZnQgKi9cblx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcblxuXHRcdFx0LyogTnVkZ2UgdGhlIGFycm93IGdlbnRseSB0byB0aGUgbGVmdCBiZWNhdXNlIGl0cyBjZW50ZXIgb2YgZ3Jhdml0eSBpcyB0byB0aGUgcmlnaHQgKGFmdGVyIHJvdGF0aW9uKS4gKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHR9XG4uY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbi5jay1kaXNhYmxlZCA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRvcGFjaXR5OiB2YXIoLS1jay1kaXNhYmxlZC1vcGFjaXR5KTtcblx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0LyogQSBzcGFjZSB0byBhY2NvbW1vZGF0ZSB0aGUgdHJpYW5nbGUuICovXG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24gPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0LyogQSBzcGFjZSB0byBhY2NvbW1vZGF0ZSB0aGUgdHJpYW5nbGUuICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stZHJvcGRvd24tbWVudS1tZW51LWl0ZW0tbWluLXdpZHRoOiAxOGVtO1xufVxuLmNrLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2l0ZW0ge1xuXHRtaW4td2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLW1lbnUtbWVudS1pdGVtLW1pbi13aWR0aCk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIExpc3QgaXRlbSBidXR0b25zLlxuICovXG4uY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2l0ZW1fX2J1dHRvbiB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG4uY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2l0ZW1fX2J1dHRvbiA+IC5jay1zcGlubmVyLWNvbnRhaW5lcixcblx0LmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtX19idXR0b24gPiAuY2stc3Bpbm5lci1jb250YWluZXIgLmNrLXNwaW5uZXIge1xuXHRcdC8qIFRoZXNlIHN0eWxlcyBjb3JyZXNwb25kIHRvIC5jay1pY29uIHNvIHRoYXQgdGhlIHNwaW5uZXIgc2VhbWxlc3NseSByZXBsYWNlcyB0aGUgaWNvbi4gKi9cblx0XHQtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplOiAyMHB4O1xuXHR9XG4uY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2l0ZW1fX2J1dHRvbiA+IC5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdFx0LyogVGhlc2UgbWFyZ2lucyBhcmUgdGhlIHNhbWUgYXMgZm9yIC5jay1pY29uLiAqL1xuXHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi8qXG5cdCAqIEhvdmVyZWQgaXRlbXMgYXV0b21hdGljYWxseSBnZXQgZm9jdXNlZC4gRGVmYXVsdCBmb2N1cyBzdHlsZXMgbG9vayBvZGRcblx0ICogd2hpbGUgbW92aW5nIGFjcm9zcyBhIGh1Z2UgbGlzdCBvZiBpdGVtcyBzbyBsZXQncyBnZXQgcmlkIG9mIHRoZW1cblx0ICovXG4uY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2l0ZW1fX2J1dHRvbjpmb2N1cyB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHR9XG4uY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2l0ZW1fX2J1dHRvbjpmb2N1czpub3QoLmNrLW9uKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWRyb3Bkb3duLW1lbnUtbWVudS1wYW5lbC1tYXgtd2lkdGg6IDc1dnc7XG59XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwge1xuXHRib3gtc2hhZG93OiB2YXIoLS1jay1kcm9wLXNoYWRvdyksIDAgMDtcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYm9yZGVyKTtcblx0Ym90dG9tOiAwO1xuXHRoZWlnaHQ6IGZpdC1jb250ZW50O1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLW1lbnUtbWVudS1wYW5lbC1tYXgtd2lkdGgpO1xuXG5cdC8qIFJlc2V0IGJhbGxvb24gc3R5bGluZyAqL1xufVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsOjphZnRlcixcblx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsOjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbi8qIENvcm5lciBib3JkZXIgcmFkaXVzIGNvbnNpc3RlbnQgd2l0aCB0aGUgYnV0dG9uLiAqL1xuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsLmNrLWJhbGxvb24tcGFuZWxfZXMsXG5cdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbC5jay1iYWxsb29uLXBhbmVsX3NlIHtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwuY2stYmFsbG9vbi1wYW5lbF93cyxcblx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsLmNrLWJhbGxvb24tcGFuZWxfc3cge1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9lbixcblx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsLmNrLWJhbGxvb24tcGFuZWxfbmUge1xuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbC5jay1iYWxsb29uLXBhbmVsX3duLFxuXHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1kcm9wZG93bi1tZW51X19uZXN0ZWQtbWVudV9fcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9udyB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbDpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlci5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbjpyb290IHtcblx0LS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLW1heC13aWR0aDogNjAwcHg7XG5cdC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1tYXgtaGVpZ2h0OiA0MDBweDtcblx0LS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWJvcmRlci1jb2xvcjogaHNsKDIyMCwgNiUsIDgxJSk7XG5cdC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1jb2RlLWJhY2tncm91bmQtY29sb3I6IGhzbCgwZGVnIDAlIDkyLjk0JSk7XG5cdC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1rYmQtc2hhZG93LWNvbG9yOiBoc2woMGRlZyAwJSA2MSUpO1xufVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLW1heC13aWR0aCk7XG5cdG1heC1oZWlnaHQ6IHZhcigtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctbWF4LWhlaWdodCk7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHR1c2VyLXNlbGVjdDogdGV4dDtcblxuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50OmZvY3VzIHtcblx0XHQvKiBEaXNhYmxlIG5hdGl2ZSBvdXRsaW5lLiAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdH1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50ICoge1xuXHRcdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cdH1cbi8qIEhpZGUgdGhlIG1haW4gbGFiZWwgb2YgdGhlIGNvbnRlbnQgY29udGFpbmVyLiAqL1xuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgLmNrLWxhYmVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBoMyB7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0Zm9udC1zaXplOiAxLjJlbTtcblx0fVxuLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgaDQge1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGZvbnQtc2l6ZTogMWVtO1xuXHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBwLFxuXHQuY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBoMyxcblx0LmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgaDQsXG5cdC5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IHRhYmxlIHtcblx0XHRtYXJnaW46IDFlbSAwO1xuXHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBkbCB7XG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciAxZnI7XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctYm9yZGVyLWNvbG9yKTtcblx0XHRib3JkZXItYm90dG9tOiBub25lO1xuXHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBkbCBkdCwgLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgZGwgZGQge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctYm9yZGVyLWNvbG9yKTtcblx0XHRcdHBhZGRpbmc6IC40ZW0gMDtcblx0XHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBkbCBkdCB7XG5cdFx0XHRncmlkLWNvbHVtbi1zdGFydDogMTtcblx0XHR9XG4uY2suY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZyAuY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZ19fY29udGVudCBkbCBkZCB7XG5cdFx0XHRncmlkLWNvbHVtbi1zdGFydDogMjtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdH1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGtiZCwgLmNrLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2cgLmNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2dfX2NvbnRlbnQgY29kZSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctY29kZS1iYWNrZ3JvdW5kLWNvbG9yKTtcblx0XHRwYWRkaW5nOiAuNGVtO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXNpemU6IC45ZW07XG5cdH1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGNvZGUge1xuXHRcdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdH1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGtiZCB7XG5cdFx0bWluLXdpZHRoOiAxLjhlbTtcblx0XHRib3gtc2hhZG93OiAwcHggMXB4IDFweCB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWtiZC1zaGFkb3ctY29sb3IpO1xuXHRcdG1hcmdpbjogMCAxcHg7XG5cdH1cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IGtiZCArIGtiZCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMnB4O1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgY2xhc3Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgYW4gZWxlbWVudCBob2xkaW5nIGl0IGlzIGRpc2FibGVkLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIGEgYnV0dG9uIG9mIGdpdmVuIGJhY2tncm91bmQgY29sb3IuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICogQHBhcmFtIHtTdHJpbmd9ICRib3JkZXIgLSBCb3JkZXIgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWVkaXRhYmxlLWJsdXItc2VsZWN0aW9uOiBoc2woMCwgMCUsIDg1JSk7XG59XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlKSB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUpLFxuXHQuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yb3VuZGVkLWNvcm5lcnM6bm90KC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSkge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1mb2N1c2VkOm5vdCguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUpIHtcblx0XHQvKiBEaXNhYmxlIG5hdGl2ZSBvdXRsaW5lLiAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1pbm5lci1zaGFkb3cpLCAwIDA7XG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZSB7XG5cdG92ZXJmbG93OiBhdXRvO1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZVtkaXI9XCJsdHJcIl0ge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZVtkaXI9XCJydGxcIl0ge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzExNiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lID4gKjpmaXJzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzg0NyAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lID4gKjpsYXN0LWNoaWxkIHtcblx0XHQvKlxuXHRcdCAqIFRoaXMgdmFsdWUgc2hvdWxkIG1hdGNoIHdpdGggdGhlIGRlZmF1bHQgbWFyZ2lucyBvZiB0aGUgYmxvY2sgZWxlbWVudHMgKGxpa2UgLm1lZGlhIG9yIC5pbWFnZSlcblx0XHQgKiB0byBhdm9pZCBhIGNvbnRlbnQganVtcGluZyB3aGVuIHRoZSBmYWtlIHNlbGVjdGlvbiBjb250YWluZXIgc2hvd3MgdXAgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS5cblx0XHQgKi9cblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjUxNyAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLWJsdXJyZWQgOjpzZWxlY3Rpb24ge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWVkaXRhYmxlLWJsdXItc2VsZWN0aW9uKTtcblx0fVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xMTEgKi9cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2xiYXItY29udGFpbmVyW2NsYXNzKj1cImFycm93X25cIl06OmFmdGVyIHtcblx0XHRib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbGJhci1jb250YWluZXJbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YWZ0ZXIge1xuXHRcdGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1mb3JtLWhlYWRlci1oZWlnaHQ6IDQ0cHg7XG59XG4uY2suY2stZm9ybV9faGVhZGVyIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdGhlaWdodDogdmFyKC0tY2stZm9ybS1oZWFkZXItaGVpZ2h0KTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWZvcm0taGVhZGVyLWhlaWdodCk7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG59XG5bZGlyPVwibHRyXCJdIC5jay5jay1mb3JtX19oZWFkZXIgPiAuY2staWNvbiB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZm9ybV9faGVhZGVyID4gLmNrLWljb24ge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0fVxuLmNrLmNrLWZvcm1fX2hlYWRlciAuY2stZm9ybV9faGVhZGVyX19sYWJlbCB7XG5cdFx0LS1jay1mb250LXNpemUtYmFzZTogMTVweDtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1pY29uLXNpemU6IGNhbGModmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSkgKiB2YXIoLS1jay1mb250LXNpemUtbm9ybWFsKSk7XG5cdC0tY2staWNvbi1mb250LXNpemU6IC44MzMzMzUwNjk0ZW07XG59XG4uY2suY2staWNvbiB7XG5cdHdpZHRoOiB2YXIoLS1jay1pY29uLXNpemUpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLWljb24tc2l6ZSk7XG5cblx0LyogTXVsdGlwbGllZCBieSB0aGUgaGVpZ2h0IG9mIHRoZSBsaW5lIGluIFwicHhcIiBzaG91bGQgZ2l2ZSBTVkcgXCJ2aWV3cG9ydFwiIGRpbWVuc2lvbnMgKi9cblx0Zm9udC1zaXplOiB2YXIoLS1jay1pY29uLWZvbnQtc2l6ZSk7XG5cblx0LyogSW5oZXJpdCBjdXJzb3Igc3R5bGUgKCM1KS4gKi9cblx0Y3Vyc29yOiBpbmhlcml0O1xufVxuLmNrLmNrLWljb24gKiB7XG5cdFx0LyogSW5oZXJpdCBjdXJzb3Igc3R5bGUgKCM1KS4gKi9cblx0XHRjdXJzb3I6IGluaGVyaXQ7XG5cdH1cbi8qIEFsbG93cyBkeW5hbWljIGNvbG9yaW5nIG9mIGFuIGljb24gYnkgaW5oZXJpdGluZyBpdHMgY29sb3IgZnJvbSB0aGUgcGFyZW50LiAqL1xuLmNrLmNrLWljb24uY2staWNvbl9pbmhlcml0LWNvbG9yIHtcblx0XHRjb2xvcjogaW5oZXJpdDtcblx0fVxuLmNrLmNrLWljb24uY2staWNvbl9pbmhlcml0LWNvbG9yICoge1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0fVxuLmNrLmNrLWljb24uY2staWNvbl9pbmhlcml0LWNvbG9yICo6bm90KFtmaWxsXSkge1xuXHRcdFx0XHQvKiBOZWVkZWQgYnkgRkYuICovXG5cdFx0XHRcdGZpbGw6IGN1cnJlbnRDb2xvcjtcblx0XHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlci5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbjpyb290IHtcblx0LS1jay1pbnB1dC13aWR0aDogMThlbTtcblxuXHQvKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5LiAqL1xuXHQtLWNrLWlucHV0LXRleHQtd2lkdGg6IHZhcigtLWNrLWlucHV0LXdpZHRoKTtcbn1cbi5jay5jay1pbnB1dCB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaW5wdXQtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWlucHV0LWJvcmRlcik7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctZXh0cmEtdGlueSkgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRtaW4td2lkdGg6IHZhcigtLWNrLWlucHV0LXdpZHRoKTtcblxuXHQvKiBUaGlzIGlzIGltcG9ydGFudCB0byBzdGF5IG9mIHRoZSBzYW1lIGhlaWdodCBhcyBzdXJyb3VuZGluZyBidXR0b25zICovXG5cdG1pbi1oZWlnaHQ6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblxuXHQvKiBBcHBseSBzb21lIHNtb290aCB0cmFuc2l0aW9uIHRvIHRoZSBib3gtc2hhZG93IGFuZCBib3JkZXIuICovXG5cdHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjFzIGVhc2UtaW4tb3V0LCBib3JkZXIgLjFzIGVhc2UtaW4tb3V0O1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2staW5wdXQsXG5cdC5jay5jay1pbnB1dC5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrLmNrLWlucHV0IHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xufVxuXHR9XG4uY2suY2staW5wdXQ6Zm9jdXMge1xuXHRcdC8qIERpc2FibGUgbmF0aXZlIG91dGxpbmUuICovXG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdyksIDAgMDtcblx0fVxuLmNrLmNrLWlucHV0W3JlYWRvbmx5XSB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYm9yZGVyKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtdGV4dCk7XG5cdH1cbi5jay5jay1pbnB1dFtyZWFkb25seV06Zm9jdXMge1xuXHRcdFx0LyogVGhlIHJlYWQtb25seSBpbnB1dCBzaG91bGQgaGF2ZSBhIHNsaWdodGx5IGxlc3MgdmlzaWJsZSBzaGFkb3cgd2hlbiBmb2N1c2VkLiAqL1xuXHRcdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtZGlzYWJsZWQtb3V0ZXItc2hhZG93KSwgMCAwO1xuXHRcdH1cbi5jay5jay1pbnB1dC5jay1lcnJvciB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1pbnB1dC1lcnJvci1ib3JkZXIpO1xuXHRcdGFuaW1hdGlvbjogY2staW5wdXQtc2hha2UgLjNzIGVhc2UgYm90aDtcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay1pbnB1dC5jay1lcnJvciB7XG5cdFx0XHRhbmltYXRpb246IG5vbmU7XG5cdH1cblx0XHR9XG4uY2suY2staW5wdXQuY2stZXJyb3I6Zm9jdXMge1xuXHRcdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtZXJyb3Itb3V0ZXItc2hhZG93KSwgMCAwO1xuXHRcdH1cbkBrZXlmcmFtZXMgY2staW5wdXQtc2hha2Uge1xuXHQyMCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTtcblx0fVxuXG5cdDQwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7XG5cdH1cblxuXHQ2MCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXB4KTtcblx0fVxuXG5cdDgwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDFweCk7XG5cdH1cbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stbGFiZWwge1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG46cm9vdCB7XG5cdC0tY2stbGFiZWxlZC1maWVsZC12aWV3LXRyYW5zaXRpb246IC4xcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yNCwgMC45NSk7XG5cdC0tY2stbGFiZWxlZC1maWVsZC1lbXB0eS11bmZvY3VzZWQtbWF4LXdpZHRoOiAxMDAlIC0gMiAqIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0LS1jay1sYWJlbGVkLWZpZWxkLWxhYmVsLWRlZmF1bHQtcG9zaXRpb24teDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHQtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi15OiBjYWxjKDAuNiAqIHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSk7XG5cdC0tY2stY29sb3ItbGFiZWxlZC1maWVsZC1sYWJlbC1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xufVxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcsXG5cdC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCB7XG5cdFx0XHR0b3A6IDBweDtcblxuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxhYmVsZWQtZmllbGQtbGFiZWwtYmFja2dyb3VuZCk7XG5cdFx0XHRwYWRkaW5nOiAwIGNhbGMoLjUgKiB2YXIoLS1jay1mb250LXNpemUtdGlueSkpO1xuXHRcdFx0bGluZS1oZWlnaHQ6IGluaXRpYWw7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXG5cdFx0XHQvKiBQcmV2ZW50IG92ZXJmbG93IHdoZW4gdGhlIGxhYmVsIGlzIGxvbmdlciB0aGFuIHRoZSBpbnB1dCAqL1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0XHRcdHRyYW5zaXRpb246XG5cdFx0XHRcdHRyYW5zZm9ybSB2YXIoLS1jay1sYWJlbGVkLWZpZWxkLXZpZXctdHJhbnNpdGlvbiksXG5cdFx0XHRcdHBhZGRpbmcgdmFyKC0tY2stbGFiZWxlZC1maWVsZC12aWV3LXRyYW5zaXRpb24pLFxuXHRcdFx0XHRiYWNrZ3JvdW5kIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtdmlldy10cmFuc2l0aW9uKTtcblx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdFx0bGVmdDogMHB4O1xuXHRcdFx0XHR0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG5cdFx0XHRcdC8qIEJ5IGRlZmF1bHQsIGRpc3BsYXkgdGhlIGxhYmVsIHNjYWxlZCBkb3duIGFib3ZlIHRoZSBmaWVsZC4gKi9cblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tY2stc3BhY2luZy1tZWRpdW0pLCAtNnB4KSBzY2FsZSguNzUpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdFx0cmlnaHQ6IDBweDtcblx0XHRcdFx0dHJhbnNmb3JtLW9yaWdpbjogMTAwJSAwO1xuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pKSwgLTZweCkgc2NhbGUoLjc1KTtcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0XHR9XG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWVycm9yID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0fVxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1lcnJvciAuY2staW5wdXQ6bm90KFtyZWFkb25seV0pICsgLmNrLmNrLWxhYmVsIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcblx0XHR9XG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtc21hbGwpO1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXG5cdFx0LyogTGV0IHRoZSBpbmZvIHdyYXAgdG8gdGhlIG5leHQgbGluZSB0byBhdm9pZCBzdHJldGNoaW5nIHRoZSBsYXlvdXQgaG9yaXpvbnRhbGx5LlxuXHRcdFRoZSBzdGF0dXMgY291bGQgYmUgdmVyeSBsb25nLiAqL1xuXHRcdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cdH1cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzX2Vycm9yIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcblx0XHR9XG4vKiBEaXNhYmxlZCBmaWVsZHMgYW5kIGZpZWxkcyB0aGF0IGhhdmUgbm8gZm9jdXMgc2hvdWxkIGZhZGUgb3V0LiAqL1xuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1kaXNhYmxlZCA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwsXG5cdC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X2ZvY3VzZWQpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLXRleHQpO1xuXHR9XG4vKiBGaWVsZHMgdGhhdCBhcmUgZGlzYWJsZWQgb3Igbm90IGZvY3VzZWQgYW5kIHdpdGhvdXQgYSBwbGFjZWhvbGRlciBzaG91bGQgaGF2ZSBmdWxsLXNpemVkIGxhYmVscy4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWRpc2FibGVkLmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsLFxuXHQuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19mb2N1c2VkKTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcik6bm90KC5jay1lcnJvcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblxuXHRcdC8qIENvbXBlbnNhdGUgZm9yIHRoZSBkZWZhdWx0IHRyYW5zbGF0ZSBwb3NpdGlvbi4gKi9cblx0XHRtYXgtd2lkdGg6IGNhbGModmFyKC0tY2stbGFiZWxlZC1maWVsZC1lbXB0eS11bmZvY3VzZWQtbWF4LXdpZHRoKSk7XG5cblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stZGlzYWJsZWQuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwsIFtkaXI9XCJsdHJcIl0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZm9jdXNlZCk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfcGxhY2Vob2xkZXIpOm5vdCguY2stZXJyb3IpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1jay1sYWJlbGVkLWZpZWxkLWxhYmVsLWRlZmF1bHQtcG9zaXRpb24teCksIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi15KSkgc2NhbGUoMSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1kaXNhYmxlZC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfcGxhY2Vob2xkZXIpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCwgW2Rpcj1cInJ0bFwiXSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19mb2N1c2VkKTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcik6bm90KC5jay1lcnJvcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGMoLTEgKiB2YXIoLS1jay1sYWJlbGVkLWZpZWxkLWxhYmVsLWRlZmF1bHQtcG9zaXRpb24teCkpLCB2YXIoLS1jay1sYWJlbGVkLWZpZWxkLWxhYmVsLWRlZmF1bHQtcG9zaXRpb24teSkpIHNjYWxlKDEpO1xuXHR9XG4vKi0tLS0tLSBEcm9wZG93blZpZXcgaW50ZWdyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIE1ha2Ugc3VyZSBkcm9wZG93bicgYmFja2dyb3VuZCBjb2xvciBpbiBhbnkgb2YgZHJvcGRvd24ncyBzdGF0ZSBkb2VzIG5vdCBjb2xsaWRlIHdpdGggbGFiZWxlZCBmaWVsZC4gKi9cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdH1cbi8qIFdoZW4gdGhlIGRyb3Bkb3duIGlzIFwiZW1wdHlcIiwgdGhlIGxhYmVsZWQgZmllbGQgbGFiZWwgcmVwbGFjZXMgaXRzIGxhYmVsLiAqL1xuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHkgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWRyb3Bkb3duID4gLmNrLWJ1dHRvbiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG4vKiBNYWtlIHN1cmUgdGhlIGxhYmVsIG9mIHRoZSBlbXB0eSwgdW5mb2N1c2VkIGlucHV0IGRvZXMgbm90IGNvdmVyIHRoZSBkcm9wZG93biBhcnJvdy4gKi9cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X2ZvY3VzZWQpOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2stZHJvcGRvd24gKyAuY2stbGFiZWwge1xuXHRcdG1heC13aWR0aDogY2FsYyh2YXIoLS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGgpIC0gdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSkgLSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stbGFiZWxlZC1pbnB1dCAuY2stbGFiZWxlZC1pbnB1dF9fc3RhdHVzIHtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtc21hbGwpO1xuXHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblxuXHQvKiBMZXQgdGhlIGluZm8gd3JhcCB0byB0aGUgbmV4dCBsaW5lIHRvIGF2b2lkIHN0cmV0Y2hpbmcgdGhlIGxheW91dCBob3Jpem9udGFsbHkuXG5cdFRoZSBzdGF0dXMgY291bGQgYmUgdmVyeSBsb25nLiAqL1xuXHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuLmNrLmNrLWxhYmVsZWQtaW5wdXQgLmNrLWxhYmVsZWQtaW5wdXRfX3N0YXR1c19lcnJvciB7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVsZW1lbnQgaG9sZGluZyBpdCBpcyBkaXNhYmxlZC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1saXN0IHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYmFja2dyb3VuZCk7XG5cblx0LyogQSBzcGFjaW5nIGF0IHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiB0aGUgbGlzdCAqL1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSAwO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stbGlzdCxcblx0LmNrLmNrLWxpc3QuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLmNrLWxpc3RfX2l0ZW0ge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cblx0LyogQWxtb3N0IGFzIHdpZGUgYXMgbWVudSBiYXIgaXRlbXMuICovXG5cdG1pbi13aWR0aDogMTVlbTtcbn1cbi5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblx0XHRtaW4taGVpZ2h0OiB1bnNldDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWxpc3RfX2l0ZW0gPiAuY2stYnV0dG9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbikge1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cbi5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtaGVhZGluZy9pc3N1ZXMvNjMgKi9cblx0XHRcdGxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLWNrLWxpbmUtaGVpZ2h0LWJhc2UpICogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpKTtcblx0XHR9XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKTphY3RpdmUge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b24uY2stb246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kKTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi10ZXh0KTtcblx0XHR9XG4uY2suY2stbGlzdF9faXRlbSA+IC5jay1idXR0b24uY2stb246bm90KC5jay1saXN0LWl0ZW0tYnV0dG9uKTphY3RpdmUge1xuXHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0fVxuLmNrLmNrLWxpc3RfX2l0ZW0gPiAuY2stYnV0dG9uLmNrLW9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbik6aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kLWZvY3VzKTtcblx0XHRcdH1cbi5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbi5jay1vbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pOmZvY3VzOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuLmNrLmNrLWxpc3RfX2l0ZW0gPiAuY2stYnV0dG9uOm5vdCguY2stbGlzdC1pdGVtLWJ1dHRvbik6aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuLyogSXQncyB1bm5lY2Vzc2FyeSB0byBjaGFuZ2UgdGhlIGJhY2tncm91bmQvdGV4dCBvZiBhIHN3aXRjaCB0b2dnbGU7IGl0IGhhcyBkaWZmZXJlbnQgd2F5c1xuXHRvZiBjb252ZXlpbmcgaXRzIHN0YXRlIChsaWtlIHRoZSBzd2l0Y2hlcikgKi9cbi5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb24ge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1iYWNrZ3JvdW5kKTtcblx0XHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdH1cbi5jay5jay1saXN0X19pdGVtID4gLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb246aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHR9XG4uY2stbGlzdCAuY2stbGlzdF9fZ3JvdXAge1xuXHRwYWRkaW5nLXRvcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXG5cdC8qIExpc3RzIGNvbWUgd2l0aCBhbiBpbm5lciB2ZXJ0aWNhbCBwYWRkaW5nLiBEb24ndCBkdXBsaWNhdGUgaXQuICovXG59XG4uY2stbGlzdCAuY2stbGlzdF9fZ3JvdXA6Zmlyc3QtY2hpbGQge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG4vKiBUaGUgZ3JvdXAgc2hvdWxkIGhhdmUgYSBib3JkZXIgd2hlbiBpdCdzIG5vdCB0aGUgZmlyc3QgaXRlbS4gKi9cbio6bm90KC5jay1oaWRkZW4pIH4gLmNrLWxpc3QgLmNrLWxpc3RfX2dyb3VwIHtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHR9XG4uY2stbGlzdCAuY2stbGlzdF9fZ3JvdXAgPiAuY2stbGFiZWwge1xuXHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblx0fVxuLmNrLmNrLWxpc3RfX3NlcGFyYXRvciB7XG5cdGhlaWdodDogMXB4O1xuXHR3aWR0aDogMTAwJTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIEdpdmUgdGhlIHNlcGFyYXRvciBzb21lIGFpciAqL1xuXHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIDA7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLW1lbnUtYmFyIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRnYXA6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cdHdpZHRoOiAxMDAlO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1tZW51LWJhcl9fbWVudSB7XG5cdC8qIEVuYWJsZSBmb250IHNpemUgaW5oZXJpdGFuY2UsIHdoaWNoIGFsbG93cyBmbHVpZCBVSSBzY2FsaW5nLiAqL1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG59XG4uY2suY2stbWVudS1iYXJfX21lbnUuY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVsZW1lbnQgaG9sZGluZyBpdCBpcyBkaXNhYmxlZC5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyBhIGJ1dHRvbiBvZiBnaXZlbiBiYWNrZ3JvdW5kIGNvbG9yLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSAkYmFja2dyb3VuZCAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkYm9yZGVyIC0gQm9yZGVyIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuXHQgKiBBbGwgbWVudSBidXR0b25zLlxuXHQgKi9cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24gPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0fVxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24uY2stZGlzYWJsZWQgPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRvcGFjaXR5OiB2YXIoLS1jay1kaXNhYmxlZC1vcGFjaXR5KTtcblx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG4vKlxuXHQgKiBUb3AtbGV2ZWwgbWVudSBidXR0b25zIG9ubHkuXG5cdCAqL1xuLmNrLmNrLW1lbnUtYmFyX19tZW51LmNrLW1lbnUtYmFyX19tZW51X3RvcC1sZXZlbCA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0bWluLWhlaWdodDogdW5zZXQ7XG5cdH1cbi5jay5jay1tZW51LWJhcl9fbWVudS5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHR3aWR0aDogdW5zZXQ7XG5cdFx0XHRsaW5lLWhlaWdodDogdW5zZXQ7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBUb3AtbGV2ZWwgYnV0dG9ucyBkb24ndCB1c2UgZWxsaXBzaXMgYW5kIG92ZXJmbG93OiBoaWRkZW4gY2xpcHMgZGVzY2VuZGVycy5cblx0XHRcdCAqICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTc0MjIuXG5cdFx0XHQgKi9cblx0XHRcdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRcdH1cbi5jay5jay1tZW51LWJhcl9fbWVudS5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbi5jay1vbiB7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuLmNrLmNrLW1lbnUtYmFyX19tZW51LmNrLW1lbnUtYmFyX19tZW51X3RvcC1sZXZlbCA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uIC5jay1pY29uIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuLypcblx0ICogU3ViLW1lbnUgYnV0dG9ucy5cblx0ICovXG4uY2suY2stbWVudS1iYXJfX21lbnU6bm90KC5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwpIC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnU6bm90KC5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwpIC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKTtcblx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1tZW51LWJhcl9fbWVudTpub3QoLmNrLW1lbnUtYmFyX19tZW51X3RvcC1sZXZlbCkgLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24gPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXG5cdFx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdFx0LyogTnVkZ2UgdGhlIGFycm93IGdlbnRseSB0byB0aGUgcmlnaHQgYmVjYXVzZSBpdHMgY2VudGVyIG9mIGdyYXZpdHkgaXMgdG8gdGhlIGxlZnQgKi9cblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1tZW51LWJhcl9fbWVudTpub3QoLmNrLW1lbnUtYmFyX19tZW51X3RvcC1sZXZlbCkgLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24gPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cblx0XHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdFx0LyogQSBzcGFjZSB0byBhY2NvbW1vZGF0ZSB0aGUgdHJpYW5nbGUuICovXG5cdFx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0XHRcdFx0LyogTnVkZ2UgdGhlIGFycm93IGdlbnRseSB0byB0aGUgbGVmdCBiZWNhdXNlIGl0cyBjZW50ZXIgb2YgZ3Jhdml0eSBpcyB0byB0aGUgcmlnaHQgKGFmdGVyIHJvdGF0aW9uKS4gKi9cblx0XHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG5cdH1cbi5jay5jay1tZW51LWJhcl9fbWVudTpub3QoLmNrLW1lbnUtYmFyX19tZW51X3RvcC1sZXZlbCkgLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24uY2stZGlzYWJsZWQgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1tZW51LWJhci1tZW51LWl0ZW0tbWluLXdpZHRoOiAxOGVtO1xufVxuLmNrLmNrLW1lbnUtYmFyX19tZW51IC5jay5jay1tZW51LWJhcl9fbWVudV9faXRlbSB7XG5cdG1pbi13aWR0aDogdmFyKC0tY2stbWVudS1iYXItbWVudS1pdGVtLW1pbi13aWR0aCk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG5cdCAqIExpc3QgaXRlbSBidXR0b25zLlxuXHQgKi9cbi5jay5jay1tZW51LWJhcl9fbWVudSAuY2stYnV0dG9uLmNrLW1lbnUtYmFyX19tZW51X19pdGVtX19idXR0b24ge1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1tZW51LWJhcl9fbWVudSAuY2stYnV0dG9uLmNrLW1lbnUtYmFyX19tZW51X19pdGVtX19idXR0b24gPiAuY2stc3Bpbm5lci1jb250YWluZXIsXG5cdFx0LmNrLmNrLW1lbnUtYmFyX19tZW51IC5jay1idXR0b24uY2stbWVudS1iYXJfX21lbnVfX2l0ZW1fX2J1dHRvbiA+IC5jay1zcGlubmVyLWNvbnRhaW5lciAuY2stc3Bpbm5lciB7XG5cdFx0XHQvKiBUaGVzZSBzdHlsZXMgY29ycmVzcG9uZCB0byAuY2staWNvbiBzbyB0aGF0IHRoZSBzcGlubmVyIHNlYW1sZXNzbHkgcmVwbGFjZXMgdGhlIGljb24uICovXG5cdFx0XHQtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplOiAyMHB4O1xuXHRcdH1cbi5jay5jay1tZW51LWJhcl9fbWVudSAuY2stYnV0dG9uLmNrLW1lbnUtYmFyX19tZW51X19pdGVtX19idXR0b24gPiAuY2stc3Bpbm5lci1jb250YWluZXIge1xuXHRcdFx0LyogVGhpcyBlbnN1cmVzIG1hcmdpbnMgY29ycmVzcG9uZGluZyB0byB0aGUgLmNrLWljb24uICovXG5cdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWljb24tZm9udC1zaXplKTtcblx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1tZW51LWJhcl9fbWVudSAuY2stYnV0dG9uLmNrLW1lbnUtYmFyX19tZW51X19pdGVtX19idXR0b24gPiAuY2stc3Bpbm5lci1jb250YWluZXIge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbWVudS1iYXJfX21lbnUgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uID4gLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlci5cbiAqL1xuOnJvb3Qge1xuXHQtLWNrLW1lbnUtYmFyLW1lbnUtcGFuZWwtbWF4LXdpZHRoOiA3NXZ3O1xufVxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbCB7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcik7XG5cdGJvdHRvbTogMDtcblx0aGVpZ2h0OiBmaXQtY29udGVudDtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay1tZW51LWJhci1tZW51LXBhbmVsLW1heC13aWR0aCk7XG59XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwsXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbCB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xuXG5cdC8qIENvcm5lciBib3JkZXIgcmFkaXVzIGNvbnNpc3RlbnQgd2l0aCB0aGUgYnV0dG9uLiAqL1xufVxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZXMsXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3NlIHtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93cyxcblx0LmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc3cge1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lbixcblx0LmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbmUge1xuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3duLFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9udyB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWw6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbi5jay5jay1tZW51LWJhciAuY2stbGlzdC1pdGVtLWJ1dHRvbjpmb2N1cyxcblx0XHQuY2suY2stbWVudS1iYXIgLmNrLWxpc3QtaXRlbS1idXR0b246YWN0aXZlIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdH1cbi5jay5jay1tZW51LWJhci5jay1tZW51LWJhcl9mb2N1cy1ib3JkZXItZW5hYmxlZCAuY2stbGlzdC1pdGVtLWJ1dHRvbjpmb2N1cyxcblx0XHQuY2suY2stbWVudS1iYXIuY2stbWVudS1iYXJfZm9jdXMtYm9yZGVyLWVuYWJsZWQgLmNrLWxpc3QtaXRlbS1idXR0b246YWN0aXZlIHtcblx0XHRcdC8qIEZpeCB0cnVuY2F0ZWQgc2hhZG93cyBkdWUgdG8gcmVuZGVyaW5nIG9yZGVyLiAqL1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ei1pbmRleDogMjtcblxuXHRcdFx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblxuXHRcdFx0b3V0bGluZTogbm9uZTtcblxuXHRcdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdyksIDAgMDtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoOiAxcHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQ6IDJweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhlaWdodDogMTBweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGg6IDhweDtcblx0LS1jay1iYWxsb29uLWFycm93LWRyb3Atc2hhZG93OiAwIDJweCAycHggdmFyKC0tY2stY29sb3Itc2hhZG93LWRyb3ApO1xufVxuLmNrLmNrLWJhbGxvb24tcGFuZWwge1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcik7XG59XG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1iYWxsb29uLXBhbmVsLFxuXHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbCB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xufVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF93aXRoLWFycm93OjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF93aXRoLWFycm93OjphZnRlciB7XG5cdFx0XHR3aWR0aDogMDtcblx0XHRcdGhlaWdodDogMDtcblx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfblwiXTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X25cIl06OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogMCB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X25cIl06OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcikgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tdG9wOiBjYWxjKCAtMSAqIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X25cIl06OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCkgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tdG9wOiBjYWxjKCB2YXIoLS1jay1iYWxsb29uLWFycm93LW9mZnNldCkgLSB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19zXCJdOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLXdpZHRoOiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSAwIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YmVmb3JlIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItcGFuZWwtYm9yZGVyKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHRcdGZpbHRlcjogZHJvcC1zaGFkb3codmFyKC0tY2stYmFsbG9vbi1hcnJvdy1kcm9wLXNoYWRvdykpO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogY2FsYyggLTEgKiB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19zXCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogY2FsYyggdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQpIC0gdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfZVwiXTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X2VcIl06OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSAwIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X2VcIl06OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcik7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoIC0xICogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfZVwiXTo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0XHRcdG1hcmdpbi1yaWdodDogY2FsYyggdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQpIC0gdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfd1wiXTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3dcIl06OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSAwO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3dcIl06OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYyggLTEgKiB2YXIoLS1jay1iYWxsb29uLWJvcmRlci13aWR0aCkgKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd193XCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbjo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbjo6YWZ0ZXIge1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19udzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbnc6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X25lOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19uZTo6YWZ0ZXIge1xuXHRcdFx0cmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3M6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3M6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc3c6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3N3OjphZnRlciB7XG5cdFx0XHRsZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zZTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc2U6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zbWU6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NtZTo6YWZ0ZXIge1xuXHRcdFx0cmlnaHQ6IDI1JTtcblx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc213OjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zbXc6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDI1JTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19ubWU6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X25tZTo6YWZ0ZXIge1xuXHRcdFx0cmlnaHQ6IDI1JTtcblx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbm13OjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19ubXc6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDI1JTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19lOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19lOjphZnRlciB7XG5cdFx0XHRyaWdodDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0XHRtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3c6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3c6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdFx0bWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19uYXZpZ2F0aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbGJhci1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyKTtcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblxuXHQvKiBMZXQncyBrZWVwIHNpbWlsYXIgYXBwZWFyYW5jZSB0byBgY2stdG9vbGJhcmAuICovXG59XG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fbmF2aWdhdGlvbiA+ICoge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi8qIEdpdmVzIGNvdW50ZXIgbW9yZSBicmVhdGggdGhhbiBidXR0b25zLiAqL1xuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX25hdmlnYXRpb24gLmNrLWJhbGxvb24tcm90YXRvcl9fY291bnRlciB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdC8qIFdlIG5lZWQgdG8gdXNlIHNtYWxsZXIgbWFyZ2luIGJlY2F1c2Ugb2YgcHJldmlvdXMgYnV0dG9uJ3MgcmlnaHQgbWFyZ2luLiAqL1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLyogRGlzYWJsZSBkZWZhdWx0IGFubm90YXRpb24gc2hhZG93IGluc2lkZSByb3RhdG9yIHdpdGggZmFrZSBwYW5lbHMuICovXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fY29udGVudCAuY2suY2stYW5ub3RhdGlvbi13cmFwcGVyIHtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbjpyb290IHtcblx0LS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LWhvcml6b250YWw6IDZweDtcblx0LS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LXZlcnRpY2FsOiA2cHg7XG59XG4vKiBMZXQncyB1c2UgYC5jay1iYWxsb29uLXBhbmVsYCBhcHBlYXJhbmNlLiBTZWU6IGJhbGxvb25wYW5lbC5jc3MuICovXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2IHtcblx0Ym94LXNoYWRvdzogdmFyKC0tY2stZHJvcC1zaGFkb3cpLCAwIDA7XG5cblx0bWluLWhlaWdodDogMTVweDtcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItcGFuZWwtYm9yZGVyKTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAxICkge1xuXHRtYXJnaW4tbGVmdDogdmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsKTtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbCk7XG59XG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMiApIHtcblx0bWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsKSAqIDIpO1xuXHRtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWwpICogMik7XG59XG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMyApIHtcblx0bWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsKSAqIDMpO1xuXHRtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWwpICogMyk7XG59XG4vKiBJZiBiYWxsb29uIGlzIHBvc2l0aW9uZWQgYWJvdmUgZWxlbWVudCwgd2UgbmVlZCB0byBtb3ZlIGZha2UgcGFuZWwgdG8gdGhlIHRvcC4gKi9cbi5jayAuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zICsgLmNrLWZha2UtcGFuZWwsXG4uY2sgLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc2UgKyAuY2stZmFrZS1wYW5lbCxcbi5jayAuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zdyArIC5jay1mYWtlLXBhbmVsIHtcblx0LS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LXZlcnRpY2FsOiAtNnB4O1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG4uY2suY2stc3RpY2t5LXBhbmVsIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnRfc3RpY2t5IHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1kcm9wLXNoYWRvdyksIDAgMDtcblxuXHRcdGJvcmRlci13aWR0aDogMCAxcHggMXB4O1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay12ZXJ0aWNhbC1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKTo6YWZ0ZXIge1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG59XG4uY2suY2stcmVzcG9uc2l2ZS1mb3JtIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG59XG4uY2suY2stcmVzcG9uc2l2ZS1mb3JtOmZvY3VzIHtcblx0XHQvKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzQ3NzMgKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiA6bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IDpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSB7XG5cdFx0cGFkZGluZzogMDtcblx0XHR3aWR0aDogY2FsYyguOCAqIHZhcigtLWNrLWlucHV0LXdpZHRoKSk7XG59XG5cblx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSAwO1xuXHRcdH1cblxuXHRcdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay1pbnB1dC10ZXh0LFxuXHRcdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay1pbnB1dC1udW1iZXIge1xuXHRcdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXG5cdFx0XHQvKiBMZXQgdGhlIGxvbmcgZXJyb3IgbWVzc2FnZXMgd3JhcCBpbiB0aGUgbmFycm93IGZvcm0uICovXG5cdFx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWxhYmVsZWQtZmllbGQtdmlld19fZXJyb3Ige1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHRcdFx0fVxuXG5cdFx0LyogU3R5bGVzIGZvciB0d28gbGFzdCBidXR0b25zIGluIHRoZSBmb3JtIChzYXZlJmNhbmNlbCwgZWRpdCZ1bmxpbmssIGV0Yy4pLiAqL1xuXHRcdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMik6OmFmdGVyIHtcblx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0fVxuXG5cdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMSksXG5cdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMikge1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0fVxuXG5cdFx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgxKTpub3QoOmZvY3VzKSwgLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMik6bm90KDpmb2N1cykge1xuXHRcdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0fVxuXG5cdFx0XHRbZGlyPVwibHRyXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDEpLCBbZGlyPVwibHRyXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDIpIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHRcdFx0W2Rpcj1cInJ0bFwiXSAuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgxKSwgW2Rpcj1cInJ0bFwiXSAuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKSB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG5cblx0XHRcdFx0W2Rpcj1cInJ0bFwiXSAuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgxKTpsYXN0LW9mLXR5cGUsIFtkaXI9XCJydGxcIl0gLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMik6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHRcdH1cblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nOiBjYWxjKHZhcigtLWNrLWljb24tc2l6ZSkgKyB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkpO1xufVxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWlucHV0IHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1pY29uIHtcblx0XHRcdC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXg6IHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cdFx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLWljb24gPiAuY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWljb24ge1xuXHRcdFx0XHRvcGFjaXR5OiAuNTtcblx0XHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0XHR9XG4uY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtaWNvbiAuY2staW5wdXQge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLWljb24gLmNrLWlucHV0IHtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLWljb24gLmNrLWlucHV0Om5vdCguY2staW5wdXQtdGV4dF9lbXB0eSkge1xuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXHRcdFx0XHRcdH1cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1yZXNldCB7XG5cdFx0XHQtLWNrLWxhYmVsZWQtZmllbGQtZW1wdHktdW5mb2N1c2VkLW1heC13aWR0aDogMTAwJSAtIDIgKiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXHRcdH1cbi5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1yZXNldC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHkge1xuXHRcdFx0XHQtLWNrLWxhYmVsZWQtZmllbGQtZW1wdHktdW5mb2N1c2VkLW1heC13aWR0aDogMTAwJSAtIHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZykgLSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHR9XG4uY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtcmVzZXQgLmNrLXNlYXJjaF9fcmVzZXQge1xuXHRcdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0XHRcdG1pbi1oZWlnaHQ6IGF1dG87XG5cblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdFx0b3BhY2l0eTogLjU7XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1yZXNldCAuY2stc2VhcmNoX19yZXNldCB7XG5cdFx0XHRcdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtcmVzZXQgLmNrLXNlYXJjaF9fcmVzZXQge1xuXHRcdFx0XHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLXJlc2V0IC5jay1zZWFyY2hfX3Jlc2V0OmhvdmVyIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0XHR9XG4uY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1zZWFyY2hfX3F1ZXJ5X3dpdGgtcmVzZXQgLmNrLWlucHV0IHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1zZWFyY2ggPiAuY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1yZXNldCAuY2staW5wdXQ6bm90KC5jay1pbnB1dC10ZXh0X2VtcHR5KSB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXHRcdFx0XHRcdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stc2VhcmNoX19xdWVyeV93aXRoLXJlc2V0IC5jay1pbnB1dCB7XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1zZWFyY2hfX3Jlc3VsdHMge1xuXHRcdG1pbi13aWR0aDogMTAwJTtcblx0fVxuLmNrLmNrLXNlYXJjaCA+IC5jay1zZWFyY2hfX3Jlc3VsdHMgPiAuY2stc2VhcmNoX19pbmZvIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdH1cbi5jay5jay1zZWFyY2ggPiAuY2stc2VhcmNoX19yZXN1bHRzID4gLmNrLXNlYXJjaF9faW5mbyAqIHtcblx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0XHRcdH1cbi5jay5jay1zZWFyY2ggPiAuY2stc2VhcmNoX19yZXN1bHRzID4gLmNrLXNlYXJjaF9faW5mbyA+IHNwYW46Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRcdH1cbi5jay5jay1zZWFyY2ggPiAuY2stc2VhcmNoX19yZXN1bHRzID4gLmNrLXNlYXJjaF9faW5mbyA+IHNwYW46bGFzdC1jaGlsZCB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stdG9vbGJhci1zcGlubmVyLXNpemU6IDE4cHg7XG59XG4uY2suY2stc3Bpbm5lci1jb250YWluZXIge1xuXHR3aWR0aDogdmFyKC0tY2stdG9vbGJhci1zcGlubmVyLXNpemUpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplKTtcblx0YW5pbWF0aW9uOiAxLjVzIGluZmluaXRlIGNrLXNwaW5uZXItcm90YXRlIGxpbmVhcjtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stc3Bpbm5lci1jb250YWluZXIge1xuXHRcdGFuaW1hdGlvbi1kdXJhdGlvbjogM3M7XG59XG5cdH1cbi5jay5jay1zcGlubmVyIHtcblx0d2lkdGg6IHZhcigtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay10b29sYmFyLXNwaW5uZXItc2l6ZSk7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0Ym9yZGVyOiAycHggc29saWQgdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuQGtleWZyYW1lcyBjay1zcGlubmVyLXJvdGF0ZSB7XG5cdHRvIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpXG5cdH1cbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogVGhpcyBmaXhlcyBhIHByb2JsZW0gaW4gRmlyZWZveCB3aGVuIHRoZSBpbml0aWFsIGhlaWdodCBvZiB0aGUgY29tcGxlbWVudCBkb2VzIG5vdCBtYXRjaCB0aGUgbnVtYmVyIG9mIHJvd3MuXG4gKiBUaGlzIGJ1ZyBpcyBlc3BlY2lhbGx5IHZpc2libGUgd2hlbiByb3dzPTEuXG4gKi9cbi5jay10ZXh0YXJlYSB7XG5cdG92ZXJmbG93LXg6IGhpZGRlblxufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1jb2xvci1ibG9jay10b29sYmFyLWJ1dHRvbjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdC0tY2stYmxvY2stdG9vbGJhci1idXR0b24tc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLW5vcm1hbCk7XG59XG4uY2suY2stYmxvY2stdG9vbGJhci1idXR0b24ge1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmxvY2stdG9vbGJhci1idXR0b24pO1xuXHRmb250LXNpemU6IHZhcigtLWNrLWJsb2NrLXRvb2xiYXItc2l6ZSk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLXRvb2xiYXIge1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYmFja2dyb3VuZCk7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyKTtcbn1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLXRvb2xiYXIsXG5cdC5jay5jay10b29sYmFyLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay10b29sYmFyIC5jay5jay10b29sYmFyX19zZXBhcmF0b3Ige1xuXHRcdGhlaWdodDogdmFyKC0tY2staWNvbi1zaXplKTtcblx0XHR3aWR0aDogMXB4O1xuXHRcdG1pbi13aWR0aDogMXB4O1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyKTtcblxuXHRcdC8qXG5cdFx0ICogVGhlc2UgbWFyZ2lucyBtYWtlIHRoZSBzZXBhcmF0b3JzIGxvb2sgYmV0dGVyIGluIGJhbGxvb24gdG9vbGJhcnMgKHdoZW4gYWxpZ25lZCB3aXRoIHRoZSBcInRpcFwiKS5cblx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNzQ5My5cblx0XHQgKi9cblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLmNrLmNrLXRvb2xiYXIgLmNrLXRvb2xiYXJfX2xpbmUtYnJlYWsge1xuXHRcdGhlaWdodDogMDtcblx0fVxuLmNrLmNrLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAqOm5vdCguY2stdG9vbGJhcl9fbGluZS1icmVhaykge1xuXHRcdFx0LyogKCMxMSkgU2VwYXJhdGUgdG9vbGJhciBpdGVtcy4gKi9cblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuLyogRG9uJ3QgZGlzcGxheSBhIHNlcGFyYXRvciBhZnRlciBhbiBlbXB0eSBpdGVtcyBjb250YWluZXIsIGZvciBpbnN0YW5jZSxcblx0XHR3aGVuIGFsbCBpdGVtcyB3ZXJlIGdyb3VwZWQgKi9cbi5jay5jay10b29sYmFyID4gLmNrLXRvb2xiYXJfX2l0ZW1zOmVtcHR5ICsgLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cbi5jay5jay10b29sYmFyID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gKjpub3QoLmNrLXRvb2xiYXJfX2xpbmUtYnJlYWspLFxuXHQuY2suY2stdG9vbGJhciA+IC5jay5jay10b29sYmFyX19ncm91cGVkLWRyb3Bkb3duIHtcblx0XHQvKiBNYWtlIHN1cmUgaXRlbXMgd3JhcHBlZCB0byB0aGUgbmV4dCBsaW5lIGhhdmUgdi1zcGFjaW5nICovXG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfdmVydGljYWwge1xuXHRcdC8qIEl0ZW1zIGluIGEgdmVydGljYWwgdG9vbGJhciBzcGFuIHRoZSBlbnRpcmUgd2lkdGguICovXG5cdFx0cGFkZGluZzogMDtcblxuXHRcdC8qIFNwZWNpZmljaXR5IG1hdHRlcnMgaGVyZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTY4LiAqL1xuXHR9XG4uY2suY2stdG9vbGJhci5jay10b29sYmFyX3ZlcnRpY2FsID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrIHtcblx0XHRcdC8qIEl0ZW1zIGluIGEgdmVydGljYWwgdG9vbGJhciBzaG91bGQgc3BhbiB0aGUgaG9yaXpvbnRhbCBzcGFjZS4gKi9cblx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHQvKiBJdGVtcyBpbiBhIHZlcnRpY2FsIHRvb2xiYXIgc2hvdWxkIGhhdmUgbm8gbWFyZ2luLiAqL1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHQvKiBJdGVtcyBpbiBhIHZlcnRpY2FsIHRvb2xiYXIgc3BhbiB0aGUgZW50aXJlIHdpZHRoIHNvIHJvdW5kZWQgY29ybmVycyBhcmUgcG9pbnRsZXNzLiAqL1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHR9XG4uY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3Qge1xuXHRcdC8qIE5vIHNwYWNpbmcgYXJvdW5kIGl0ZW1zLiAqL1xuXHRcdHBhZGRpbmc6IDA7XG5cdH1cbi5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+ICoge1xuXHRcdFx0LyogQ29tcGFjdCB0b29sYmFyIGl0ZW1zIGhhdmUgbm8gc3BhY2luZyBiZXR3ZWVuIHRoZW0uICovXG5cdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdC8qIFwiTWlkZGxlXCIgY2hpbGRyZW4gc2hvdWxkIGhhdmUgbm8gcm91bmRlZCBjb3JuZXJzLiAqL1xuXHRcdH1cbi5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+ICo6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0XHR9XG4vKlxuXHRcdCAqIERyb3Bkb3duIGJ1dHRvbiBoYXMgYXN5bW1ldHJpYyBwYWRkaW5nIHRvIGZpdCB0aGUgYXJyb3cuXG5cdFx0ICogVGhpcyBidXR0b24gaGFzIG5vIGFycm93IHNvIGxldCdzIHJldmVydCB0aGF0IHBhZGRpbmcgYmFjayB0byBub3JtYWwuXG5cdFx0ICovXG4uY2suY2stdG9vbGJhciA+IC5jay5jay10b29sYmFyX19ncm91cGVkLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIHtcblx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy10aW55KTtcblx0XHR9XG4vKiBBIGRyb3AtZG93biBjb250YWluaW5nIHRoZSBuZXN0ZWQgdG9vbGJhciB3aXRoIGNvbmZpZ3VyZWQgaXRlbXMuICovXG4vKiBQcmV2ZW50IGVtcHR5IHNwYWNlIGluIHRoZSBwYW5lbCB3aGVuIHRoZSBkcm9wZG93biBsYWJlbCBpcyB2aXNpYmxlIGFuZCBsb25nIGJ1dCB0aGUgdG9vbGJhciBoYXMgZmV3IGl0ZW1zLiAqL1xuLmNrLmNrLXRvb2xiYXIgLmNrLXRvb2xiYXJfX25lc3RlZC10b29sYmFyLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0fVxuLmNrLmNrLXRvb2xiYXIgLmNrLXRvb2xiYXJfX25lc3RlZC10b29sYmFyLWRyb3Bkb3duID4gLmNrLWJ1dHRvbiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdG1heC13aWR0aDogN2VtO1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0fVxuLmNrLmNrLXRvb2xiYXI6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbi5jay10b29sYmFyLWNvbnRhaW5lciAuY2suY2stdG9vbGJhciB7XG5cdFx0Ym9yZGVyOiAwO1xuXHR9XG4vKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuLypcbiAqIFN0eWxlcyBmb3IgUlRMIHRvb2xiYXJzLlxuICpcbiAqIE5vdGU6IEluIHNvbWUgY2FzZXMgKGUuZy4gYSBkZWNvdXBsZWQgZWRpdG9yKSwgdGhlIHRvb2xiYXIgaGFzIGl0cyBvd24gXCJkaXJcIlxuICogYmVjYXVzZSBpdHMgcGFyZW50IGlzIG5vdCBjb250cm9sbGVkIGJ5IHRoZSBlZGl0b3IgZnJhbWV3b3JrLlxuICovXG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrLCAuY2suY2stdG9vbGJhcltkaXI9XCJydGxcIl0gPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2sge1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stdG9vbGJhcjpub3QoLmNrLXRvb2xiYXJfY29tcGFjdCkgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2ssIC5jay5jay10b29sYmFyW2Rpcj1cInJ0bFwiXTpub3QoLmNrLXRvb2xiYXJfY29tcGFjdCkgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2sge1xuXHRcdC8qICgjMTEpIFNlcGFyYXRlIHRvb2xiYXIgaXRlbXMuICovXG5cdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQsIC5jay5jay10b29sYmFyW2Rpcj1cInJ0bFwiXSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkIHtcblx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuLyogTm8gcm91bmRlZCBjb3JuZXJzIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBmaXJzdCBjaGlsZC4gKi9cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0ID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmZpcnN0LWNoaWxkLCAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3RbZGlyPVwicnRsXCJdID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmZpcnN0LWNoaWxkIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdH1cbi8qIE5vIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBsYXN0IGNoaWxkLiAqL1xuW2Rpcj1cInJ0bFwiXSAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCwgLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0W2Rpcj1cInJ0bFwiXSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkIHtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuLyogU2VwYXJhdGUgdGhlIHRoZSBzZXBhcmF0b3IgZm9ybSB0aGUgZ3JvdXBpbmcgZHJvcGRvd24gd2hlbiBzb21lIGl0ZW1zIGFyZSBncm91cGVkLiAqL1xuW2Rpcj1cInJ0bFwiXSAuY2suY2stdG9vbGJhciA+IC5jay5jay10b29sYmFyX19zZXBhcmF0b3IsIC5jay5jay10b29sYmFyW2Rpcj1cInJ0bFwiXSA+IC5jay5jay10b29sYmFyX19zZXBhcmF0b3Ige1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLyogU29tZSBzcGFjaW5nIGJldHdlZW4gdGhlIGl0ZW1zIGFuZCB0aGUgc2VwYXJhdG9yIGJlZm9yZSB0aGUgZ3JvdXBlZCBpdGVtcyBkcm9wZG93bi4gKi9cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9ncm91cGluZyA+IC5jay10b29sYmFyX19pdGVtczpub3QoOmVtcHR5KTpub3QoOm9ubHktY2hpbGQpLCAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2dyb3VwaW5nW2Rpcj1cInJ0bFwiXSA+IC5jay10b29sYmFyX19pdGVtczpub3QoOmVtcHR5KTpub3QoOm9ubHktY2hpbGQpIHtcblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbi8qXG4gKiBTdHlsZXMgZm9yIExUUiB0b29sYmFycy5cbiAqXG4gKiBOb3RlOiBJbiBzb21lIGNhc2VzIChlLmcuIGEgZGVjb3VwbGVkIGVkaXRvciksIHRoZSB0b29sYmFyIGhhcyBpdHMgb3duIFwiZGlyXCJcbiAqIGJlY2F1c2UgaXRzIHBhcmVudCBpcyBub3QgY29udHJvbGxlZCBieSB0aGUgZWRpdG9yIGZyYW1ld29yay5cbiAqL1xuW2Rpcj1cImx0clwiXSAuY2suY2stdG9vbGJhciA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkLCAuY2suY2stdG9vbGJhcltkaXI9XCJsdHJcIl0gPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHR9XG4vKiBObyByb3VuZGVkIGNvcm5lcnMgb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGZpcnN0IGNoaWxkLiAqL1xuW2Rpcj1cImx0clwiXSAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6Zmlyc3QtY2hpbGQsIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdFtkaXI9XCJsdHJcIl0gPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6Zmlyc3QtY2hpbGQge1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHR9XG4vKiBObyByb3VuZGVkIGNvcm5lcnMgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgbGFzdCBjaGlsZC4gKi9cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0ID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQsIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdFtkaXI9XCJsdHJcIl0gPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHR9XG4vKiBTZXBhcmF0ZSB0aGUgdGhlIHNlcGFyYXRvciBmb3JtIHRoZSBncm91cGluZyBkcm9wZG93biB3aGVuIHNvbWUgaXRlbXMgYXJlIGdyb3VwZWQuICovXG5bZGlyPVwibHRyXCJdIC5jay5jay10b29sYmFyID4gLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciwgLmNrLmNrLXRvb2xiYXJbZGlyPVwibHRyXCJdID4gLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLyogU29tZSBzcGFjaW5nIGJldHdlZW4gdGhlIGl0ZW1zIGFuZCB0aGUgc2VwYXJhdG9yIGJlZm9yZSB0aGUgZ3JvdXBlZCBpdGVtcyBkcm9wZG93bi4gKi9cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9ncm91cGluZyA+IC5jay10b29sYmFyX19pdGVtczpub3QoOmVtcHR5KTpub3QoOm9ubHktY2hpbGQpLCAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2dyb3VwaW5nW2Rpcj1cImx0clwiXSA+IC5jay10b29sYmFyX19pdGVtczpub3QoOmVtcHR5KTpub3QoOm9ubHktY2hpbGQpIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sdGlwIHtcblx0LS1jay1iYWxsb29uLWJvcmRlci13aWR0aDogMHB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0OiAwcHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoOiA0cHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQ6IDRweDtcblx0LS1jay10b29sdGlwLXRleHQtcGFkZGluZzogNHB4O1xuXHQtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXRvb2x0aXAtYmFja2dyb3VuZCk7XG5cblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cblx0LyogUmVzZXQgYmFsbG9vbiBwYW5lbCBzdHlsZXMgKi9cblx0Ym94LXNoYWRvdzogbm9uZTtcbn1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2x0aXAgLmNrLXRvb2x0aXBfX3RleHQge1xuXHRcdGZvbnQtc2l6ZTogLjllbTtcblx0XHRsaW5lLWhlaWdodDogMS41O1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci10b29sdGlwLXRleHQpO1xuXHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sdGlwLmNrLXRvb2x0aXBfbXVsdGktbGluZSAuY2stdG9vbHRpcF9fdGV4dCB7XG5cdFx0d2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlcztcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stdG9vbHRpcC10ZXh0LXBhZGRpbmcpIDA7XG5cdFx0bWF4LXdpZHRoOiAyMDBweDtcblx0fVxuLyogSGlkZSB0aGUgZGVmYXVsdCBzaGFkb3cgb2YgdGhlIC5jay1iYWxsb29uLXBhbmVsIHRpcCAqL1xuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbHRpcDo6YmVmb3JlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cbi8qIEVkaXRvciAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuLmNrLmNrLWVkaXRvcl9fdG9wIC5jay1zdGlja3ktcGFuZWwgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudCB7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuXHRcdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWVkaXRvcl9fdG9wIC5jay1zdGlja3ktcGFuZWwgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudCxcblx0LmNrLmNrLWVkaXRvcl9fdG9wIC5jay1zdGlja3ktcGFuZWwgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudC5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWVkaXRvcl9fdG9wIC5jay1zdGlja3ktcGFuZWwgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnRfc3RpY2t5IHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuXHRcdFx0fVxuLmNrLmNrLWVkaXRvcl9fdG9wIC5jay1zdGlja3ktcGFuZWwgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudCAuY2stbWVudS1iYXIge1xuXHRcdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG4uY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50IC5jay10b29sYmFyIHtcblx0XHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0fVxuLyogTm90ZTogVXNlIGNrLWVkaXRvcl9fbWFpbiB0byBtYWtlIHN1cmUgdGhlc2Ugc3R5bGVzIGRvbid0IGFwcGx5IHRvIG90aGVyIGVkaXRvciB0eXBlcyAqL1xuLmNrLmNrLWVkaXRvcl9fbWFpbiA+IC5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xMTMgKi9cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHRib3JkZXItcmFkaXVzOiAwO1xufVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZWRpdG9yX19tYWluID4gLmNrLWVkaXRvcl9fZWRpdGFibGUsXG5cdC5jay5jay1lZGl0b3JfX21haW4gPiAuY2stZWRpdG9yX19lZGl0YWJsZS5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1lZGl0b3JfX21haW4gPiAuY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLWZvY3VzZWQpIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0fVxuXG4vKiBQbHVnaW5zICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENsYXNzZXMgdXNlZCBieSB0aGUgXCJmYWtlIHZpc3VhbCBzZWxlY3Rpb25cIiBkaXNwbGF5ZWQgaW4gdGhlIGNvbnRlbnQgd2hlbiBhbiBpbnB1dFxuICogaW4gdGhlIGJvb2ttYXJrIFVJIGhhcyBmb2N1cyAodGhlIGJyb3dzZXIgZG9lcyBub3QgcmVuZGVyIHRoZSBuYXRpdmUgc2VsZWN0aW9uIGluIHRoaXMgc3RhdGUpLlxuICovXG4uY2sgLmNrLWZha2UtYm9va21hcmstc2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGluay1mYWtlLXNlbGVjdGlvbik7XG59XG4vKiBBIGNvbGxhcHNlZCBmYWtlIHZpc3VhbCBzZWxlY3Rpb24uICovXG4uY2sgLmNrLWZha2UtYm9va21hcmstc2VsZWN0aW9uX2NvbGxhcHNlZCB7XG5cdGhlaWdodDogMTAwJTtcblx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0bWFyZ2luLXJpZ2h0OiAtMXB4O1xuXHRvdXRsaW5lOiBzb2xpZCAxcHggaHNsYSgwLCAwJSwgMTAwJSwgLjUpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aDogMTJweDtcblx0LS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodDogOHB4O1xuXHQtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcbn1cbi8qXG5cdCAqIFZlcnRpY2FsIGRyb3AgdGFyZ2V0IChpbiB0ZXh0KS5cblx0ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LXBvc2l0aW9uIHNwYW4ge1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSk7XG5cdFx0XHR0b3A6IGNhbGMoLS41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQpKTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IC0xcHg7XG5cblx0XHRcdC8qIFRoZSB0cmlhbmdsZSBhYm92ZSB0aGUgbWFya2VyICovXG5cdFx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1wb3NpdGlvbiBzcGFuOjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0aGVpZ2h0OiAwO1xuXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0dG9wOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSk7XG5cblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJvcmRlci13aWR0aDogY2FsYyh2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCkpIGNhbGMoLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSkgMCBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpO1xuXHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0fVxuLypcblx0ICogU3R5bGVzIG9mIHRoZSB3aWRnZXQgdGhhdCBpdCBhIGRyb3AgdGFyZ2V0LlxuXHQgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay13aWRnZXQuY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LXJhbmdlIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcikgIWltcG9ydGFudDtcblx0fVxuLypcblx0ICogU3R5bGVzIG9mIHRoZSB3aWRnZXQgYmVpbmcgZHJhZ2dlZCAoaXRzIHByZXZpZXcpLlxuXHQgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay13aWRnZXQ6LXdlYmtpdC1kcmFnIHtcblx0XHR6b29tOiAwLjY7XG5cdFx0b3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG4uY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWxpbmUge1xuXHRoZWlnaHQ6IDA7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdG1hcmdpbi10b3A6IC0xcHg7XG59XG4uY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWxpbmU6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogY2FsYygtLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSk7XG5cdFx0d2lkdGg6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1saW5lOjpiZWZvcmUge1xuXHRcdFx0bGVmdDogLTFweDtcblxuXHRcdFx0Ym9yZGVyLXdpZHRoOiBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpIDAgY2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKSB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCk7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1saW5lOjpiZWZvcmUge1xuXHRcdFx0cmlnaHQ6IC0xcHg7XG5cblx0XHRcdGJvcmRlci13aWR0aDpjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpIDA7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stY29sb3ItY29kZS1ibG9jay1sYWJlbC1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDQ2JSk7XG59XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSBwcmVbZGF0YS1sYW5ndWFnZV06OmFmdGVyIHtcblx0dG9wOiAtMXB4O1xuXHRyaWdodDogMTBweDtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItY29kZS1ibG9jay1sYWJlbC1iYWNrZ3JvdW5kKTtcblxuXHRmb250LXNpemU6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1jay1mb250LWZhY2UpO1xuXHRsaW5lLWhlaWdodDogMTZweDtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmNrLmNrLWNvZGUtYmxvY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdC8qIFRoZXJlIGNvdWxkIGJlIGRvemVucyBvZiBsYW5ndWFnZXMgYXZhaWxhYmxlLiBVc2Ugc2Nyb2xsIHRvIHByZXZlbnQgYSAxMGU2cHggZHJvcGRvd24uICovXG5cdG1heC1oZWlnaHQ6IDI1MHB4O1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRvdmVyZmxvdy14OiBoaWRkZW47XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjOTM2LiAqL1xuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcblx0XHQuY2suY2stcGxhY2Vob2xkZXIsIC5jayAuY2stcGxhY2Vob2xkZXIge1xuXHRcdC8qXG5cdFx0ICogVGhpcyBpcyBuZWVkZWQgZm9yIEVkZ2Ugb24gV2luZG93cyB0byB1c2UgdGhlIHJpZ2h0IGNvbG9yIGZvciB0aGUgcGxhY2Vob2xkZXIgY29udGVudCAoOjpiZWZvcmUpLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDkwNy5cblx0XHQgKi9cblx0XHRmb3JjZWQtY29sb3ItYWRqdXN0OiBwcmVzZXJ2ZS1wYXJlbnQtY29sb3I7XG5cdFx0fVxuXHR9XG4uY2suY2stcGxhY2Vob2xkZXI6OmJlZm9yZSwgLmNrIC5jay1wbGFjZWhvbGRlcjo6YmVmb3JlIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdH1cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogbm9uZSkge1xuXHRcdC5jay5jay1wbGFjZWhvbGRlcjo6YmVmb3JlLCAuY2sgLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWVuZ2luZS1wbGFjZWhvbGRlci10ZXh0KTtcblx0XHR9XG5cdH1cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG5cdFx0LmNrLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUsIC5jayAuY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0XHQvKlxuXHRcdFx0ICogSW4gdGhlIGhpZ2ggY29udHJhc3QgbW9kZSB0aGVyZSBpcyBubyB0ZWxsaW5nIGJldHdlZW4gcmVndWxhciBhbmQgcGxhY2Vob2xkZXIgdGV4dC4gVXNpbmdcblx0XHRcdCAqIGl0YWxpYyB0ZXh0IHRvIGFkZHJlc3MgdGhhdCBpc3N1ZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3LlxuXHRcdFx0ICovXG5cdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBXaXRob3V0IHRoaXMgbWFyZ2luLCB0aGUgY2FyZXQgd2lsbCBub3Qgc2hvdyB1cCBhbmQgYmxpbmsgd2hlbiB0aGUgdXNlciBwdXRzIHRoZSBzZWxlY3Rpb25cblx0XHRcdCAqIGluIHRoZSBwbGFjZWhvbGRlciAoRWRnZSBvbiBXaW5kb3dzKS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3LlxuXHRcdFx0ICovXG5cdFx0XHRtYXJnaW4tbGVmdDogMXB4O1xuXHRcdH1cblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSB7XG5cdHdpZHRoOiA0MDBweDtcblxuXHQvKlxuXHQgKiBUaGUgPGZvcm0+IG5lZWRzIHRhYmluZGV4PVwiLTFcIiBmb3IgcHJvcGVyIEVzYyBoYW5kbGluZyBhZnRlciBiZWluZyBjbGlja2VkXG5cdCAqIGJ1dCB0aGUgc2lkZSBlZmZlY3QgaXMgdGhhdCB0aGlzIGNyZWF0ZXMgYSBuYXN0eSBmb2N1cyBvdXRsaW5lIGluIHNvbWUgYnJvd3NlcnMuXG5cdCAqL1xufVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybTpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuLyogR2VuZXJpYyBzdHlsZXMgZm9yIHRoZSBmb3JtIGlucHV0cyBhbmQgYWN0aW9ucy4gKi9cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzLFxuXHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMge1xuXHRcdGZsZXg6IDEgMSBhdXRvO1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0YWxpZ24tY29udGVudDogc3RyZXRjaDtcblxuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdG1hcmdpbjogMDtcblxuXHR9XG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyA+IC5jay1idXR0b24sIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+IC5jay1idXR0b24ge1xuXHRcdFx0ZmxleDogMCAwIGF1dG87XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyA+ICogKyAqLCBbZGlyPVwibHRyXCJdIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+ICogKyAqIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyA+ICogKyAqLCBbZGlyPVwicnRsXCJdIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+ICogKyAqIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcsIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXg6IDEgMSBhdXRvO1xuXHRcdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWlucHV0LCAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2staW5wdXQge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0bWluLXdpZHRoOiA1MHB4O1xuXHRcdFx0fVxuLyogU3R5bGVzIHNwZWNpZmljIGZvciBpbnB1dHMgYXJlYS4gKi9cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIHtcblx0XHQvKiBUbyBkaXNwbGF5IGFsbCBjb250cm9scyBpbiBsaW5lIHdoZW4gdGhlcmUncyBhbiBlcnJvciB1bmRlciB0aGUgaW5wdXQgKi9cblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0fVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stYnV0dG9uLXByZXYgPiAuY2staWNvbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cdFx0fVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stYnV0dG9uLW5leHQgPiAuY2staWNvbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXHRcdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1yZXN1bHRzLWNvdW50ZXIge1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyAuY2stcmVzdWx0cy1jb3VudGVyIHtcblx0XHRcdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1yZXN1bHRzLWNvdW50ZXIge1xuXHRcdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stbGFiZWxlZC1maWVsZC1yZXBsYWNlIHtcblx0XHRcdGZsZXg6IDAgMCAxMDAlO1xuXHRcdFx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stbGFiZWxlZC1maWVsZC1yZXBsYWNlIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgPiAuY2stbGFiZWxlZC1maWVsZC1yZXBsYWNlIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHR9XG4vKiBTdHlsZXMgc3BlY2lmaWMgZm9yIGFjdGlvbnMgYXJlYS4gKi9cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0bWFyZ2luLXRvcDogY2FsYyggLTEgKiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSApO1xuXHR9XG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiAuY2stYnV0dG9uLWZpbmQge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cblx0XHRcdC8qIEJlZWYgdGhlIGZpbmQgYnV0dG9uIHVwIGEgbGl0dGxlLiBJdCdzIHRoZSBtYWluIGFjdGlvbiBidXR0b24gaW4gdGhlIGZvcm0gKi9cblx0XHR9XG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiAuY2stYnV0dG9uLWZpbmQgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdH1cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLXN3aXRjaGJ1dHRvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR9XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIHtcblx0XHR3aWR0aDogMzAwcHg7XG5cblx0XHQvKiBEb24ndCBsZXQgdGhlIGZvcm0gb3ZlcmZsb3cgZnJvbSB0aGUgZGlhbG9nIChodHRwczovL2dpdGh1Yi5jb20vY2tzb3VyY2UvY2tlZGl0b3I1LWNvbW1lcmNpYWwvaXNzdWVzLzU5MTMpICovXG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0LyogU3R5bGVzIHNwZWNpZmljIGZvciBpbnB1dHMgYXJlYS4gKi9cblx0fVxuXHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dCB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0fVxuXG5cdFx0XHQuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXQgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRcdGZsZXg6IDEgMCBhdXRvO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cblx0XHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dCA+IC5jay1idXR0b24ge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cblx0XHRcdFx0LmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0ID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0W2Rpcj1cImx0clwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXQgPiAuY2stYnV0dG9uOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHRcdFx0XHRcdFtkaXI9XCJydGxcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0ID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0fVxuXG5cdFx0XHRcdFx0LmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0ID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdH1cblxuXHRcdC8qIFN0eWxlcyBzcGVjaWZpYyBmb3IgYWN0aW9ucyBhcmVhLiAqL1xuXHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zID4gOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3KSB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHR9XG5cblx0XHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zID4gOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3KSA+IC5jay1idXR0b24ge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHR9XG5cblx0XHRcdFx0LmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiA6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXcpID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0W2Rpcj1cImx0clwiXSAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+IDpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlldykgPiAuY2stYnV0dG9uOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHRcdFx0XHRcdFtkaXI9XCJydGxcIl0gLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybS5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMgPiA6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXcpID4gLmNrLWJ1dHRvbjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0fVxuXG5cdFx0XHRcdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0uY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zID4gOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3KSA+IC5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0fVxuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyogUmVzaXplIGRyb3Bkb3duJ3MgYnV0dG9uIGxhYmVsLiAqL1xuLmNrLmNrLWRyb3Bkb3duLmNrLWhlYWRpbmctZHJvcGRvd24gLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdHdpZHRoOiA4ZW07XG5cdH1cbi5jay5jay1kcm9wZG93bi5jay1oZWFkaW5nLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdG1pbi13aWR0aDogMThlbTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBOb3RlOiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIHdpcmVmcmFtZSBzdHlsZXMgb25seS4gQnV0IHNpbmNlIHRoZXJlIGFyZSBubyBzdWNoIHN0eWxlcyxcbiAqIGl0IGFjdHMgYXMgYSBtZXNzYWdlIHRvIHRoZSBidWlsZGVyIHRlbGxpbmcgdGhhdCBpdCBzaG91bGQgbG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGVzXG4gKiAqKmluIHRoZSB0aGVtZSoqIHdoZW4gY29tcGlsaW5nIHRoZSBlZGl0b3IuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2staHRtbC1lbWJlZC1jb250ZW50LXdpZHRoOiBjYWxjKDEwMCUgLSAxLjUgKiB2YXIoLS1jay1pY29uLXNpemUpKTtcblx0LS1jay1odG1sLWVtYmVkLXNvdXJjZS1oZWlnaHQ6IDEwZW07XG5cdC0tY2staHRtbC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aDogMXB4O1xuXHQtLWNrLWh0bWwtZW1iZWQtY29udGVudC1taW4taGVpZ2h0OiBjYWxjKHZhcigtLWNrLWljb24tc2l6ZSkgKyB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cblx0LS1jay1odG1sLWVtYmVkLXNvdXJjZS1kaXNhYmxlZC1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHQtLWNrLWh0bWwtZW1iZWQtc291cmNlLWRpc2FibGVkLWNvbG9yOiBoc2woMGRlZyAwJSA0NSUpO1xufVxuLyogVGhlIGZlYXR1cmUgY29udGFpbmVyLiAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xufVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZDpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KDpob3Zlcikge1xuXHRcdG91dGxpbmU6IHZhcigtLWNrLWh0bWwtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpIGRhc2hlZCB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHR9XG4vKiBIVE1MIGVtYmVkIHdpZGdldCBpdHNlbGYgc2hvdWxkIHJlc3BlY3QgVUkgbGFuZ3VhZ2UgZGlyZWN0aW9uICovXG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkW2Rpcj1cImx0clwiXSB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZFtkaXI9XCJydGxcIl0ge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG4vKiAtLS0tLSBFbWJlZCBsYWJlbCBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQ6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLWh0bWwtZW1iZWQtbGFiZWwpO1xuXHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWh0bWwtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpKTtcblx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRiYWNrZ3JvdW5kOiBoc2woMGRlZyAwJSA2MCUpO1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xuXHRcdHBhZGRpbmc6IGNhbGModmFyKC0tY2stc3BhY2luZy10aW55KSArIHZhcigtLWNrLWh0bWwtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGgpKSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRmb250LWZhbWlseTogdmFyKC0tY2stZm9udC1mYWNlKTtcblx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZFtkaXI9XCJydGxcIl06OmJlZm9yZSB7XG5cdFx0bGVmdDogYXV0bztcblx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cbi8qIE1ha2Ugc3BhY2UgZm9yIGxhYmVsIGJ1dCBpdCBvbmx5IGNvbGxpZGVzIGluIExUUiBsYW5ndWFnZXMgKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWRbZGlyPVwibHRyXCJdIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDUwcHg7XG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZC5jay13aWRnZXRfc2VsZWN0ZWQ6OmJlZm9yZSB7XG5cdFx0dG9wOiAwcHg7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1ibHVycmVkKSAuY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkLmNrLXdpZGdldF9zZWxlY3RlZDo6YmVmb3JlIHtcblx0XHR0b3A6IDA7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpob3Zlcjo6YmVmb3JlIHtcblx0XHR0b3A6IDBweDtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG4vKiAtLS0tLSBFbWViZWQgaW50ZXJuYWxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX2NvbnRlbnQtd3JhcHBlciB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdH1cbi8qIFRoZSBzd2l0Y2ggbW9kZSBidXR0b24gd3JhcHBlci4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19idXR0b25zLXdyYXBwZXIge1xuXHRcdHRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fYnV0dG9ucy13cmFwcGVyIC5jay1idXR0b24ucmF3LWh0bWwtZW1iZWRfX3NhdmUtYnV0dG9uIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tc2F2ZSk7XG5cdFx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX2J1dHRvbnMtd3JhcHBlciAuY2stYnV0dG9uLnJhdy1odG1sLWVtYmVkX19jYW5jZWwtYnV0dG9uIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tY2FuY2VsKTtcblx0XHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fYnV0dG9ucy13cmFwcGVyIC5jay1idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZFtkaXI9XCJydGxcIl0gLnJhdy1odG1sLWVtYmVkX19idXR0b25zLXdyYXBwZXIge1xuXHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdHJpZ2h0OiBhdXRvO1xuXHR9XG4vKiBUaGUgZWRpdCBzb3VyY2UgZWxlbWVudC4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19zb3VyY2Uge1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1odG1sLWVtYmVkLXNvdXJjZS1oZWlnaHQpO1xuXHRcdHdpZHRoOiB2YXIoLS1jay1odG1sLWVtYmVkLWNvbnRlbnQtd2lkdGgpO1xuXHRcdHJlc2l6ZTogbm9uZTtcblx0XHRtaW4td2lkdGg6IDA7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXHRcdHRhYi1zaXplOiA0O1xuXHRcdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKTsgLyogU2FmYXJpIG5lZWRzIHRoaXMuICovXG5cblx0XHQvKiBIVE1MIGNvZGUgaXMgZGlyZWN0aW9u4oCTYWdub3N0aWMuICovXG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRkaXJlY3Rpb246IGx0cjtcblx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX3NvdXJjZVtkaXNhYmxlZF0ge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtY29sb3IpO1xuXG5cdFx0XHQvKiBTYWZhcmkgbmVlZHMgdGhpcyBmb3IgdGhlIHByb3BlciB0ZXh0IGNvbG9yIGluIGRpc2FibGVkIGlucHV0IChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MzIwKS4gKi9cblx0XHRcdC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB2YXIoLS1jay1odG1sLWVtYmVkLXNvdXJjZS1kaXNhYmxlZC1jb2xvcik7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cbi8qIFRoZSBwcmV2aWV3IGRhdGEgY29udGFpbmVyLiAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXcge1xuXHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWh0bWwtZW1iZWQtY29udGVudC1taW4taGVpZ2h0KTtcblx0XHR3aWR0aDogdmFyKC0tY2staHRtbC1lbWJlZC1jb250ZW50LXdpZHRoKTtcblxuXHRcdC8qIERpc2FibGUgYWxsIG1vdXNlIGludGVyYWN0aW9uIGFzIGxvbmcgYXMgdGhlIGVkaXRvciBpcyBub3QgcmVhZOKAk29ubHkuICovXG5cdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcmVhZC1vbmx5KSAuY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldyB7XG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1jb250ZW50IHtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3LWNvbnRlbnQgPiAqIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3LXBsYWNlaG9sZGVyIHtcblx0XHRjb2xvcjogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtY29sb3IpXG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWltYWdlLWluc2VydC1pbnNlcnQtYnktdXJsLXdpZHRoOiAyNTBweDtcbn1cbi5jay5jay1pbWFnZS1pbnNlcnQtdXJsIHtcblx0LS1jay1pbnB1dC13aWR0aDogMTAwJTtcbn1cbi5jay5jay1pbWFnZS1pbnNlcnQtdXJsIC5jay1pbWFnZS1pbnNlcnQtdXJsX19hY3Rpb24tcm93IHtcblx0XHRncmlkLWNvbHVtbi1nYXA6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4uY2suY2staW1hZ2UtaW5zZXJ0LXVybCAuY2staW1hZ2UtaW5zZXJ0LXVybF9fYWN0aW9uLXJvdyAuY2stYnV0dG9uLXNhdmUsXG5cdFx0LmNrLmNrLWltYWdlLWluc2VydC11cmwgLmNrLWltYWdlLWluc2VydC11cmxfX2FjdGlvbi1yb3cgLmNrLWJ1dHRvbi1jYW5jZWwge1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0fVxuLmNrLmNrLWltYWdlLWluc2VydC11cmwgLmNrLWltYWdlLWluc2VydC11cmxfX2FjdGlvbi1yb3cgLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdFx0fVxuLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWJ1dHRvbiB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1pbWFnZS1pbnNlcnQtZm9ybSA+IC5jay5jay1idXR0b24ge1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cbi5jay5jay1pbWFnZS1pbnNlcnQtZm9ybSA+IC5jay5jay1jb2xsYXBzaWJsZSB7XG5cblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWltYWdlLWluc2VydC1pbnNlcnQtYnktdXJsLXdpZHRoKTtcblx0fVxuLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWNvbGxhcHNpYmxlOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0fVxuLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWNvbGxhcHNpYmxlOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG4vKiBUaGlzIGlzIHRoZSBjYXNlIHdoZW4gdGhlcmUgYXJlIG5vIG90aGVyIGludGVncmF0aW9ucyBjb25maWd1cmVkIHRoYW4gaW5zZXJ0IGJ5IFVSTCAqL1xuLmNrLmNrLWltYWdlLWluc2VydC1mb3JtID4gLmNrLmNrLWltYWdlLWluc2VydC11cmwge1xuXHRcdG1pbi13aWR0aDogdmFyKC0tY2staW1hZ2UtaW5zZXJ0LWluc2VydC1ieS11cmwtd2lkdGgpO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4uY2suY2staW1hZ2UtaW5zZXJ0LWZvcm06Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uOiBoc2woMCwgMCUsIDEwMCUpO1xuXHQtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uLWJhY2tncm91bmQ6IGhzbCgxMjAsIDEwMCUsIDI3JSk7XG5cblx0LyogTWF0Y2ggdGhlIGljb24gc2l6ZSB3aXRoIHRoZSBsaW5rZWQgaW1hZ2UgaW5kaWNhdG9yIGJyb3VnaHQgYnkgdGhlIGxpbmsgaW1hZ2UgZmVhdHVyZS4gKi9cblx0LS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplOiAyMDtcblx0LS1jay1pbWFnZS11cGxvYWQtaWNvbi13aWR0aDogMnB4O1xuXHQtLWNrLWltYWdlLXVwbG9hZC1pY29uLWlzLXZpc2libGU6IGNsYW1wKDBweCwgMTAwJSAtIDUwcHgsIDFweCk7XG59XG4uY2staW1hZ2UtdXBsb2FkLWNvbXBsZXRlLWljb24ge1xuXHRvcGFjaXR5OiAwO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1pbWFnZS11cGxvYWQtaWNvbi1iYWNrZ3JvdW5kKTtcblx0YW5pbWF0aW9uLW5hbWU6IGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLXNob3csIGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLWhpZGU7XG5cdGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzLCBmb3J3YXJkcztcblx0YW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcywgNTAwbXM7XG5cblx0LyogVG8gbWFrZSBhbmltYXRpb24gc2NhbGFibGUuICovXG5cdGZvbnQtc2l6ZTogY2FsYygxcHggKiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplKSk7XG5cblx0LyogSGlkZSBjb21wbGV0ZWQgdXBsb2FkIGljb24gYWZ0ZXIgMyBzZWNvbmRzLiAqL1xuXHRhbmltYXRpb24tZGVsYXk6IDBtcywgMzAwMG1zO1xuXG5cdC8qXG5cdCAqIFVzZSBDU1MgbWF0aCB0byBzaW11bGF0ZSBjb250YWluZXIgcXVlcmllcy5cblx0ICogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS90aGUtcmF2ZW4tdGVjaG5pcXVlLW9uZS1zdGVwLWNsb3Nlci10by1jb250YWluZXItcXVlcmllcy8jd2hhdC1hYm91dC1zaG93aW5nLWFuZC1oaWRpbmctdGhpbmdzXG5cdCAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR3aWR0aDogY2FsYyh2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1pcy12aXNpYmxlKSAqIHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXNpemUpKTtcblx0aGVpZ2h0OiBjYWxjKHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLWlzLXZpc2libGUpICogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24tc2l6ZSkpO1xuXG5cdC8qIFRoaXMgaXMgY2hlY2sgaWNvbiBlbGVtZW50IG1hZGUgZnJvbSBib3JkZXItd2lkdGggbWl4ZWQgd2l0aCBhbmltYXRpb25zLiAqL1xufVxuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uOjphZnRlciB7XG5cdFx0LyogQmVjYXVzZSBvZiBib3JkZXIgdHJhbnNmb3JtYXRpb24gd2UgbmVlZCB0byBcImhhcmQgY29kZVwiIGxlZnQgcG9zaXRpb24uICovXG5cdFx0bGVmdDogMjUlO1xuXG5cdFx0dG9wOiA1MCU7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdFx0d2lkdGg6IDA7XG5cblx0XHR0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDEzNWRlZyk7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG5cdFx0Ym9yZGVyLXRvcDogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24td2lkdGgpIHNvbGlkIHZhcigtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uKTtcblx0XHRib3JkZXItcmlnaHQ6IHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXdpZHRoKSBzb2xpZCB2YXIoLS1jay1jb2xvci1pbWFnZS11cGxvYWQtaWNvbik7XG5cblx0XHRhbmltYXRpb24tbmFtZTogY2stdXBsb2FkLWNvbXBsZXRlLWljb24tY2hlY2s7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcztcblx0XHRhbmltYXRpb24tZGVsYXk6IDUwMG1zO1xuXHRcdGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuXG5cdFx0LyogIzEwOTUuIFdoaWxlIHJlc2V0IGlzIG5vdCBwcm92aWRpbmcgcHJvcGVyIGJveC1zaXppbmcgZm9yIHBzZXVkb2VsZW1lbnRzLCB3ZSBuZWVkIHRvIGhhbmRsZSBpdC4gKi9cblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uIHtcblx0XHRhbmltYXRpb24tZHVyYXRpb246IDBtcztcbn1cblxuXHRcdC5jay1pbWFnZS11cGxvYWQtY29tcGxldGUtaWNvbjo6YWZ0ZXIge1xuXHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHdpZHRoOiAwLjNlbTtcblx0XHRcdGhlaWdodDogMC40NWVtO1xuXHRcdH1cblx0fVxuQGtleWZyYW1lcyBjay11cGxvYWQtY29tcGxldGUtaWNvbi1zaG93IHtcblx0ZnJvbSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdHRvIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLWhpZGUge1xuXHRmcm9tIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cblx0dG8ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cbn1cbkBrZXlmcmFtZXMgY2stdXBsb2FkLWNvbXBsZXRlLWljb24tY2hlY2sge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR3aWR0aDogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cblx0MzMlIHtcblx0XHR3aWR0aDogMC4zZW07XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0d2lkdGg6IDAuM2VtO1xuXHRcdGhlaWdodDogMC40NWVtO1xuXHR9XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXI6IGhzbCgwLCAwJSwgNzAlKTtcblx0LS1jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyLXNpemU6IDMycHg7XG5cdC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWltYWdlLWFzcGVjdC1yYXRpbzogMi44O1xufVxuLmNrIC5jay1pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIge1xuXHQvKiBXZSBuZWVkIHRvIGNvbnRyb2wgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIFNWRyBncmF5IGJhY2tncm91bmQuICovXG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW46IDA7XG59XG4uY2sgLmNrLWltYWdlLXVwbG9hZC1wbGFjZWhvbGRlci5pbWFnZS1pbmxpbmUge1xuXHRcdHdpZHRoOiBjYWxjKCAyICogdmFyKC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplKSAqIHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1pbWFnZS1hc3BlY3QtcmF0aW8pICk7XG5cdH1cbi5jayAuY2staW1hZ2UtdXBsb2FkLXBsYWNlaG9sZGVyIGltZyB7XG5cdFx0Lypcblx0XHQgKiBUaGlzIGlzIGFuIGFyYml0cmFyeSBhc3BlY3QgZm9yIGEgMXgxIHB4IEdJRiB0byBkaXNwbGF5IHRvIHRoZSB1c2VyLiBOb3QgdG9vIHRhbGwsIG5vdCB0b28gc2hvcnQuXG5cdFx0ICogVGhlcmUncyBub3RoaW5nIHNwZWNpYWwgYWJvdXQgdGhpcyBudW1iZXIgZXhjZXB0IHRoYXQgaXQgc2hvdWxkIG1ha2UgdGhlIGltYWdlIHBsYWNlaG9sZGVyIGxvb2sgbGlrZVxuXHRcdCAqIGEgcmVhbCBpbWFnZSBkdXJpbmcgdGhpcyBzaG9ydCBwZXJpb2QgYWZ0ZXIgdGhlIHVwbG9hZCBzdGFydGVkIGFuZCBiZWZvcmUgdGhlIGltYWdlIHdhcyByZWFkIGZyb20gdGhlXG5cdFx0ICogZmlsZSBzeXN0ZW0gKGFuZCBhIHJpY2ggcHJldmlldyB3YXMgbG9hZGVkKS5cblx0XHQgKi9cblx0XHRhc3BlY3QtcmF0aW86IHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1pbWFnZS1hc3BlY3QtcmF0aW8pO1xuXHR9XG4uY2sgLmNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIge1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xufVxuLmNrIC5jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyOjpiZWZvcmUge1xuXHRcdHdpZHRoOiB2YXIoLS1jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplKTtcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0Ym9yZGVyLXRvcDogM3B4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIpO1xuXHRcdGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdGFuaW1hdGlvbjogY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlciAxcyBsaW5lYXIgaW5maW5pdGU7XG5cdH1cbkBrZXlmcmFtZXMgY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlciB7XG5cdHRvIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSggMzYwZGVnICk7XG5cdH1cbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKiBTaG93aW5nIGFuaW1hdGlvbi4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS5jay1hcHBlYXIsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS1pbmxpbmUuY2stYXBwZWFyIHtcblx0XHRcdGFuaW1hdGlvbjogZmFkZUluIDcwMG1zO1xuXHRcdH1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UuY2stYXBwZWFyLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UtaW5saW5lLmNrLWFwcGVhciB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0XHR9XG4vKiBVcGxvYWQgcHJvZ3Jlc3MgYmFyLiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlIC5jay1wcm9ncmVzcy1iYXIsXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS1pbmxpbmUgLmNrLXByb2dyZXNzLWJhciB7XG5cdFx0aGVpZ2h0OiAycHg7XG5cdFx0d2lkdGg6IDA7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdXBsb2FkLWJhci1iYWNrZ3JvdW5kKTtcblx0XHR0cmFuc2l0aW9uOiB3aWR0aCAxMDBtcztcblx0fVxuQGtleWZyYW1lcyBmYWRlSW4ge1xuXHRmcm9tIHsgb3BhY2l0eTogMDsgfVxuXHR0byAgIHsgb3BhY2l0eTogMTsgfVxufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qIENsYXNzIGFkZGVkIHRvIHNwYW4gZWxlbWVudCBzdXJyb3VuZGluZyBjdXJyZW50bHkgc2VsZWN0ZWQgbGluay4gKi9cbi5jayAuY2stbGlua19zZWxlY3RlZCB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpbmstc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG5cblx0LyogR2l2ZSBsaW5rZWQgaW5saW5lIGltYWdlcyBzb21lIG91dGxpbmUgdG8gbGV0IHRoZSB1c2VyIGtub3cgdGhleSBhcmUgYWxzbyBwYXJ0IG9mIHRoZSBsaW5rLiAqL1xufVxuLmNrIC5jay1saW5rX3NlbGVjdGVkIHNwYW4uaW1hZ2UtaW5saW5lIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIHNvbGlkIHZhcigtLWNrLWNvbG9yLWxpbmstc2VsZWN0ZWQtYmFja2dyb3VuZCk7XG5cdH1cbi8qXG4gKiBDbGFzc2VzIHVzZWQgYnkgdGhlIFwiZmFrZSB2aXN1YWwgc2VsZWN0aW9uXCIgZGlzcGxheWVkIGluIHRoZSBjb250ZW50IHdoZW4gYW4gaW5wdXRcbiAqIGluIHRoZSBsaW5rIFVJIGhhcyBmb2N1cyAodGhlIGJyb3dzZXIgZG9lcyBub3QgcmVuZGVyIHRoZSBuYXRpdmUgc2VsZWN0aW9uIGluIHRoaXMgc3RhdGUpLlxuICovXG4uY2sgLmNrLWZha2UtbGluay1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uKTtcbn1cbi8qIEEgY29sbGFwc2VkIGZha2UgdmlzdWFsIHNlbGVjdGlvbi4gKi9cbi5jayAuY2stZmFrZS1saW5rLXNlbGVjdGlvbl9jb2xsYXBzZWQge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdG1hcmdpbi1yaWdodDogLTFweDtcblx0b3V0bGluZTogc29saWQgMXB4IGhzbGEoMCwgMCUsIDEwMCUsIC41KTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBNYWtlcyBlbGVtZW50IHVuc2VsZWN0YWJsZS5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlci5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3IHtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0cGFkZGluZy1yaWdodDogMDtcblx0fVxuLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1saW5rLWRlZmF1bHQpO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRcdC8qIE1hdGNoIHRoZSBib3ggbW9kZWwgb2YgdGhlIGxpbmsgZWRpdG9yIGZvcm0ncyBpbnB1dCBzbyB0aGUgYmFsbG9vblxuXHRcdFx0ZG9lcyBub3QgY2hhbmdlIHdpZHRoIHdoZW4gbW92aW5nIGJldHdlZW4gYWN0aW9ucyBhbmQgdGhlIGZvcm0uICovXG5cdFx0XHRtYXgtd2lkdGg6IHZhcigtLWNrLWlucHV0LXdpZHRoKTtcblx0XHRcdG1pbi13aWR0aDogM2VtO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdH1cbi5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcgLmNrLWJ1dHRvbl9fbGFiZWw6aG92ZXIge1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdH1cbi5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcsXG5cdFx0LmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldzpob3Zlcixcblx0XHQuY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3OmZvY3VzLFxuXHRcdC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXc6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0fVxuLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldzphY3RpdmUge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG4uY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3OmZvY3VzIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b246bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0XHQuY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3IHtcblx0XHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgMDtcblx0XHR9XG5cblx0XHRcdC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdH1cblx0XHRcdFtkaXI9XCJsdHJcIl0gLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uOm5vdCguY2stbGluay1hY3Rpb25zX19wcmV2aWV3KSB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG5cblx0XHRcdFtkaXI9XCJydGxcIl0gLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uOm5vdCguY2stbGluay1hY3Rpb25zX19wcmV2aWV3KSB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIFN0eWxlIGxpbmsgZm9ybSBkaWZmZXJlbnRseSB3aGVuIG1hbnVhbCBkZWNvcmF0b3JzIGFyZSBhdmFpbGFibGUuXG4gKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbGluay9pc3N1ZXMvMTg2LlxuICovXG4uY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCB7XG5cdHBhZGRpbmc6IDA7XG5cdG1pbi13aWR0aDogdmFyKC0tY2staW5wdXQtd2lkdGgpO1xufVxuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2staW5wdXQtdGV4dCB7XG5cdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG4uY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCA+IC5jay1idXR0b24ge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdG1hcmdpbjogMDtcblx0XHR3aWR0aDogNTAlO1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsID4gLmNrLWJ1dHRvbjpub3QoOmZvY3VzKSB7XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdH1cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgPiAuY2stYnV0dG9uIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHR9XG5bZGlyPVwicnRsXCJdIC5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCA+IC5jay1idXR0b246bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0fVxuLyogVXNpbmcgYWRkaXRpb25hbCBgLmNrYCBjbGFzcyBmb3Igc3Ryb25nZXIgQ1NTIHNwZWNpZmljaXR5IHRoYW4gYC5jay5jay1saW5rLWZvcm0gPiA6bm90KDpmaXJzdC1jaGlsZClgLiAqL1xuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgLmNrLmNrLWxpc3Qge1xuXHRcdG1hcmdpbjogMCB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgLmNrLmNrLWxpc3QgLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24ge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cbi5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIC5jay5jay1saXN0IC5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC8qIE1hdGNoIHRoZSBpY29uIHNpemUgd2l0aCB0aGUgdXBsb2FkIGluZGljYXRvciBicm91Z2h0IGJ5IHRoZSBpbWFnZSB1cGxvYWQgZmVhdHVyZS4gKi9cblx0LS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLXNpemU6IDIwO1xuXHQtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24taXMtdmlzaWJsZTogY2xhbXAoMHB4LCAxMDAlIC0gNTBweCwgMXB4KTtcbn1cbi8qIExpbmtlZCBpbWFnZSBpbmRpY2F0b3IgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIGZpZ3VyZS5pbWFnZSA+IGE6OmFmdGVyLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSBhIHNwYW4uaW1hZ2UtaW5saW5lOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogU21hbGxlciBpbWFnZXMgc2hvdWxkIGhhdmUgdGhlIGljb24gY2xvc2VyIHRvIHRoZSBib3JkZXIuXG5cdFx0XHQgKiBNYXRjaCB0aGUgaWNvbiBwb3NpdGlvbiB3aXRoIHRoZSB1cGxvYWQgaW5kaWNhdG9yIGJyb3VnaHQgYnkgdGhlIGltYWdlIHVwbG9hZCBmZWF0dXJlLlxuXHRcdFx0ICovXG5cdFx0XHR0b3A6IG1pbih2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIDYlKTtcblx0XHRcdHJpZ2h0OiBtaW4odmFyKC0tY2stc3BhY2luZy1tZWRpdW0pLCA2JSk7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGhzbGEoMCwgMCUsIDAlLCAuNCk7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIyYVdWM1FtOTRQU0l3SURBZ01qQWdNakFpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUkrUEhCaGRHZ2dabWxzYkQwaUkyWm1aaUlnWkQwaWJURXhMakEzTnlBeE5TQXVPVGt4TFRFdU5ERTJZUzQzTlM0M05TQXdJREVnTVNBeExqSXlPUzQ0Tm13dE1TNHhORGdnTVM0Mk5HRXVOelE0TGpjME9DQXdJREFnTVMwdU1qRTNMakl3TmlBMUxqSTFNU0ExTGpJMU1TQXdJREFnTVMwNExqVXdNeTAxTGprMU5TNDNOREV1TnpReElEQWdNQ0F4SUM0eE1pMHVNamMwYkRFdU1UUTNMVEV1TmpNNVlTNDNOUzQzTlNBd0lERWdNU0F4TGpJeU9DNDROa3cwTGprek15QXhNQzQzYkM0d01EWXVNREF6WVRNdU56VWdNeTQzTlNBd0lEQWdNQ0EyTGpFek1pQTBMakk1Tkd3dU1EQTJMakF3TkhwdE5TNDBPVFF0TlM0ek16VmhMamMwT0M0M05EZ2dNQ0F3SURFdExqRXlMakkzTkd3dE1TNHhORGNnTVM0Mk16bGhMamMxTGpjMUlEQWdNU0F4TFRFdU1qSTRMUzQ0Tm13dU9EWXRNUzR5TTJFekxqYzFJRE11TnpVZ01DQXdJREF0Tmk0eE5EUXROQzR6TURGc0xTNDROaUF4TGpJeU9XRXVOelV1TnpVZ01DQXdJREV0TVM0eU1qa3RMamcyYkRFdU1UUTRMVEV1TmpSaExqYzBPQzQzTkRnZ01DQXdJREVnTGpJeE55MHVNakEySURVdU1qVXhJRFV1TWpVeElEQWdNQ0F4SURndU5UQXpJRFV1T1RVMWVtMHROQzQxTmpNdE1pNDFNekpoTGpjMUxqYzFJREFnTUNBeElDNHhPRFFnTVM0d05EVnNMVE11TVRVMUlEUXVOVEExWVM0M05TNDNOU0F3SURFZ01TMHhMakl5T1MwdU9EWnNNeTR4TlRVdE5DNDFNRFpoTGpjMUxqYzFJREFnTUNBeElERXVNRFExTFM0eE9EUjZJaTgrUEM5emRtYytcIik7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDE0cHg7XG5cdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwJTtcblxuXHRcdFx0Lypcblx0XHRcdCogVXNlIENTUyBtYXRoIHRvIHNpbXVsYXRlIGNvbnRhaW5lciBxdWVyaWVzLlxuXHRcdFx0KiBodHRwczovL2Nzcy10cmlja3MuY29tL3RoZS1yYXZlbi10ZWNobmlxdWUtb25lLXN0ZXAtY2xvc2VyLXRvLWNvbnRhaW5lci1xdWVyaWVzLyN3aGF0LWFib3V0LXNob3dpbmctYW5kLWhpZGluZy10aGluZ3Ncblx0XHRcdCovXG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0d2lkdGg6IGNhbGModmFyKC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1pcy12aXNpYmxlKSAqIHZhcigtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24tc2l6ZSkpO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKHZhcigtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24taXMtdmlzaWJsZSkgKiB2YXIoLS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLXNpemUpKTtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyogV2hlbiB0aGVyZSBhcmUgbm8gbGlzdCBzdHlsZXMgYW5kIHRoZXJlIGlzIG5vIGNvbGxhcHNpYmxlLiAqL1xuLmNrLmNrLWxpc3QtcHJvcGVydGllcy5jay1saXN0LXByb3BlcnRpZXNfd2l0aG91dC1zdHlsZXMge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4uY2suY2stbGlzdC1wcm9wZXJ0aWVzLmNrLWxpc3QtcHJvcGVydGllc193aXRob3V0LXN0eWxlcyA+ICoge1xuXHRcdFx0bWluLXdpZHRoOiAxNGVtO1xuXHRcdH1cbi5jay5jay1saXN0LXByb3BlcnRpZXMuY2stbGlzdC1wcm9wZXJ0aWVzX3dpdGhvdXQtc3R5bGVzID4gKiArICoge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cbi8qXG5cdCAqIFdoZW4gdGhlIG51bWJlcmVkIGxpc3QgcHJvcGVydHkgZmllbGRzIChzdGFydCBhdCwgcmV2ZXJzZWQpIHNob3VsZCBiZSBkaXNwbGF5ZWQsXG5cdCAqIG1vcmUgaG9yaXpvbnRhbCBzcGFjZSBpcyBuZWVkZWQuIFJlY29uZmlndXJlIHRoZSBzdHlsZSBncmlkIHRvIGNyZWF0ZSB0aGF0IHNwYWNlLlxuXHQgKi9cbi5jay5jay1saXN0LXByb3BlcnRpZXMuY2stbGlzdC1wcm9wZXJ0aWVzX3dpdGgtbnVtYmVyZWQtcHJvcGVydGllcyA+IC5jay1saXN0LXN0eWxlcy1saXN0IHtcblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KCA0LCBhdXRvICk7XG5cdFx0fVxuLyogV2hlbiBsaXN0IHN0eWxlcyBhcmUgcmVuZGVyZWQgYW5kIHByb3BlcnR5IGZpZWxkcyBhcmUgaW4gYSBjb2xsYXBzaWJsZS4gKi9cbi5jay5jay1saXN0LXByb3BlcnRpZXMuY2stbGlzdC1wcm9wZXJ0aWVzX3dpdGgtbnVtYmVyZWQtcHJvcGVydGllcyA+IC5jay1jb2xsYXBzaWJsZSB7XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdH1cbi5jay5jay1saXN0LXByb3BlcnRpZXMuY2stbGlzdC1wcm9wZXJ0aWVzX3dpdGgtbnVtYmVyZWQtcHJvcGVydGllcyA+IC5jay1jb2xsYXBzaWJsZSA+IC5jay1jb2xsYXBzaWJsZV9fY2hpbGRyZW4gPiAqIHtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0fVxuLmNrLmNrLWxpc3QtcHJvcGVydGllcy5jay1saXN0LXByb3BlcnRpZXNfd2l0aC1udW1iZXJlZC1wcm9wZXJ0aWVzID4gLmNrLWNvbGxhcHNpYmxlID4gLmNrLWNvbGxhcHNpYmxlX19jaGlsZHJlbiA+ICogKyAqIHtcblx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0XHRcdH1cbi5jay5jay1saXN0LXByb3BlcnRpZXMgLmNrLmNrLW51bWJlcmVkLWxpc3QtcHJvcGVydGllc19fc3RhcnQtaW5kZXggLmNrLWlucHV0IHtcblx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cbi5jay5jay1saXN0LXByb3BlcnRpZXMgLmNrLmNrLW51bWJlcmVkLWxpc3QtcHJvcGVydGllc19fcmV2ZXJzZWQtb3JkZXIge1xuXHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdG1hcmdpbi1ib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpKTtcblx0fVxuLmNrLmNrLWxpc3QtcHJvcGVydGllcyAuY2suY2stbnVtYmVyZWQtbGlzdC1wcm9wZXJ0aWVzX19yZXZlcnNlZC1vcmRlcjphY3RpdmUsIC5jay5jay1saXN0LXByb3BlcnRpZXMgLmNrLmNrLW51bWJlcmVkLWxpc3QtcHJvcGVydGllc19fcmV2ZXJzZWQtb3JkZXI6aG92ZXIge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stbGlzdC1zdHlsZS1idXR0b24tc2l6ZTogNDRweDtcbn1cbi5jay5jay1saXN0LXN0eWxlcy1saXN0IHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoIDMsIGF1dG8gKTtcblx0cm93LWdhcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRjb2x1bW4tZ2FwOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xufVxuLmNrLmNrLWxpc3Qtc3R5bGVzLWxpc3QgLmNrLWJ1dHRvbiB7XG5cdFx0LyogTWFrZSB0aGUgYnV0dG9uIGxvb2sgbGlrZSBhIHRodW1ibmFpbCAodGhlIGljb24gXCJ0YWtlcyBpdCBhbGxcIikuICovXG5cdFx0d2lkdGg6IHZhcigtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stbGlzdC1zdHlsZS1idXR0b24tc2l6ZSk7XG5cdFx0cGFkZGluZzogMDtcblxuXHRcdC8qXG5cdFx0ICogQnV0dG9ucyBhcmUgYWxpZ25lZCBieSB0aGUgZ3JpZCBzbyBkaXNhYmxlIGRlZmF1bHQgYnV0dG9uIG1hcmdpbnMgdG8gbm90IGNvbGxpZGUgd2l0aCB0aGVcblx0XHQgKiBnYXBzIGluIHRoZSBncmlkLlxuXHRcdCAqL1xuXHRcdG1hcmdpbjogMDtcblxuXHRcdC8qXG5cdFx0ICogTWFrZSBzdXJlIHRoZSBidXR0b24gYm9yZGVyICh3aGljaCBpcyBkaXNwbGF5ZWQgb24gZm9jdXMsIEJUVykgZG9lcyBub3Qgc3RlYWwgcGl4ZWxzXG5cdFx0ICogZnJvbSB0aGUgYnV0dG9uIGRpbWVuc2lvbnMgYW5kLCBhcyBhIHJlc3VsdCwgZGVjcmVhc2UgdGhlIHNpemUgb2YgdGhlIGljb25cblx0XHQgKiAod2hpY2ggYmVjb21lcyBibHVycnkgYXMgaXQgc2NhbGVzIGRvd24pLlxuXHRcdCAqL1xuXHRcdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHR9XG4uY2suY2stbGlzdC1zdHlsZXMtbGlzdCAuY2stYnV0dG9uIC5jay1pY29uIHtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay1saXN0LXN0eWxlLWJ1dHRvbi1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stbGlzdC1zdHlsZS1idXR0b24tc2l6ZSk7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci1pY29uLXNpemU6IDNlbTtcblxuXHQtLWNrLWNvbG9yLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLXVybC10ZXh0OiBoc2woMCwgMCUsIDQ2JSk7XG5cdC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQtaG92ZXI6IHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG59XG4uY2stbWVkaWFfX3dyYXBwZXIge1xuXHRtYXJnaW46IDAgYXV0bztcbn1cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHRwYWRkaW5nOiBjYWxjKCAzICogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHR9XG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItaWNvbi1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItaWNvbi1zaXplKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIC5jay1pY29uIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdH1cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQpO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdH1cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dDpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci11cmwtdGV4dC1ob3Zlcik7XG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cIm9wZW4uc3BvdGlmeS5jb21cIl0ge1xuXHRcdG1heC13aWR0aDogMzAwcHg7XG5cdFx0bWF4LWhlaWdodDogMzgwcHg7XG5cdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZ29vZ2xlLmNvbS9tYXBzXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24sXG5cdC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZ29vLmdsL21hcHNcIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbixcblx0LmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJtYXBzLmdvb2dsZS5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbixcblx0LmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJtYXBzLmFwcC5nb28uZ2xcIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeU5UQXVNemM0SWlCb1pXbG5hSFE5SWpJMU5DNHhOamNpSUhacFpYZENiM2c5SWpBZ01DQTJOaTR5TkRZZ05qY3VNalE0SWo0OFp5QjBjbUZ1YzJadmNtMDlJblJ5WVc1emJHRjBaU2d0TVRjeUxqVXpNU0F0TWpFNExqUTFOU2tnYzJOaGJHVW9Mams0TURFeUtTSStQSEpsWTNRZ2NuazlJalV1TWpNNElpQnllRDBpTlM0eU16Z2lJSGs5SWpJek1TNHpPVGtpSUhnOUlqRTNOaTR3TXpFaUlHaGxhV2RvZEQwaU5qQXVNRGs1SWlCM2FXUjBhRDBpTmpBdU1EazVJaUJtYVd4c1BTSWpNelJoTmpZNElpQndZV2x1ZEMxdmNtUmxjajBpYldGeWEyVnljeUJ6ZEhKdmEyVWdabWxzYkNJdlBqeHdZWFJvSUdROUlrMHlNRFl1TkRjM0lESTJNQzQ1YkMweU9DNDVPRGNnTWpndU9UZzNZVFV1TWpFNElEVXVNakU0SURBZ01DQXdJRE11TnpnZ01TNDJNV2cwT1M0Mk1qRmpNUzQyT1RRZ01DQXpMakU1TFM0M09UZ2dOQzR4TkRZdE1pNHdNemQ2SWlCbWFXeHNQU0lqTldNNE9HTTFJaTgrUEhCaGRHZ2daRDBpVFRJeU5pNDNORElnTWpJeUxqazRPR010T1M0eU5qWWdNQzB4Tmk0M056Y2dOeTR4TnkweE5pNDNOemNnTVRZdU1ERTBMakF3TnlBeUxqYzJNaTQyTmpNZ05TNDBOelFnTWk0d09UTWdOeTQ0TnpVdU5ETXVOekF6TGpneklERXVOREE0SURFdU1Ua2dNaTR4TURjdU16TXpMalV3TWk0Mk5TQXhMakF3TlM0NU5TQXhMalV3T0M0ek5ETXVORGMzTGpZM015NDVOVGN1T1RnNElERXVORFFnTVM0ek1TQXhMamMyT1NBeUxqVWdNeTQxTURJZ015NDJNemNnTlM0eE5qZ3VOemt6SURFdU1qYzFJREV1TmpneklESXVOalFnTWk0ME5qWWdNeTQ1T1NBeUxqTTJNeUEwTGpBNU5DQTBMakF3TnlBNExqQTVNaUEwTGpZZ01UTXVPVEUwZGk0d01USmpMakU0TWk0ME1USXVOVEUyTGpZMk5pNDROemt1TmpZM0xqUXdNeTB1TURBeExqYzJPQzB1TXpFMExqa3pMUzQzT1RrdU5qQXpMVFV1TnpVMklESXVNak00TFRrdU56STVJRFF1TlRnMUxURXpMamM1TkM0M09ESXRNUzR6TlNBeExqWTNNeTB5TGpjeE5TQXlMalEyTlMwekxqazVJREV1TVRNM0xURXVOalkySURJdU16STRMVE11TkNBekxqWXpPQzAxTGpFMk9TNHpNVFV0TGpRNE1pNDJORFV0TGprMk1pNDVPRGd0TVM0ME16a3VNeTB1TlRBekxqWXhOeTB4TGpBd05pNDVOUzB4TGpVd09DNHpOVGt0TGpjdU56WXRNUzQwTURRZ01TNHhPUzB5TGpFd055QXhMalF5TmkweUxqUXdNaUF5TFRVdU1URTBJREl1TURBMExUY3VPRGMxSURBdE9DNDRORFF0Tnk0MU1URXRNVFl1TURFMExURTJMamMzTmkweE5pNHdNVFI2SWlCbWFXeHNQU0lqWkdRMFlqTmxJaUJ3WVdsdWRDMXZjbVJsY2owaWJXRnlhMlZ5Y3lCemRISnZhMlVnWm1sc2JDSXZQanhsYkd4cGNITmxJSEo1UFNJMUxqVTJOQ0lnY25nOUlqVXVPREk0SWlCamVUMGlNak01TGpBd01pSWdZM2c5SWpJeU5pNDNORElpSUdacGJHdzlJaU00TURKa01qY2lJSEJoYVc1MExXOXlaR1Z5UFNKdFlYSnJaWEp6SUhOMGNtOXJaU0JtYVd4c0lpOCtQSEJoZEdnZ1pEMGlUVEU1TUM0ek1ERWdNak0zTGpJNE0yTXROQzQyTnlBd0xUZ3VORFUzSURNdU9EVXpMVGd1TkRVM0lEZ3VOakEyY3pNdU56ZzJJRGd1TmpBM0lEZ3VORFUzSURndU5qQTNZek11TURReklEQWdOQzQ0TURZdExqazFPQ0EyTGpNek55MHlMalV4TmlBeExqVXpMVEV1TlRVM0lESXVNRGczTFRNdU9URXpJREl1TURnM0xUWXVNamtnTUMwdU16WXlMUzR3TWpNdExqY3lNaTB1TURZMExURXVNRGM1YUMwNExqSTFOM1l6TGpBME0yZzBMamcxWXkwdU1UazNMamMxT1MwdU5UTXhJREV1TkRVdE1TNHdOVGdnTVM0NU9EWXRMamswTWk0NU5UZ3RNaTR3TWpnZ01TNDFORGd0TXk0NU1ERWdNUzQxTkRndE1pNDROellnTUMwMUxqSXdPQzB5TGpNM01pMDFMakl3T0MwMUxqSTVPU0F3TFRJdU9USTJJREl1TXpNeUxUVXVNams1SURVdU1qQTRMVFV1TWprNUlERXVNems1SURBZ01pNDJNVGd1TkRBM0lETXVOVGcwSURFdU1qa3piREl1TXpneExUSXVNemhqTUMwdU1EQXlMUzR3TURNdExqQXdOQzB1TURBMExTNHdNRFV0TVM0MU9EZ3RNUzQxTWpRdE15NDJNaTB5TGpJeE5TMDFMamsxTlMweUxqSXhOWHB0TkM0ME15QTFMalkyYkM0d01ETXVNREEyZGkwdU1EQXplaUlnWm1sc2JEMGlJMlptWmlJZ2NHRnBiblF0YjNKa1pYSTlJbTFoY210bGNuTWdjM1J5YjJ0bElHWnBiR3dpTHo0OGNHRjBhQ0JrUFNKTk1qRTFMakU0TkNBeU5URXVPVEk1YkMwM0xqazRJRGN1T1RjNUlESTRMalEzTnlBeU9DNDBOelZqTGpJNE55MHVOalE1TGpRME9TMHhMak0yTmk0ME5Ea3RNaTR4TWpOMkxUTXhMakUyTldNdExqUTJPUzQyTnpVdExqa3pOQ0F4TGpNME9TMHhMak00TWlBeUxqQXdOUzB1TnpreUlERXVNamMxTFRFdU5qZ3lJREl1TmpRdE1pNDBOalVnTXk0NU9TMHlMak0wTnlBMExqQTJOUzB6TGprNE1pQTRMakF6T0MwMExqVTROU0F4TXk0M09UUXRMakUyTWk0ME9EVXRMalV5Tnk0M09UZ3RMamt6TGpjNU9TMHVNell6TFM0d01ERXRMalk1TnkwdU1qVTFMUzQ0TnprdExqWTJOM1l0TGpBeE1tTXRMalU1TXkwMUxqZ3lNaTB5TGpJek55MDVMamd5TFRRdU5pMHhNeTQ1TVRRdExqYzRNeTB4TGpNMUxURXVOamN6TFRJdU56RTFMVEl1TkRZMkxUTXVPVGt0TVM0eE16Y3RNUzQyTmpZdE1pNHpNamN0TXk0MExUTXVOak0zTFRVdU1UWTViQzB1TURBeUxTNHdNRE42SWlCbWFXeHNQU0lqWXpOak0yTXpJaTgrUEhCaGRHZ2daRDBpVFRJeE1pNDVPRE1nTWpRNExqUTVOV3d0TXpZdU9UVXlJRE0yTGprMU0zWXVPREV5WVRVdU1qSTNJRFV1TWpJM0lEQWdNQ0F3SURVdU1qTTRJRFV1TWpNNGFERXVNREUxYkRNMUxqWTJOaTB6TlM0Mk5qWmhNVE0yTGpJM05TQXhNell1TWpjMUlEQWdNQ0F3TFRJdU56WTBMVE11T1NBek55NDFOelVnTXpjdU5UYzFJREFnTUNBd0xTNDVPRGt0TVM0ME5HTXRMakk1T1MwdU5UQXpMUzQyTVRZdE1TNHdNRFl0TGprMUxURXVOVEE0TFM0d09ETXRMakUyTWkwdU1UYzJMUzR6TWpZdExqSTJOQzB1TkRnNWVpSWdabWxzYkQwaUkyWmtaR00wWmlJZ2NHRnBiblF0YjNKa1pYSTlJbTFoY210bGNuTWdjM1J5YjJ0bElHWnBiR3dpTHo0OGNHRjBhQ0JrUFNKTk1qRXhMams1T0NBeU5qRXVNRGd6YkMwMkxqRTFNaUEyTGpFMU1TQXlOQzR5TmpRZ01qUXVNalkwYUM0M09ERmhOUzR5TWpjZ05TNHlNamNnTUNBd0lEQWdOUzR5TXprdE5TNHlNemgyTFRFdU1EUTFlaUlnWm1sc2JEMGlJMlptWmlJZ2NHRnBiblF0YjNKa1pYSTlJbTFoY210bGNuTWdjM1J5YjJ0bElHWnBiR3dpTHo0OEwyYytQQzl6ZG1jKyk7XG5cdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZmFjZWJvb2suY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdGJhY2tncm91bmQ6IGhzbCgyMjAsIDQ2JSwgNDglKTtcblx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJmYWNlYm9vay5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlWVlJHTFRnaVB6NDhjM1puSUhkcFpIUm9QU0l4TURJMGNIZ2lJR2hsYVdkb2REMGlNVEF5TkhCNElpQjJhV1YzUW05NFBTSXdJREFnTVRBeU5DQXhNREkwSWlCMlpYSnphVzl1UFNJeExqRWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaVBpQWdJQ0FnSUNBZ1BIUnBkR3hsUGtacGJHd2dNVHd2ZEdsMGJHVStJQ0FnSUR4a1pYTmpQa055WldGMFpXUWdkMmwwYUNCVGEyVjBZMmd1UEM5a1pYTmpQaUFnSUNBOFpHVm1jejQ4TDJSbFpuTStJQ0FnSUR4bklHbGtQU0pRWVdkbExURWlJSE4wY205clpUMGlibTl1WlNJZ2MzUnliMnRsTFhkcFpIUm9QU0l4SWlCbWFXeHNQU0p1YjI1bElpQm1hV3hzTFhKMWJHVTlJbVYyWlc1dlpHUWlQaUFnSUNBZ0lDQWdQR2NnYVdROUltWk1iMmR2WDFkb2FYUmxJaUJtYVd4c1BTSWpSa1pHUmtaRklqNGdJQ0FnSUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQU0pOT1RZM0xqUTROQ3d3SUV3MU5pNDFNVGNzTUNCRE1qVXVNekEwTERBZ01Dd3lOUzR6TURRZ01DdzFOaTQxTVRjZ1REQXNPVFkzTGpRNE15QkRNQ3c1T1RndU5qazBJREkxTGpJNU55d3hNREkwSURVMkxqVXlNaXd4TURJMElFdzFORGNzTVRBeU5DQk1OVFEzTERZeU9DQk1OREUwTERZeU9DQk1OREUwTERRM015Qk1OVFEzTERRM015Qk1OVFEzTERNMU9TNHdNamtnUXpVME55d3lNall1TnpZM0lEWXlOeTQzTnpNc01UVTBMamMwTnlBM05EVXVOelUyTERFMU5DNDNORGNnUXpnd01pNHlOamtzTVRVMExqYzBOeUE0TlRBdU9EUXlMREUxT0M0NU5UVWdPRFkxTERFMk1DNDRNellnVERnMk5Td3lPVGtnVERjNE15NHpPRFFzTWprNUxqQXpOeUJETnpFNUxqTTVNU3d5T1RrdU1ETTNJRGN3Tnl3ek1qa3VOVEk1SURjd055d3pOelF1TWpjeklFdzNNRGNzTkRjeklFdzROakF1TkRnM0xEUTNNeUJNT0RRd0xqVXdNU3cyTWpnZ1REY3dOeXcyTWpnZ1REY3dOeXd4TURJMElFdzVOamN1TkRnMExERXdNalFnUXprNU9DNDJPVGNzTVRBeU5DQXhNREkwTERrNU9DNDJPVGNnTVRBeU5DdzVOamN1TkRnMElFd3hNREkwTERVMkxqVXhOU0JETVRBeU5Dd3lOUzR6TURNZ09UazRMalk1Tnl3d0lEazJOeTQwT0RRc01DSWdhV1E5SWtacGJHd3RNU0krUEM5d1lYUm9QaUFnSUNBZ0lDQWdQQzluUGlBZ0lDQThMMmMrUEM5emRtYyspO1xuXHRcdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZmFjZWJvb2suY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdGNvbG9yOiBoc2woMjIwLCAxMDAlLCA5MCUpO1xuXHRcdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZmFjZWJvb2suY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0OmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImluc3RhZ3JhbS5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlciB7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC0xMzVkZWcsaHNsKDI0NiwgMTAwJSwgMzklKSxoc2woMzAyLCAxMDAlLCAzNiUpLGhzbCgwLCAxMDAlLCA0OCUpKTtcblx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpVlZSR0xUZ2lQejQ4YzNabklIZHBaSFJvUFNJMU1EUndlQ0lnYUdWcFoyaDBQU0kxTURSd2VDSWdkbWxsZDBKdmVEMGlNQ0F3SURVd05DQTFNRFFpSUhabGNuTnBiMjQ5SWpFdU1TSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklpQjRiV3h1Y3pwNGJHbHVhejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOTRiR2x1YXlJK0lDQWdJQ0FnSUNBOGRHbDBiR1UrWjJ4NWNHZ3RiRzluYjE5TllYa3lNREUyUEM5MGFYUnNaVDRnSUNBZ1BHUmxjMk0rUTNKbFlYUmxaQ0IzYVhSb0lGTnJaWFJqYUM0OEwyUmxjMk0rSUNBZ0lEeGtaV1p6UGlBZ0lDQWdJQ0FnUEhCdmJIbG5iMjRnYVdROUluQmhkR2d0TVNJZ2NHOXBiblJ6UFNJd0lEQXVNVFU1SURVd015NDROREVnTUM0eE5Ua2dOVEF6TGpnME1TQTFNRE11T1RRZ01DQTFNRE11T1RRaVBqd3ZjRzlzZVdkdmJqNGdJQ0FnUEM5a1pXWnpQaUFnSUNBOFp5QnBaRDBpWjJ4NWNHZ3RiRzluYjE5TllYa3lNREUySWlCemRISnZhMlU5SW01dmJtVWlJSE4wY205clpTMTNhV1IwYUQwaU1TSWdabWxzYkQwaWJtOXVaU0lnWm1sc2JDMXlkV3hsUFNKbGRtVnViMlJrSWo0Z0lDQWdJQ0FnSUR4bklHbGtQU0pIY205MWNDMHpJajRnSUNBZ0lDQWdJQ0FnSUNBOGJXRnpheUJwWkQwaWJXRnpheTB5SWlCbWFXeHNQU0ozYUdsMFpTSStJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeDFjMlVnZUd4cGJtczZhSEpsWmowaUkzQmhkR2d0TVNJK1BDOTFjMlUrSUNBZ0lDQWdJQ0FnSUNBZ1BDOXRZWE5yUGlBZ0lDQWdJQ0FnSUNBZ0lEeG5JR2xrUFNKRGJHbHdMVElpUGp3dlp6NGdJQ0FnSUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQU0pOTWpVeExqa3lNU3d3TGpFMU9TQkRNVGd6TGpVd015d3dMakUxT1NBeE56UXVPVEkwTERBdU5EUTVJREUwT0M0d05UUXNNUzQyTnpVZ1F6RXlNUzR5TkN3eUxqZzVPQ0F4TURJdU9USTNMRGN1TVRVM0lEZzJMamt3TXl3eE15NHpPRFVnUXpjd0xqTXpOeXd4T1M0NE1qSWdOVFl1TWpnNExESTRMalF6TmlBME1pNHlPRElzTkRJdU5EUXhJRU15T0M0eU56Y3NOVFl1TkRRM0lERTVMalkyTXl3M01DNDBPVFlnTVRNdU1qSTJMRGczTGpBMk1pQkROaTQ1T1Rnc01UQXpMakE0TmlBeUxqY3pPU3d4TWpFdU16azVJREV1TlRFMkxERTBPQzR5TVRNZ1F6QXVNamtzTVRjMUxqQTRNeUF3TERFNE15NDJOaklnTUN3eU5USXVNRGdnUXpBc016SXdMalE1TnlBd0xqSTVMRE15T1M0d056WWdNUzQxTVRZc016VTFMamswTmlCRE1pNDNNemtzTXpneUxqYzJJRFl1T1RrNExEUXdNUzR3TnpNZ01UTXVNakkyTERReE55NHdPVGNnUXpFNUxqWTJNeXcwTXpNdU5qWXpJREk0TGpJM055dzBORGN1TnpFeUlEUXlMakk0TWl3ME5qRXVOekU0SUVNMU5pNHlPRGdzTkRjMUxqY3lNeUEzTUM0ek16Y3NORGcwTGpNek55QTROaTQ1TURNc05Ea3dMamMzTlNCRE1UQXlMamt5Tnl3ME9UY3VNREF5SURFeU1TNHlOQ3cxTURFdU1qWXhJREUwT0M0d05UUXNOVEF5TGpRNE5DQkRNVGMwTGpreU5DdzFNRE11TnpFZ01UZ3pMalV3TXl3MU1EUWdNalV4TGpreU1TdzFNRFFnUXpNeU1DNHpNemdzTlRBMElETXlPQzQ1TVRjc05UQXpMamN4SURNMU5TNDNPRGNzTlRBeUxqUTROQ0JETXpneUxqWXdNU3cxTURFdU1qWXhJRFF3TUM0NU1UUXNORGszTGpBd01pQTBNVFl1T1RNNExEUTVNQzQzTnpVZ1F6UXpNeTQxTURRc05EZzBMak16TnlBME5EY3VOVFV6TERRM05TNDNNak1nTkRZeExqVTFPU3cwTmpFdU56RTRJRU0wTnpVdU5UWTBMRFEwTnk0M01USWdORGcwTGpFM09DdzBNek11TmpZeklEUTVNQzQyTVRZc05ERTNMakE1TnlCRE5EazJMamcwTXl3ME1ERXVNRGN6SURVd01TNHhNRElzTXpneUxqYzJJRFV3TWk0ek1qVXNNelUxTGprME5pQkROVEF6TGpVMU1Td3pNamt1TURjMklEVXdNeTQ0TkRFc016SXdMalE1TnlBMU1ETXVPRFF4TERJMU1pNHdPQ0JETlRBekxqZzBNU3d4T0RNdU5qWXlJRFV3TXk0MU5URXNNVGMxTGpBNE15QTFNREl1TXpJMUxERTBPQzR5TVRNZ1F6VXdNUzR4TURJc01USXhMak01T1NBME9UWXVPRFF6TERFd015NHdPRFlnTkRrd0xqWXhOaXc0Tnk0d05qSWdRelE0TkM0eE56Z3NOekF1TkRrMklEUTNOUzQxTmpRc05UWXVORFEzSURRMk1TNDFOVGtzTkRJdU5EUXhJRU0wTkRjdU5UVXpMREk0TGpRek5pQTBNek11TlRBMExERTVMamd5TWlBME1UWXVPVE00TERFekxqTTROU0JETkRBd0xqa3hOQ3czTGpFMU55QXpPREl1TmpBeExESXVPRGs0SURNMU5TNDNPRGNzTVM0Mk56VWdRek15T0M0NU1UY3NNQzQwTkRrZ016SXdMak16T0N3d0xqRTFPU0F5TlRFdU9USXhMREF1TVRVNUlGb2dUVEkxTVM0NU1qRXNORFV1TlRVZ1F6TXhPUzR4T0RZc05EVXVOVFVnTXpJM0xqRTFOQ3cwTlM0NE1EY2dNelV6TGpjeE9DdzBOeTR3TVRrZ1F6TTNPQzR5T0N3ME9DNHhNemtnTXpreExqWXhPU3cxTWk0eU5ETWdOREF3TGpRNU5pdzFOUzQyT1RNZ1F6UXhNaTR5TlRVc05qQXVNall6SURReU1DNDJORGNzTmpVdU56SXlJRFF5T1M0ME5qSXNOelF1TlRNNElFTTBNemd1TWpjNExEZ3pMak0xTXlBME5ETXVOek0zTERreExqYzBOU0EwTkRndU16QTNMREV3TXk0MU1EUWdRelExTVM0M05UY3NNVEV5TGpNNE1TQTBOVFV1T0RZeExERXlOUzQzTWlBME5UWXVPVGd4TERFMU1DNHlPRElnUXpRMU9DNHhPVE1zTVRjMkxqZzBOaUEwTlRndU5EVXNNVGcwTGpneE5DQTBOVGd1TkRVc01qVXlMakE0SUVNME5UZ3VORFVzTXpFNUxqTTBOU0EwTlRndU1Ua3pMRE15Tnk0ek1UTWdORFUyTGprNE1Td3pOVE11T0RjM0lFTTBOVFV1T0RZeExETTNPQzQwTXprZ05EVXhMamMxTnl3ek9URXVOemM0SURRME9DNHpNRGNzTkRBd0xqWTFOU0JETkRRekxqY3pOeXcwTVRJdU5ERTBJRFF6T0M0eU56Z3NOREl3TGpnd05pQTBNamt1TkRZeUxEUXlPUzQyTWpFZ1F6UXlNQzQyTkRjc05ETTRMalF6TnlBME1USXVNalUxTERRME15NDRPVFlnTkRBd0xqUTVOaXcwTkRndU5EWTJJRU16T1RFdU5qRTVMRFExTVM0NU1UWWdNemM0TGpJNExEUTFOaTR3TWlBek5UTXVOekU0TERRMU55NHhOQ0JETXpJM0xqRTFPQ3cwTlRndU16VXlJRE14T1M0eE9URXNORFU0TGpZd09TQXlOVEV1T1RJeExEUTFPQzQyTURrZ1F6RTROQzQyTlN3ME5UZ3VOakE1SURFM05pNDJPRFFzTkRVNExqTTFNaUF4TlRBdU1USXpMRFExTnk0eE5DQkRNVEkxTGpVMk1TdzBOVFl1TURJZ01URXlMakl5TWl3ME5URXVPVEUySURFd015NHpORFVzTkRRNExqUTJOaUJET1RFdU5UZzJMRFEwTXk0NE9UWWdPRE11TVRrMExEUXpPQzQwTXpjZ056UXVNemM1TERReU9TNDJNakVnUXpZMUxqVTJOQ3cwTWpBdU9EQTJJRFl3TGpFd05DdzBNVEl1TkRFMElEVTFMalV6TkN3ME1EQXVOalUxSUVNMU1pNHdPRFFzTXpreExqYzNPQ0EwTnk0NU9Dd3pOemd1TkRNNUlEUTJMamcyTERNMU15NDROemNnUXpRMUxqWTBPQ3d6TWpjdU16RXpJRFExTGpNNU1Td3pNVGt1TXpRMUlEUTFMak01TVN3eU5USXVNRGdnUXpRMUxqTTVNU3d4T0RRdU9ERTBJRFExTGpZME9Dd3hOell1T0RRMklEUTJMamcyTERFMU1DNHlPRElnUXpRM0xqazRMREV5TlM0M01pQTFNaTR3T0RRc01URXlMak00TVNBMU5TNDFNelFzTVRBekxqVXdOQ0JETmpBdU1UQTBMRGt4TGpjME5TQTJOUzQxTmpNc09ETXVNelV6SURjMExqTTNPU3czTkM0MU16Z2dRemd6TGpFNU5DdzJOUzQzTWpJZ09URXVOVGcyTERZd0xqSTJNeUF4TURNdU16UTFMRFUxTGpZNU15QkRNVEV5TGpJeU1pdzFNaTR5TkRNZ01USTFMalUyTVN3ME9DNHhNemtnTVRVd0xqRXlNeXcwTnk0d01Ua2dRekUzTmk0Mk9EY3NORFV1T0RBM0lERTROQzQyTlRVc05EVXVOVFVnTWpVeExqa3lNU3cwTlM0MU5TQmFJaUJwWkQwaVJtbHNiQzB4SWlCbWFXeHNQU0lqUmtaR1JrWkdJaUJ0WVhOclBTSjFjbXdvSTIxaGMyc3RNaWtpUGp3dmNHRjBhRDRnSUNBZ0lDQWdJRHd2Wno0Z0lDQWdJQ0FnSUR4d1lYUm9JR1E5SWsweU5URXVPVEl4TERNek5pNHdOVE1nUXpJd05TNDFORE1zTXpNMkxqQTFNeUF4TmpjdU9UUTNMREk1T0M0ME5UY2dNVFkzTGprME55d3lOVEl1TURnZ1F6RTJOeTQ1TkRjc01qQTFMamN3TWlBeU1EVXVOVFF6TERFMk9DNHhNRFlnTWpVeExqa3lNU3d4TmpndU1UQTJJRU15T1RndU1qazRMREUyT0M0eE1EWWdNek0xTGpnNU5Dd3lNRFV1TnpBeUlETXpOUzQ0T1RRc01qVXlMakE0SUVNek16VXVPRGswTERJNU9DNDBOVGNnTWprNExqSTVPQ3d6TXpZdU1EVXpJREkxTVM0NU1qRXNNek0yTGpBMU15QmFJRTB5TlRFdU9USXhMREV5TWk0M01UVWdRekU0TUM0ME56UXNNVEl5TGpjeE5TQXhNakl1TlRVMkxERTRNQzQyTXpNZ01USXlMalUxTml3eU5USXVNRGdnUXpFeU1pNDFOVFlzTXpJekxqVXlOaUF4T0RBdU5EYzBMRE00TVM0ME5EUWdNalV4TGpreU1Td3pPREV1TkRRMElFTXpNak11TXpZM0xETTRNUzQwTkRRZ016Z3hMakk0TlN3ek1qTXVOVEkySURNNE1TNHlPRFVzTWpVeUxqQTRJRU16T0RFdU1qZzFMREU0TUM0Mk16TWdNekl6TGpNMk55d3hNakl1TnpFMUlESTFNUzQ1TWpFc01USXlMamN4TlNCYUlpQnBaRDBpUm1sc2JDMDBJaUJtYVd4c1BTSWpSa1pHUmtaR0lqNDhMM0JoZEdnK0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk5ERTJMall5Tnl3eE1UY3VOakEwSUVNME1UWXVOakkzTERFek5DNHpJRFF3TXk0d09USXNNVFEzTGpnek5DQXpPRFl1TXprMkxERTBOeTQ0TXpRZ1F6TTJPUzQzTURFc01UUTNMamd6TkNBek5UWXVNVFkyTERFek5DNHpJRE0xTmk0eE5qWXNNVEUzTGpZd05DQkRNelUyTGpFMk5pd3hNREF1T1RBNElETTJPUzQzTURFc09EY3VNemN6SURNNE5pNHpPVFlzT0RjdU16Y3pJRU0wTURNdU1Ea3lMRGczTGpNM015QTBNVFl1TmpJM0xERXdNQzQ1TURnZ05ERTJMall5Tnl3eE1UY3VOakEwSWlCcFpEMGlSbWxzYkMwMUlpQm1hV3hzUFNJalJrWkdSa1pHSWo0OEwzQmhkR2crSUNBZ0lEd3ZaejQ4TDNOMlp6ND0pO1xuXHRcdH1cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImluc3RhZ3JhbS5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0Y29sb3I6IGhzbCgzMDIsIDEwMCUsIDk0JSk7XG5cdFx0fVxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0OmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdC8qIFVzZSBncmFkaWVudCB0byBjb250cmFzdCB3aXRoIGZvY3VzZWQgd2lkZ2V0IChja2VkaXRvci9ja2VkaXRvcjUtbWVkaWEtZW1iZWQjMjIpLiAqL1xuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCggdG8gcmlnaHQsIGhzbCgyMDEsIDg1JSwgNzAlKSwgaHNsKDIwMSwgODUlLCAzNSUpICk7XG5cdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwidHdpdHRlci5jb21cIl0gLmNrLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlkWFJtTFRnaVB6NDhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWxkb2FYUmxJaUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0Ykc1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklpQjRQU0l3Y0hnaUlIazlJakJ3ZUNJZ2RtbGxkMEp2ZUQwaU1DQXdJRFF3TUNBME1EQWlJSE4wZVd4bFBTSmxibUZpYkdVdFltRmphMmR5YjNWdVpEcHVaWGNnTUNBd0lEUXdNQ0EwTURBN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajQ4YzNSNWJHVWdkSGx3WlQwaWRHVjRkQzlqYzNNaVBpNXpkREI3Wm1sc2JEb2pSa1pHUmtaR08zMDhMM04wZVd4bFBqeHdZWFJvSUdOc1lYTnpQU0p6ZERBaUlHUTlJazAwTURBc01qQXdZekFzTVRFd0xqVXRPRGt1TlN3eU1EQXRNakF3TERJd01GTXdMRE14TUM0MUxEQXNNakF3VXpnNUxqVXNNQ3d5TURBc01GTTBNREFzT0RrdU5TdzBNREFzTWpBd2VpQk5NVFl6TGpRc016QTFMalZqT0RndU55d3dMREV6Tnk0eUxUY3pMalVzTVRNM0xqSXRNVE0zTGpKak1DMHlMakVzTUMwMExqSXRNQzR4TFRZdU1tTTVMalF0Tmk0NExERTNMall0TVRVdU15d3lOQzR4TFRJMVl5MDRMallzTXk0NExURTNMamtzTmk0MExUSTNMamNzTnk0Mll6RXdMVFlzTVRjdU5pMHhOUzQwTERJeExqSXRNall1TjJNdE9TNHpMRFV1TlMweE9TNDJMRGt1TlMwek1DNDJMREV4TGpkakxUZ3VPQzA1TGpRdE1qRXVNeTB4TlM0eUxUTTFMakl0TVRVdU1tTXRNall1Tml3d0xUUTRMaklzTWpFdU5pMDBPQzR5TERRNExqSmpNQ3d6TGpnc01DNDBMRGN1TlN3eExqTXNNVEZqTFRRd0xqRXRNaTAzTlM0MkxUSXhMakl0T1RrdU5DMDFNQzQwWXkwMExqRXNOeTR4TFRZdU5Td3hOUzQwTFRZdU5Td3lOQzR5WXpBc01UWXVOeXc0TGpVc016RXVOU3d5TVM0MUxEUXdMakZqTFRjdU9TMHdMakl0TVRVdU15MHlMalF0TWpFdU9DMDJZekFzTUM0eUxEQXNNQzQwTERBc01DNDJZekFzTWpNdU5Dd3hOaTQyTERReUxqZ3NNemd1Tnl3ME55NHpZeTAwTERFdU1TMDRMak1zTVM0M0xURXlMamNzTVM0M1l5MHpMakVzTUMwMkxqRXRNQzR6TFRrdU1TMHdMamxqTmk0eExERTVMaklzTWpNdU9Td3pNeTR4TERRMUxETXpMalZqTFRFMkxqVXNNVEl1T1Mwek55NHpMREl3TGpZdE5Ua3VPU3d5TUM0Mll5MHpMamtzTUMwM0xqY3RNQzR5TFRFeExqVXRNQzQzUXpFeE1DNDRMREk1Tnk0MUxERXpOaTR5TERNd05TNDFMREUyTXk0MExETXdOUzQxSWk4K1BDOXpkbWMrKTtcblx0XHR9XG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdGNvbG9yOiBoc2woMjAxLCAxMDAlLCA4NiUpO1xuXHRcdH1cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwidHdpdHRlci5jb21cIl0gLmNrLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQ6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0XHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stY29sb3ItbWVudGlvbi1iYWNrZ3JvdW5kOiBoc2xhKDM0MSwgMTAwJSwgMzAlLCAwLjEpO1xuXHQtLWNrLWNvbG9yLW1lbnRpb24tdGV4dDogaHNsKDM0MSwgMTAwJSwgMzAlKTtcbn1cbi5jay1jb250ZW50IC5tZW50aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbWVudGlvbi1iYWNrZ3JvdW5kKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLW1lbnRpb24tdGV4dCk7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYmFja2dyb3VuZDogaHNsYSgzMSwgMTAwJSwgNjUlLCAuMik7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1ob3Zlci1iYWNrZ3JvdW5kOiBoc2xhKDMxLCAxMDAlLCA2NSUsIC4zNSk7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0czogaHNsYSgzMSwgMTAwJSwgNDAlLCAuNCk7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1iYWNrZ3JvdW5kOiBoc2xhKDMxLCAxMDAlLCA2NSUsIC41KTtcblx0LS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzOiBoc2xhKDMxLCAxMDAlLCA0MCUsIC42KTtcbn1cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uIHtcblx0dHJhbnNpdGlvbjogLjJzIGVhc2UtaW4tb3V0IGJhY2tncm91bmQ7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xuXHRib3JkZXItaW1hZ2U6IGxpbmVhci1ncmFkaWVudChcblx0XHR0byByaWdodCxcblx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJyYWNrZXRzKSAwJSxcblx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJyYWNrZXRzKSA1cHgsXG5cdFx0aHNsYSgwLCAwJSwgMCUsIDApIDZweCxcblx0XHRoc2xhKDAsIDAlLCAwJSwgMCkgY2FsYygxMDAlIC0gNnB4KSxcblx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJyYWNrZXRzKSBjYWxjKDEwMCUgLSA1cHgpLFxuXHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24tYnJhY2tldHMpIDEwMCVcblx0KSAxO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay1lZGl0b3JfX2VkaXRhYmxlIC5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uIHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xufVxuXHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZSAucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uX3NlbGVjdGVkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJhY2tncm91bmQpO1xuXHRcdGJvcmRlci1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuXHRcdFx0dG8gcmlnaHQsXG5cdFx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzKSAwJSxcblx0XHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYnJhY2tldHMpIDVweCxcblx0XHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYnJhY2tldHMpIGNhbGMoMTAwJSAtIDVweCksXG5cdFx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJyYWNrZXRzKSAxMDAlXG5cdFx0KSAxO1xuXHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZSAucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi5yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uX2NvbGxhcHNlZCB7XG5cdFx0LyogRW1wdHkgZXhjZXB0aW9uIHNob3VsZCBoYXZlIHRoZSBzYW1lIHdpZHRoIGFzIGV4Y2VwdGlvbiB3aXRoIGF0IGxlYXN0IDEgY2hhciAqL1xuXHRcdHBhZGRpbmctbGVmdDogMWNoO1xuXHR9XG4uY2stcmVzdHJpY3RlZC1lZGl0aW5nX21vZGVfcmVzdHJpY3RlZCB7XG5cdGN1cnNvcjogZGVmYXVsdDtcblxuXHQvKiBXZSBhbHNvIGhhdmUgdG8gb3ZlcnJpZGUgYWxsIGVsZW1lbnRzIGluc2lkZSB0aGUgcmVzdHJpY3RlZCBlZGl0YWJsZSB0byBwcmV2ZW50IGN1cnNvciBzd2l0Y2hpbmcgYmV0d2VlbiBkZWZhdWx0IGFuZCB0ZXh0XG5cdGR1cmluZyB0aGUgcG9pbnRlciBtb3ZlbWVudC4gKi9cbn1cbi5jay1yZXN0cmljdGVkLWVkaXRpbmdfbW9kZV9yZXN0cmljdGVkICoge1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0fVxuLmNrLXJlc3RyaWN0ZWQtZWRpdGluZ19tb2RlX3Jlc3RyaWN0ZWQgLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24ge1xuXHRcdGN1cnNvcjogdGV4dDtcblx0fVxuLmNrLXJlc3RyaWN0ZWQtZWRpdGluZ19tb2RlX3Jlc3RyaWN0ZWQgLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24gKiB7XG5cdFx0XHRjdXJzb3I6IHRleHQ7XG5cdFx0fVxuLmNrLXJlc3RyaWN0ZWQtZWRpdGluZ19tb2RlX3Jlc3RyaWN0ZWQgLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb246aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZTogMjRweDtcbn1cbi5jay5jay1jaGFyYWN0ZXItZ3JpZCB7XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbi5jay5jay1jaGFyYWN0ZXItZ3JpZCAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGVzIHtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCh2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpLCAxZnIpKTtcblx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdGdyaWQtZ2FwOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuLmNrLmNrLWNoYXJhY3Rlci1ncmlkIC5jay1jaGFyYWN0ZXItZ3JpZF9fdGlsZSB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpO1xuXHRcdG1pbi13aWR0aDogdmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKTtcblx0XHRtaW4taGVpZ2h0OiB2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpO1xuXHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0cGFkZGluZzogMDtcblx0XHR0cmFuc2l0aW9uOiAuMnMgZWFzZSBib3gtc2hhZG93O1xuXHRcdGJvcmRlcjogMDtcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay1jaGFyYWN0ZXItZ3JpZCAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGUge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0fVxuXHRcdH1cbi5jay5jay1jaGFyYWN0ZXItZ3JpZCAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGU6Zm9jdXM6bm90KCAuY2stZGlzYWJsZWQgKSxcblx0XHQuY2suY2stY2hhcmFjdGVyLWdyaWQgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlOmhvdmVyOm5vdCggLmNrLWRpc2FibGVkICkge1xuXHRcdFx0LyogRGlzYWJsZSB0aGUgZGVmYXVsdCAuY2stYnV0dG9uJ3MgYm9yZGVyIHJpbmcuICovXG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKSwgMCAwIDAgMnB4IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0fVxuLyogTWFrZSBzdXJlIHRoZSBnbHlwaCBpcyByZW5kZXJlZCBpbiB0aGUgY2VudGVyIG9mIHRoZSBidXR0b24gKi9cbi5jay5jay1jaGFyYWN0ZXItZ3JpZCAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGUgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1jaGFyYWN0ZXItaW5mbyB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xufVxuLmNrLmNrLWNoYXJhY3Rlci1pbmZvID4gKiB7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1zbWFsbCk7XG5cdH1cbi5jay5jay1jaGFyYWN0ZXItaW5mbyAuY2stY2hhcmFjdGVyLWluZm9fX25hbWUge1xuXHRcdG1heC13aWR0aDogMjgwcHg7XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0fVxuLmNrLmNrLWNoYXJhY3Rlci1pbmZvIC5jay1jaGFyYWN0ZXItaW5mb19fY29kZSB7XG5cdFx0b3BhY2l0eTogLjY7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMtbmF2aWdhdGlvbiA+IC5jay1sYWJlbCB7XG5cdFx0bWF4LXdpZHRoOiAxNjBweDtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHR9XG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzLW5hdmlnYXRpb24gPiAuY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdFx0LyogVGhlcmUgY291bGQgYmUgZG96ZW5zIG9mIGNhdGVnb3JpZXMgYXZhaWxhYmxlLiBVc2Ugc2Nyb2xsIHRvIHByZXZlbnQgYSAxMGU2cHggZHJvcGRvd24uICovXG5cdFx0bWF4LWhlaWdodDogMjUwcHg7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdH1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzLW5hdmlnYXRpb24ge1xuXHRcdG1heC13aWR0aDogMTkwcHg7XG59XG5cblx0XHQuY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzLW5hdmlnYXRpb24gPiAuY2stZm9ybV9faGVhZGVyX19sYWJlbCB7XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0fVxuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWRyb3Bkb3duLmNrLXN0eWxlLWRyb3Bkb3duLmNrLXN0eWxlLWRyb3Bkb3duX211bHRpcGxlLWFjdGl2ZSA+IC5jay1idXR0b24gPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLXdpZHRoOiAxMjBweDtcblx0LS1jay1zdHlsZS1wYW5lbC1idXR0b24taGVpZ2h0OiA4MHB4O1xuXHQtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1sYWJlbC1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDk0LjElKTtcblx0LS1jay1zdHlsZS1wYW5lbC1idXR0b24taG92ZXItbGFiZWwtYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5Mi4xJSk7XG5cdC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhvdmVyLWJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCA3MCUpO1xufVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIHtcblx0cm93LWdhcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdGNvbHVtbi1nYXA6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xufVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b24ge1xuXHRcdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdFx0cGFkZGluZzogMDtcblx0XHR3aWR0aDogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLXdpZHRoKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1oZWlnaHQpO1xuXG5cdFx0LyogTGV0IGRlZmF1bHQgLmNrLWJ1dHRvbiA6Zm9jdXMgc3R5bGVzIGFwcGx5ICovXG5cdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uOm5vdCg6Zm9jdXMpIHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRoZWlnaHQ6IDIycHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMjJweDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRmbGV4LXNocmluazogMDtcblx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbiAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uX19wcmV2aWV3IHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdG9wYWNpdHk6IC45O1xuXG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0Ym9yZGVyOiAycHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbi5jay1kaXNhYmxlZCB7XG5cdFx0XHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWRpc2FibGVkLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cblx0XHRcdC8qIExldCBkZWZhdWx0IC5jay1idXR0b24gOmZvY3VzIHN0eWxlcyBhcHBseSAqL1xuXHRcdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uLmNrLWRpc2FibGVkOm5vdCg6Zm9jdXMpIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1zdHlsZS1wYW5lbC1idXR0b24tbGFiZWwtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbi5jay1kaXNhYmxlZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uX19wcmV2aWV3IHtcblx0XHRcdFx0b3BhY2l0eTogLjQ7XG5cblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHRcdFx0XHRmaWx0ZXI6IHNhdHVyYXRlKC4zKTtcblx0XHRcdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uLmNrLW9uIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUpO1xuXHRcdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uLmNrLW9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogMCAtMXB4IDAgdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUpO1xuXHRcdFx0XHR6LWluZGV4OiAxOyAvKiBTdGF5IG9uIHRvcCBvZiB0aGUgcHJldmlldyB3aXRoIHRoZSBzaGFkb3cuICovXG5cdFx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbi5jay1vbjpob3ZlciB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUtZm9jdXMpO1xuXHRcdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b246bm90KC5jay1vbikgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1zdHlsZS1wYW5lbC1idXR0b24tbGFiZWwtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbjpub3QoLmNrLW9uKTpob3ZlciAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1ob3Zlci1sYWJlbC1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpOm5vdCguY2stb24pIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhvdmVyLWJvcmRlci1jb2xvcik7XG5cdFx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIC5jay1zdHlsZS1ncmlkX19idXR0b246aG92ZXI6bm90KC5jay1kaXNhYmxlZCk6bm90KC5jay1vbikgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1wYW5lbF9fc3R5bGUtZ3JvdXAgPiAuY2stbGFiZWwge1xuXHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblx0fVxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1wYW5lbF9fc3R5bGUtZ3JvdXA6Zmlyc3QtY2hpbGQgPiAuY2stbGFiZWwge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXN0eWxlLXBhbmVsLW1heC1oZWlnaHQ6IDQ3MHB4O1xufVxuLmNrLmNrLXN0eWxlLXBhbmVsIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdG1heC1oZWlnaHQ6IHZhcigtLWNrLXN0eWxlLXBhbmVsLW1heC1oZWlnaHQpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWlucHV0LXRleHQge1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2staW5wdXQtY29sb3IgPiAuY2suY2staW5wdXQtdGV4dCB7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0fVxuLyogTWFrZSBzdXJlIHRoZSBmb2N1c2VkIGlucHV0IGlzIGFsd2F5cyBvbiB0b3Agb2YgdGhlIGRyb3Bkb3duIGJ1dHRvbiBzbyBpdHNcblx0XHQgICBvdXRsaW5lIGFuZCBib3JkZXIgYXJlIG5ldmVyIGNyb3BwZWQgKGFsc28gd2hlbiB0aGUgaW5wdXQgaXMgcmVhZC1vbmx5KS4gKi9cbi5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1pbnB1dC10ZXh0OmZvY3VzIHtcblx0XHRcdHotaW5kZXg6IDA7XG5cdFx0fVxuLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1pbnB1dC1jb2xvcl9fYnV0dG9uIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuW2Rpcj1cImx0clwiXSAuY2suY2staW5wdXQtY29sb3IgPiAuY2suY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWlucHV0LWNvbG9yX19idXR0b24ge1xuXHRcdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2staW5wdXQtY29sb3IgPiAuY2suY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWlucHV0LWNvbG9yX19idXR0b24ge1xuXHRcdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1pbnB1dC1jb2xvcl9fYnV0dG9uOm5vdCg6Zm9jdXMpIHtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdFx0fVxuLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1pbnB1dC1jb2xvcl9fYnV0dG9uLmNrLWRpc2FibGVkIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG4uY2suY2staW5wdXQtY29sb3IgPiAuY2suY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWlucHV0LWNvbG9yX19idXR0b24gPiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHRcdFx0d2lkdGg6IDIwcHg7XG5cdFx0XHRcdGhlaWdodDogMjBweDtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItaW5wdXQtYm9yZGVyKTtcblx0XHRcdH1cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWlucHV0LWNvbG9yID4gLmNrLmNrLWRyb3Bkb3duID4gLmNrLmNrLWJ1dHRvbi5jay1pbnB1dC1jb2xvcl9fYnV0dG9uID4gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXcsXG5cdC5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbiA+IC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdH1cbi5jay5jay1pbnB1dC1jb2xvciA+IC5jay5jay1kcm9wZG93biA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbiA+IC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3ID4gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXdfX25vLWNvbG9yLWluZGljYXRvciB7XG5cdFx0XHRcdFx0dG9wOiAtMzAlO1xuXHRcdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0XHRoZWlnaHQ6IDE1MCU7XG5cdFx0XHRcdFx0d2lkdGg6IDglO1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IGhzbCgwLCAxMDAlLCA1MCUpO1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDJweDtcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cdFx0XHRcdFx0dHJhbnNmb3JtLW9yaWdpbjogNTAlO1xuXHRcdFx0XHR9XG4uY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19yZW1vdmUtY29sb3Ige1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBhZGRpbmc6IGNhbGModmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgLyAyKSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbi5jay5jay1pbnB1dC1jb2xvciAuY2suY2staW5wdXQtY29sb3JfX3JlbW92ZS1jb2xvcjpub3QoOmZvY3VzKSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItaW5wdXQtYm9yZGVyKTtcblx0XHR9XG5bZGlyPVwibHRyXCJdIC5jay5jay1pbnB1dC1jb2xvciAuY2suY2staW5wdXQtY29sb3JfX3JlbW92ZS1jb2xvciB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19yZW1vdmUtY29sb3Ige1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuLmNrLmNrLWlucHV0LWNvbG9yIC5jay5jay1pbnB1dC1jb2xvcl9fcmVtb3ZlLWNvbG9yIC5jay5jay1pY29uIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuW2Rpcj1cInJ0bFwiXSAuY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19yZW1vdmUtY29sb3IgLmNrLmNrLWljb24ge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi5jay5jay1mb3JtIHtcblx0cGFkZGluZzogMCAwIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xufVxuLmNrLmNrLWZvcm06Zm9jdXMge1xuXHRcdC8qIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNDc3MyAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbi5jay5jay1mb3JtIC5jay5jay1pbnB1dC10ZXh0IHtcblx0XHRtaW4td2lkdGg6IDEwMCU7XG5cdFx0d2lkdGg6IDA7XG5cdH1cbi5jay5jay1mb3JtIC5jay5jay1kcm9wZG93biB7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHR9XG4uY2suY2stZm9ybSAuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19idXR0b246bm90KDpmb2N1cykge1xuXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG4uY2suY2stZm9ybSAuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLWZvcm1fX3JvdyB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cblx0LyogSWdub3JlIGxhYmVscyB0aGF0IHdvcmsgYXMgZmllbGRzZXQgbGVnZW5kcyAqL1xufVxuW2Rpcj1cImx0clwiXSAuY2suY2stZm9ybV9fcm93ID4gKjpub3QoLmNrLWxhYmVsKSArICoge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cbltkaXI9XCJydGxcIl0gLmNrLmNrLWZvcm1fX3JvdyA+ICo6bm90KC5jay1sYWJlbCkgKyAqIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuLmNrLmNrLWZvcm1fX3JvdyA+IC5jay1sYWJlbCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHR9XG4uY2suY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2FjdGlvbi1yb3cge1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG4uY2suY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2FjdGlvbi1yb3cgLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tcGFkZGluZzogMTBweDtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LWhlaWdodDogMTFweDtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LXdpZHRoOiAxMnB4O1xuXHQtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtbWFyZ2luOiAxcHg7XG59XG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fZ3JpZCB7XG5cdC8qIFRoZSB3aWR0aCBvZiBhIGNvbnRhaW5lciBzaG91bGQgbWF0Y2ggMTAgaXRlbXMgaW4gYSByb3cgc28gdGhlcmUgd2lsbCBiZSBhIDEweDEwIGdyaWQuICovXG5cdHdpZHRoOiBjYWxjKHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtd2lkdGgpICogMTAgKyB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LW1hcmdpbikgKiAyMCArIHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1wYWRkaW5nKSAqIDIpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tcGFkZGluZykgdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLXBhZGRpbmcpIDA7XG59XG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fbGFiZWwsXG4uY2tbZGlyPXJ0bF0gLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fbGFiZWwge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ncmlkLWJveCB7XG5cdG1pbi13aWR0aDogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC13aWR0aCk7XG5cdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtaGVpZ2h0KTtcblx0bWFyZ2luOiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LW1hcmdpbik7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0Ym9yZGVyLXJhZGl1czogMXB4O1xuXHRvdXRsaW5lOiBub25lO1xuXHR0cmFuc2l0aW9uOiBub25lO1xufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jayAuY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWdyaWQtYm94IHtcblx0XHR0cmFuc2l0aW9uOiBub25lO1xufVxuXHR9XG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ncmlkLWJveDpmb2N1cyB7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tZ3JpZC1ib3guY2stb24ge1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIHtcblx0d2lkdGg6IDMyMHB4O1xufVxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX3BhZGRpbmctcm93IHtcblx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdHdpZHRoOiAyNSU7XG5cdFx0fVxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cgLmNrLmNrLXRvb2xiYXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXG5cdFx0XHRcdC8qIENvbXBlbnNhdGUgZm9yIG1pc3NpbmcgaW5wdXQgbGFiZWwgdGhhdCB3b3VsZCBwdXNoIHRoZSBtYXJnaW4gKHRvb2xiYXIgaGFzIG5vIGlucHV0cykuICovXG5cdFx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1jb2xvci1zZWxlY3Rvci1mb2N1c2VkLWNlbGwtYmFja2dyb3VuZDogaHNsYSgyMTIsIDkwJSwgODAlLCAuMyk7XG59XG4vKipcblx0XHQgKiBXaGlsZSBzZXR0aW5nIG91dGxpbmUgaXMgZmluZSwgdGhlIGJvcmRlciBzaG91bGQgbm90IGJlIG1vZGlmaWVkIGhlcmVcblx0XHQgKiBiZWNhdXNlIGl0IG92ZXJyaWRlcyB0aGUgZGVmYXVsdCB0YWJsZSBjZWxsIGJvcmRlciBjb2xvciB3aGljaCBpcyBub3QgZXhwZWN0ZWQuXG5cdFx0ICogU28gZG8gbm90IHVzZSBgQG1peGluIGNrLWZvY3VzLXJpbmc7YCBoZXJlLCBvciBhbnkgb3RoZXIgYm9yZGVyIHN0eWxlcy5cblx0XHQgKiBTZWUgbW9yZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTY5Nzlcblx0XHQgKi9cbi5jay13aWRnZXQudGFibGUgdGQuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCxcblx0XHQuY2std2lkZ2V0LnRhYmxlIHRoLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlX2ZvY3VzZWQsXG5cdFx0LmNrLXdpZGdldC50YWJsZSB0ZC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZTpmb2N1cyxcblx0XHQuY2std2lkZ2V0LnRhYmxlIHRoLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlOmZvY3VzIHtcblx0XHRcdC8qIEEgdmVyeSBzbGlnaHQgYmFja2dyb3VuZCB0byBoaWdobGlnaHQgdGhlIGZvY3VzZWQgY2VsbCAqL1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc2VsZWN0b3ItZm9jdXNlZC1jZWxsLWJhY2tncm91bmQpO1xuXHRcdFx0b3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0XHRvdXRsaW5lLW9mZnNldDogLTFweDsgLyogcHJvZ3Jlc3NpdmUgZW5oYW5jZW1lbnQgLSBubyBJRSBzdXBwb3J0ICovXG5cdFx0fVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZTogNnB4O1xuXHQtLWNrLXRhYmxlLXByb3BlcnRpZXMtbWluLWVycm9yLXdpZHRoOiAxNTBweDtcbn1cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYm9yZGVyLXJvdyAuY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLWxhYmVsIHtcblx0XHRcdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0XHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdH1cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYm9yZGVyLXJvdyAuY2stdGFibGUtZm9ybV9fYm9yZGVyLXN0eWxlLFxuXHRcdFx0LmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19ib3JkZXItcm93IC5jay10YWJsZS1mb3JtX19ib3JkZXItd2lkdGgge1xuXHRcdFx0XHR3aWR0aDogODBweDtcblx0XHRcdFx0bWluLXdpZHRoOiA4MHB4O1xuXHRcdFx0XHRtYXgtd2lkdGg6IDgwcHg7XG5cdFx0XHR9XG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX3dpZHRoLFxuXHRcdFx0LmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3dfX2hlaWdodCB7XG5cdFx0XHRcdG1hcmdpbjogMFxuXHRcdFx0fVxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9uLW9wZXJhdG9yIHtcblx0XHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0aGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cdFx0XHRcdG1hcmdpbjogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdH1cbi5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1taW4tZXJyb3Itd2lkdGgpO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRhbmltYXRpb246IGNrLXRhYmxlLWZvcm0tbGFiZWxlZC12aWV3LXN0YXR1cy1hcHBlYXIgLjE1cyBlYXNlIGJvdGg7XG5cdFx0fVxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stdGFibGUtZm9ybSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyxcblx0LmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0fVxuLyogVGhlIGFycm93IHBvaW50aW5nIHRvd2FyZHMgdGhlIGZpZWxkLiAqL1xuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXM6OmFmdGVyIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKSB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAwIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpO1xuXHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdH1cblx0XHRcdH1cbi8qIEhpZGUgdGhlIGVycm9yIGJhbGxvb24gd2hlbiB0aGUgZmllbGQgaXMgYmx1cnJlZC4gTWFrZXMgdGhlIGV4cGVyaWVuY2UgbXVjaCBtb3JlIGNsZWFyLiAqL1xuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2staW5wdXQuY2stZXJyb3I6bm90KDpmb2N1cykgKyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5Aa2V5ZnJhbWVzIGNrLXRhYmxlLWZvcm0tbGFiZWxlZC12aWV3LXN0YXR1cy1hcHBlYXIge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtIHtcblx0d2lkdGg6IDMyMHB4O1xufVxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyB7XG5cdFx0XHRhbGlnbi1zZWxmOiBmbGV4LWVuZDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyAuY2suY2stdG9vbGJhciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cblx0XHRcdFx0LyogQ29tcGVuc2F0ZSBmb3IgbWlzc2luZyBpbnB1dCBsYWJlbCB0aGF0IHdvdWxkIHB1c2ggdGhlIG1hcmdpbiAodG9vbGJhciBoYXMgbm8gaW5wdXRzKS4gKi9cblx0XHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IC5jay5jay10b29sYmFyIC5jay10b29sYmFyX19pdGVtcyA+ICoge1xuXHRcdFx0XHRcdHdpZHRoOiA0MHB4O1xuXHRcdFx0XHR9XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXRhYmxlLXNlbGVjdGVkLWNlbGwtYmFja2dyb3VuZDogaHNsYSgyMDgsIDkwJSwgODAlLCAuMyk7XG59XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCxcblx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHRoLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0b3V0bGluZTogdW5zZXQ7XG5cdFx0Ym94LXNoYWRvdzogdW5zZXQ7XG5cblx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NDQ2ICovXG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0ZC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkOmFmdGVyLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZDphZnRlciB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stdGFibGUtc2VsZWN0ZWQtY2VsbC1iYWNrZ3JvdW5kKTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRyaWdodDogMDtcblx0XHRcdGJvdHRvbTogMDtcblx0XHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCA6OnNlbGVjdGlvbixcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCA6OnNlbGVjdGlvbixcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZDpmb2N1cyxcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZDpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHR9XG4vKlxuXHRcdCAqIFRvIHJlZHVjZSB0aGUgYW1vdW50IG9mIG5vaXNlLCBhbGwgd2lkZ2V0cyBpbiB0aGUgdGFibGUgc2VsZWN0aW9uIGhhdmUgbm8gb3V0bGluZSBhbmQgbm8gc2VsZWN0aW9uIGhhbmRsZS5cblx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTQ5MS5cblx0XHQgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0ZC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIC5jay13aWRnZXQsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0aC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIC5jay13aWRnZXQge1xuXHRcdFx0b3V0bGluZTogdW5zZXQ7XG5cdFx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHRkLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0aC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIC5jay13aWRnZXQgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzczogM3B4O1xuXHQtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZTogMTZweDtcblx0LS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb246IDIwMG1zO1xuXHQtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZTogZWFzZTtcblxuXHQtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcjogaHNsKDAsIDAlLCA4NyUpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC1ob3Zlci1ib3JkZXI6IGhzbCg0MywgMTAwJSwgNjIlKTtcblx0LS1jay1jb2xvci13aWRnZXQtZWRpdGFibGUtZm9jdXMtYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci13aWRnZXQtZHJhZy1oYW5kbGVyLWljb24tY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG59XG4uY2sgLmNrLXdpZGdldCB7XG5cdG91dGxpbmUtd2lkdGg6IHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcyk7XG5cdG91dGxpbmUtc3R5bGU6IHNvbGlkO1xuXHRvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0dHJhbnNpdGlvbjogb3V0bGluZS1jb2xvciB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrIC5jay13aWRnZXQge1xuXHRcdHRyYW5zaXRpb246IG5vbmU7XG59XG5cdH1cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCxcblx0LmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdH1cbi5jayAuY2std2lkZ2V0OmhvdmVyIHtcblx0XHRvdXRsaW5lLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0fVxuLmNrIC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSB7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG5cdC8qIFRoZSA6Zm9jdXMgc3R5bGUgaXMgYXBwbGllZCBiZWZvcmUgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlX2ZvY3VzZWQgY2xhc3MgaXMgcmVuZGVyZWQgaW4gdGhlIHZpZXcuXG5cdFRoZXNlIHN0eWxlcyBzaG93IGEgZGlmZmVyZW50IGJvcmRlciBmb3IgYSBibGluayBvZiBhbiBleWUsIHNvIGA6Zm9jdXNgIG5lZWQgdG8gaGF2ZSBzYW1lIHN0eWxlcyBhcHBsaWVkLiAqL1xufVxuLmNrIC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZS5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZV9mb2N1c2VkLFxuXHQuY2sgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlOmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1pbm5lci1zaGFkb3cpLCAwIDA7XG5cdH1cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogbm9uZSkge1xuXHRcdC5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCwgLmNrIC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZTpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtZWRpdGFibGUtZm9jdXMtYmFja2dyb3VuZCk7XG5cdFx0fVxuXHR9XG4vKipcblx0XHQgKiBGb2N1cyBib3JkZXIgc2hvdWxkIG5vdCBiZSBhcHBsaWVkIHRvIHRhYmxlIGNlbGxzIGJlY2F1c2UgaXQgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0IHRhYmxlIGNlbGwgYm9yZGVyIGNvbG9yLlxuXHRcdCAqIEluIG90aGVyIHdvcmRzIC0gaW4gc29tZSBzY2VuYXJpb3MsIHRoZSBwYXJ0IG9mIHRoZSB0YWJsZSBjZWxsIGJvcmRlciBoYXMgZm9jdXMgY29sb3Igc3R5bGUsIHdoaWNoIGlzIG5vdCBleHBlY3RlZCBiZWhhdmlvclxuXHRcdCAqIGJlY2F1c2UgaXQgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSB0YWJsZSBjZWxsIGJvcmRlciBjb2xvci5cblx0XHQgKi9cbi5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZDpub3QodGQsIHRoKSwgLmNrIC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZTpmb2N1czpub3QodGQsIHRoKSB7XG5cdFx0XHQvKiBEaXNhYmxlIG5hdGl2ZSBvdXRsaW5lLiAqL1xuXHRcdFx0b3V0bGluZTogbm9uZTtcblx0XHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0fVxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRwYWRkaW5nOiA0cHg7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxuXHRcdC8qIEJhY2tncm91bmQgYW5kIG9wYWNpdHkgd2lsbCBiZSBhbmltYXRlZCBhcyB0aGUgaGFuZGxlciBzaG93cyB1cCBvciB0aGUgd2lkZ2V0IGdldHMgc2VsZWN0ZWQuICovXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0b3BhY2l0eTogMDtcblxuXHRcdC8qIFRyYW5zaXRpb246XG5cdFx0ICAgKiBiYWNrZ3JvdW5kLWNvbG9yIGZvciB0aGUgLmNrLXdpZGdldF9zZWxlY3RlZCBzdGF0ZSBjaGFuZ2UsXG5cdFx0ICAgKiB2aXNpYmlsaXR5IGZvciBoaWRpbmcgdGhlIGhhbmRsZXIsXG5cdFx0ICAgKiBvcGFjaXR5IGZvciB0aGUgcHJvcGVyIGxvb2sgb2YgdGhlIGljb24gd2hlbiB0aGUgaGFuZGxlciBkaXNhcHBlYXJzLiAqL1xuXHRcdHRyYW5zaXRpb246XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKSxcblx0XHRcdHZpc2liaWxpdHkgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpLFxuXHRcdFx0b3BhY2l0eSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cblx0XHQvKiBNYWtlIG9ubHkgdG9wIGNvcm5lcnMgcm91bmQuICovXG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgMCAwO1xuXG5cdFx0LyogUGxhY2UgdGhlIGRyYWcgaGFuZGxlciBvdXRzaWRlIHRoZSB3aWRnZXQgd3JhcHBlci4gKi9cblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuXHRcdGxlZnQ6IGNhbGMoMHB4IC0gdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSk7XG5cdFx0dG9wOiAwO1xuXHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblx0XHR9XG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUgLmNrLWljb24ge1xuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBkaW1lbnNpb25zIG9mIHRoZSBpY29uIGFyZSBpbmRlcGVuZGVudCBvZiB0aGUgZm9uLXNpemUgb2YgdGhlIGNvbnRlbnQuICovXG5cdFx0XHR3aWR0aDogdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItaWNvbi1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItaWNvbi1zaXplKTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtZHJhZy1oYW5kbGVyLWljb24tY29sb3IpO1xuXG5cdFx0XHQvKiBUaGUgXCJzZWxlY3RlZFwiIHBhcnQgb2YgdGhlIGljb24gaXMgaW52aXNpYmxlIGJ5IGRlZmF1bHQgKi9cblx0XHR9XG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUgLmNrLWljb24gLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cblx0XHRcdFx0LyogTm90ZTogVGhlIGFuaW1hdGlvbiBpcyBsb25nZXIgb24gcHVycG9zZS4gU2ltcGx5IGZlZWxzIGJldHRlci4gKi9cblx0XHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xuXHRcdFx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSAuY2staWNvbiAuY2staWNvbl9fc2VsZWN0ZWQtaW5kaWNhdG9yIHtcblx0XHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdFx0fVxuXHRcdFx0XHR9XG4vKiBBZHZlcnRpc2UgdXNpbmcgdGhlIGxvb2sgb2YgdGhlIGljb24gdGhhdCBvbmNlIGNsaWNrZWQgdGhlIGhhbmRsZXIsIHRoZSB3aWRnZXQgd2lsbCBiZSBzZWxlY3RlZC4gKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZTpob3ZlciAuY2staWNvbiAuY2staWNvbl9fc2VsZWN0ZWQtaW5kaWNhdG9yIHtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0fVxuLyogU2hvdyB0aGUgc2VsZWN0aW9uIGhhbmRsZXIgb24gbW91c2UgaG92ZXIgb3ZlciB0aGUgd2lkZ2V0LCBidXQgbm90IGZvciBuZXN0ZWQgd2lkZ2V0cy4gKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGU6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ob3Zlci1ib3JkZXIpO1xuXHR9XG4vKiBTaG93IHRoZSBzZWxlY3Rpb24gaGFuZGxlciB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQsIGJ1dCBub3QgZm9yIG5lc3RlZCB3aWRnZXRzLiAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZS5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlLCAuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cblx0XHRcdC8qIFdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCwgbm90aWZ5IHRoZSB1c2VyIHVzaW5nIHRoZSBwcm9wZXIgbG9vayBvZiB0aGUgaWNvbi4gKi9cblx0XHR9XG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUgLmNrLWljb24gLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZS5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIC5jay1pY29uIC5jay1pY29uX19zZWxlY3RlZC1pbmRpY2F0b3Ige1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0fVxuLyogSW4gYSBSVEwgZW52aXJvbm1lbnQsIGFsaWduIHRoZSBzZWxlY3Rpb24gaGFuZGxlciB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgd2lkZ2V0ICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuLmNrW2Rpcj1cInJ0bFwiXSAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdGxlZnQ6IGF1dG87XG5cdHJpZ2h0OiBjYWxjKDBweCAtIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpO1xufVxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjQxNSAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVhZC1vbmx5IC5jay13aWRnZXQge1xuXHQvKiBQcmV2ZW50IHRoZSA6aG92ZXIgb3V0bGluZSBmcm9tIHNob3dpbmcgdXAgYmVjYXVzZSBvZiB0aGUgdXNlZCBvdXRsaW5lLWNvbG9yIHRyYW5zaXRpb24uICovXG5cdHRyYW5zaXRpb246IG5vbmU7XG59XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZWFkLW9ubHkgLmNrLXdpZGdldDpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCkge1xuXHRcdC8qIERpc2FibGUgdmlzdWFsIGVmZmVjdHMgb2YgaG92ZXIvYWN0aXZlIHdpZGdldCB3aGVuIENLRWRpdG9yIGlzIGluIHJlYWRPbmx5IG1vZGUuXG5cdFx0ICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMjYxXG5cdFx0ICpcblx0XHQgKiBMZWF2ZSB0aGUgdW5pdCBiZWNhdXNlIHRoaXMgY3VzdG9tIHByb3BlcnR5IGlzIHVzZWQgaW4gY2FsYygpIGJ5IG90aGVyIGZlYXR1cmVzLlxuXHRcdCAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjc3NVxuXHRcdCAqL1xuXHRcdC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzOiAwcHg7XG5cdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJlYWQtb25seSAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSxcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZWFkLW9ubHkgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGU6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyKTtcblx0XHR9XG4vKiBTdHlsZSB0aGUgd2lkZ2V0IHdoZW4gaXQncyBzZWxlY3RlZCBidXQgdGhlIGVkaXRhYmxlIGl0IGJlbG9uZ3MgdG8gbG9zdCBmb2N1cy4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHQuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyIHtcblx0XHRvdXRsaW5lLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHR9XG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlLFxuXHRcdFx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stYmx1cnJlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSxcblx0XHRcdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGU6aG92ZXIsXG5cdFx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGU6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyKTtcblx0XHRcdH1cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlID4gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmZpcnN0LWNoaWxkLFxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgYmxvY2txdW90ZSA+IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZTpmaXJzdC1jaGlsZCB7XG5cdC8qIERvIG5vdCBjcm9wIHNlbGVjdGlvbiBoYW5kbGVyIGlmIGEgd2lkZ2V0IGlzIGEgZmlyc3QtY2hpbGQgaW4gdGhlIGJsb2NrcXVvdGUgb3IgaW4gdGhlIHJvb3QgZWRpdGFibGUuXG5cdEluIGZhY3QsIGFueXRoaW5nIHdpdGggb3ZlcmZsb3c6IGhpZGRlbi5cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1ibG9jay1xdW90ZS9pc3N1ZXMvMjhcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS13aWRnZXQvaXNzdWVzLzQ0XG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtd2lkZ2V0L2lzc3Vlcy82NiAqL1xuXHRtYXJnaW4tdG9wOiBjYWxjKDFlbSArIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSkpO1xufVxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbjpyb290IHtcblx0LS1jay1yZXNpemVyLXNpemU6IDEwcHg7XG5cblx0LyogU2V0IHRoZSByZXNpemVyIHdpdGggYSA1MCUgb2Zmc2V0LiAqL1xuXHQtLWNrLXJlc2l6ZXItb2Zmc2V0OiBjYWxjKCAoIHZhcigtLWNrLXJlc2l6ZXItc2l6ZSkgLyAtMiApIC0gMnB4KTtcblx0LS1jay1yZXNpemVyLWJvcmRlci13aWR0aDogMXB4O1xufVxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXIge1xuXHRvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItcmVzaXplcik7XG59XG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlIHtcblx0d2lkdGg6IHZhcigtLWNrLXJlc2l6ZXItc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2stcmVzaXplci1zaXplKTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0Ym9yZGVyOiB2YXIoLS1jay1yZXNpemVyLWJvcmRlci13aWR0aCkgc29saWQgaHNsKDAsIDAlLCAxMDAlKTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stcmVzaXplci1ib3JkZXItcmFkaXVzKTtcbn1cbi5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtdG9wLWxlZnQge1xuXHRcdHRvcDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0fVxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS10b3AtcmlnaHQge1xuXHRcdHRvcDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdH1cbi5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtYm90dG9tLXJpZ2h0IHtcblx0XHRib3R0b206IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0XHRyaWdodDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHR9XG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLWJvdHRvbS1sZWZ0IHtcblx0XHRib3R0b206IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0XHRsZWZ0OiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplOiAyMHB4O1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tYWN0aXZlOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taG92ZXI6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ob3Zlci1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tYmx1cnJlZC1lZGl0YWJsZTogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyKTtcblx0LS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXJhZGFyLXN0YXJ0LWFscGhhOiAwO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItZW5kLWFscGhhOiAuMztcblx0LS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWljb246IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG59XG4vKlxuXHQgKiBTdHlsZXMgb2YgdGhlIHR5cGUgYXJvdW5kIGJ1dHRvbnNcblx0ICovXG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHR3aWR0aDogdmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZSk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbik7XG5cdFx0Ym9yZGVyLXJhZGl1czogMTAwcHg7XG5cdFx0dHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSksIGJhY2tncm91bmQgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xuXG5cdFx0b3BhY2l0eTogMDtcblxuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHR9XG5cdFx0fVxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiBzdmcge1xuXHRcdFx0d2lkdGg6IDEwcHg7XG5cdFx0XHRoZWlnaHQ6IDhweDtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsLTUwJSk7XG5cdFx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjVzIGVhc2U7XG5cdFx0XHRtYXJnaW4tdG9wOiAxcHg7XG5cdFx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24gc3ZnIHtcblx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0XHR9XG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHN2ZyAqIHtcblx0XHRcdFx0c3Ryb2tlLWRhc2hhcnJheTogMTA7XG5cdFx0XHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuXG5cdFx0XHRcdGZpbGw6IG5vbmU7XG5cdFx0XHRcdHN0cm9rZTogdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1pY29uKTtcblx0XHRcdFx0c3Ryb2tlLXdpZHRoOiAxLjVweDtcblx0XHRcdFx0c3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xuXHRcdFx0XHRzdHJva2UtbGluZWpvaW46IHJvdW5kO1xuXHRcdFx0fVxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiBzdmcgbGluZSB7XG5cdFx0XHRcdHN0cm9rZS1kYXNoYXJyYXk6IDc7XG5cdFx0XHR9XG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOmhvdmVyIHtcblx0XHRcdC8qXG5cdFx0XHQgKiBEaXNwbGF5IHRoZSBcInNvbmFyXCIgYXJvdW5kIHRoZSBidXR0b24gd2hlbiBob3ZlcmVkLlxuXHRcdFx0ICovXG5cdFx0XHRhbmltYXRpb246IGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc29uYXIgMXMgZWFzZSBpbmZpbml0ZTtcblxuXHRcdFx0Lypcblx0XHRcdCAqIEFuaW1hdGUgYWN0aXZlIGJ1dHRvbidzIGljb24uXG5cdFx0XHQgKi9cblx0XHR9XG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOmhvdmVyIHN2ZyBwb2x5bGluZSB7XG5cdFx0XHRcdFx0YW5pbWF0aW9uOiBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctZGFzaCAycyBsaW5lYXI7XG5cdFx0XHRcdH1cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXIgc3ZnIGxpbmUge1xuXHRcdFx0XHRcdGFuaW1hdGlvbjogY2std2lkZ2V0LXR5cGUtYXJvdW5kLWFycm93LXRpcC1kYXNoIDJzIGxpbmVhcjtcblx0XHRcdFx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXIge1xuXHRcdFx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0fVxuXHRcdFx0XHRcdC5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXIgc3ZnIHBvbHlsaW5lIHtcblx0XHRcdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQuY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOmhvdmVyIHN2ZyBsaW5lIHtcblx0XHRcdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRcdFx0XHR9XG5cdFx0XHR9XG4vKlxuXHQgKiBTaG93IHR5cGUgYXJvdW5kIGJ1dHRvbnMgd2hlbiB0aGUgd2lkZ2V0IGdldHMgc2VsZWN0ZWQgb3IgYmVpbmcgaG92ZXJlZC5cblx0ICovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24sIC5jayAuY2std2lkZ2V0OmhvdmVyID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRwb2ludGVyLWV2ZW50czogYXV0bztcblx0XHR9XG4vKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBidXR0b25zIHdoZW4gdGhlIHdpZGdldCBpcyBOT1Qgc2VsZWN0ZWQgKGJ1dCB0aGUgYnV0dG9ucyBhcmUgdmlzaWJsZVxuXHQgKiBhbmQgc3RpbGwgY2FuIGJlIGhvdmVyZWQpLlxuXHQgKi9cbi5jayAuY2std2lkZ2V0Om5vdCguY2std2lkZ2V0X3NlbGVjdGVkKSA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1ob3Zlcik7XG5cdH1cbi8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGJ1dHRvbnMgd2hlbjpcblx0ICogLSB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkLFxuXHQgKiAtIG9yIHRoZSBidXR0b24gaXMgYmVpbmcgaG92ZXJlZCAocmVnYXJkbGVzcyBvZiB0aGUgd2lkZ2V0IHN0YXRlKS5cblx0ICovXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24sXG5cdC5jayAuY2std2lkZ2V0ID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWFjdGl2ZSk7XG5cdH1cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjo6YWZ0ZXIsIC5jayAuY2std2lkZ2V0ID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOmhvdmVyOjphZnRlciB7XG5cdFx0XHR3aWR0aDogY2FsYyh2YXIoLS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemUpIC0gMnB4KTtcblx0XHRcdGhlaWdodDogY2FsYyh2YXIoLS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemUpIC0gMnB4KTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuXHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgaHNsYSgwLDAlLDEwMCUsMCkgMCUsIGhzbGEoMCwwJSwxMDAlLC4zKSAxMDAlKTtcblx0XHR9XG4vKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBcImJlZm9yZVwiIGJ1dHRvbiB3aGVuIHRoZSB3aWRnZXQgaGFzIGEgc2VsZWN0aW9uIGhhbmRsZS4gQmVjYXVzZSBzb21lIHNwYWNlXG5cdCAqIGlzIGNvbnN1bWVkIGJ5IHRoZSBoYW5kbGUsIHRoZSBidXR0b24gbXVzdCBiZSBtb3ZlZCBzbGlnaHRseSB0byB0aGUgcmlnaHQgdG8gbGV0IGl0IGJyZWF0aGUuXG5cdCAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9iZWZvcmUge1xuXHRcdG1hcmdpbi1sZWZ0OiAyMHB4O1xuXHR9XG4vKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBob3Jpem9udGFsIFwiZmFrZSBjYXJldFwiIHdoaWNoIGlzIGRpc3BsYXllZCB3aGVuIHRoZSB1c2VyIG5hdmlnYXRlcyB1c2luZyB0aGUga2V5Ym9hcmQuXG5cdCAqL1xuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdGhlaWdodDogMXB4O1xuXHRcdGFuaW1hdGlvbjogY2std2lkZ2V0LXR5cGUtYXJvdW5kLWZha2UtY2FyZXQtcHVsc2UgbGluZWFyIDFzIGluZmluaXRlIG5vcm1hbCBmb3J3YXJkcztcblxuXHRcdC8qXG5cdFx0ICogVGhlIHNlbWktdHJhbnNwYXJlbnQtb3V0bGluZStiYWNrZ3JvdW5kIGNvbWJvIGltcHJvdmVzIHRoZSBjb250cmFzdFxuXHRcdCAqIHdoZW4gdGhlIGJhY2tncm91bmQgdW5kZXJuZWF0aCB0aGUgZmFrZSBjYXJldCBpcyBkYXJrLlxuXHRcdCAqL1xuXHRcdG91dGxpbmU6IHNvbGlkIDFweCBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0fVxuLypcblx0ICogU3R5bGVzIG9mIHRoZSB3aWRnZXQgd2hlbiB0aGUgXCJmYWtlIGNhcmV0XCIgaXMgYmxpbmtpbmcgKGUuZy4gdXBvbiBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0ICogRGVzcGl0ZSB0aGUgd2lkZ2V0IGJlaW5nIHBoeXNpY2FsbHkgc2VsZWN0ZWQgaW4gdGhlIG1vZGVsLCBpdHMgb3V0bGluZSBzaG91bGQgZGlzYXBwZWFyLlxuXHQgKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZSxcblx0XHQuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlciB7XG5cdFx0XHRvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHR9XG4vKlxuXHRcdCAqIFdoZW4gdGhlIFwiZmFrZSBjYXJldFwiIGlzIHZpc2libGUgd2Ugc2ltdWxhdGUgdGhhdCB0aGUgd2lkZ2V0IGlzIG5vdCBzZWxlY3RlZFxuXHRcdCAqIChkZXNwaXRlIGJlaW5nIHBoeXNpY2FsbHkgc2VsZWN0ZWQpLCBzbyB0aGUgb3V0bGluZSBjb2xvciBzaG91bGQgYmUgZm9yIHRoZVxuXHRcdCAqIHVuc2VsZWN0ZWQgd2lkZ2V0LlxuXHRcdCAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyLCAuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2FmdGVyLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0XHRvdXRsaW5lLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0XHR9XG4vKlxuXHRcdCAqIFN0eWxlcyBvZiB0aGUgdHlwZSBhcm91bmQgYnV0dG9ucyB3aGVuIHRoZSBcImZha2UgY2FyZXRcIiBpcyBibGlua2luZyAoZS5nLiB1cG9uIGtleWJvYXJkIG5hdmlnYXRpb24pLlxuXHRcdCAqIEluIHRoaXMgc3RhdGUsIHRoZSB0eXBlIGFyb3VuZCBidXR0b25zIHdvdWxkIGNvbGxpZGUgd2l0aCB0aGUgZmFrZSBjYXJldHMgc28gdGhleSBzaG91bGQgZGlzYXBwZWFyLlxuXHRcdCAqL1xuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24sIC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdH1cbi8qXG5cdFx0ICogRmFrZSBob3Jpem9udGFsIGNhcmV0IGludGVncmF0aW9uIHdpdGggdGhlIHNlbGVjdGlvbiBoYW5kbGUuIFdoZW4gdGhlIGNhcmV0IGlzIHZpc2libGUsIHNpbXBseVxuXHRcdCAqIGhpZGUgdGhlIGhhbmRsZSBiZWNhdXNlIGl0IGludGVyc2VjdHMgd2l0aCB0aGUgY2FyZXQgKGFuZCBkb2VzIG5vdCBtYWtlIG11Y2ggc2Vuc2UgYW55d2F5KS5cblx0XHQgKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlci5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsIC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlci5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0XHRcdG9wYWNpdHk6IDBcblx0XHRcdFx0fVxuLypcblx0XHQgKiBGYWtlIGhvcml6b250YWwgY2FyZXQgaW50ZWdyYXRpb24gd2l0aCB0aGUgcmVzaXplIFVJLiBXaGVuIHRoZSBjYXJldCBpcyB2aXNpYmxlLCBzaW1wbHlcblx0XHQgKiBoaWRlIHRoZSByZXNpemUgVUkgYmVjYXVzZSBpdCBjcmVhdGVzIHRvbyBtdWNoIG5vaXNlLiBJdCBjYW4gYmUgdmlzaWJsZSB3aGVuIHRoZSB1c2VyXG5cdFx0ICogaG92ZXJzIHRoZSB3aWRnZXQsIHRob3VnaC5cblx0XHQgKi9cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlLmNrLXdpZGdldF9zZWxlY3RlZC5jay13aWRnZXRfd2l0aC1yZXNpemVyID4gLmNrLXdpZGdldF9fcmVzaXplciwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlci5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3dpdGgtcmVzaXplciA+IC5jay13aWRnZXRfX3Jlc2l6ZXIge1xuXHRcdFx0b3BhY2l0eTogMFxuXHRcdH1cbi8qXG4gKiBTdHlsZXMgZm9yIHRoZSBcImJlZm9yZVwiIGJ1dHRvbiB3aGVuIHRoZSB3aWRnZXQgaGFzIGEgc2VsZWN0aW9uIGhhbmRsZSBpbiBhbiBSVEwgZW52aXJvbm1lbnQuXG4gKiBUaGUgc2VsZWN0aW9uIGhhbmRsZXIgaXMgYWxpZ25lZCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgd2lkZ2V0IHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gY3JlYXRlXG4gKiBhZGRpdGlvbmFsIHNwYWNlIGZvciBpdCBuZXh0IHRvIHRoZSBcImJlZm9yZVwiIGJ1dHRvbi5cbiAqL1xuLmNrW2Rpcj1cInJ0bFwiXSAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG4vKlxuICogSGlkZSB0eXBlIGFyb3VuZCBidXR0b25zIHdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCBhcyBhIGNoaWxkIG9mIGEgc2VsZWN0ZWRcbiAqIG5lc3RlZCBlZGl0YWJsZSAoZS5nLiBtdWxpdC1jZWxsIHRhYmxlIHNlbGVjdGlvbikuXG4gKlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzcyNjMuXG4gKi9cbi5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLCAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCAuY2std2lkZ2V0OmhvdmVyID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0XHR9XG4vKlxuICogU3R5bGVzIGZvciB0aGUgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQgYnV0IHRoZSB1c2VyIGNsaWNrZWQgb3V0c2lkZSBvZiB0aGUgZWRpdG9yIChibHVycmVkIHRoZSBlZGl0b3IpLlxuICovXG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOm5vdCg6aG92ZXIpIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1ibHVycmVkLWVkaXRhYmxlKTtcbn1cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246bm90KDpob3Zlcikgc3ZnICoge1xuXHRcdHN0cm9rZTogaHNsKDAsMCUsNjAlKTtcblx0fVxuQGtleWZyYW1lcyBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctZGFzaCB7XG5cdDAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogMTA7XG5cdH1cblx0MjAlLCAxMDAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogMDtcblx0fVxufVxuQGtleWZyYW1lcyBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctdGlwLWRhc2gge1xuXHQwJSwgMjAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogNztcblx0fVxuXHQ0MCUsIDEwMCUge1xuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc29uYXIge1xuXHQwJSB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgMCBoc2xhKHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlcyksIHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItc3RhcnQtYWxwaGEpKTtcblx0fVxuXHQ1MCUge1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDVweCBoc2xhKHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlcyksIHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItZW5kLWFscGhhKSk7XG5cdH1cblx0MTAwJSB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgNXB4IGhzbGEodmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzKSwgdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1zdGFydC1hbHBoYSkpO1xuXHR9XG59XG5Aa2V5ZnJhbWVzIGNrLXdpZGdldC10eXBlLWFyb3VuZC1mYWtlLWNhcmV0LXB1bHNlIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0NDklIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cdDUwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXHQ5OSUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCBjb2RlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgNzglLCAwLjMpO1xuXHRwYWRkaW5nOiAuMTVlbTtcblx0Ym9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2stY29kZV9zZWxlY3RlZCAge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDAsIDAlLCA3OCUsIDAuNSk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IGJsb2NrcXVvdGUge1xuXHQvKiBTZWUgIzEyICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1ibG9jay1xdW90ZS9pc3N1ZXMvMTUgKi9cblx0cGFkZGluZy1yaWdodDogMS41ZW07XG5cdHBhZGRpbmctbGVmdDogMS41ZW07XG5cblx0bWFyZ2luLWxlZnQ6IDA7XG5cdG1hcmdpbi1yaWdodDogMDtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRib3JkZXItbGVmdDogc29saWQgNXB4IGhzbCgwLCAwJSwgODAlKTtcbn1cblxuLmNrLWNvbnRlbnRbZGlyPVwicnRsXCJdIGJsb2NrcXVvdGUge1xuXHRib3JkZXItbGVmdDogMDtcblx0Ym9yZGVyLXJpZ2h0OiBzb2xpZCA1cHggaHNsKDAsIDAlLCA4MCUpO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stYm9va21hcmstaWNvbi1ob3Zlci1maWxsLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0LS1jay1ib29rbWFyay1pY29uLXNlbGVjdGVkLWZpbGwtY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbik7XG5cdC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tY3VydmU6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG59XG5cbi5jay1ib29rbWFyay5jay13aWRnZXQge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cblxuLmNrLWJvb2ttYXJrLmNrLXdpZGdldCAuY2stYm9va21hcmtfX2ljb24gLmNrLWljb25fX2ZpbGwge1xuXHRcdFx0dHJhbnNpdGlvbjogZmlsbCB2YXIoLS1jay1ib29rbWFyay1pY29uLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tY3VydmUpO1xuXHRcdH1cblxuLmNrLWJvb2ttYXJrLmNrLXdpZGdldDpob3ZlciAuY2stYm9va21hcmtfX2ljb24gLmNrLWljb25fX2ZpbGwge1xuXHRcdFx0XHRmaWxsOiB2YXIoLS1jay1ib29rbWFyay1pY29uLWhvdmVyLWZpbGwtY29sb3IpO1xuXHRcdFx0fVxuXG4uY2stYm9va21hcmsuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCAuY2stYm9va21hcmtfX2ljb24gLmNrLWljb25fX2ZpbGwge1xuXHRcdFx0XHRmaWxsOiB2YXIoLS1jay1ib29rbWFyay1pY29uLXNlbGVjdGVkLWZpbGwtY29sb3IpO1xuXHRcdFx0fVxuXG4uY2stYm9va21hcmsuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCxcblx0XHQuY2stYm9va21hcmsuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdH1cblxuLmNrLWJvb2ttYXJrLmNrLXdpZGdldCAuY2stYm9va21hcmtfX2ljb24ge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0LyogVG8gbWFrZSBpdCBhbGlnbiB3aXRoIHRleHQgYmFzZWxpbmUuICovXG5cdFx0XHR0b3A6IC0wLjFlbTtcblx0XHR9XG5cbi5jay1ib29rbWFyay5jay13aWRnZXQgLmNrLWJvb2ttYXJrX19pY29uIC5jay1pY29uIHtcblx0XHRcdFx0aGVpZ2h0OiAxLjJlbTtcblx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1ib29rbWFyay12aWV3OmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG5cbi5jay5jay1ib29rbWFyay1mb3JtIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbi5jay5jay1ib29rbWFyay1mb3JtIHtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG59XG5cblx0XHQuY2suY2stYm9va21hcmstZm9ybSAuY2stYnV0dG9uLFxuXHRcdC5jay5jay1ib29rbWFyay1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHR9XG5cblx0XHQuY2suY2stYm9va21hcmstZm9ybSAuY2stYnV0dG9uIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdH1cblx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXHRcdFx0XHQuY2suY2stYm9va21hcmstZm9ybS5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDEpIHtcblx0XHRcdFx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdH1cblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cblxuLmNrLmNrLWJvb2ttYXJrLWFjdGlvbnMge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uY2suY2stYm9va21hcmstYWN0aW9ucyAuY2stYm9va21hcmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0bWF4LXdpZHRoOiB2YXIoLS1jay1pbnB1dC13aWR0aCk7XG5cdFx0bWluLXdpZHRoOiAzZW07XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cblx0XHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXG5cdFx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXG5cdFx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHR9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbi5jay5jay1ib29rbWFyay1hY3Rpb25zIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcbn1cblxuXHRcdC5jay5jay1ib29rbWFyay1hY3Rpb25zIC5jay1ib29rbWFyay1hY3Rpb25zX19wcmV2aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIDA7XG5cdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0fVxuXHR9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbi5jay5jay1ib29rbWFyay1hY3Rpb25zLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2stYnV0dG9uIHtcblx0XHRcdFx0ZmxleC1iYXNpczogNTAlO1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQvKiBCYXNlZCBvbiBkZWZhdWx0IENLQm94IHRoZW1lIGNvbG9ycyAqL1xuXHQtLWNrLWltYWdlLXByb2Nlc3NpbmctaGlnaGxpZ2h0LWNvbG9yOiBoc2woMjIwLCAxMCUsIDk4JSk7XG5cdC0tY2staW1hZ2UtcHJvY2Vzc2luZy1iYWNrZ3JvdW5kLWNvbG9yOiBoc2woMjIwLCAxMCUsIDkwJSk7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS5pbWFnZS1wcm9jZXNzaW5nIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS5pbWFnZS1wcm9jZXNzaW5nOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHR6LWluZGV4OiAxO1xuXG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuXHRcdFx0XHRcdDkwZGVnLFxuXHRcdFx0XHRcdHZhcigtLWNrLWltYWdlLXByb2Nlc3NpbmctYmFja2dyb3VuZC1jb2xvciksXG5cdFx0XHRcdFx0dmFyKC0tY2staW1hZ2UtcHJvY2Vzc2luZy1oaWdobGlnaHQtY29sb3IpLFxuXHRcdFx0XHRcdHZhcigtLWNrLWltYWdlLXByb2Nlc3NpbmctYmFja2dyb3VuZC1jb2xvcilcblx0XHRcdFx0KTtcblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG5cblx0XHRcdFx0YW5pbWF0aW9uOiBjay1pbWFnZS1wcm9jZXNzaW5nLWFuaW1hdGlvbiAycyBsaW5lYXIgaW5maW5pdGU7XG5cdFx0XHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS5pbWFnZS1wcm9jZXNzaW5nIGltZyB7XG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdH1cblxuQGtleWZyYW1lcyBjay1pbWFnZS1wcm9jZXNzaW5nLWFuaW1hdGlvbiB7XG5cdDAlIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIDA7XG5cdH1cblx0MTAwJSB7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDtcblx0fVxufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuXHQgKiBWZXJ0aWNhbCBkcm9wIHRhcmdldCAoaW4gdGV4dCkuXG5cdCAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LXBvc2l0aW9uIHtcblx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay5jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtcG9zaXRpb24gc3BhbiB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR3aWR0aDogMDtcblx0XHR9XG5cbi8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgd2lkZ2V0IGJlaW5nIGRyYWdnZWQgKGl0cyBwcmV2aWV3KS5cblx0ICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay13aWRnZXQ6LXdlYmtpdC1kcmFnID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLXdpZGdldDotd2Via2l0LWRyYWcgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1saW5lIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgcHJlIHtcblx0cGFkZGluZzogMWVtO1xuXHRjb2xvcjogaHNsKDAsIDAlLCAyMC44JSk7XG5cdGJhY2tncm91bmQ6IGhzbGEoMCwgMCUsIDc4JSwgMC4zKTtcblx0Ym9yZGVyOiAxcHggc29saWQgaHNsKDAsIDAlLCA3NyUpO1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG5cblx0LyogQ29kZSBibG9jayBhcmUgbGFuZ3VhZ2UgZGlyZWN0aW9u4oCTYWdub3N0aWMuICovXG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdGRpcmVjdGlvbjogbHRyO1xuXG5cdHRhYi1zaXplOiA0O1xuXHR3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG5cblx0LyogRG9uJ3QgaW5oZXJpdCB0aGUgc3R5bGUsIGUuZy4gd2hlbiBpbiBhIGJsb2NrIHF1b3RlLiAqL1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cblx0LyogRG9uJ3QgbGV0IHRoZSBjb2RlIGJlIHNxdWFzaGVkIGUuZy4gd2hlbiBpbiBhIHRhYmxlIGNlbGwuICovXG5cdG1pbi13aWR0aDogMjAwcHg7XG59XG5cbi5jay1jb250ZW50IHByZSBjb2RlIHtcblx0XHRiYWNrZ3JvdW5kOiB1bnNldDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgcHJlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSBwcmVbZGF0YS1sYW5ndWFnZV06OmFmdGVyIHtcblx0XHRjb250ZW50OiBhdHRyKGRhdGEtbGFuZ3VhZ2UpO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZWRpdG9yIHtcblx0LyogQWxsIHRoZSBlbGVtZW50cyB3aXRoaW4gYC5jay1lZGl0b3JgIGFyZSBwb3NpdGlvbmVkIHJlbGF0aXZlbHkgdG8gaXQuXG5cdCBJZiBhbnkgZWxlbWVudCBuZWVkcyB0byBiZSBwb3NpdGlvbmVkIHdpdGggcmVzcGVjdCB0byB0aGUgPGJvZHk+LCBldGMuLFxuXHQgaXQgbXVzdCBsYW5kIG91dHNpZGUgb2YgdGhlIGAuY2stZWRpdG9yYCBpbiBET00uICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrLmNrLWVkaXRvciAuY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stdG9vbGJhciB7XG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1lZGl0b3ItY2xhc3NpYy9pc3N1ZXMvNjIgKi9cblx0XHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbWVudS1iYXIge1xuXHRib3JkZXI6IG5vbmU7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZTogMjdweDtcbn1cblxuLmNrLmNrLWVtb2ppIC5jay5jay1lbW9qaV9fdGlsZXMge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRtYXgtaGVpZ2h0OiBtaW4oMjY1cHgsIDQwdmgpO1xuXG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0fVxuXG4uY2suY2stZW1vamkgLmNrLmNrLWVtb2ppX190aWxlcyAuY2stZW1vamlfX2dyaWQge1xuXHRcdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKSwgMWZyKSk7XG5cdFx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0Z3JpZC1nYXA6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuLmNrLmNrLWVtb2ppIC5jay5jay1lbW9qaV9fdGlsZXMgLmNrLWVtb2ppX190aWxlIHtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stZW1vamktZ3JpZC10aWxlLXNpemUpO1xuXHRcdFx0bWluLWhlaWdodDogdmFyKC0tY2stZW1vamktZ3JpZC10aWxlLXNpemUpO1xuXHRcdFx0Zm9udC1zaXplOiAxLjVlbTtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR0cmFuc2l0aW9uOiAuMnMgZWFzZSBib3gtc2hhZG93O1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdH1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblxuLmNrLmNrLWVtb2ppIC5jay5jay1lbW9qaV9fdGlsZXMgLmNrLWVtb2ppX190aWxlIHtcblx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cdFx0XHR9XG5cbi5jay5jay1lbW9qaSAuY2suY2stZW1vamlfX3RpbGVzIC5jay1lbW9qaV9fdGlsZTpmb2N1czpub3QoLmNrLWRpc2FibGVkKSxcblx0XHRcdC5jay5jay1lbW9qaSAuY2suY2stZW1vamlfX3RpbGVzIC5jay1lbW9qaV9fdGlsZTpob3Zlcjpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0XHRcdC8qIERpc2FibGUgdGhlIGRlZmF1bHQgLmNrLWJ1dHRvbidzIGJvcmRlciByaW5nLiAqL1xuXHRcdFx0XHRib3JkZXI6IDA7XG5cdFx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpLCAwIDAgMCAycHggdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHRcdH1cblxuLyogTWFrZSBzdXJlIHRoZSBnbHlwaCBpcyByZW5kZXJlZCBpbiB0aGUgY2VudGVyIG9mIHRoZSBidXR0b24gKi9cblxuLmNrLmNrLWVtb2ppIC5jay5jay1lbW9qaV9fdGlsZXMgLmNrLWVtb2ppX190aWxlIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVtb2ppX19jYXRlZ29yaWVzLWxpc3Qge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdG1hcmdpbjogMCB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcbn1cblxuLmNrLmNrLWVtb2ppX19jYXRlZ29yaWVzLWxpc3QgPiAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQge1xuXHRcdGJvcmRlci13aWR0aDogMDtcblx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG5cdFx0Ym9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG5cdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0cGFkZGluZzogMDtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iaWcpO1xuXHRcdG1pbi13aWR0aDogdmFyKC0tY2stZm9udC1zaXplLWJpZyk7XG5cdFx0bWluLWhlaWdodDogdmFyKC0tY2stZm9udC1zaXplLWJpZyk7XG5cdH1cblxuLmNrLmNrLWVtb2ppX19jYXRlZ29yaWVzLWxpc3QgPiAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQuY2stZW1vamlfX2NhdGVnb3J5LWl0ZW0uY2stb24ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUpO1xuXHRcdH1cblxuLmNrLmNrLWVtb2ppX19jYXRlZ29yaWVzLWxpc3QgPiAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgPiBzcGFuIHtcblx0XHRcdG1hcmdpbjogYXV0bztcblx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lbW9qaV9fc2tpbi10b25lIHtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xufVxuXG4uY2suY2stZW1vamlfX3NraW4tdG9uZSA+IC5jay5jay1kcm9wZG93biAuY2suY2stbGlzdF9faXRlbSB7XG5cdFx0XHRtaW4td2lkdGg6IDFlbTtcblx0XHR9XG5cbi5jay5jay1lbW9qaV9fc2tpbi10b25lID4gLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdHdpZHRoOiBpbml0aWFsO1xuXHRcdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZW1vamkge1xuXHR3aWR0aDogMzIwcHg7XG59XG5cbi5jayAuY2suY2stZW1vamlfX3NlYXJjaCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qXG4gKiBDbGFzc2VzIHVzZWQgYnkgdGhlIFwiZmFrZSB2aXN1YWwgc2VsZWN0aW9uXCIgZGlzcGxheWVkIGluIHRoZSBjb250ZW50IHdoZW4gYW4gaW5wdXRcbiAqIGluIHRoZSBlbW9qaSBwaWNrZXIgVUkgaGFzIGZvY3VzICh0aGUgYnJvd3NlciBkb2VzIG5vdCByZW5kZXIgdGhlIG5hdGl2ZSBzZWxlY3Rpb24gaW4gdGhpcyBzdGF0ZSkuXG4gKi9cbi5jayAuY2stZmFrZS1lbW9qaS1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uKTtcbn1cblxuLyogQSBjb2xsYXBzZWQgZmFrZSB2aXN1YWwgc2VsZWN0aW9uLiAqL1xuLmNrIC5jay1mYWtlLWVtb2ppLXNlbGVjdGlvbl9jb2xsYXBzZWQge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdG1hcmdpbi1yaWdodDogLTFweDtcblx0b3V0bGluZTogc29saWQgMXB4IGhzbGEoMCwgMCUsIDEwMCUsIC41KTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogU2VlIGNrZWRpdG9yL2NrZWRpdG9yNSM5MzYuICovXG4uY2suY2stcGxhY2Vob2xkZXIsXG4uY2sgLmNrLXBsYWNlaG9sZGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNrLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUsIC5jayAuY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLXBsYWNlaG9sZGVyKTtcblxuXHRcdC8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjNDY5LiAqL1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG5cbi8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjMTk4Ny4gKi9cbi5jay5jay1yZWFkLW9ubHkgLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuLypcbiAqIFJ1bGVzIGZvciB0aGUgYGNrLXBsYWNlaG9sZGVyYCBhcmUgbG9hZGVkIGJlZm9yZSB0aGUgcnVsZXMgZm9yIGBjay1yZXNldF9hbGxgIGluIHRoZSBiYXNlIENLRWRpdG9yIDUgRExMIGJ1aWxkLlxuICogVGhpcyBmaXggb3ZlcndyaXRlcyB0aGUgaW5jb3JyZWN0bHkgc2V0IGBwb3NpdGlvbjogc3RhdGljYCBmcm9tIGBjay1yZXNldF9hbGxgLlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzExNDE4LlxuICovXG4uY2suY2stcmVzZXRfYWxsIC5jay1wbGFjZWhvbGRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogRWxlbWVudHMgbWFya2VkIGJ5IHRoZSBSZW5kZXJlciBhcyBoaWRkZW4gc2hvdWxkIGJlIGludmlzaWJsZSBpbiB0aGUgZWRpdG9yLiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgc3BhbltkYXRhLWNrLXVuc2FmZS1lbGVtZW50XSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1maW5kLXJlc3VsdCB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWhpZ2hsaWdodC1iYWNrZ3JvdW5kKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xufVxuXG4uY2stZmluZC1yZXN1bHRfc2VsZWN0ZWQge1xuXHRiYWNrZ3JvdW5kOiBoc2woMjksIDEwMCUsIDYwJSk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0ge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0gLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzLCAuY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2FjdGlvbnMge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHQvKiBUaGUgaW5wdXRzIGFyZWEgc3R5bGVzICovXG5cdH1cblxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dHMgLmNrLXJlc3VsdHMtY291bnRlciwgLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1yZXN1bHRzLWNvdW50ZXIge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogVGhlIHZhbHVlcyBzaG91bGQgYmUgc3luY2hyb25pemVkIHdpdGggdGhlIFwiRk9OVF9TSVpFX1BSRVNFVF9VTklUU1wiIG9iamVjdCBpbiB0aGUgXCIvc3JjL2ZvbnRzaXplL3V0aWxzLmpzXCIgZmlsZS4gKi9cblxuLyogU3R5bGVzIHNob3VsZCBiZSBwcmVmaXhlZCB3aXRoIHRoZSBgLmNrLWNvbnRlbnRgIGNsYXNzLlxuU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY2MzYgKi9cbi5jay1jb250ZW50IC50ZXh0LXRpbnkge1xuXHRcdGZvbnQtc2l6ZTogLjdlbTtcblx0fVxuLmNrLWNvbnRlbnQgLnRleHQtc21hbGwge1xuXHRcdGZvbnQtc2l6ZTogLjg1ZW07XG5cdH1cbi5jay1jb250ZW50IC50ZXh0LWJpZyB7XG5cdFx0Zm9udC1zaXplOiAxLjRlbTtcblx0fVxuLmNrLWNvbnRlbnQgLnRleHQtaHVnZSB7XG5cdFx0Zm9udC1zaXplOiAxLjhlbTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2staGVhZGluZ19oZWFkaW5nMSAuY2stYnV0dG9uX19sYWJlbCB7XG5cdGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLmNrLmNrLWhlYWRpbmdfaGVhZGluZzIgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRmb250LXNpemU6IDE3cHg7XG59XG5cbi5jay5jay1oZWFkaW5nX2hlYWRpbmczIC5jay1idXR0b25fX2xhYmVsIHtcblx0Zm9udC1zaXplOiAxNHB4O1xufVxuXG4uY2tbY2xhc3MqPVwiY2staGVhZGluZ19oZWFkaW5nXCJdIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1oaWdobGlnaHQtbWFya2VyLXllbGxvdzogaHNsKDYwLCA5NyUsIDczJSk7XG5cdC0tY2staGlnaGxpZ2h0LW1hcmtlci1ncmVlbjogaHNsKDEyMCwgOTMlLCA2OCUpO1xuXHQtLWNrLWhpZ2hsaWdodC1tYXJrZXItcGluazogaHNsKDM0NSwgOTYlLCA3MyUpO1xuXHQtLWNrLWhpZ2hsaWdodC1tYXJrZXItYmx1ZTogaHNsKDIwMSwgOTclLCA3MiUpO1xuXHQtLWNrLWhpZ2hsaWdodC1wZW4tcmVkOiBoc2woMCwgODUlLCA0OSUpO1xuXHQtLWNrLWhpZ2hsaWdodC1wZW4tZ3JlZW46IGhzbCgxMTIsIDEwMCUsIDI3JSk7XG59XG5cbi5jay1jb250ZW50IC5tYXJrZXIteWVsbG93IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1oaWdobGlnaHQtbWFya2VyLXllbGxvdyk7XG5cdH1cbi5jay1jb250ZW50IC5tYXJrZXItZ3JlZW4ge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWhpZ2hsaWdodC1tYXJrZXItZ3JlZW4pO1xuXHR9XG4uY2stY29udGVudCAubWFya2VyLXBpbmsge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWhpZ2hsaWdodC1tYXJrZXItcGluayk7XG5cdH1cbi5jay1jb250ZW50IC5tYXJrZXItYmx1ZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2staGlnaGxpZ2h0LW1hcmtlci1ibHVlKTtcblx0fVxuXG4uY2stY29udGVudCAucGVuLXJlZCB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWhpZ2hsaWdodC1wZW4tcmVkKTtcblxuXHRcdC8qIE92ZXJyaWRlIGRlZmF1bHQgeWVsbG93IGJhY2tncm91bmQgb2YgYDxtYXJrPmAgZnJvbSB1c2VyIGFnZW50IHN0eWxlc2hlZXQgKi9cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxuLmNrLWNvbnRlbnQgLnBlbi1ncmVlbiB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWhpZ2hsaWdodC1wZW4tZ3JlZW4pO1xuXG5cdFx0LyogT3ZlcnJpZGUgZGVmYXVsdCB5ZWxsb3cgYmFja2dyb3VuZCBvZiBgPG1hcms+YCBmcm9tIHVzZXIgYWdlbnQgc3R5bGVzaGVldCAqL1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLWhvcml6b250YWwtbGluZSB7XG5cdC8qIE5lY2Vzc2FyeSB0byByZW5kZXIgcHJvcGVybHkgbmV4dCB0byBmbG9hdGVkIG9iamVjdHMsIGUuZy4gc2lkZSBpbWFnZSBjYXNlLiAqL1xuXHRkaXNwbGF5OiBmbG93LXJvb3Q7XG59XG5cbi5jay1jb250ZW50IGhyIHtcblx0bWFyZ2luOiAxNXB4IDA7XG5cdGhlaWdodDogNHB4O1xuXHRiYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDg3JSk7XG5cdGJvcmRlcjogMDtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogVGhlIGZlYXR1cmUgY29udGFpbmVyLiAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCB7XG5cdC8qIEdpdmUgdGhlIGVtYmVkIHNvbWUgYWlyLiAqL1xuXHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHR0byBhdm9pZCB0aGUgY29udGVudCBqdW1waW5nIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuICovXG5cdG1hcmdpbjogMC45ZW0gYXV0bztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBmbG93LXJvb3Q7XG5cblx0LyogR2l2ZSB0aGUgaHRtbCBlbWJlZCBzb21lIG1pbmltYWwgd2lkdGggaW4gdGhlIGNvbnRlbnQgdG8gcHJldmVudCB0aGVtXG5cdGZyb20gYmVpbmcgXCJzcXVhc2hlZFwiIGluIHRpZ2h0IHNwYWNlcywgZS5nLiBpbiB0YWJsZSBjZWxscyAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODMzMSkgKi9cblx0bWluLXdpZHRoOiAxNWVtO1xuXG5cdC8qIERvbid0IGluaGVyaXQgdGhlIHN0eWxlLCBlLmcuIHdoZW4gaW4gYSBibG9jayBxdW90ZS4gKi9cblx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXG5cdC8qIC0tLS0tIEVtZWJlZCBsYWJlbCBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbn1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQ6OmJlZm9yZSB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdFx0LyogTWFrZSBzdXJlIHRoZSBjb250ZW50IGRvZXMgbm90IGNvdmVyIHRoZSBsYWJlbC4gKi9cblx0XHR6LWluZGV4OiAxO1xuXHR9XG4vKiAtLS0tLSBFbWViZWQgaW50ZXJuYWxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogVGhlIHN3aXRjaCBtb2RlIGJ1dHRvbiB3cmFwcGVyLiAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX2J1dHRvbnMtd3JhcHBlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0fVxuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXcge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdH1cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3LWNvbnRlbnQge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtYXJnaW46IGF1dG87XG5cblx0XHQvKiBHaXZlcyBzcGFjaW5nIHRvIHRoZSBzbWFsbCByZW5kZXJhYmxlIGVsZW1lbnRzLCBzbyB0aGV5IGFsd2F5cyBjb3ZlciB0aGUgcGxhY2Vob2xkZXIuICovXG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdFx0Ym9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcblx0XHRib3JkZXItc3BhY2luZzogN3B4O1xuXHR9XG4uY2std2lkZ2V0LnJhdy1odG1sLWVtYmVkIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1wbGFjZWhvbGRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0dG9wOiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2staHRtbC1vYmplY3QtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGg6IDFweDtcbn1cblxuLmNrLXdpZGdldC5odG1sLW9iamVjdC1lbWJlZCB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0LyogTGVhdmUgc3BhY2UgZm9yIGxhYmVsICovXG5cdHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KSArIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpKTtcblx0bWluLXdpZHRoOiBjYWxjKDc2cHggKyB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG59XG5cbi5jay13aWRnZXQuaHRtbC1vYmplY3QtZW1iZWQ6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCg6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay1odG1sLW9iamVjdC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aCkgZGFzaGVkIHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdH1cblxuLmNrLXdpZGdldC5odG1sLW9iamVjdC1lbWJlZDo6YmVmb3JlIHtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLWh0bWwtb2JqZWN0LWVtYmVkLWxhYmVsKTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0YmFja2dyb3VuZDogaHNsKDBkZWcgMCUgNjAlKTtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblx0XHRwYWRkaW5nOiBjYWxjKHZhcigtLWNrLXNwYWNpbmctdGlueSkgKyB2YXIoLS1jay1odG1sLW9iamVjdC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aCkpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogMCAwIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpO1xuXHRcdGZvbnQtZmFtaWx5OiB2YXIoLS1jay1mb250LWZhY2UpO1xuXHR9XG5cbi8qIE1ha2Ugc3BhY2UgZm9yIGxhYmVsLiAqL1xuXG4uY2std2lkZ2V0Lmh0bWwtb2JqZWN0LWVtYmVkIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24uY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0bWFyZ2luLWxlZnQ6IDUwcHg7XG5cdH1cblxuLmNrLXdpZGdldC5odG1sLW9iamVjdC1lbWJlZCAuaHRtbC1vYmplY3QtZW1iZWRfX2NvbnRlbnQge1xuXHRcdC8qIERpc2FibGUgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGVtYmVkIGNvbnRlbnQgKi9cblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0fVxuXG5kaXYuY2std2lkZ2V0Lmh0bWwtb2JqZWN0LWVtYmVkIHtcblx0bWFyZ2luOiAxZW0gYXV0bztcbn1cblxuc3Bhbi5jay13aWRnZXQuaHRtbC1vYmplY3QtZW1iZWQge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24tYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5NyUpO1xuXHQtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24tdGV4dDogaHNsKDAsIDAlLCAyMCUpO1xuXHQtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZDogaHNsKDUyZGVnIDEwMCUgNTAlKTtcbn1cblxuLyogQ29udGVudCBzdHlsZXMgKi9cbi5jay1jb250ZW50IC5pbWFnZSA+IGZpZ2NhcHRpb24ge1xuXHRkaXNwbGF5OiB0YWJsZS1jYXB0aW9uO1xuXHRjYXB0aW9uLXNpZGU6IGJvdHRvbTtcblx0d29yZC1icmVhazogYnJlYWstd29yZDtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24tdGV4dCk7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24tYmFja2dyb3VuZCk7XG5cdHBhZGRpbmc6IC42ZW07XG5cdGZvbnQtc2l6ZTogLjc1ZW07XG5cdG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuXG5cdC8qIEltcHJvdmUgcGxhY2Vob2xkZXIgcmVuZGVyaW5nIGluIGhpZ2gtY29uc3RyYXN0IG1vZGUgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3KS4gKi9cbn1cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4uY2stY29udGVudCAuaW1hZ2UgPiBmaWdjYXB0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblx0XHRjb2xvcjogdW5zZXQ7XG59XG5cdH1cblxuLyogRWRpdGluZyBzdHlsZXMgKi9cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogbm9uZSkge1xuXHRcdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSA+IGZpZ2NhcHRpb24uaW1hZ2VfX2NhcHRpb25faGlnaGxpZ2h0ZWQge1xuXHRcdGFuaW1hdGlvbjogY2staW1hZ2UtY2FwdGlvbi1oaWdobGlnaHQgLjZzIGVhc2Utb3V0O1xuXHRcdH1cblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSA+IGZpZ2NhcHRpb24uaW1hZ2VfX2NhcHRpb25faGlnaGxpZ2h0ZWQge1xuXHRcdGFuaW1hdGlvbjogbm9uZTtcbn1cblx0fVxuXG5Aa2V5ZnJhbWVzIGNrLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0IHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZCk7XG5cdH1cblxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLWJhY2tncm91bmQpO1xuXHR9XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1pbWFnZS1pbnNlcnQtdXJsIHtcblx0d2lkdGg6IDQwMHB4O1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSAwO1xufVxuXG4uY2suY2staW1hZ2UtaW5zZXJ0LXVybCAuY2staW1hZ2UtaW5zZXJ0LXVybF9fYWN0aW9uLXJvdyB7XG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFByZXNlcnZlIGFzcGVjdCByYXRpbyBvZiB0aGUgcmVzaXplZCBpbWFnZSBhZnRlciBpbnRyb2R1Y2luZyBpbWFnZSBoZWlnaHQgYXR0cmlidXRlLiAqL1xuLmNrLWNvbnRlbnQgaW1nLmltYWdlX3Jlc2l6ZWQge1xuXHRoZWlnaHQ6IGF1dG87XG59XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZV9yZXNpemVkIHtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHQvKlxuXHRUaGUgYDxmaWd1cmU+YCBlbGVtZW50IGZvciByZXNpemVkIGltYWdlcyBtdXN0IG5vdCB1c2UgYGRpc3BsYXk6dGFibGVgIGFzIGJyb3dzZXJzIGRvIG5vdCBzdXBwb3J0IGBtYXgtd2lkdGhgIGZvciBpdCB3ZWxsLlxuXHRTZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDAxOTYwNC9jaHJvbWUtc2FmYXJpLWlnbm9yaW5nLW1heC13aWR0aC1pbi10YWJsZS8xNDQyMDY5MSMxNDQyMDY5MSBmb3IgbW9yZS5cblx0Rm9ydHVuYXRlbHksIHNpbmNlIHdlIGNvbnRyb2wgdGhlIHdpZHRoLCB0aGVyZSBpcyBubyByaXNrIHRoYXQgdGhlIGltYWdlIHdpbGwgbG9vayBiYWQuXG5cdCovXG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2VfcmVzaXplZCBpbWcge1xuXHRcdC8qIEZvciByZXNpemVkIGltYWdlcyBpdCBpcyB0aGUgYDxmaWd1cmU+YCBlbGVtZW50IHRoYXQgZGV0ZXJtaW5lcyB0aGUgaW1hZ2Ugd2lkdGguICovXG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlX3Jlc2l6ZWQgPiBmaWdjYXB0aW9uIHtcblx0XHQvKiBUaGUgYDxmaWd1cmU+YCBlbGVtZW50IHVzZXMgYGRpc3BsYXk6YmxvY2tgLCBzbyBgPGZpZ2NhcHRpb24+YCBhbHNvIGhhcyB0by4gKi9cblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG4vKiBUaGUgcmVzaXplZCBpbmxpbmUgaW1hZ2UgbmVzdGVkIGluIHRoZSB0YWJsZSBzaG91bGQgcmVzcGVjdCBpdHMgcGFyZW50IHNpemUuXG5cdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTE3LiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB0ZCAuaW1hZ2UtaW5saW5lLmltYWdlX3Jlc2l6ZWQgaW1nLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSB0aCAuaW1hZ2UtaW5saW5lLmltYWdlX3Jlc2l6ZWQgaW1nIHtcblx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0LmNrLXJlc2l6ZS1pbWFnZS1idXR0b24gLmNrLWJ1dHRvbl9faWNvbiB7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG59XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0LmNrLXJlc2l6ZS1pbWFnZS1idXR0b24gLmNrLWJ1dHRvbl9faWNvbiB7XG5cdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcbn1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stcmVzaXplLWltYWdlLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdHdpZHRoOiA0ZW07XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1pbWFnZS1jdXN0b20tcmVzaXplLWZvcm0ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5jay5jay1pbWFnZS1jdXN0b20tcmVzaXplLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cbi5jay5jay1pbWFnZS1jdXN0b20tcmVzaXplLWZvcm0gLmNrLWxhYmVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbi5jay5jay1pbWFnZS1jdXN0b20tcmVzaXplLWZvcm0ge1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcbn1cblxuXHRcdC5jay5jay1pbWFnZS1jdXN0b20tcmVzaXplLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdC5jay5jay1pbWFnZS1jdXN0b20tcmVzaXplLWZvcm0gLmNrLWJ1dHRvbiB7XG5cdFx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0fVxuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nOiAxLjVlbTtcblx0LS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZzogY2FsYyh2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKSAvIDIpO1xufVxuXG4vKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE2MzE3ICovXG5cbi8qIFByb3ZpZGVzIGEgbWluaW1hbCBzaWRlIG1hcmdpbiBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IGFsaWduZWQgaW1hZ2VzLCBzbyB0aGF0IHRoZSB1c2VyIGhhcyBhIHZpc3VhbCBmZWVkYmFja1xuXHRcdGNvbmZpcm1pbmcgc3VjY2Vzc2Z1bCBhcHBsaWNhdGlvbiBvZiB0aGUgc3R5bGUgaWYgaW1hZ2Ugd2lkdGggZXhjZWVkcyB0aGUgZWRpdG9yJ3Mgc2l6ZS5cblx0XHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTM0MiAqL1xuXG4uY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtYmxvY2stYWxpZ24tbGVmdCxcblx0XHQuY2stY29udGVudCAuaW1hZ2UuaW1hZ2Utc3R5bGUtYmxvY2stYWxpZ24tcmlnaHQge1xuXHRcdFx0bWF4LXdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKSk7XG5cdFx0fVxuXG4vKiBBbGxvd3MgZGlzcGxheWluZyBtdWx0aXBsZSBmbG9hdGluZyBpbWFnZXMgaW4gdGhlIHNhbWUgbGluZS5cblx0XHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTE4MyNpc3N1ZWNvbW1lbnQtODA0OTg4MTMyICovXG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0LFxuXHRcdC5jay1jb250ZW50IC5pbWFnZS5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0XHRjbGVhcjogbm9uZTtcblx0XHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZS1zdHlsZS1zaWRlIHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHRcdG1heC13aWR0aDogNTAlO1xuXHRcdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlLXN0eWxlLWFsaWduLWxlZnQge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlLXN0eWxlLWFsaWduLXJpZ2h0IHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZS1zdHlsZS1ibG9jay1hbGlnbi1yaWdodCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZS1zdHlsZS1ibG9jay1hbGlnbi1sZWZ0IHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLXN0eWxlLWFsaWduLWNlbnRlciB7XG5cdFx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0IHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0fVxuXG4vKiBTaW11bGF0ZXMgbWFyZ2luIGNvbGxhcHNpbmcgd2l0aCB0aGUgcHJlY2VkaW5nIHBhcmFncmFwaCwgd2hpY2ggZG9lcyBub3Qgd29yayBmb3IgdGhlIGZsb2F0aW5nIGVsZW1lbnRzLiAqL1xuXG4uY2stY29udGVudCBwICsgLmltYWdlLmltYWdlLXN0eWxlLWFsaWduLWxlZnQsXG5cdC5jay1jb250ZW50IHAgKyAuaW1hZ2UuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQsXG5cdC5jay1jb250ZW50IHAgKyAuaW1hZ2UuaW1hZ2Utc3R5bGUtc2lkZSB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UtaW5saW5lLmltYWdlLXN0eWxlLWFsaWduLWxlZnQsXG5cdFx0LmNrLWNvbnRlbnQgLmltYWdlLWlubGluZS5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UtaW5saW5lLmltYWdlLXN0eWxlLWFsaWduLWxlZnQge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UtaW5saW5lLmltYWdlLXN0eWxlLWFsaWduLXJpZ2h0IHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG4vKiBUaGUgYnV0dG9uIHNob3VsZCBkaXNwbGF5IGFzIGEgcmVndWxhciBkcm9wLWRvd24gaWYgdGhlIGFjdGlvbiBidXR0b25cblx0aXMgZm9yY2VkIHRvIGZpcmUgdGhlIHNhbWUgYWN0aW9uIGFzIHRoZSBhcnJvdyBidXR0b24uICovXG5cbi5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb246bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb246bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKSxcblx0XHRcdC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSxcblx0XHRcdC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9mbGF0dGVuLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOm5vdCg6aG92ZXIpIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuXG4uY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpOjphZnRlciwgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpOjphZnRlciwgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW46aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciwgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6OmFmdGVyLCAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3Zlcik6OmFmdGVyLCAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKTo6YWZ0ZXIge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblxuLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3Blbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0LmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4uY2stc3BsaXRidXR0b25fb3Blbjpob3ZlciA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fZmxhdHRlbi5jay1zcGxpdGJ1dHRvbl9vcGVuOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xufVxuXG4uY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXG4uY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4uY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIHtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG59XG5cblx0XHQuY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHR9XG5cblx0XHQuY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIC5jay1idXR0b24ge1xuXHRcdFx0ZmxleC1iYXNpczogNTAlO1xuXHRcdH1cblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UsXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZS1pbmxpbmUge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXG4vKiBVcGxvYWQgcHJvZ3Jlc3MgYmFyLiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UgLmNrLXByb2dyZXNzLWJhcixcblx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlLWlubGluZSAuY2stcHJvZ3Jlc3MtYmFyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQvKlxuXHQgKiBTbWFsbGVyIGltYWdlcyBzaG91bGQgaGF2ZSB0aGUgaWNvbiBjbG9zZXIgdG8gdGhlIGJvcmRlci5cblx0ICogTWF0Y2ggdGhlIGljb24gcG9zaXRpb24gd2l0aCB0aGUgbGlua2VkIGltYWdlIGluZGljYXRvciBicm91Z2h0IGJ5IHRoZSBsaW5rIGltYWdlIGZlYXR1cmUuXG5cdCAqL1xuXHR0b3A6IG1pbih2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIDYlKTtcblx0cmlnaHQ6IG1pbih2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIDYlKTtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHR6LWluZGV4OiAxO1xufVxuXG4uY2staW1hZ2UtdXBsb2FkLWNvbXBsZXRlLWljb246OmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDA7XG59XG5cbi5jayAuY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlcjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiAnJztcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgLmltYWdlIHtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRjbGVhcjogYm90aDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHQvKiBNYWtlIHN1cmUgdGhlcmUgaXMgc29tZSBzcGFjZSBiZXR3ZWVuIHRoZSBjb250ZW50IGFuZCB0aGUgaW1hZ2UuIENlbnRlciBpbWFnZSBieSBkZWZhdWx0LiAqL1xuXHRcdC8qIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgZXF1YWwgdG8gLS1jay1zcGFjaW5nLWxhcmdlIHZhcmlhYmxlIGlmIHVzZWQgaW4gdGhlIGVkaXRvciBjb250ZXh0XG5cdCBcdHRvIGF2b2lkIHRoZSBjb250ZW50IGp1bXBpbmcgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS4gKi9cblx0XHRtYXJnaW46IDAuOWVtIGF1dG87XG5cblx0XHQvKiBNYWtlIHN1cmUgdGhlIGNhcHRpb24gd2lsbCBiZSBkaXNwbGF5ZWQgcHJvcGVybHkgKFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTg3MCkuICovXG5cdFx0bWluLXdpZHRoOiA1MHB4O1xuXHR9XG5cbi5jay1jb250ZW50IC5pbWFnZSBpbWcge1xuXHRcdFx0LyogUHJldmVudCB1bm5lY2Vzc2FyeSBtYXJnaW5zIGNhdXNlZCBieSBsaW5lLWhlaWdodCAoc2VlICM0NCkuICovXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0LyogQ2VudGVyIHRoZSBpbWFnZSBpZiBpdHMgd2lkdGggaXMgc21hbGxlciB0aGFuIHRoZSBjb250ZW50J3Mgd2lkdGguICovXG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblxuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBpbWFnZSBuZXZlciBleGNlZWRzIHRoZSBzaXplIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyIChja2VkaXRvci9ja2VkaXRvcjUtdWkjNjcpLiAqL1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGltYWdlIGlzIG5ldmVyIHNtYWxsZXIgdGhhbiB0aGUgcGFyZW50IGNvbnRhaW5lciAoU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MzAwKS4gKi9cblx0XHRcdG1pbi13aWR0aDogMTAwJTtcblxuXHRcdFx0LyogS2VlcCBwcm9wb3J0aW9ucyBvZiB0aGUgYmxvY2sgaW1hZ2UgaWYgdGhlIGhlaWdodCBpcyBzZXQgYW5kIHRoZSBpbWFnZSBpcyB3aWRlciB0aGFuIHRoZSBlZGl0b3Igd2lkdGguXG5cdFx0XHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ1NDIuICovXG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0fVxuXG4uY2stY29udGVudCAuaW1hZ2UtaW5saW5lIHtcblx0XHQvKlxuXHRcdCAqIE5vcm1hbGx5LCB0aGUgLmltYWdlLWlubGluZSB3b3VsZCBoYXZlIFwiZGlzcGxheTogaW5saW5lLWJsb2NrXCIgYW5kIFwiaW1nIHsgd2lkdGg6IDEwMCUgfVwiICh0byBmb2xsb3cgdGhlIHdyYXBwZXIgd2hpbGUgcmVzaXppbmcpLlxuXHRcdCAqIFVuZm9ydHVuYXRlbHksIHRvZ2V0aGVyIHdpdGggXCJzcmNzZXRcIiwgaXQgZ2V0cyBhdXRvbWF0aWNhbGx5IHN0cmV0Y2hlZCB1cCB0byB0aGUgd2lkdGggb2YgdGhlIGVkaXRpbmcgcm9vdC5cblx0XHQgKiBUaGlzIHN0cmFuZ2UgYmVoYXZpb3IgZG9lcyBub3QgaGFwcGVuIHdpdGggaW5saW5lLWZsZXguXG5cdFx0ICovXG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cblx0XHQvKiBXaGlsZSBiZWluZyByZXNpemVkLCBkb24ndCBhbGxvdyB0aGUgaW1hZ2UgdG8gZXhjZWVkIHRoZSB3aWR0aCBvZiB0aGUgZWRpdGluZyByb290LiAqL1xuXHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdC8qIFRoaXMgaXMgcmVxdWlyZWQgYnkgU2FmYXJpIHRvIHJlc2l6ZSBpbWFnZXMgaW4gYSBzZW5zaWJsZSB3YXkuIFdpdGhvdXQgdGhpcywgdGhlIGJyb3dzZXIgYnJlYWtzIHRoZSByYXRpby4gKi9cblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuXHRcdC8qIFdoZW4gdGhlIHBpY3R1cmUgaXMgcHJlc2VudCBpdCBtdXN0IGFjdCBhcyBhIGZsZXggY29udGFpbmVyIHRvIGxldCB0aGUgaW1nIHJlc2l6ZSBwcm9wZXJseSAqL1xuXHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS1pbmxpbmUgcGljdHVyZSB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdH1cblxuLyogV2hlbiB0aGUgcGljdHVyZSBpcyBwcmVzZW50LCBpdCBtdXN0IGFjdCBsaWtlIGEgcmVzaXphYmxlIGltZy4gKi9cblxuLmNrLWNvbnRlbnQgLmltYWdlLWlubGluZSBwaWN0dXJlLFxuXHRcdC5jay1jb250ZW50IC5pbWFnZS1pbmxpbmUgaW1nIHtcblx0XHRcdC8qIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciB0aGUgaW1nIHRvIHNwYW4gdGhlIGVudGlyZSAuaW1hZ2UtaW5saW5lIHdyYXBwZXIgYW5kIHRvIHJlc2l6ZSBwcm9wZXJseS4gKi9cblx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHRcdGZsZXgtc2hyaW5rOiAxO1xuXG5cdFx0XHQvKiBQcmV2ZW50cyBvdmVyZmxvd2luZyB0aGUgZWRpdGluZyByb290IGJvdW5kYXJpZXMgd2hlbiBhbiBpbmxpbmUgaW1hZ2UgaXMgdmVyeSB3aWRlLiAqL1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdH1cblxuLypcblx0ICogSW5oZXJ0aXQgdGhlIGNvbnRlbnQgc3R5bGVzIHBhZGRpbmcgb2YgdGhlIDxmaWdjYXB0aW9uPiBpbiBjYXNlIHRoZSBpbnRlZ3JhdGlvbiBvdmVycmlkZXMgYHRleHQtYWxpZ246IGNlbnRlcmBcblx0ICogb2YgYC5pbWFnZWAgKGUuZy4gdG8gdGhlIGxlZnQvcmlnaHQpLiBUaGlzIGVuc3VyZXMgdGhlIHBsYWNlaG9sZGVyIHN0YXlzIGF0IHRoZSBwYWRkaW5nIGp1c3QgbGlrZSB0aGUgbmF0aXZlXG5cdCAqIGNhcmV0IGRvZXMsIGFuZCBub3QgYXQgdGhlIGVkZ2Ugb2YgPGZpZ2NhcHRpb24+LlxuXHQgKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlID4gZmlnY2FwdGlvbi5jay1wbGFjZWhvbGRlcjo6YmVmb3JlIHtcblx0XHRwYWRkaW5nLWxlZnQ6IGluaGVyaXQ7XG5cdFx0cGFkZGluZy1yaWdodDogaW5oZXJpdDtcblxuXHRcdC8qXG5cdFx0ICogTWFrZSBzdXJlIHRoZSBpbWFnZSBjYXB0aW9uIHBsYWNlaG9sZGVyIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIHBsYWNlaG9sZGVyIGFyZWEuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxNjIuXG5cdFx0ICovXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR9XG5cbi8qXG5cdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTExNS5cblx0ICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSB7XG5cdFx0ei1pbmRleDogMTtcblxuXHRcdC8qXG5cdFx0ICogTWFrZSBzdXJlIHRoZSBzZWxlY3RlZCBpbWFnZSBhbHdheXMgc3RheXMgb24gdG9wIG9mIGl0cyBzaWJsaW5ncy5cblx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTEwOC5cblx0XHQgKi9cblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UuY2std2lkZ2V0X3NlbGVjdGVkIHtcblx0XHRcdHotaW5kZXg6IDI7XG5cdFx0fVxuXG4vKlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTUxMTUuXG5cdCAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UtaW5saW5lIHtcblx0XHR6LWluZGV4OiAxO1xuXG5cdFx0Lypcblx0XHQgKiBNYWtlIHN1cmUgdGhlIHNlbGVjdGVkIGlubGluZSBpbWFnZSBhbHdheXMgc3RheXMgb24gdG9wIG9mIGl0cyBzaWJsaW5ncy5cblx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTEwOC5cblx0XHQgKi9cblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UtaW5saW5lLmNrLXdpZGdldF9zZWxlY3RlZCB7XG5cdFx0XHR6LWluZGV4OiAyO1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogTWFrZSBzdXJlIHRoZSBuYXRpdmUgYnJvd3NlciBzZWxlY3Rpb24gc3R5bGUgaXMgbm90IGRpc3BsYXllZC5cblx0XHRcdCAqIElubGluZSBpbWFnZSB3aWRnZXRzIGhhdmUgdGhlaXIgb3duIHN0eWxlcyBmb3IgdGhlIHNlbGVjdGVkIHN0YXRlIGFuZFxuXHRcdFx0ICogbGVhdmluZyB0aGlzIHVwIHRvIHRoZSBicm93c2VyIGlzIGFza2luZyBmb3IgYSB2aXN1YWwgY29sbGlzaW9uLlxuXHRcdFx0ICovXG5cdFx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UtaW5saW5lLmNrLXdpZGdldF9zZWxlY3RlZCA6OnNlbGVjdGlvbiB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cbi8qIEtlZXAgcHJvcG9ydGlvbnMgb2YgdGhlIGlubGluZSBpbWFnZSBpZiB0aGUgaGVpZ2h0IGlzIHNldCBhbmQgdGhlIGltYWdlIGlzIHdpZGVyIHRoYW4gdGhlIGVkaXRvciB3aWR0aC5cblx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0NTQyLiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UtaW5saW5lIGltZyB7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHR9XG5cbi8qIFRoZSBpbmxpbmUgaW1hZ2UgbmVzdGVkIGluIHRoZSB0YWJsZSBzaG91bGQgaGF2ZSBpdHMgb3JpZ2luYWwgc2l6ZSBpZiBub3QgcmVzaXplZC5cblx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxMTcuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHRkIC5pbWFnZS1pbmxpbmUgaW1nLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZSB0aCAuaW1hZ2UtaW5saW5lIGltZyB7XG5cdFx0XHRtYXgtd2lkdGg6IG5vbmU7XG5cdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSBpbWcuaW1hZ2VfcGxhY2Vob2xkZXIge1xuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIExpbmtlZCBpbWFnZSBpbmRpY2F0b3IgKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgZmlndXJlLmltYWdlID4gYTo6YWZ0ZXIsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIGEgc3Bhbi5pbWFnZS1pbmxpbmU6OmFmdGVyIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbGluay1hY3Rpb25zIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG59XG5cbi5jay5jay1saW5rLWFjdGlvbnMgLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cbi5jay5jay1saW5rLWFjdGlvbnMgLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblxuLmNrLmNrLWxpbmstYWN0aW9ucyB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xufVxuXG5cdFx0LmNrLmNrLWxpbmstYWN0aW9ucyAuY2stbGluay1hY3Rpb25zX19wcmV2aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG5cdFx0LmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uOm5vdCguY2stbGluay1hY3Rpb25zX19wcmV2aWV3KSB7XG5cdFx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0fVxuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1saW5rLWZvcm0ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cblxuLmNrLmNrLWxpbmstZm9ybSAuY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblxuLmNrLmNrLWxpbmstZm9ybSB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xufVxuXG5cdFx0LmNrLmNrLWxpbmstZm9ybSAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG5cdFx0LmNrLmNrLWxpbmstZm9ybSAuY2stYnV0dG9uIHtcblx0XHRcdGZsZXgtYmFzaXM6IDUwJTtcblx0XHR9XG5cdH1cblxuLypcbiAqIFN0eWxlIGxpbmsgZm9ybSBkaWZmZXJlbnRseSB3aGVuIG1hbnVhbCBkZWNvcmF0b3JzIGFyZSBhdmFpbGFibGUuXG4gKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbGluay9pc3N1ZXMvMTg2LlxuICovXG4uY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdC8qXG5cdCAqIFdoZXRoZXIgdGhlIGZvcm0gaXMgaW4gdGhlIHJlc3BvbnNpdmUgbW9kZSBvciBub3QsIGlmIHRoZXJlIGFyZSBkZWNvcmF0b3IgYnV0dG9uc1xuXHQgKiBrZWVwIHRoZSB0b3AgbWFyZ2luIG9mIGFjdGlvbiBidXR0b25zIG1lZGl1bS5cblx0ICovXG59XG4uY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCAuY2stYnV0dG9uLmNrLWJ1dHRvbi1zYXZlLFxuXHRcdC5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIC5jay1idXR0b24uY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stZWRpdG9yX19lZGl0YWJsZSAuY2stbGlzdC1ib2d1cy1wYXJhZ3JhcGgge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxpc3Qtc3R5bGVzLWxpc3Qge1xuXHRkaXNwbGF5OiBncmlkO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCBvbCB7XG5cdGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbn1cblxuLmNrLWNvbnRlbnQgb2wgb2wge1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItbGF0aW47XG5cdH1cblxuLmNrLWNvbnRlbnQgb2wgb2wgb2wge1xuXHRcdFx0bGlzdC1zdHlsZS10eXBlOiBsb3dlci1yb21hbjtcblx0XHR9XG5cbi5jay1jb250ZW50IG9sIG9sIG9sIG9sIHtcblx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiB1cHBlci1sYXRpbjtcblx0XHRcdH1cblxuLmNrLWNvbnRlbnQgb2wgb2wgb2wgb2wgb2wge1xuXHRcdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogdXBwZXItcm9tYW47XG5cdFx0XHRcdH1cblxuLmNrLWNvbnRlbnQgdWwge1xuXHRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG59XG5cbi5jay1jb250ZW50IHVsIHVsIHtcblx0XHRsaXN0LXN0eWxlLXR5cGU6IGNpcmNsZTtcblx0fVxuXG4uY2stY29udGVudCB1bCB1bCB1bCB7XG5cdFx0XHRsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTtcblx0XHR9XG5cbi5jay1jb250ZW50IHVsIHVsIHVsIHVsIHtcblx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7XG5cdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemU6IDE2cHg7XG59XG5cbi8qXG4gKiBUby1kbyBsaXN0IGNvbnRlbnQgc3R5bGVzLlxuICovXG4uY2stY29udGVudCAudG9kby1saXN0IHtcblx0bGlzdC1zdHlsZTogbm9uZTtcbn1cbi5jay1jb250ZW50IC50b2RvLWxpc3QgbGkge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cdH1cbi5jay1jb250ZW50IC50b2RvLWxpc3QgbGkgLnRvZG8tbGlzdCB7XG5cdFx0XHRtYXJnaW4tdG9wOiA1cHg7XG5cdFx0fVxuLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IGlucHV0IHtcblx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdC8qIE5lZWRlZCBvbiBpT1MgKi9cblx0XHRcdGJvcmRlcjogMDtcblx0XHRcdC8qIExUUiBzdHlsZXMgKi9cblx0XHRcdGxlZnQ6IC0yNXB4O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAtMTVweDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHQvKiBSVEwgc3R5bGVzICovXG5cdFx0fVxuLmNrLWNvbnRlbnRbZGlyPXJ0bF0gLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IGlucHV0IHtcblx0XHRsZWZ0OiAwO1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRyaWdodDogLTI1cHg7XG5cdFx0bWFyZ2luLWxlZnQ6IC0xNXB4O1xuXHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXQ6OmJlZm9yZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgMjAlKTtcblx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0dHJhbnNpdGlvbjogMjUwbXMgZWFzZS1pbi1vdXQgYm94LXNoYWRvdztcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBpbnB1dDo6YmVmb3JlIHtcblx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblx0XHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXQ6OmFmdGVyIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0Y29udGVudDogJyc7XG5cblx0XHQvKiBDYWxjdWxhdGUgdGljayBwb3NpdGlvbiwgc2l6ZSBhbmQgYm9yZGVyLXdpZHRoIHByb3BvcnRpb25hbCB0byB0aGUgY2hlY2ttYXJrIHNpemUuICovXG5cdFx0bGVmdDogY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDMgKTtcblx0XHR0b3A6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA1LjMgKTtcblx0XHR3aWR0aDogY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDUuMyApO1xuXHRcdGhlaWdodDogY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDIuNiApO1xuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItd2lkdGg6IDAgY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDggKSBjYWxjKCB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gOCApIDA7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXRbY2hlY2tlZF06OmJlZm9yZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBoc2woMTI2LCA2NCUsIDQxJSk7XG5cdFx0XHRib3JkZXItY29sb3I6IGhzbCgxMjYsIDY0JSwgNDElKTtcblx0XHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXRbY2hlY2tlZF06OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0XHR9XG4uY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsIC50b2RvLWxpc3RfX2xhYmVsX19kZXNjcmlwdGlvbiB7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdH1cbi5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwudG9kby1saXN0X19sYWJlbF93aXRob3V0LWRlc2NyaXB0aW9uIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cbi8qXG4gKiBUby1kbyBsaXN0IGVkaXRpbmcgdmlldyBzdHlsZXMuXG4gKi9cbi8qXG5cdCAqIFRvLWRvIGxpc3Qgc2hvdWxkIGJlIGludGVyYWN0aXZlIG9ubHkgZHVyaW5nIHRoZSBlZGl0aW5nXG5cdCAqIChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8yMDkwKS5cblx0ICovXG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBpbnB1dCxcblx0LmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gaW5wdXQ6aG92ZXI6OmJlZm9yZSwgLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQ6aG92ZXI6OmJlZm9yZSB7XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMCA1cHggaHNsYSgwLCAwJSwgMCUsIDAuMSk7XG5cdFx0fVxuLypcblx0ICogRG9jdW1lbnQgTGlzdHMgLSBlZGl0aW5nIHZpZXcgaGFzIGFuIGFkZGl0aW9uYWwgc3BhbiBhcm91bmQgY2hlY2tib3guXG5cdCAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQge1xuXHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdC8qIE5lZWRlZCBvbiBpT1MgKi9cblx0XHRib3JkZXI6IDA7XG5cdFx0LyogTFRSIHN0eWxlcyAqL1xuXHRcdGxlZnQ6IC0yNXB4O1xuXHRcdG1hcmdpbi1yaWdodDogLTE1cHg7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0LyogUlRMIHN0eWxlcyAqL1xuXHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50W2Rpcj1ydGxdIC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBzcGFuW2NvbnRlbnRlZGl0YWJsZT1mYWxzZV0gPiBpbnB1dCB7XG5cdFx0bGVmdDogMDtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0cmlnaHQ6IC0yNXB4O1xuXHRcdG1hcmdpbi1sZWZ0OiAtMTVweDtcblx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXQ6OmJlZm9yZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgMjAlKTtcblx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0dHJhbnNpdGlvbjogMjUwbXMgZWFzZS1pbi1vdXQgYm94LXNoYWRvdztcblx0fVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IHNwYW5bY29udGVudGVkaXRhYmxlPWZhbHNlXSA+IGlucHV0OjpiZWZvcmUge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0fVxuXHRcdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbCA+IHNwYW5bY29udGVudGVkaXRhYmxlPWZhbHNlXSA+IGlucHV0OjphZnRlciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdGNvbnRlbnQ6ICcnO1xuXG5cdFx0LyogQ2FsY3VsYXRlIHRpY2sgcG9zaXRpb24sIHNpemUgYW5kIGJvcmRlci13aWR0aCBwcm9wb3J0aW9uYWwgdG8gdGhlIGNoZWNrbWFyayBzaXplLiAqL1xuXHRcdGxlZnQ6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyAzICk7XG5cdFx0dG9wOiBjYWxjKCB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gNS4zICk7XG5cdFx0d2lkdGg6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA1LjMgKTtcblx0XHRoZWlnaHQ6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyAyLjYgKTtcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAwIGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA4ICkgY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDggKSAwO1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0fVxuLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stY29udGVudCAudG9kby1saXN0IC50b2RvLWxpc3RfX2xhYmVsID4gc3Bhbltjb250ZW50ZWRpdGFibGU9ZmFsc2VdID4gaW5wdXRbY2hlY2tlZF06OmJlZm9yZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBoc2woMTI2LCA2NCUsIDQxJSk7XG5cdFx0XHRib3JkZXItY29sb3I6IGhzbCgxMjYsIDY0JSwgNDElKTtcblx0XHR9XG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwgPiBzcGFuW2NvbnRlbnRlZGl0YWJsZT1mYWxzZV0gPiBpbnB1dFtjaGVja2VkXTo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRcdH1cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbnRlbnQgLnRvZG8tbGlzdCAudG9kby1saXN0X19sYWJlbC50b2RvLWxpc3RfX2xhYmVsX3dpdGhvdXQtZGVzY3JpcHRpb24gaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgLm1lZGlhIHtcblx0LyogRG9uJ3QgYWxsb3cgZmxvYXRlZCBjb250ZW50IG92ZXJsYXAgdGhlIG1lZGlhLlxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkL2lzc3Vlcy81MyAqL1xuXHRjbGVhcjogYm90aDtcblxuXHQvKiBNYWtlIHN1cmUgdGhlcmUgaXMgc29tZSBzcGFjZSBiZXR3ZWVuIHRoZSBjb250ZW50IGFuZCB0aGUgbWVkaWEuICovXG5cdC8qIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgZXF1YWwgdG8gLS1jay1zcGFjaW5nLWxhcmdlIHZhcmlhYmxlIGlmIHVzZWQgaW4gdGhlIGVkaXRvciBjb250ZXh0XG5cdHRvIGF2b2lkIHRoZSBjb250ZW50IGp1bXBpbmcgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS4gKi9cblx0bWFyZ2luOiAwLjllbSAwO1xuXG5cdC8qIE1ha2Ugc3VyZSBtZWRpYSBpcyBub3Qgb3ZlcnJpZGVuIHdpdGggQm9vdHN0cmFwIGRlZmF1bHQgYGZsZXhgIHZhbHVlLlxuXHRTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEzNzMuICovXG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdC8qIEdpdmUgdGhlIG1lZGlhIHNvbWUgbWluaW1hbCB3aWR0aCBpbiB0aGUgY29udGVudCB0byBwcmV2ZW50IHRoZW1cblx0ZnJvbSBiZWluZyBcInNxdWFzaGVkXCIgaW4gdGlnaHQgc3BhY2VzLCBlLmcuIGluIHRhYmxlIGNlbGxzICgjNDQpICovXG5cdG1pbi13aWR0aDogMTVlbTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybCB7XG5cdFx0XHQvKiBPdGhlcndpc2UgdGhlIFVSTCB3aWxsIG92ZXJmbG93IHdoZW4gdGhlIGNvbnRlbnQgaXMgdmVyeSBuYXJyb3cuICovXG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybCAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJ0d2l0dGVyLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICosIC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZ29vZ2xlLmNvbS9tYXBzXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24gKiwgLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJnb28uZ2wvbWFwc1wiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICosIC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5nb29nbGUuY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24gKiwgLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJtYXBzLmFwcC5nb28uZ2xcIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAqLCAuY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICosIC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiaW5zdGFncmFtLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICoge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cbi8qIERpc2FibGUgYWxsIG1vdXNlIGludGVyYWN0aW9uIGFzIGxvbmcgYXMgdGhlIGVkaXRvciBpcyBub3QgcmVhZOKAk29ubHkuXG4gICBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkL2lzc3Vlcy81OCAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1yZWFkLW9ubHkpIC5jay1tZWRpYV9fd3JhcHBlciA+ICo6bm90KC5jay1tZWRpYV9fcGxhY2Vob2xkZXIpIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIERpc2FibGUgYWxsIG1vdXNlIGludGVyYWN0aW9uIHdoZW4gdGhlIHdpZGdldCBpcyBub3Qgc2VsZWN0ZWQgKGUuZy4gdG8gYXZvaWQgb3BlbmluZyBsaW5rcyBieSBhY2NpZGVudCkuXG4gICBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkL2lzc3Vlcy8xOCAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1yZWFkLW9ubHkpIC5jay13aWRnZXQ6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLXZlcnRpY2FsLWZvcm0gLmNrLWJ1dHRvbjo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0d2lkdGg6IDA7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAtMXB4O1xuXHRcdHRvcDogLTFweDtcblx0XHRib3R0b206IC0xcHg7XG5cdFx0ei1pbmRleDogMTtcblx0fVxuXG4uY2stdmVydGljYWwtZm9ybSAuY2stYnV0dG9uOmZvY3VzOjphZnRlciB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXHRcdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2stYnV0dG9uOjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRcdHdpZHRoOiAwO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHJpZ2h0OiAtMXB4O1xuXHRcdFx0XHR0b3A6IC0xcHg7XG5cdFx0XHRcdGJvdHRvbTogLTFweDtcblx0XHRcdFx0ei1pbmRleDogMTtcblx0XHRcdH1cblxuXHRcdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2stYnV0dG9uOmZvY3VzOjphZnRlciB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lZGlhLWZvcm0ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdHdpZHRoOiA0MDBweDtcbn1cblxuLmNrLmNrLW1lZGlhLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cbi5jay5jay1tZWRpYS1mb3JtIC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG4uY2suY2stbWVkaWEtZm9ybSAuY2staW5wdXQge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbi5jay5jay1tZWRpYS1mb3JtIHtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG59XG5cblx0XHQuY2suY2stbWVkaWEtZm9ybSAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG5cdFx0LmNrLmNrLW1lZGlhLWZvcm0gLmNrLWJ1dHRvbiB7XG5cdFx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0fVxuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1tZW50aW9uLWxpc3QtbWF4LWhlaWdodDogMzAwcHg7XG59XG5cbi5jay5jay1tZW50aW9ucyB7XG5cdG1heC1oZWlnaHQ6IHZhcigtLWNrLW1lbnRpb24tbGlzdC1tYXgtaGVpZ2h0KTtcblxuXHRvdmVyZmxvdy15OiBhdXRvO1xuXG5cdC8qIFByZXZlbnQgdW5uZWNlc3NhcnkgaG9yaXpvbnRhbCBzY3JvbGxiYXIgaW4gU2FmYXJpXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbWVudGlvbi9pc3N1ZXMvNDEgKi9cblx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXG5cdG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG5cblx0LyogUHJldmVudCB1bm5lY2Vzc2FyeSB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gU2FmYXJpXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbWVudGlvbi9pc3N1ZXMvNDEgKi9cbn1cblxuLmNrLmNrLW1lbnRpb25zID4gLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0ZmxleC1zaHJpbms6IDA7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLW1pbmltYXAtdHJhY2tlci1iYWNrZ3JvdW5kOiAyMDgsIDAlLCA1MSU7XG5cdC0tY2stY29sb3ItbWluaW1hcC1pZnJhbWUtb3V0bGluZTogaHNsKDBkZWcgMCUgNzUlKTtcblx0LS1jay1jb2xvci1taW5pbWFwLWlmcmFtZS1zaGFkb3c6IGhzbCgwZGVnIDAlIDAlIC8gMTElKTtcblx0LS1jay1jb2xvci1taW5pbWFwLXByb2dyZXNzLWJhY2tncm91bmQ6IGhzbCgwLDAlLDQwJSk7XG59XG5cbi5jay5jay1taW5pbWFwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcbn1cblxuLmNrLmNrLW1pbmltYXAsXG5cdC5jay5jay1taW5pbWFwIGlmcmFtZSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cbi5jay5jay1taW5pbWFwIGlmcmFtZSB7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItbWluaW1hcC1pZnJhbWUtb3V0bGluZSk7XG5cdFx0Ym94LXNoYWRvdzogMCAycHggNXB4IHZhcigtLWNrLWNvbG9yLW1pbmltYXAtaWZyYW1lLXNoYWRvdyk7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cbi5jay5jay1taW5pbWFwIC5jay5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0dG9wOiAwO1xuXHRcdGJhY2tncm91bmQ6IGhzbGEoIHZhcigtLWNrLWNvbG9yLW1pbmltYXAtdHJhY2tlci1iYWNrZ3JvdW5kKSwgLjIgKTtcblx0XHR6LWluZGV4OiAxO1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgMTAwbXMgZWFzZS1pbi1vdXQ7XG5cdH1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblxuLmNrLmNrLW1pbmltYXAgLmNrLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXIge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0fVxuXHRcdH1cblxuLmNrLmNrLW1pbmltYXAgLmNrLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXI6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDpoc2xhKCB2YXIoLS1jay1jb2xvci1taW5pbWFwLXRyYWNrZXItYmFja2dyb3VuZCksIC4zICk7XG5cdFx0fVxuXG4uY2suY2stbWluaW1hcCAuY2suY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlci5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyX2RyYWdnaW5nLFxuXHRcdC5jay5jay1taW5pbWFwIC5jay5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXJfZHJhZ2dpbmc6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDpoc2xhKCB2YXIoLS1jay1jb2xvci1taW5pbWFwLXRyYWNrZXItYmFja2dyb3VuZCksIC40ICk7XG5cdFx0fVxuXG4uY2suY2stbWluaW1hcCAuY2suY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlci5jay1taW5pbWFwX19wb3NpdGlvbi10cmFja2VyX2RyYWdnaW5nOjphZnRlciwgLmNrLmNrLW1pbmltYXAgLmNrLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXIuY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlcl9kcmFnZ2luZzpob3Zlcjo6YWZ0ZXIge1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0fVxuXG4uY2suY2stbWluaW1hcCAuY2suY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlcjo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogYXR0cihkYXRhLXByb2dyZXNzKSBcIiVcIjtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogNXB4O1xuXHRcdFx0cmlnaHQ6IDVweDtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLW1pbmltYXAtcHJvZ3Jlc3MtYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0XHRwYWRkaW5nOiAycHggNHB4O1xuXHRcdFx0Zm9udC1zaXplOiAxMHB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdHRyYW5zaXRpb246IG9wYWNpdHkgMTAwbXMgZWFzZS1pbi1vdXQ7XG5cdFx0fVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXG4uY2suY2stbWluaW1hcCAuY2suY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlcjo6YWZ0ZXIge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdH1cblx0XHRcdH1cblxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCAucGFnZS1icmVhayB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0Y2xlYXI6IGJvdGg7XG5cdHBhZGRpbmc6IDVweCAwO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmNrLWNvbnRlbnQgLnBhZ2UtYnJlYWs6OmFmdGVyIHtcblx0XHRjb250ZW50OiAnJztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMnB4IGRhc2hlZCBoc2woMCwgMCUsIDc3JSk7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuLmNrLWNvbnRlbnQgLnBhZ2UtYnJlYWtfX2xhYmVsIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAxO1xuXHRwYWRkaW5nOiAuM2VtIC42ZW07XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDc3JSk7XG5cdGJvcmRlci1yYWRpdXM6IDJweDtcblx0Zm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIFRhaG9tYSwgVmVyZGFuYSwgU2Fucy1TZXJpZjtcblx0Zm9udC1zaXplOiAwLjc1ZW07XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRjb2xvcjogaHNsKDAsIDAlLCAyMCUpO1xuXHRiYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRib3gtc2hhZG93OiAycHggMnB4IDFweCBoc2xhKDAsIDAlLCAwJSwgMC4xNSk7XG5cblx0LyogRGlzYWJsZSB0aGUgcG9zc2liaWxpdHkgdG8gc2VsZWN0IHRoZSBsYWJlbCB0ZXh0IGJ5IHRoZSB1c2VyLiAqL1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vKiBEbyBub3Qgc2hvdyB0aGUgcGFnZSBicmVhayBlbGVtZW50IGluc2lkZSB0aGUgcHJpbnQgcHJldmlldyB3aW5kb3cuICovXG5AbWVkaWEgcHJpbnQge1xuXHQuY2stY29udGVudCAucGFnZS1icmVhayB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdFx0LmNrLWNvbnRlbnQgLnBhZ2UtYnJlYWs6OmFmdGVyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdC8qXG5cdCAqIEZyb20gdGltZSB0byB0aW1lIHBsYWNpbmcgcGFnZS1icmVhayBkaXJlY3RseSBhZnRlciBhIGJsb2NrIGVsZW1lbnQgd2l0aCBtYXJnaW4gY2F1c2VzIGFwcGVuZGluZyBhIG5ldyBibGFuayBwYWdlIGluIHBhZ2luYXRpb24gbW9kZS5cblx0ICogUmVtb3ZpbmcgbWFyZ2luLWJvdHRvbSBmcm9tIHRoZSBibG9jayBlbGVtZW50IGZpeGVzIHRoYXQgaXNzdWUgYW5kIHRoZSBtYXJnaW4gaXMgbm90IGJlaW5nIG1vdmVkIHRvIHRoZSBuZXh0IGJsYW5rIHBhZ2UuXG5cdCAqXG5cdCAqIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIHBhZ2luYXRpb24gcGx1Z2lucy5cblx0ICovXG5cdC5jay1jb250ZW50ICo6aGFzKCsgLnBhZ2UtYnJlYWspIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgNDYlKTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGFkZHJlc3Mge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYWRkcmVzcyB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkFERFJFU1M8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBhZGRyZXNzIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+QUREUkVTUzwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGFkZHJlc3M6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGFkZHJlc3Mge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5BRERSRVNTPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGFkZHJlc3Mge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5BRERSRVNTPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYXNpZGUge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYXNpZGUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5BU0lERTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGFzaWRlIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+QVNJREU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBhc2lkZTpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYXNpZGUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5BU0lERTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBhc2lkZSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkFTSURFPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYmxvY2txdW90ZSB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBibG9ja3F1b3RlIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+QkxPQ0tRVU9URTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGJsb2NrcXVvdGUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5CTE9DS1FVT1RFPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYmxvY2txdW90ZTpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYmxvY2txdW90ZSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkJMT0NLUVVPVEU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgYmxvY2txdW90ZSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkJMT0NLUVVPVEU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBkZXRhaWxzIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGRldGFpbHMge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5ERVRBSUxTPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZGV0YWlscyB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkRFVEFJTFM8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBkZXRhaWxzOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBkZXRhaWxzIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+REVUQUlMUzwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBkZXRhaWxzIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+REVUQUlMUzwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGRpdjpub3QoLmNrLXdpZGdldCwgLmNrLXdpZGdldCAqKSB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBkaXY6bm90KC5jay13aWRnZXQsIC5jay13aWRnZXQgKikge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5ESVY8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBkaXY6bm90KC5jay13aWRnZXQsIC5jay13aWRnZXQgKikge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5ESVY8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBkaXY6bm90KC5jay13aWRnZXQsIC5jay13aWRnZXQgKik6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGRpdjpub3QoLmNrLXdpZGdldCwgLmNrLXdpZGdldCAqKSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkRJVjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBkaXY6bm90KC5jay13aWRnZXQsIC5jay13aWRnZXQgKikge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5ESVY8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBmb290ZXIge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZm9vdGVyIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+Rk9PVEVSPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZm9vdGVyIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+Rk9PVEVSPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZm9vdGVyOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBmb290ZXIge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5GT09URVI8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgZm9vdGVyIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+Rk9PVEVSPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDEge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDEge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IMTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgxIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDE8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMTpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDEge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IMTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkgxPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDIge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDIge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IMjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgyIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDI8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDIge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IMjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkgyPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDMge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDMge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IMzwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGgzIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDM8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMzpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDMge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5IMzwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoMyB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkgzPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDQge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDQge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5INDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg0IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDQ8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNDpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDQge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5INDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkg0PC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDUge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5INTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg1IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNTpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5INTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkg1PC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDYge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDYge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5INjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGg2IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SDY8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaDYge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5INjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBoNiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkg2PC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaGVhZGVyIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGhlYWRlciB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkhFQURFUjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGhlYWRlciB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkhFQURFUjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGhlYWRlcjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgaGVhZGVyIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+SEVBREVSPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIGhlYWRlciB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkhFQURFUjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG1haW4ge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgbWFpbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPk1BSU48L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBtYWluIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+TUFJTjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG1haW46bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG1haW4ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5NQUlOPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG1haW4ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5NQUlOPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgbmF2IHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG5hdiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPk5BVjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPXJ0bF0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG5hdiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPk5BVjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG5hdjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgbmF2IHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+TkFWPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG5hdiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPk5BVjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHByZSB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBwcmUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5QUkU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBwcmUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5QUkU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBwcmU6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHByZSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlBSRTwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBwcmUge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5QUkU8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBvbCB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBvbCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPk9MPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgb2wge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5PTDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG9sOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBvbCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPk9MPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIG9sIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+T0w8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSB1bCB7XG5cdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRwYWRkaW5nLXRvcDogMTVweDtcblx0XHQvKiBGaXggZm9yIE11bHRpLXJvb3QgZWRpdG9yXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1OTY5ICovXG5cdH1cblxuW2Rpcj1sdHJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSB1bCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlVMPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgdWwge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5VTDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHVsOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSB1bCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlVMPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHVsIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+VUw8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBwIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHAge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5QPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9cnRsXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgcCB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlA8L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBwOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBwIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+UDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBwIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+UDwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHNlY3Rpb24ge1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHR9XG5cbltkaXI9bHRyXSAuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgc2VjdGlvbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPlNFQ1RJT048L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSBzZWN0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4LCAwKScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PScxMDAlJyB0ZXh0LWFuY2hvcj0nZW5kJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+U0VDVElPTjwvdGV4dD48L3N2Zz5cIik7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHNlY3Rpb246bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCguY2std2lkZ2V0OmhvdmVyKSB7XG5cdFx0b3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1jay1zaG93LWJsb2Nrcy1ib3JkZXItY29sb3IpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHNlY3Rpb24ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5TRUNUSU9OPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIHNlY3Rpb24ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5TRUNUSU9OPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgOndoZXJlKGZpZ3VyZS5pbWFnZSwgZmlndXJlLnRhYmxlKSBmaWdjYXB0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdHBhZGRpbmctdG9wOiAxNXB4O1xuXHRcdC8qIEZpeCBmb3IgTXVsdGktcm9vdCBlZGl0b3Jcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTU5NjkgKi9cblx0fVxuXG5bZGlyPWx0cl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIDp3aGVyZShmaWd1cmUuaW1hZ2UsIGZpZ3VyZS50YWJsZSkgZmlnY2FwdGlvbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMycgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkZJR0NBUFRJT048L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG5cdH1cblxuW2Rpcj1ydGxdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSA6d2hlcmUoZmlndXJlLmltYWdlLCBmaWd1cmUudGFibGUpIGZpZ2NhcHRpb24ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5GSUdDQVBUSU9OPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjYWxjKDEwMCUgLSAxcHgpIDFweDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZS5jay1zaG93LWJsb2Nrczpub3QoLmNrLXdpZGdldCkgOndoZXJlKGZpZ3VyZS5pbWFnZSwgZmlndXJlLnRhYmxlKSBmaWdjYXB0aW9uOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKTpub3QoLmNrLXdpZGdldDpob3Zlcikge1xuXHRcdG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2stc2hvdy1ibG9ja3MtYm9yZGVyLWNvbG9yKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSA6d2hlcmUoZmlndXJlLmltYWdlLCBmaWd1cmUudGFibGUpIGZpZ2NhcHRpb24ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzMnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz5GSUdDQVBUSU9OPC90ZXh0Pjwvc3ZnPlwiKTtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stc2hvdy1ibG9ja3M6bm90KC5jay13aWRnZXQpIDp3aGVyZShmaWd1cmUuaW1hZ2UsIGZpZ3VyZS50YWJsZSkgZmlnY2FwdGlvbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEyJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnID48dGV4dCBzdHlsZT0ncGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGw7IGNsaXAtcGF0aDogaW5zZXQoLTNweCk7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCwgMCknIHN0cm9rZT0nJTIzRUFFQUVBJyBzdHJva2Utd2lkdGg9JzEzJyBkb21pbmFudC1iYXNlbGluZT0nbWlkZGxlJyBmaWxsPSdibGFjaycgeD0nMTAwJScgdGV4dC1hbmNob3I9J2VuZCcgeT0nNycgZm9udC1zaXplPSc5cHgnIGZvbnQtZmFtaWx5PSdDb25zb2xhcywgJTIyTHVjaWRhIENvbnNvbGUlMjIsICUyMkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXIlMjIsICUyMkRlamFWdSBTYW5zIE1vbm8lMjIsICUyMkJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyUyMiwgJTIyTGliZXJhdGlvbiBNb25vJTIyLCBNb25hY28sICUyMkNvdXJpZXIgTmV3JTIyLCBDb3VyaWVyLCBtb25vc3BhY2UnPkZJR0NBUFRJT048L3RleHQ+PC9zdmc+XCIpO1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IGNhbGMoMTAwJSAtIDFweCkgMXB4O1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5cbi5jay1zb3VyY2UtZWRpdGluZy1hcmVhIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2stc291cmNlLWVkaXRpbmctYXJlYTo6YWZ0ZXIsXG4uY2stc291cmNlLWVkaXRpbmctYXJlYSB0ZXh0YXJlYSB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRtYXJnaW46IDA7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRsaW5lLWhlaWdodDogdmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSk7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLW5vcm1hbCk7XG5cdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbn1cblxuLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWE6OmFmdGVyIHtcblx0Y29udGVudDogYXR0cihkYXRhLXZhbHVlKSBcIiBcIjtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWEgdGV4dGFyZWEge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdHJlc2l6ZTogbm9uZTtcblx0b3V0bGluZTogbm9uZTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblxuXHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHRib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay1zb3VyY2UtZWRpdGluZy1hcmVhIHRleHRhcmVhLFxuXHQuY2stc291cmNlLWVkaXRpbmctYXJlYSB0ZXh0YXJlYS5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cblxuLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWEgdGV4dGFyZWE6bm90KFtyZWFkb25seV0pOmZvY3VzIHtcblx0XHQvKiBEaXNhYmxlIG5hdGl2ZSBvdXRsaW5lLiAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1pbm5lci1zaGFkb3cpLCAwIDA7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWNoYXJhY3Rlci1ncmlkIHtcblx0bWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uY2suY2stY2hhcmFjdGVyLWdyaWQgLmNrLWNoYXJhY3Rlci1ncmlkX190aWxlcyB7XG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stY2hhcmFjdGVyLWluZm8ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBOb3RlOiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIHdpcmVmcmFtZSBzdHlsZXMgb25seS4gQnV0IHNpbmNlIHRoZXJlIGFyZSBubyBzdWNoIHN0eWxlcyxcbiAqIGl0IGFjdHMgYXMgYSBtZXNzYWdlIHRvIHRoZSBidWlsZGVyIHRlbGxpbmcgdGhhdCBpdCBzaG91bGQgbG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGVzXG4gKiAqKmluIHRoZSB0aGVtZSoqIHdoZW4gY29tcGlsaW5nIHRoZSBlZGl0b3IuXG4gKi9cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYge1xuXHRcdHdpZHRoOiAzNTBweDtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdFx0ZGlzcGxheTogZ3JpZDtcblx0XHRncmlkLWNvbHVtbi1nYXA6IDBweDtcblx0XHRncmlkLXJvdy1nYXA6IDBweDtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblx0XHRncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gMWZyIGF1dG87XG5cdH1cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWNhdGVnb3JpZXMge1xuXHRcdFx0Z3JpZC1hcmVhOiAxIC8gMSAvIDIgLyAyO1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdH1cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWNhdGVnb3JpZXMgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdFx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWNhdGVnb3JpZXMgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0XHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0XHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1taW4tZXJyb3Itd2lkdGgpO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0XHRcdGFuaW1hdGlvbjogY2stdGFibGUtZm9ybS1sYWJlbGVkLXZpZXctc3RhdHVzLWFwcGVhciAuMTVzIGVhc2UgYm90aDtcblxuXHRcdFx0XHRcdC8qIFRoZSBhcnJvdyBwb2ludGluZyB0b3dhcmRzIHRoZSBmaWVsZC4gKi9cblx0XHRcdFx0fVxuXG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzID4gLmNrLWRpYWxvZ19fY29udGVudCA+IGRpdiA+IC5jay1jaGFyYWN0ZXItY2F0ZWdvcmllcyA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzOjphZnRlciB7XG5cdFx0XHRcdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpIHRyYW5zcGFyZW50O1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAwIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpO1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdFx0XHR9XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2ID4gLmNrLWNoYXJhY3Rlci1jYXRlZ29yaWVzID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG4vKiBIaWRlIHRoZSBlcnJvciBiYWxsb29uIHdoZW4gdGhlIGZpZWxkIGlzIGJsdXJyZWQuIE1ha2VzIHRoZSBleHBlcmllbmNlIG11Y2ggbW9yZSBjbGVhci4gKi9cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWNhdGVnb3JpZXMgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay1pbnB1dC5jay1lcnJvcjpub3QoOmZvY3VzKSArIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0fVxuXG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzID4gLmNrLWRpYWxvZ19fY29udGVudCA+IGRpdiA+IC5jay1jaGFyYWN0ZXItY2F0ZWdvcmllcyA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2stbGFiZWwge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0fVxuXG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzID4gLmNrLWRpYWxvZ19fY29udGVudCA+IGRpdiA+IC5jay1jaGFyYWN0ZXItY2F0ZWdvcmllcyAuY2stZHJvcGRvd24ge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2ID4gLmNrLWNoYXJhY3Rlci1jYXRlZ29yaWVzIC5jay1kcm9wZG93biA+IGJ1dHRvbjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHRcdFx0fVxuXG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzID4gLmNrLWRpYWxvZ19fY29udGVudCA+IGRpdiA+IC5jay1jaGFyYWN0ZXItY2F0ZWdvcmllcyAuY2stZHJvcGRvd24gPiBidXR0b24gPiBzcGFuIHtcblx0XHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdH1cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyA+IC5jay1kaWFsb2dfX2NvbnRlbnQgPiBkaXYgPiAuY2stY2hhcmFjdGVyLWdyaWQge1xuXHRcdFx0Z3JpZC1hcmVhOiAyIC8gMSAvIDMgLyAyO1xuXHRcdFx0bWF4LWhlaWdodDogMjAwcHg7XG5cdFx0fVxuXG4uY2suY2stc3BlY2lhbC1jaGFyYWN0ZXJzID4gLmNrLWRpYWxvZ19fY29udGVudCA+IGRpdiA+IC5jay1jaGFyYWN0ZXItaW5mbyB7XG5cdFx0XHRncmlkLWFyZWE6IDMgLyAxIC8gNCAvIDI7XG5cdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stc3R5bGUtcGFuZWwtY29sdW1uczogMztcbn1cblxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIHtcblx0ZGlzcGxheTogZ3JpZDtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY2stc3R5bGUtcGFuZWwtY29sdW1ucyksYXV0byk7XG5cdGp1c3RpZnktY29udGVudDogc3RhcnQ7XG59XG5cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHR9XG5cbi5jay5jay1zdHlsZS1wYW5lbCAuY2stc3R5bGUtZ3JpZCAuY2stc3R5bGUtZ3JpZF9fYnV0dG9uIC5jay1zdHlsZS1ncmlkX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgLnRhYmxlIHtcblx0LyogR2l2ZSB0aGUgdGFibGUgd2lkZ2V0IHNvbWUgYWlyIGFuZCBjZW50ZXIgaXQgaG9yaXpvbnRhbGx5ICovXG5cdC8qIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgZXF1YWwgdG8gLS1jay1zcGFjaW5nLWxhcmdlIHZhcmlhYmxlIGlmIHVzZWQgaW4gdGhlIGVkaXRvciBjb250ZXh0XG5cdHRvIGF2b2lkIHRoZSBjb250ZW50IGp1bXBpbmcgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS4gKi9cblx0bWFyZ2luOiAwLjllbSBhdXRvO1xuXHRkaXNwbGF5OiB0YWJsZTtcbn1cblxuLmNrLWNvbnRlbnQgLnRhYmxlIHRhYmxlIHtcblx0XHQvKiBUaGUgdGFibGUgY2VsbHMgc2hvdWxkIGhhdmUgc2xpZ2h0IGJvcmRlcnMgKi9cblx0XHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRcdGJvcmRlci1zcGFjaW5nOiAwO1xuXG5cdFx0LyogVGFibGUgd2lkdGggYW5kIGhlaWdodCBhcmUgc2V0IG9uIHRoZSBwYXJlbnQgPGZpZ3VyZT4uIE1ha2Ugc3VyZSB0aGUgdGFibGUgaW5zaWRlIHN0cmV0Y2hlc1xuXHRcdHRvIHRoZSBmdWxsIGRpbWVuc2lvbnMgb2YgdGhlIGNvbnRhaW5lciAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjE4NikuICovXG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdFx0LyogVGhlIG91dGVyIGJvcmRlciBvZiB0aGUgdGFibGUgc2hvdWxkIGJlIHNsaWdodGx5IGRhcmtlciB0aGFuIHRoZSBpbm5lciBsaW5lcy5cblx0XHRBbHNvIHNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRhYmxlL2lzc3Vlcy81MC4gKi9cblx0XHRib3JkZXI6IDFweCBkb3VibGUgaHNsKDAsIDAlLCA3MCUpO1xuXHR9XG5cbi5jay1jb250ZW50IC50YWJsZSB0YWJsZSB0ZCxcblx0XHQuY2stY29udGVudCAudGFibGUgdGFibGUgdGgge1xuXHRcdFx0bWluLXdpZHRoOiAyZW07XG5cdFx0XHRwYWRkaW5nOiAuNGVtO1xuXG5cdFx0XHQvKiBUaGUgYm9yZGVyIGlzIGluaGVyaXRlZCBmcm9tIC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSBzdHlsZXMsIHNvIHRoZW9yZXRpY2FsbHkgaXQncyBub3QgbmVjZXNzYXJ5IGhlcmUuXG5cdFx0XHRIb3dldmVyLCB0aGUgYm9yZGVyIGlzIGEgY29udGVudCBzdHlsZSwgc28gaXQgc2hvdWxkIHVzZSAuY2stY29udGVudCAoc28gaXQgd29ya3Mgb3V0c2lkZSB0aGUgZWRpdG9yKS5cblx0XHRcdEhlbmNlLCB0aGUgZHVwbGljYXRpb24uIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82MzE0ICovXG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCBoc2woMCwgMCUsIDc1JSk7XG5cdFx0fVxuXG4uY2stY29udGVudCAudGFibGUgdGFibGUgdGgge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRiYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCAwJSwgNSUpO1xuXHRcdH1cblxuLyoqXG4gKiBFeHBhbmRpbmcgdGhlIHRhYmxlIHRvIHRoZSBmdWxsIGhlaWdodCBvZiB0aGUgcGFyZW50IGNvbnRhaW5lciBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0YWJsZXNcbiAqIGFyZSByZW5kZXJlZCBpbnNpZGUgPGZpZ3VyZT4gZWxlbWVudHMsIHdoaWNoIGlzIGtpbmRhIGJ1Z2d5IGluIHRhYmxlIGhlaWdodCBjYWxjdWxhdGlvbi5cbiAqIFdoaWxlIHNldHRpbmcgYGhlaWdodDogMTAwJWAgZml4ZXMgdGhlIGlzc3VlIGluIHRoZSBlZGl0aW5nIG1vZGUgZGVzY3JpYmVkIGhlcmU6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82MTg2XG4gKlxuICogaXQncyBjYXVzaW5nIGFub3RoZXIgaXNzdWUgd2l0aCB0aGUgdGFibGUgaGVpZ2h0IGluIHRoZSBwcmludCBwcmV2aWV3IG1vZGUgaGVyZTpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE2ODU2XG4gKlxuICogRm9yIG5vdywgcmVzZXR0aW5nIHRoZSBoZWlnaHQgdG8gYGluaXRpYWxgIGluIHRoZSBwcmludCBtb2RlIHdvcmtzIGFzIGEgd29ya2Fyb3VuZC5cbiAqL1xuQG1lZGlhIHByaW50IHtcblx0LmNrLWNvbnRlbnQgLnRhYmxlIHRhYmxlIHtcblx0XHRoZWlnaHQ6IGluaXRpYWw7XG5cdH1cbn1cblxuLyogVGV4dCBhbGlnbm1lbnQgb2YgdGhlIHRhYmxlIGhlYWRlciBzaG91bGQgbWF0Y2ggdGhlIGVkaXRvciBzZXR0aW5ncyBhbmQgb3ZlcnJpZGUgdGhlIG5hdGl2ZSBicm93c2VyIHN0eWxpbmcsXG53aGVuIGNvbnRlbnQgaXMgYXZhaWxhYmxlIG91dHNpZGUgdGhlIGVkaXRvci4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY2MzggKi9cbi5jay1jb250ZW50W2Rpcj1cInJ0bFwiXSAudGFibGUgdGgge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmNrLWNvbnRlbnRbZGlyPVwibHRyXCJdIC50YWJsZSB0aCB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlIC5jay10YWJsZS1ib2d1cy1wYXJhZ3JhcGgge1xuXHQvKlxuXHQgKiBVc2UgZGlzcGxheTppbmxpbmUtYmxvY2sgdG8gZm9yY2UgQ2hyb21lL1NhZmFyaSB0byBsaW1pdCB0ZXh0IG11dGF0aW9ucyB0byB0aGlzIGVsZW1lbnQuXG5cdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82MDYyLlxuXHQgKi9cblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdC8qXG5cdCAqIElubGluZSBIVE1MIGVsZW1lbnRzIG5lc3RlZCBpbiB0aGUgc3BhbiBzaG91bGQgYWx3YXlzIGJlIGRpbWVuc2lvbmVkIGluIHJlbGF0aW9uIHRvIHRoZSB3aG9sZSBjZWxsIHdpZHRoLlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTExNy5cblx0ICovXG5cdHdpZHRoOiAxMDAlO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fZ3JpZCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWZvcm1fX3JvdyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0LyogSWdub3JlIGxhYmVscyB0aGF0IHdvcmsgYXMgZmllbGRzZXQgbGVnZW5kcyAqL1xufVxuXG4uY2suY2stZm9ybV9fcm93ID4gKjpub3QoLmNrLWxhYmVsKSB7XG5cdFx0ZmxleC1ncm93OiAxO1xuXHR9XG5cbi5jay5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fYWN0aW9uLXJvdyAuY2stYnV0dG9uLXNhdmUsXG5cdFx0LmNrLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IC5jay1idXR0b24tY2FuY2VsIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdH1cblxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cgLmNrLmNrLXRvb2xiYXI6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0LyogNCBidXR0b25zIG91dCBvZiA3IChoLWFsaWdubWVudCArIHYtYWxpZ25tZW50KSA9IDAuNTcgKi9cblx0XHRcdFx0XHRmbGV4LWdyb3c6IDAuNTc7XG5cdFx0XHRcdH1cblxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cgLmNrLmNrLXRvb2xiYXI6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0XHQvKiAzIGJ1dHRvbnMgb3V0IG9mIDcgKGgtYWxpZ25tZW50ICsgdi1hbGlnbm1lbnQpID0gMC40MyAqL1xuXHRcdFx0XHRcdGZsZXgtZ3JvdzogMC40Mztcblx0XHRcdFx0fVxuXG4uY2suY2stdGFibGUtY2VsbC1wcm9wZXJ0aWVzLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyAuY2suY2stdG9vbGJhciAuY2stYnV0dG9uIHtcblx0XHRcdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWlucHV0LWNvbG9yIHtcblx0d2lkdGg6IDEwMCU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cblxuLmNrLmNrLWlucHV0LWNvbG9yID4gaW5wdXQuY2suY2staW5wdXQtdGV4dCB7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdGZsZXgtZ3JvdzogMTtcblx0fVxuXG4uY2suY2staW5wdXQtY29sb3IgPiBkaXYuY2suY2stZHJvcGRvd24ge1xuXHRcdG1pbi13aWR0aDogYXV0bztcblxuXHRcdC8qIFRoaXMgZHJvcGRvd24gaGFzIG5vIGFycm93IGJ1dCBhIGNvbG9yIHByZXZpZXcgaW5zdGVhZC4gKi9cblx0fVxuXG4uY2suY2staW5wdXQtY29sb3IgPiBkaXYuY2suY2stZHJvcGRvd24gPiAuY2staW5wdXQtY29sb3JfX2J1dHRvbiAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4uY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b24ge1xuXHRcdC8qIFJlc29sdmluZyBpc3N1ZSB3aXRoIG1pc2FsaWduZWQgYnV0dG9ucyBvbiBTYWZhcmkgKHNlZSAjMTA1ODkpICovXG5cdFx0ZGlzcGxheTogZmxleDtcblx0fVxuXG4uY2suY2staW5wdXQtY29sb3IgLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b24gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHR9XG5cbi5jay5jay1pbnB1dC1jb2xvciAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlldyA+IC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3X19uby1jb2xvci1pbmRpY2F0b3Ige1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2JvcmRlci1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1mb3JtX19iYWNrZ3JvdW5kLXJvdyB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0fVxuXG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IHtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0fVxuXG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG5cdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHR9XG5cbi5jay5jay10YWJsZS1mb3JtIC5jay1mb3JtX19yb3cuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cgLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stZHJvcGRvd24ge1xuXHRcdFx0XHRcdGZsZXgtZ3JvdzogMDtcblx0XHRcdFx0fVxuXG4uY2suY2stdGFibGUtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbnMtcm93IC5jay10YWJsZS1mb3JtX19kaW1lbnNpb24tb3BlcmF0b3Ige1xuXHRcdFx0XHRmbGV4LWdyb3c6IDA7XG5cdFx0XHR9XG5cbi5jay5jay10YWJsZS1mb3JtIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdC8qIEFsbG93IGFic29sdXRlIHBvc2l0aW9uaW5nIG9mIHRoZSBzdGF0dXMgKGVycm9yKSBiYWxsb29ucy4gKi9cblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuLmNrLmNrLXRhYmxlLWZvcm0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0Ym90dG9tOiBjYWxjKCAtMSAqIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgKTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsMTAwJSk7XG5cblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgYmFsbG9vbiBzdGF0dXMgc3RheXMgb24gdG9wIG9mIG90aGVyIGZvcm0gZWxlbWVudHMuICovXG5cdFx0XHR6LWluZGV4OiAxO1xuXG5cdFx0XHQvKiBUaGUgYXJyb3cgcG9pbnRpbmcgdG93YXJkcyB0aGUgZmllbGQuICovXG5cdFx0fVxuXG4uY2suY2stdGFibGUtZm9ybSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1czo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogY2FsYyggLTEgKiB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpICk7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCAtNTAlICk7XG5cdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm0gLmNrLWZvcm1fX3Jvdy5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm1fX2FsaWdubWVudC1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0ZmxleC1iYXNpczogMDtcblx0XHRcdGFsaWduLWNvbnRlbnQ6IGJhc2VsaW5lO1xuXHRcdH1cblxuLmNrLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybSAuY2stZm9ybV9fcm93LmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyAuY2suY2stdG9vbGJhciAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdFx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0XHRcdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24tYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5NyUpO1xuXHQtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24tdGV4dDogaHNsKDAsIDAlLCAyMCUpO1xuXHQtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZDogaHNsKDUyZGVnIDEwMCUgNTAlKTtcbn1cblxuLyogQ29udGVudCBzdHlsZXMgKi9cbi5jay1jb250ZW50IC50YWJsZSA+IGZpZ2NhcHRpb24ge1xuXHRkaXNwbGF5OiB0YWJsZS1jYXB0aW9uO1xuXHRjYXB0aW9uLXNpZGU6IHRvcDtcblx0d29yZC1icmVhazogYnJlYWstd29yZDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3Itc2VsZWN0b3ItY2FwdGlvbi10ZXh0KTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itc2VsZWN0b3ItY2FwdGlvbi1iYWNrZ3JvdW5kKTtcblx0cGFkZGluZzogLjZlbTtcblx0Zm9udC1zaXplOiAuNzVlbTtcblx0b3V0bGluZS1vZmZzZXQ6IC0xcHg7XG5cblx0LyogSW1wcm92ZSBwbGFjZWhvbGRlciByZW5kZXJpbmcgaW4gaGlnaC1jb25zdHJhc3QgbW9kZSAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcpLiAqL1xufVxuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcblx0XHQuY2stY29udGVudCAudGFibGUgPiBmaWdjYXB0aW9uIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblx0XHRjb2xvcjogdW5zZXQ7XG5cdFx0fVxuXHR9XG5cbi8qIEVkaXRpbmcgc3R5bGVzICovXG5AbWVkaWEgKGZvcmNlZC1jb2xvcnM6IG5vbmUpIHtcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgPiBmaWdjYXB0aW9uLnRhYmxlX19jYXB0aW9uX2hpZ2hsaWdodGVkIHtcblx0XHRcdGFuaW1hdGlvbjogY2stdGFibGUtY2FwdGlvbi1oaWdobGlnaHQgLjZzIGVhc2Utb3V0O1xuXHRcdH1cblx0fVxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlID4gZmlnY2FwdGlvbi5jay1wbGFjZWhvbGRlcjo6YmVmb3JlIHtcblx0XHRwYWRkaW5nLWxlZnQ6IGluaGVyaXQ7XG5cdFx0cGFkZGluZy1yaWdodDogaW5oZXJpdDtcblxuXHRcdC8qXG5cdFx0ICogTWFrZSBzdXJlIHRoZSB0YWJsZSBjYXB0aW9uIHBsYWNlaG9sZGVyIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIHBsYWNlaG9sZGVyIGFyZWEuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxNjIuXG5cdFx0ICovXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR9XG5cbkBrZXlmcmFtZXMgY2stdGFibGUtY2FwdGlvbi1oaWdobGlnaHQge1xuXHQwJSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itc2VsZWN0b3ItY2FwdGlvbi1oaWdobGlnaHRlZC1iYWNrZ3JvdW5kKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24tYmFja2dyb3VuZCk7XG5cdH1cbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXNlbGVjdG9yLWNvbHVtbi1yZXNpemVyLWhvdmVyOiB2YXIoLS1jay1jb2xvci1iYXNlLWFjdGl2ZSk7XG5cdC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItd2lkdGg6IDdweDtcblxuXHQvKiBUaGUgb2Zmc2V0IHVzZWQgZm9yIGFic29sdXRlIHBvc2l0aW9uaW5nIG9mIHRoZSByZXNpemVyIGVsZW1lbnQsIHNvIHRoYXQgaXQgaXMgcGxhY2VkIGV4YWN0bHkgYWJvdmUgdGhlIGNlbGwgYm9yZGVyLlxuXHQgICBUaGUgdmFsdWUgaXM6IG1pbnVzIGhhbGYgdGhlIHdpZHRoIG9mIHRoZSByZXNpemVyIGRlY3JlYXNlZCBhZGRpdGlvbmFseSBieSB0aGUgaGFsZiB0aGUgd2lkdGggb2YgdGhlIGJvcmRlciAoMC41cHgpLiAqL1xuXHQtLWNrLXRhYmxlLWNvbHVtbi1yZXNpemVyLXBvc2l0aW9uLW9mZnNldDogY2FsYyh2YXIoLS1jay10YWJsZS1jb2x1bW4tcmVzaXplci13aWR0aCkgKiAtMC41IC0gMC41cHgpO1xufVxuXG4uY2stY29udGVudCAudGFibGUgLmNrLXRhYmxlLXJlc2l6ZWQge1xuXHR0YWJsZS1sYXlvdXQ6IGZpeGVkO1xufVxuXG4uY2stY29udGVudCAudGFibGUgdGFibGUge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2stY29udGVudCAudGFibGUgdGQsXG4uY2stY29udGVudCAudGFibGUgdGgge1xuXHQvKiBUbyBwcmV2ZW50IHRleHQgb3ZlcmZsb3dpbmcgYmV5b25kIGl0cyBjZWxsIHdoZW4gY29sdW1ucyBhcmUgcmVzaXplZCBieSByZXNpemUgaGFuZGxlclxuXHQoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9wdWxsLzE0Mzc5I2lzc3VlY29tbWVudC0xNTg5NDYwOTc4KS4gKi9cblx0b3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdGJvdHRvbTogMDtcblx0cmlnaHQ6IHZhcigtLWNrLXRhYmxlLWNvbHVtbi1yZXNpemVyLXBvc2l0aW9uLW9mZnNldCk7XG5cdHdpZHRoOiB2YXIoLS1jay10YWJsZS1jb2x1bW4tcmVzaXplci13aWR0aCk7XG5cdGN1cnNvcjogY29sLXJlc2l6ZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWNvbHVtbi1yZXNpemVfZGlzYWJsZWQgLnRhYmxlIC5jay10YWJsZS1jb2x1bW4tcmVzaXplciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIFRoZSByZXNpemVyIGVsZW1lbnRzLCB3aGljaCBhcmUgZXh0ZW5kZWQgdG8gYW4gZXh0cmVtZWx5IGhpZ2ggaGVpZ2h0LCBicmVhayB0aGUgZHJhZyAmIGRyb3AgZmVhdHVyZSBpbiBDaHJvbWUuIFRvIG1ha2UgaXQgd29yayBhZ2FpbixcbiAgIGFsbCByZXNpemVycyBtdXN0IGJlIGhpZGRlbiB3aGlsZSB0aGUgdGFibGUgaXMgZHJhZ2dlZC4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZVtkcmFnZ2FibGVdIC5jay10YWJsZS1jb2x1bW4tcmVzaXplciB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXI6aG92ZXIsXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyX19hY3RpdmUge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1zZWxlY3Rvci1jb2x1bW4tcmVzaXplci1ob3Zlcik7XG5cdG9wYWNpdHk6IDAuMjU7XG5cdC8qIFRoZSByZXNpemVyIGVsZW1lbnQgcmVzaWRlcyBpbiBlYWNoIGNlbGwgc28gdG8gb2NjdXB5IHRoZSBlbnRpcmUgaGVpZ2h0IG9mIHRoZSB0YWJsZSwgd2hpY2ggaXMgdW5rbm93biBmcm9tIGEgQ1NTIHBvaW50IG9mIHZpZXcsXG5cdCAgIGl0IGlzIGV4dGVuZGVkIHRvIGFuIGV4dHJlbWVseSBoaWdoIGhlaWdodC4gRXZlbiBmb3Igc2NyZWVucyB3aXRoIGEgdmVyeSBoaWdoIHBpeGVsIGRlbnNpdHksIHRoZSByZXNpemVyIHdpbGwgZnVsZmlsbCBpdHMgcm9sZSBhc1xuXHQgICBpdCBzaG91bGQsIGkuZS4gZm9yIGEgc2NyZWVuIG9mIDQ3NiBwcGkgdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgcmVzaXplciB3aWxsIHRha2Ugb3ZlciAzNTAgc2hlZXRzIG9mIEE0IGZvcm1hdCwgd2hpY2ggaXMgdG90YWxseVxuXHQgICB1bnJlYWxpc3RpYyBoZWlnaHQgZm9yIGEgc2luZ2xlIHRhYmxlLiAqL1xuXHR0b3A6IC05OTk5OTlweDtcblx0Ym90dG9tOiAtOTk5OTk5cHg7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlW2Rpcj1ydGxdIC50YWJsZSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXIge1xuXHRsZWZ0OiB2YXIoLS1jay10YWJsZS1jb2x1bW4tcmVzaXplci1wb3NpdGlvbi1vZmZzZXQpO1xuXHRyaWdodDogdW5zZXQ7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogQSBjbGFzcyB3aGljaCBoaWRlcyBhbiBlbGVtZW50IGluIERPTS5cbiAqL1xuXG4uY2staGlkZGVuIHtcblx0LyogT3ZlcnJpZGUgc2VsZWN0b3Igc3BlY2lmaWNpdHkuIE90aGVyd2lzZSwgYWxsIGVsZW1lbnRzIHdpdGggc29tZSBkaXNwbGF5XG5cdHN0eWxlIGRlZmluZWQgd2lsbCBvdmVycmlkZSB0aGlzIG9uZSwgd2hpY2ggaXMgbm90IGEgZGVzaXJlZCByZXN1bHQuICovXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC0tY2stei1kZWZhdWx0OiAxO1xuXHQtLWNrLXotcGFuZWw6IGNhbGMoIHZhcigtLWNrLXotZGVmYXVsdCkgKyA5OTkgKTtcblx0LS1jay16LWRpYWxvZzogOTk5OTtcbn1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4vKipcbiAqIEEgY2xhc3MgdGhhdCBkaXNhYmxlcyBhbGwgdHJhbnNpdGlvbnMgb2YgdGhlIGVsZW1lbnQgYW5kIGl0cyBjaGlsZHJlbi5cbiAqL1xuLmNrLXRyYW5zaXRpb25zLWRpc2FibGVkLFxuLmNrLXRyYW5zaXRpb25zLWRpc2FibGVkICoge1xuXHR0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuOnJvb3Qge1xuXHQvKiB3aGVyZSA3LjUocHgpIGlzIHRoZSBmb250IHNpemUgb2YgdGhlIHBvd2VyZWQgYnkgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stcG93ZXJlZC1ieS1mb250LXNpemU6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogNy41IC8gMTMpO1xuXHQvKiB3aGVyZSAxMChweCkgaXMgdGhlIGxpbmUgaGVpZ2h0IG9mIHRoZSBwb3dlcmVkIGJ5IGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLXBvd2VyZWQtYnktbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogMTAgLyAxMyk7XG5cdC8qIHdoZXJlIC0wLjIocHgpIGlzIHRoZSBsZXR0ZXIgc3BhY2luZyBvZiB0aGUgcG93ZXJlZCBieSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1wb3dlcmVkLWJ5LWxldHRlci1zcGFjaW5nOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIC0wLjIgLyAxMyk7XG5cdC0tY2stcG93ZXJlZC1ieS1wYWRkaW5nLXZlcnRpY2FsOiAycHg7XG5cdC0tY2stcG93ZXJlZC1ieS1wYWRkaW5nLWhvcml6b250YWw6IDRweDtcblx0LS1jay1wb3dlcmVkLWJ5LXRleHQtY29sb3I6IGhzbCgwLCAwJSwgMzElKTtcblx0LS1jay1wb3dlcmVkLWJ5LWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHQtLWNrLXBvd2VyZWQtYnktYmFja2dyb3VuZDogaHNsKDAsIDAlLCAxMDAlKTtcblx0LS1jay1wb3dlcmVkLWJ5LWJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblxuXHQtLWNrLXBvd2VyZWQtYnktc3ZnLXdpZHRoOiA1Mztcblx0LS1jay1wb3dlcmVkLWJ5LXN2Zy1oZWlnaHQ6IDEwO1xuXHQtLWNrLXBvd2VyZWQtYnktaWNvbi13aWR0aDogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiB2YXIoLS1jay1wb3dlcmVkLWJ5LXN2Zy13aWR0aCkgLyAxMyk7XG5cdC0tY2stcG93ZXJlZC1ieS1pY29uLWhlaWdodDogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiB2YXIoLS1jay1wb3dlcmVkLWJ5LXN2Zy1oZWlnaHQpIC8gMTMpO1xufVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcG93ZXJlZC1ieS1iYWxsb29uIHtcblx0LS1jay1ib3JkZXItcmFkaXVzOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWJvcmRlci1yYWRpdXMpO1xuXG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLXBvd2VyZWQtYnktYmFja2dyb3VuZCk7XG5cdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHR6LWluZGV4OiBjYWxjKCB2YXIoLS1jay16LXBhbmVsKSAtIDEgKTtcbn1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXBvd2VyZWQtYnktYmFsbG9vbiAuY2suY2stcG93ZXJlZC1ieSB7XG5cdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLXBvd2VyZWQtYnktbGluZS1oZWlnaHQpO1xuXHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1wb3dlcmVkLWJ5LWJhbGxvb24gLmNrLmNrLXBvd2VyZWQtYnkgYSB7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdG9wYWNpdHk6IC42Njtcblx0XHRcdGZpbHRlcjogZ3JheXNjYWxlKDgwJSk7XG5cdFx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stcG93ZXJlZC1ieS1saW5lLWhlaWdodCk7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1wb3dlcmVkLWJ5LXBhZGRpbmctdmVydGljYWwpIHZhcigtLWNrLXBvd2VyZWQtYnktcGFkZGluZy1ob3Jpem9udGFsKTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1wb3dlcmVkLWJ5LWJhbGxvb24gLmNrLmNrLXBvd2VyZWQtYnkgLmNrLXBvd2VyZWQtYnlfX2xhYmVsIHtcblx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stcG93ZXJlZC1ieS1mb250LXNpemUpO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHZhcigtLWNrLXBvd2VyZWQtYnktbGV0dGVyLXNwYWNpbmcpO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAycHg7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDRweDtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stcG93ZXJlZC1ieS10ZXh0LWNvbG9yKTtcblxuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXBvd2VyZWQtYnktYmFsbG9vbiAuY2suY2stcG93ZXJlZC1ieSAuY2staWNvbiB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWljb24td2lkdGgpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay1wb3dlcmVkLWJ5LWljb24taGVpZ2h0KTtcblx0XHR9XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1wb3dlcmVkLWJ5LWJhbGxvb24gLmNrLmNrLXBvd2VyZWQtYnk6aG92ZXIgYSB7XG5cdFx0XHRcdGZpbHRlcjogZ3JheXNjYWxlKDAlKTtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXBvd2VyZWQtYnktYmFsbG9vbltjbGFzcyo9XCJwb3NpdGlvbl9pbnNpZGVcIl0ge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXBvd2VyZWQtYnktYmFsbG9vbltjbGFzcyo9XCJwb3NpdGlvbl9ib3JkZXJcIl0ge1xuXHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWJvcmRlci1jb2xvcik7XG5cdH1cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG46cm9vdCB7XG5cdC8qIHdoZXJlIDcuNShweCkgaXMgdGhlIGZvbnQgc2l6ZSBvZiB0aGUgZXZhbHVhdGlvbiBiYWRnZSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWZvbnQtc2l6ZTogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiA3LjUgLyAxMyk7XG5cdC8qIHdoZXJlIDcuNShweCkgaXMgdGhlIGxpbmUgaGVpZ2h0IG9mIHRoZSBldmFsdWF0aW9uIGJhZGdlIGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogNy41IC8gMTMpO1xuXHQvKiB3aGVyZSAtMC4yKHB4KSBpcyB0aGUgbGV0dGVyIHNwYWNpbmcgb2YgdGhlIGV2YWx1YXRpb24gYmFkZ2UgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1sZXR0ZXItc3BhY2luZzogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiAtMC4yIC8gMTMpO1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtcGFkZGluZy12ZXJ0aWNhbDogMnB4O1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtcGFkZGluZy1ob3Jpem9udGFsOiA0cHg7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS10ZXh0LWNvbG9yOiBoc2woMCwgMCUsIDMxJSk7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1ib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1ib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG59XG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1ldmFsdWF0aW9uLWJhZGdlLWJhbGxvb24ge1xuXHQtLWNrLWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYm9yZGVyLXJhZGl1cyk7XG5cblx0Ym94LXNoYWRvdzogbm9uZTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1iYWNrZ3JvdW5kKTtcblx0bWluLWhlaWdodDogdW5zZXQ7XG5cdHotaW5kZXg6IGNhbGMoIHZhcigtLWNrLXotcGFuZWwpIC0gMSApO1xufVxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZXZhbHVhdGlvbi1iYWRnZS1iYWxsb29uIC5jay5jay1ldmFsdWF0aW9uLWJhZGdlIHtcblx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1saW5lLWhlaWdodCk7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1wYWRkaW5nLXZlcnRpY2FsKSB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLXBhZGRpbmctaG9yaXpvbnRhbCk7XG5cdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWV2YWx1YXRpb24tYmFkZ2UtYmFsbG9vbiAuY2suY2stZXZhbHVhdGlvbi1iYWRnZSAuY2stZXZhbHVhdGlvbi1iYWRnZV9fbGFiZWwge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwYWRkaW5nOiAwIDJweDtcblx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1mb250LXNpemUpO1xuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtbGV0dGVyLXNwYWNpbmcpO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLXRleHQtY29sb3IpO1xuXHRcdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWV2YWx1YXRpb24tYmFkZ2UtYmFsbG9vbltjbGFzcyo9XCJwb3NpdGlvbl9pbnNpZGVcIl0ge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdH1cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWV2YWx1YXRpb24tYmFkZ2UtYmFsbG9vbltjbGFzcyo9XCJwb3NpdGlvbl9ib3JkZXJcIl0ge1xuXHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWJvcmRlci1jb2xvcik7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBNYWtlcyBlbGVtZW50IHVuc2VsZWN0YWJsZS5cbiAqL1xuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uIHtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24sIFtkaXI9XCJsdHJcIl0gYS5jay5jay1idXR0b24ge1xuXHRcdGp1c3RpZnktY29udGVudDogbGVmdDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24sIFtkaXI9XCJydGxcIl0gYS5jay5jay1idXR0b24ge1xuXHRcdGp1c3RpZnktY29udGVudDogcmlnaHQ7XG5cdH1cblxuLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCwgYS5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IC5jay1idXR0b25fX2xhYmVsLCBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cbi8qIENlbnRlciB0aGUgaWNvbiBob3Jpem9udGFsbHkgaW4gYSBidXR0b24gd2l0aG91dCB0ZXh0LiAqL1xuXG4uY2suY2stYnV0dG9uOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCksICBhLmNrLmNrLWJ1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpICB7XG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lciB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1saXN0LWl0ZW0tYnV0dG9uIHtcblx0bWluLWhlaWdodDogdW5zZXQ7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3JkZXItcmFkaXVzOiAwO1xufVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1saXN0LWl0ZW0tYnV0dG9uIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWxpc3QtaXRlbS1idXR0b24ge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWxpc3QtaXRlbS1idXR0b24uY2stbGlzdC1pdGVtLWJ1dHRvbl90b2dnbGVhYmxlIHtcblx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbGlzdC1pdGVtLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uX3RvZ2dsZWFibGUge1xuXHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuLmNrLmNrLWxpc3QtaXRlbS1idXR0b24gLmNrLWxpc3QtaXRlbS1idXR0b25fX2NoZWNrLWhvbGRlciB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFx0d2lkdGg6IC45ZW07XG5cdFx0aGVpZ2h0OiAuOWVtO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWxpc3QtaXRlbS1idXR0b24gLmNrLWxpc3QtaXRlbS1idXR0b25fX2NoZWNrLWhvbGRlciB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWxpc3QtaXRlbS1idXR0b24gLmNrLWxpc3QtaXRlbS1idXR0b25fX2NoZWNrLWhvbGRlciB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuLmNrLmNrLWxpc3QtaXRlbS1idXR0b24gLmNrLWxpc3QtaXRlbS1idXR0b25fX2NoZWNrLWljb24ge1xuXHRcdGhlaWdodDogMTAwJTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stY29sbGFwc2libGUuY2stY29sbGFwc2libGVfY29sbGFwc2VkID4gLmNrLWNvbGxhcHNpYmxlX19jaGlsZHJlbiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stY29sb3ItZ3JpZCB7XG5cdGRpc3BsYXk6IGdyaWQ7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jb2xvci1waWNrZXItaGV4LWlucHV0IHtcblx0d2lkdGg6IG1heC1jb250ZW50O1xufVxuXG4uY29sb3ItcGlja2VyLWhleC1pbnB1dCAuY2suY2staW5wdXQge1xuXHRcdG1pbi13aWR0aDogdW5zZXQ7XG5cdH1cblxuLmNrLmNrLWNvbG9yLXBpY2tlcl9fcm93IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSAwIDA7XG5cdHdpZHRoOiB1bnNldDtcbn1cblxuLmNrLmNrLWNvbG9yLXBpY2tlcl9fcm93IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdHBhZGRpbmctdG9wOiB1bnNldDtcblx0fVxuXG4uY2suY2stY29sb3ItcGlja2VyX19yb3cgLmNrLmNrLWlucHV0LXRleHQge1xuXHRcdHdpZHRoOiB1bnNldDtcblx0fVxuXG4uY2suY2stY29sb3ItcGlja2VyX19yb3cgLmNrLWNvbG9yLXBpY2tlcl9faGFzaC12aWV3IHtcblx0XHRwYWRkaW5nLXRvcDogdmFyKC0tY2stc3BhY2luZy10aW55KTtcblx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogVmlldyBmcmFnbWVudCB3aXRoIGNvbG9yIGdyaWRzLiAqL1xuXG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX3JlbW92ZS1jb2xvcixcblx0XHQuY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXBpY2tlciB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19yZW1vdmUtY29sb3IsIFtkaXI9XCJydGxcIl0gLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXIge1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdH1cblxuLyogVmlldyBmcmFnbWVudCB3aXRoIGEgY29sb3IgcGlja2VyLiAqL1xuXG4uY2suY2stY29sb3Itc2VsZWN0b3IgLmNrLWNvbG9yLXBpY2tlci1mcmFnbWVudCAuY2suY2stY29sb3Itc2VsZWN0b3JfYWN0aW9uLWJhciB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuXHRcdH1cblxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQgLmNrLmNrLWNvbG9yLXNlbGVjdG9yX2FjdGlvbi1iYXIgLmNrLWJ1dHRvbi1zYXZlLFxuXHRcdFx0LmNrLmNrLWNvbG9yLXNlbGVjdG9yIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQgLmNrLmNrLWNvbG9yLXNlbGVjdG9yX2FjdGlvbi1iYXIgLmNrLWJ1dHRvbi1jYW5jZWwge1xuXHRcdFx0XHRmbGV4OiAxXG5cdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1kaWFsb2cgLmNrLmNrLWRpYWxvZ19fYWN0aW9ucyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1kaWFsb2ctb3ZlcmxheSB7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lO1xuXG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0Ym90dG9tOiAwO1xuXHRsZWZ0OiAwO1xuXHRyaWdodDogMDtcblx0dG9wOiAwO1xufVxuXG4uY2suY2stZGlhbG9nLW92ZXJsYXkuY2stZGlhbG9nLW92ZXJsYXlfX3RyYW5zcGFyZW50IHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0YmFja2dyb3VuZDogbm9uZTtcblx0fVxuXG4uY2suY2stZGlhbG9nIHtcblx0b3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcblx0d2lkdGg6IGZpdC1jb250ZW50O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5jay5jay1kaWFsb2cgLmNrLmNrLWZvcm1fX2hlYWRlciAge1xuXHRcdGZsZXgtc2hyaW5rOiAwO1xuXHR9XG5cbi8qIE1vZGFscyBzaG91bGQgbm90IGJlIGRyYWdnYWJsZS4gKi9cblxuLmNrLmNrLWRpYWxvZzpub3QoLmNrLWRpYWxvZ19tb2RhbCkgLmNrLmNrLWZvcm1fX2hlYWRlciAuY2stZm9ybV9faGVhZGVyX19sYWJlbCB7XG5cdFx0XHRjdXJzb3I6IGdyYWI7XG5cdFx0fVxuXG4uY2suY2stZGlhbG9nLW92ZXJsYXkuY2stZGlhbG9nLW92ZXJsYXlfX3RyYW5zcGFyZW50IC5jay5jay1kaWFsb2cge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWRyb3Bkb3duLW1heC13aWR0aDogNzV2dztcbn1cblxuLmNrLmNrLWRyb3Bkb3duIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xuXHR9XG5cbi8qIERyb3Bkb3duIGJ1dHRvbiBzaG91bGQgc3BhbiBob3Jpem9udGFsbHksIGUuZy4gaW4gdmVydGljYWwgdG9vbGJhcnMgKi9cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7XG5cdFx0bWF4LXdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1tYXgtd2lkdGgpO1xuXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbC12aXNpYmxlIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9uZSxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbncsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX24sXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX25tdyxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbm1lIHtcblx0XHRcdGJvdHRvbTogMTAwJTtcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zZSxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc3csXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3Ntdyxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc21lLFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zIHtcblx0XHRcdC8qXG5cdFx0XHQgKiBVc2luZyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCAwLCAxMDAlLCAwICkgY2F1c2VzIGJsdXJyeSBkcm9wZG93biBvbiBDaHJvbWUgNjctNzgrIG9uIG5vbi1yZXRpbmEgZGlzcGxheXMuXG5cdFx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTA1My5cblx0XHRcdCAqL1xuXHRcdFx0dG9wOiAxMDAlO1xuXHRcdFx0Ym90dG9tOiBhdXRvO1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX25lLFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zZSB7XG5cdFx0XHRsZWZ0OiAwcHg7XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbncsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3N3IHtcblx0XHRcdHJpZ2h0OiAwcHg7XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfcyxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbiB7XG5cdFx0XHQvKiBQb3NpdGlvbmluZyBwYW5lbHMgcmVsYXRpdmUgdG8gdGhlIGNlbnRlciBvZiB0aGUgYnV0dG9uICovXG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbm13LFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zbXcge1xuXHRcdFx0LyogUG9zaXRpb25pbmcgcGFuZWxzIHJlbGF0aXZlIHRvIHRoZSBtaWRkbGUtd2VzdCBvZiB0aGUgYnV0dG9uICovXG5cdFx0XHRsZWZ0OiA3NSU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTc1JSk7XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbm1lLFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zbWUge1xuXHRcdFx0LyogUG9zaXRpb25pbmcgcGFuZWxzIHJlbGF0aXZlIHRvIHRoZSBtaWRkbGUtZWFzdCBvZiB0aGUgYnV0dG9uICovXG5cdFx0XHRsZWZ0OiAyNSU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI1JSk7XG5cdFx0fVxuXG4vKlxuICogVG9vbGJhciBkcm9wZG93biBwYW5lbHMgc2hvdWxkIGJlIGFsd2F5cyBhYm92ZSB0aGUgVUkgKGVnLiBvdGhlciBkcm9wZG93biBwYW5lbHMpIGZyb20gdGhlIGVkaXRvcidzIGNvbnRlbnQuXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNzg3NFxuICovXG4uY2suY2stdG9vbGJhciAuY2stZHJvcGRvd25fX3BhbmVsIHtcblx0ei1pbmRleDogY2FsYyggdmFyKC0tY2stei1wYW5lbCkgKyAxICk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1zcGxpdGJ1dHRvbiB7XG5cdC8qIEVuYWJsZSBmb250IHNpemUgaW5oZXJpdGFuY2UsIHdoaWNoIGFsbG93cyBmbHVpZCBVSSBzY2FsaW5nLiAqL1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbi5jay5jay1zcGxpdGJ1dHRvbiAuY2stc3BsaXRidXR0b25fX2FjdGlvbjpmb2N1cyB7XG5cdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpICsgMSk7XG5cdH1cblxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdG9vbGJhci1kcm9wZG93bi1tYXgtd2lkdGg6IDYwdnc7XG59XG5cbi5jay5jay10b29sYmFyLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzU1ODYgKi9cblx0d2lkdGg6IG1heC1jb250ZW50O1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLXRvb2xiYXItZHJvcGRvd24tbWF4LXdpZHRoKTtcbn1cblxuLmNrLmNrLXRvb2xiYXItZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsIC5jay1idXR0b246Zm9jdXMge1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpICsgMSk7XG5cdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uID4gLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRtYXgtaGVpZ2h0OiAzMTRweDsgLyogV2l0aCB0aGUgZGVmYXVsdCBzZXR0aW5ncywgdGhpcyBpcyBlcXVhbCB0byAxMCBtZW51IGl0ZW1zLiAqL1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotcGFuZWwpICsgMSk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51IHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1hcmlhLWxpdmUtYW5ub3VuY2VyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAtMTAwMDBweDtcblx0dG9wOiAtMTAwMDBweDtcbn1cblxuLmNrLmNrLWFyaWEtbGl2ZS1yZWdpb24tbGlzdCB7XG5cdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWZvcm1fX2hlYWRlciB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5jay5jay1mb3JtX19oZWFkZXIgaDIuY2stZm9ybV9faGVhZGVyX19sYWJlbCB7XG5cdFx0ZmxleC1ncm93OiAxO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1pY29uIHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxhYmVsIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi5jay5jay12b2ljZS1sYWJlbCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cblxuLmNrLmNrLWxpc3Qge1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5jay5jay1saXN0IC5jay1saXN0X19pdGVtLFxuXHQuY2suY2stbGlzdCAuY2stbGlzdF9fc2VwYXJhdG9yIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG4vKiBNYWtlIHN1cmUgdGhhdCB3aGF0ZXZlciBjaGlsZCBvZiB0aGUgbGlzdCBpdGVtIGdldHMgZm9jdXMsIGl0IHJlbWFpbnMgb24gdGhlXG5cdHRvcC4gVGhhbmtzIHRvIHRoYXQsIHN0eWxlcyBsaWtlIGJveC1zaGFkb3csIG91dGxpbmUsIGV0Yy4gYXJlIG5vdCBtYXNrZWQgYnlcblx0YWRqYWNlbnQgbGlzdCBpdGVtcy4gKi9cblxuLmNrLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW0gPiAqOmZvY3VzIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC8qIE1ha2Ugc3VyZSB0aGUgYmFsbG9vbiBhcnJvdyBkb2VzIG5vdCBmbG9hdCBvdmVyIGl0cyBjaGlsZHJlbi4gKi9cblx0LS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSAtIDMpO1xufVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbCB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTtcbn1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF93aXRoLWFycm93OjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF93aXRoLWFycm93OjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF93aXRoLWFycm93OjpiZWZvcmUge1xuXHRcdFx0ei1pbmRleDogdmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YWZ0ZXIge1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpICsgMSk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjpiZWZvcmUge1xuXHRcdFx0ei1pbmRleDogdmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X25cIl06OmFmdGVyIHtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KSArIDEpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YmVmb3JlIHtcblx0XHRcdHotaW5kZXg6IHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19zXCJdOjphZnRlciB7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCkgKyAxKTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfdmlzaWJsZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX25hdmlnYXRpb24ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLyogQnV0dG9ucyBpbnNpZGUgYSB0b29sYmFyIHNob3VsZCBiZSBjZW50ZXJlZCB3aGVuIHJvdGF0b3IgYmFyIGlzIHdpZGVyLlxuICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXVpL2lzc3Vlcy80OTVcbiAqL1xuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvbnRlbnQgLmNrLXRvb2xiYXIge1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay1mYWtlLXBhbmVsIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qIEZha2UgcGFuZWxzIHNob3VsZCBiZSBwbGFjZWQgdW5kZXIgbWFpbiBiYWxsb29uIGNvbnRlbnQuICovXG5cdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1wYW5lbCkgLSAxKTtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDEgKSB7XG5cdHotaW5kZXg6IDI7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAyICkge1xuXHR6LWluZGV4OiAxO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stc3RpY2t5LXBhbmVsIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnRfc3RpY2t5IHtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTsgLyogIzMxNSAqL1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdH1cblxuLmNrLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreV9ib3R0b20tbGltaXQge1xuXHRcdHRvcDogYXV0bztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWF1dG9jb21wbGV0ZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrLmNrLWF1dG9jb21wbGV0ZSA+IC5jay1zZWFyY2hfX3Jlc3VsdHMge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTtcblx0fVxuXG4uY2suY2stYXV0b2NvbXBsZXRlID4gLmNrLXNlYXJjaF9fcmVzdWx0cy5jay1zZWFyY2hfX3Jlc3VsdHNfbiB7XG5cdFx0XHRib3R0b206IDEwMCU7XG5cdFx0fVxuXG4uY2suY2stYXV0b2NvbXBsZXRlID4gLmNrLXNlYXJjaF9fcmVzdWx0cy5jay1zZWFyY2hfX3Jlc3VsdHNfcyB7XG5cdFx0XHR0b3A6IDEwMCU7XG5cdFx0XHRib3R0b206IGF1dG87XG5cdFx0fVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2staWNvbiB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0XHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWljb24ge1xuXHRcdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stc2VhcmNoID4gLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2staWNvbiB7XG5cdFx0XHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cblxuLmNrLmNrLXNlYXJjaCA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLXNlYXJjaF9fcmVzZXQge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0fVxuXG4uY2suY2stc2VhcmNoID4gLmNrLXNlYXJjaF9fcmVzdWx0cyA+IC5jay1zZWFyY2hfX2luZm8gPiBzcGFuOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cbi8qIEhpZGUgdGhlIGZpbHRlcmVkIHZpZXcgd2hlbiBub3RoaW5nIHdhcyBmb3VuZCAqL1xuXG4uY2suY2stc2VhcmNoID4gLmNrLXNlYXJjaF9fcmVzdWx0cyA+IC5jay1zZWFyY2hfX2luZm86bm90KC5jay1oaWRkZW4pIH4gKiB7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1oaWdobGlnaHRlZC10ZXh0IG1hcmsge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1oaWdobGlnaHQtYmFja2dyb3VuZCk7XG5cdHZlcnRpY2FsLWFsaWduOiBpbml0aWFsO1xuXHRmb250LXdlaWdodDogaW5oZXJpdDtcblx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBNYWtlcyBlbGVtZW50IHVuc2VsZWN0YWJsZS5cbiAqL1xuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sdGlwIHtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblxuXHR6LWluZGV4OiBjYWxjKCB2YXIoLS1jay16LWRpYWxvZykgKyAxMDAgKTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplOiAxOHB4O1xufVxuXG4uY2suY2stc3Bpbm5lci1jb250YWluZXIge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2suY2stc3Bpbm5lciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiA1MCU7XG5cdGxlZnQ6IDA7XG5cdHJpZ2h0OiAwO1xuXHRtYXJnaW46IDAgYXV0bztcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHR6LWluZGV4OiAxO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIE1ha2VzIGVsZW1lbnQgdW5zZWxlY3RhYmxlLlxuICovXG5cbi5jay5jay10b29sYmFyIHtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblxuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5jay5jay10b29sYmFyID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZmxvdzogcm93IHdyYXA7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRmbGV4LWdyb3c6IDE7XG5cblx0fVxuXG4uY2suY2stdG9vbGJhciAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHQvKlxuXHRcdCAqIEEgbGVhZGluZyBvciB0cmFpbGluZyBzZXBhcmF0b3IgbWFrZXMgbm8gc2Vuc2UgKHNlcGFyYXRlcyBmcm9tIG5vdGhpbmcgb24gb25lIHNpZGUpLlxuXHRcdCAqIEZvciBpbnN0YW5jZSwgaXQgY2FuIGhhcHBlbiB3aGVuIHRvb2xiYXIgaXRlbXMgKGFsc28gc2VwYXJhdG9ycykgYXJlIGdldHRpbmcgZ3JvdXBlZCBvbmUgYnkgb25lIGFuZFxuXHRcdCAqIG1vdmVkIHRvIGFub3RoZXIgdG9vbGJhciBpbiB0aGUgZHJvcGRvd24uXG5cdFx0ICovXG5cdH1cblxuLmNrLmNrLXRvb2xiYXIgLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvcjpmaXJzdC1jaGlsZCxcblx0XHQuY2suY2stdG9vbGJhciAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yOmxhc3QtY2hpbGQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cbi5jay5jay10b29sYmFyIC5jay10b29sYmFyX19saW5lLWJyZWFrIHtcblx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHR9XG5cbi5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfZ3JvdXBpbmcgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG5cbi5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfdmVydGljYWwgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdH1cblxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9mbG9hdGluZyA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cblxuLmNrLmNrLXRvb2xiYXIgPiAuY2suY2stdG9vbGJhcl9fZ3JvdXBlZC1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fYnV0dG9uIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1ibG9jay10b29sYmFyLWJ1dHRvbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24gPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbl9fYXJyb3cge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLW1lbnUtYmFyLW1lbnUtbWF4LXdpZHRoOiA3NXZ3O1xuXHQtLWNrLW1lbnUtYmFyLW5lc3RlZC1tZW51LWhvcml6b250YWwtb2Zmc2V0OiA1cHg7XG59XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwge1xuXHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay1tZW51LWJhci1tZW51LW1heC13aWR0aCk7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbmUsXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX253IHtcblx0XHRib3R0b206IDEwMCU7XG5cdH1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fc2UsXG5cdC5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3N3IHtcblx0XHR0b3A6IDEwMCU7XG5cdFx0Ym90dG9tOiBhdXRvO1xuXHR9XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX25lLFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zZSB7XG5cdFx0bGVmdDogMHB4O1xuXHR9XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX253LFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zdyB7XG5cdFx0cmlnaHQ6IDBweDtcblx0fVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lcyxcblx0LmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZW4ge1xuXHRcdGxlZnQ6IGNhbGMoIDEwMCUgLSB2YXIoLS1jay1tZW51LWJhci1uZXN0ZWQtbWVudS1ob3Jpem9udGFsLW9mZnNldCkgKTtcblx0fVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lcyB7XG5cdFx0dG9wOiAwcHg7XG5cdH1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZW4ge1xuXHRcdGJvdHRvbTogMHB4O1xuXHR9XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3dzLFxuXHQuY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93biB7XG5cdFx0cmlnaHQ6IGNhbGMoIDEwMCUgLSB2YXIoLS1jay1tZW51LWJhci1uZXN0ZWQtbWVudS1ob3Jpem9udGFsLW9mZnNldCkgKTtcblx0fVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgPiAuY2suY2stbWVudS1iYXJfX21lbnVfX3BhbmVsLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93cyB7XG5cdFx0dG9wOiAwcHg7XG5cdH1cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ID4gLmNrLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbC5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd24ge1xuXHRcdGJvdHRvbTogMHB4O1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1tZW51LWJhcl9fbWVudSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1yZXNpemVyOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDE1JSk7XG5cdC0tY2stY29sb3ItcmVzaXplci10b29sdGlwLXRleHQ6IGhzbCgwLCAwJSwgOTUlKTtcblxuXHQtLWNrLXJlc2l6ZXItYm9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldDogMTBweDtcblx0LS1jay1yZXNpemVyLXRvb2x0aXAtaGVpZ2h0OiBjYWxjKHZhcigtLWNrLXNwYWNpbmctc21hbGwpICogMiArIDEwcHgpO1xufVxuXG4uY2sgLmNrLXdpZGdldCB7XG5cdC8qIFRoaXMgaXMgbmVjY2Vzc2FyeSBmb3IgdHlwZSBhcm91bmQgVUkgdG8gYmUgcG9zaXRpb25lZCBwcm9wZXJseS4gKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIHtcblx0LyogTWFrZSB0aGUgd2lkZ2V0IHdyYXBwZXIgYSByZWxhdGl2ZSBwb3NpdGlvbmluZyBjb250YWluZXIgZm9yIHRoZSBkcmFnIGhhbmRsZS4gKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUgLmNrLWljb24ge1xuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBpY29uIGluIG5vdCBhIHN1YmplY3QgdG8gZm9udC1zaXplIG9yIGxpbmUtaGVpZ2h0IHRvIGF2b2lkXG5cdFx0XHR1bm5lY2Vzc2FyeSBzcGFjaW5nIGFyb3VuZCBpdC4gKi9cblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuLyogU2hvdyB0aGUgc2VsZWN0aW9uIGhhbmRsZSBvbiBtb3VzZSBob3ZlciBvdmVyIHRoZSB3aWRnZXQsIGJ1dCBub3QgZm9yIG5lc3RlZCB3aWRnZXRzLiAqL1xuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0fVxuXG4vKiBTaG93IHRoZSBzZWxlY3Rpb24gaGFuZGxlIHdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCwgYnV0IG5vdCBmb3IgbmVzdGVkIHdpZGdldHMuICovXG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0fVxuXG4uY2sgLmNrLXNpemUtdmlldyB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC1iYWNrZ3JvdW5kKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC10ZXh0KTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItcmVzaXplci10b29sdGlwLXRleHQpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1yZXNpemVyLWJvcmRlci1yYWRpdXMpO1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdGhlaWdodDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLWhlaWdodCk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtaGVpZ2h0KTtcbn1cblxuLmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tdG9wLWxlZnQsXG5cdC5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLXRvcC1yaWdodCxcblx0LmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tYm90dG9tLXJpZ2h0LFxuXHQuY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi1ib3R0b20tbGVmdCxcblx0LmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tYWJvdmUtY2VudGVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cblxuLmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tdG9wLWxlZnQge1xuXHRcdHRvcDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdFx0bGVmdDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdH1cblxuLmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tdG9wLXJpZ2h0IHtcblx0XHR0b3A6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0fVxuXG4uY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi1ib3R0b20tcmlnaHQge1xuXHRcdGJvdHRvbTogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHR9XG5cbi5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLWJvdHRvbS1sZWZ0IHtcblx0XHRib3R0b206IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHR9XG5cbi8qIENsYXNzIGFwcGxpZWQgaWYgdGhlIHdpZGdldCBpcyB0b28gc21hbGwgdG8gY29udGFpbiB0aGUgc2l6ZSBsYWJlbCAqL1xuXG4uY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi1hYm92ZS1jZW50ZXIge1xuXHRcdHRvcDogY2FsYyh2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtaGVpZ2h0KSAqIC0xKTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSk7XG5cdH1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay13aWRnZXRfd2l0aC1yZXNpemVyIHtcblx0LyogTWFrZSB0aGUgd2lkZ2V0IHdyYXBwZXIgYSByZWxhdGl2ZSBwb3NpdGlvbmluZyBjb250YWluZXIgZm9yIHRoZSBkcmFnIGhhbmRsZS4gKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplciB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQvKiBUaGUgd3JhcHBlciBpdHNlbGYgc2hvdWxkIG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUgcG9pbnRlciBkZXZpY2UsIG9ubHkgdGhlIGhhbmRsZXMgc2hvdWxkLiAqL1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG59XG5cbi5jay1mb2N1c2VkIC5jay13aWRnZXRfd2l0aC1yZXNpemVyLmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3Jlc2l6ZXIge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbi5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0LyogUmVzaXplcnMgYXJlIHRoZSBvbmx5IFVJIGVsZW1lbnRzIHRoYXQgc2hvdWxkIGludGVyZmVyZSB3aXRoIGEgcG9pbnRlciBkZXZpY2UuICovXG5cdHBvaW50ZXItZXZlbnRzOiBhbGw7XG59XG5cbi5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtdG9wLWxlZnQsXG5cdC5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtYm90dG9tLXJpZ2h0IHtcblx0XHRjdXJzb3I6IG53c2UtcmVzaXplO1xuXHR9XG5cbi5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtdG9wLXJpZ2h0LFxuXHQuY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLWJvdHRvbS1sZWZ0IHtcblx0XHRjdXJzb3I6IG5lc3ctcmVzaXplO1xuXHR9XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgdHlwZSBhcm91bmQgYnV0dG9uc1xuXHQgKi9cblxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0fVxuXG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHN2ZyB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSArIDIpO1xuXHRcdH1cblxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbi5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlIHtcblx0XHRcdC8qIFBsYWNlIGl0IGluIHRoZSBtaWRkbGUgb2YgdGhlIG91dGxpbmUgKi9cblx0XHRcdHRvcDogY2FsYygtMC41ICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSk7XG5cdFx0XHRsZWZ0OiBtaW4oMTAlLCAzMHB4KTtcblxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRcdH1cblxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbi5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYWZ0ZXIge1xuXHRcdFx0LyogUGxhY2UgaXQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgb3V0bGluZSAqL1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0wLjUgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcblx0XHRcdHJpZ2h0OiBtaW4oMTAlLCAzMHB4KTtcblxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwJSk7XG5cdFx0fVxuXG4vKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBidXR0b25zIHdoZW46XG5cdCAqIC0gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCxcblx0ICogLSBvciB0aGUgYnV0dG9uIGlzIGJlaW5nIGhvdmVyZWQgKHJlZ2FyZGxlc3Mgb2YgdGhlIHdpZGdldCBzdGF0ZSkuXG5cdCAqL1xuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246OmFmdGVyLCAuY2sgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3Zlcjo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAxcHg7XG5cdFx0XHRsZWZ0OiAxcHg7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyAxKTtcblx0XHR9XG5cbi8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGhvcml6b250YWwgXCJmYWtlIGNhcmV0XCIgd2hpY2ggaXMgZGlzcGxheWVkIHdoZW4gdGhlIHVzZXIgbmF2aWdhdGVzIHVzaW5nIHRoZSBrZXlib2FyZC5cblx0ICovXG5cbi5jayAuY2std2lkZ2V0ID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0fVxuXG4vKlxuXHQgKiBXaGVuIHRoZSB3aWRnZXQgaXMgaG92ZXJlZCB0aGUgXCJmYWtlIGNhcmV0XCIgd291bGQgbm9ybWFsbHkgYmUgbmFycm93ZXIgdGhhbiB0aGVcblx0ICogZXh0cmEgb3V0bGluZSBkaXNwbGF5ZWQgYXJvdW5kIHRoZSB3aWRnZXQuIExldCdzIGV4dGVuZCB0aGUgXCJmYWtlIGNhcmV0XCIgdG8gbWF0Y2hcblx0ICogdGhlIGZ1bGwgd2lkdGggb2YgdGhlIHdpZGdldC5cblx0ICovXG5cbi5jayAuY2std2lkZ2V0OmhvdmVyID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0bGVmdDogY2FsYyggLTEgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpICk7XG5cdFx0cmlnaHQ6IGNhbGMoIC0xICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSApO1xuXHR9XG5cbi8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGhvcml6b250YWwgXCJmYWtlIGNhcmV0XCIgd2hlbiBpdCBzaG91bGQgYmUgZGlzcGxheWVkIGJlZm9yZSB0aGUgd2lkZ2V0IChiYWNrd2FyZCBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0ICovXG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0dG9wOiBjYWxjKCAtMSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgLSAxcHggKTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG4vKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBob3Jpem9udGFsIFwiZmFrZSBjYXJldFwiIHdoZW4gaXQgc2hvdWxkIGJlIGRpc3BsYXllZCBhZnRlciB0aGUgd2lkZ2V0IChmb3J3YXJkIGtleWJvYXJkIG5hdmlnYXRpb24pLlxuXHQgKi9cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdGJvdHRvbTogY2FsYyggLTEgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIC0gMXB4ICk7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuLypcbiAqIEludGVncmF0aW9uIHdpdGggdGhlIHJlYWQtb25seSBtb2RlIG9mIHRoZSBlZGl0b3IuXG4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJlYWQtb25seSAuY2std2lkZ2V0X190eXBlLWFyb3VuZCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIHRoZSByZXN0cmljdGVkIGVkaXRpbmcgbW9kZSAoZmVhdHVyZSkgb2YgdGhlIGVkaXRvci5cbiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVzdHJpY3RlZC1lZGl0aW5nX21vZGVfcmVzdHJpY3RlZCAuY2std2lkZ2V0X190eXBlLWFyb3VuZCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIHRoZSAjaXNFbmFibGVkIHByb3BlcnR5IG9mIHRoZSBXaWRnZXRUeXBlQXJvdW5kIHBsdWdpbi5cbiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2std2lkZ2V0X190eXBlLWFyb3VuZF9kaXNhYmxlZCAuY2std2lkZ2V0X190eXBlLWFyb3VuZCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWNrZWRpdG9yNS5jc3MubWFwICovIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogUmVzZXQgKi9cbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9nbG9iYWxzL2dsb2JhbHMuY3NzXCI7XG5cbi8qIENvbXBvbmVudHMgKi9cbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvYnV0dG9uL3N3aXRjaGJ1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2J1dHRvbi9saXN0aXRlbWJ1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2NvbGxhcHNpYmxlL2NvbGxhcHNpYmxlLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvY29sb3JncmlkL2NvbG9yZ3JpZC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2NvbG9yc2VsZWN0b3IvY29sb3JzZWxlY3Rvci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2cuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kaWFsb2cvZGlhbG9nYWN0aW9ucy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL2Ryb3Bkb3duLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vbGlzdGRyb3Bkb3duLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vc3BsaXRidXR0b24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi90b29sYmFyZHJvcGRvd24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudWJ1dHRvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2Ryb3Bkb3duL21lbnUvZHJvcGRvd25tZW51bGlzdGl0ZW0uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9kcm9wZG93bi9tZW51L2Ryb3Bkb3dubWVudWxpc3RpdGVtYnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZHJvcGRvd24vbWVudS9kcm9wZG93bm1lbnVwYW5lbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2VkaXRvcnVpL2FjY2Vzc2liaWxpdHloZWxwLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvZWRpdG9ydWkvZWRpdG9ydWkuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9mb3JtaGVhZGVyL2Zvcm1oZWFkZXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9pY29uL2ljb24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbGFiZWxlZGZpZWxkL2xhYmVsZWRmaWVsZHZpZXcuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9sYWJlbGVkaW5wdXQvbGFiZWxlZGlucHV0LmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbGlzdC9saXN0LmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFyLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFybWVudS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL21lbnViYXIvbWVudWJhcm1lbnVidXR0b24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXJtZW51bGlzdGl0ZW0uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXJtZW51bGlzdGl0ZW1idXR0b24uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXJtZW51cGFuZWwuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9wYW5lbC9iYWxsb29ucGFuZWwuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy9wYW5lbC9iYWxsb29ucm90YXRvci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3BhbmVsL2Zha2VwYW5lbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3BhbmVsL3N0aWNreXBhbmVsLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvcmVzcG9uc2l2ZS1mb3JtL3Jlc3BvbnNpdmVmb3JtLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3NwaW5uZXIvc3Bpbm5lci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS11aS9jb21wb25lbnRzL3RleHRhcmVhL3RleHRhcmVhLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXVpL2NvbXBvbmVudHMvdG9vbGJhci9ibG9ja3Rvb2xiYXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy90b29sYmFyL3Rvb2xiYXIuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdWkvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY3NzXCI7XG5cbi8qIEVkaXRvciAqL1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWVkaXRvci1jbGFzc2ljL2NsYXNzaWNlZGl0b3IuY3NzXCI7XG5cbi8qIFBsdWdpbnMgKi9cbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1ib29rbWFyay9ib29rbWFyay5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1jbGlwYm9hcmQvY2xpcGJvYXJkLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWNvZGUtYmxvY2svY29kZWJsb2NrLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWVuZ2luZS9wbGFjZWhvbGRlci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1maW5kLWFuZC1yZXBsYWNlL2ZpbmRhbmRyZXBsYWNlZm9ybS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1oZWFkaW5nL2hlYWRpbmcuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtaG9yaXpvbnRhbC1saW5lL2hvcml6b250YWxsaW5lLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWh0bWwtZW1iZWQvaHRtbGVtYmVkLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWltYWdlL2ltYWdlaW5zZXJ0LmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWltYWdlL2ltYWdldXBsb2FkLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWltYWdlL2ltYWdldXBsb2FkaWNvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1pbWFnZS9pbWFnZXVwbG9hZGxvYWRlci5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1pbWFnZS9pbWFnZXVwbG9hZHByb2dyZXNzLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWxpbmsvbGluay5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1saW5rL2xpbmthY3Rpb25zLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LWxpbmsvbGlua2Zvcm0uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtbGluay9saW5raW1hZ2UuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtbGlzdC9saXN0cHJvcGVydGllcy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1saXN0L2xpc3RzdHlsZXMuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtbWVkaWEtZW1iZWQvbWVkaWFlbWJlZGVkaXRpbmcuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtbWVudGlvbi9tZW50aW9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXJlc3RyaWN0ZWQtZWRpdGluZy9yZXN0cmljdGVkZWRpdGluZy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvY2hhcmFjdGVyZ3JpZC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvY2hhcmFjdGVyaW5mby5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS1zcGVjaWFsLWNoYXJhY3RlcnMvc3BlY2lhbGNoYXJhY3RlcnMuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtc3R5bGUvc3R5bGUuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtc3R5bGUvc3R5bGVncmlkLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXN0eWxlL3N0eWxlZ3JvdXAuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtc3R5bGUvc3R5bGVwYW5lbC5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS9jb2xvcmlucHV0LmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXRhYmxlL2Zvcm0uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdGFibGUvZm9ybXJvdy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS9pbnNlcnR0YWJsZS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS90YWJsZWNlbGxwcm9wZXJ0aWVzLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXRhYmxlL3RhYmxlZWRpdGluZy5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS10YWJsZS90YWJsZWZvcm0uY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtdGFibGUvdGFibGVwcm9wZXJ0aWVzLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXRhYmxlL3RhYmxlc2VsZWN0aW9uLmNzc1wiO1xuQGltcG9ydCBcIi4vY2tlZGl0b3I1LXdpZGdldC93aWRnZXQuY3NzXCI7XG5AaW1wb3J0IFwiLi9ja2VkaXRvcjUtd2lkZ2V0L3dpZGdldHJlc2l6ZS5jc3NcIjtcbkBpbXBvcnQgXCIuL2NrZWRpdG9yNS13aWRnZXQvd2lkZ2V0dHlwZWFyb3VuZC5jc3NcIjtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuL19jb2xvcnMuY3NzXCI7XG5AaW1wb3J0IFwiLi9fZGlzYWJsZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi9fZm9jdXMuY3NzXCI7XG5AaW1wb3J0IFwiLi9fZm9udHMuY3NzXCI7XG5AaW1wb3J0IFwiLi9fcmVzZXQuY3NzXCI7XG5AaW1wb3J0IFwiLi9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuL19zaGFkb3cuY3NzXCI7XG5AaW1wb3J0IFwiLi9fc3BhY2luZy5jc3NcIjtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDk4JSk7XG5cdC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCAxMDAlKTtcblx0LS1jay1jb2xvci1iYXNlLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIyMCwgNiUsIDgxJSk7XG5cdC0tY2stY29sb3ItYmFzZS1hY3Rpb246IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgxMDQsIDUwLjIlLCA0Mi41JSk7XG5cdC0tY2stY29sb3ItYmFzZS1mb2N1czogXHRcdFx0XHRcdFx0XHRcdFx0XHRoc2woMjA5LCA5MiUsIDcwJSk7XG5cdC0tY2stY29sb3ItYmFzZS10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgMjAlKTtcblx0LS1jay1jb2xvci1iYXNlLWFjdGl2ZTogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIxOC4xLCAxMDAlLCA1OCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYWN0aXZlLWZvY3VzOlx0XHRcdFx0XHRcdFx0XHRoc2woMjE4LjIsIDEwMCUsIDUyLjUlKTtcblx0LS1jay1jb2xvci1iYXNlLWVycm9yOlx0XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDE1LCAxMDAlLCA0MyUpO1xuXG5cdC8qIC0tIEdlbmVyaWMgY29sb3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzOiBcdFx0XHRcdFx0XHQyMTgsIDgxLjglLCA1Ni45JTtcblx0LS1jay1jb2xvci1mb2N1cy1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCh2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXItY29vcmRpbmF0ZXMpKTtcblx0LS1jay1jb2xvci1mb2N1cy1vdXRlci1zaGFkb3c6XHRcdFx0XHRcdFx0XHRcdGhzbCgyMTIuNCwgODkuMyUsIDg5JSk7XG5cdC0tY2stY29sb3ItZm9jdXMtZGlzYWJsZWQtc2hhZG93Olx0XHRcdFx0XHRcdFx0aHNsYSgyMDksIDkwJSwgNzIlLC4zKTtcblx0LS1jay1jb2xvci1mb2N1cy1lcnJvci1zaGFkb3c6XHRcdFx0XHRcdFx0XHRcdGhzbGEoOSwxMDAlLDU2JSwuMyk7XG5cdC0tY2stY29sb3ItdGV4dDogXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdC0tY2stY29sb3Itc2hhZG93LWRyb3A6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjE1KTtcblx0LS1jay1jb2xvci1zaGFkb3ctZHJvcC1hY3RpdmU6XHRcdFx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjIpO1xuXHQtLWNrLWNvbG9yLXNoYWRvdy1pbm5lcjogXHRcdFx0XHRcdFx0XHRcdFx0aHNsYSgwLCAwJSwgMCUsIDAuMSk7XG5cblx0LyogLS0gQnV0dG9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHR0cmFuc3BhcmVudDtcblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kOiBcdFx0XHRcdGhzbCgwLCAwJSwgOTQuMSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1iYWNrZ3JvdW5kOiBcdFx0XHRcdGhzbCgwLCAwJSwgOTQuMSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWRpc2FibGVkLWJhY2tncm91bmQ6IFx0XHRcdFx0dHJhbnNwYXJlbnQ7XG5cblx0LS1jay1jb2xvci1idXR0b24tb24tYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRoc2woMjEyLCAxMDAlLCA5Ny4xJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWhvdmVyLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdGhzbCgyMTEuNywgMTAwJSwgOTIuOSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1hY3RpdmUtYmFja2dyb3VuZDogXHRcdFx0XHRcdGhzbCgyMTEuNywgMTAwJSwgOTIuOSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0aHNsKDIxMSwgMTUlLCA5NSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1jb2xvcjpcdFx0XHRcdFx0XHRcdFx0XHRoc2woMjE4LjEsIDEwMCUsIDU4JSk7XG5cblxuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1hY3Rpb24pO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24taG92ZXItYmFja2dyb3VuZDogXHRcdFx0XHRcdGhzbCgxMDQsIDUzLjIlLCA0MC4yJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1hY3RpdmUtYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMTA0LCA1My4yJSwgNDAuMiUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMTA0LCA0NCUsIDU4JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHQtLWNrLWNvbG9yLWJ1dHRvbi1zYXZlOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTIwLCAxMDAlLCAyNyUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1jYW5jZWw6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgxNSwgMTAwJSwgNDMlKTtcblxuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb2ZmLWJhY2tncm91bmQ6XHRcdFx0XHRcdGhzbCgwLCAwJSwgNTcuNiUpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb2ZmLWhvdmVyLWJhY2tncm91bmQ6XHRcdFx0XHRoc2woMCwgMCUsIDQ5JSk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kOlx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kOlx0XHRcdFx0aHNsKDEwNCwgNTMuMiUsIDQwLjIlKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLWlubmVyLWJhY2tncm91bmQ6XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1zaGFkb3c6XHRcdFx0XHRcdFx0aHNsYSgwLCAwJSwgMCUsIDAuMSk7XG5cblx0LyogLS0gRHJvcGRvd24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcjogXHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0LyogLS0gRGlhbG9nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1kaWFsb2ctYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWN1c3RvbS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1kaWFsb2ctZm9ybS1oZWFkZXItYm9yZGVyOiBcdFx0XHRcdFx0XHR2YXIoLS1jay1jdXN0b20tYm9yZGVyKTtcblxuXHQvKiAtLSBJbnB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWlucHV0LWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWVycm9yLWJvcmRlcjpcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdC0tY2stY29sb3ItaW5wdXQtdGV4dDogXHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgOTUlKTtcblx0LS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLXRleHQ6IFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA0NiUpO1xuXG5cdC8qIC0tIExpc3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItbGlzdC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1saXN0LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWNvbG9yKTtcblx0LS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kLWZvY3VzOiBcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1jb2xvcik7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tdGV4dDpcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHQvKiAtLSBQYW5lbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIC0tIFRvb2xiYXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItdG9vbGJhci1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci10b29sYmFyLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIC0tIFRvb2x0aXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItdG9vbHRpcC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0LS1jay1jb2xvci10b29sdGlwLXRleHQ6IFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0LyogLS0gRW5naW5lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1lbmdpbmUtcGxhY2Vob2xkZXItdGV4dDogXHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA0NCUpO1xuXG5cdC8qIC0tIFVwbG9hZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItdXBsb2FkLWJhci1iYWNrZ3JvdW5kOlx0XHQgXHRcdFx0XHRcdGhzbCgyMDksIDkyJSwgNzAlKTtcblxuXHQvKiAtLSBMaW5rIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1saW5rLWRlZmF1bHQ6XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDI0MCwgMTAwJSwgNDclKTtcblx0LS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQ6XHRcdFx0XHRcdFx0aHNsYSgyMDEsIDEwMCUsIDU2JSwgMC4xKTtcblx0LS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uOlx0XHRcdFx0XHRcdFx0XHRoc2xhKDIwMSwgMTAwJSwgNTYlLCAwLjMpO1xuXG5cdC8qIC0tIFNlYXJjaCByZXN1bHQgaGlnaGxpZ2h0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWhpZ2hsaWdodC1iYWNrZ3JvdW5kOlx0XHRcdFx0XHRcdFx0aHNsKDYwLCAxMDAlLCA1MCUpO1xuXG5cdC8qIC0tIEdlbmVyaWMgY29sb3JzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWxpZ2h0LXJlZDpcdFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAxMDAlLCA5MCUpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQvKipcblx0ICogQW4gb3BhY2l0eSB2YWx1ZSBvZiBkaXNhYmxlZCBVSSBpdGVtLlxuXHQgKi9cblx0LS1jay1kaXNhYmxlZC1vcGFjaXR5OiAuNTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyoqXG5cdCAqIFRoZSBnZW9tZXRyeSBvZiB0aGUgb2YgZm9jdXNlZCBlbGVtZW50J3Mgb3V0ZXIgc2hhZG93LlxuXHQgKi9cblx0LS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnk6IDAgMCAwIDNweDtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3Mgb3V0ZXIgc2hhZG93LlxuXHQgKi9cblx0LS1jay1mb2N1cy1vdXRlci1zaGFkb3c6IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdy1nZW9tZXRyeSkgdmFyKC0tY2stY29sb3ItZm9jdXMtb3V0ZXItc2hhZG93KTtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3Mgb3V0ZXIgc2hhZG93ICh3aGVuIGRpc2FibGVkKS5cblx0ICovXG5cdC0tY2stZm9jdXMtZGlzYWJsZWQtb3V0ZXItc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnkpIHZhcigtLWNrLWNvbG9yLWZvY3VzLWRpc2FibGVkLXNoYWRvdyk7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdyAod2hlbiBoYXMgZXJyb3JzKS5cblx0ICovXG5cdC0tY2stZm9jdXMtZXJyb3Itb3V0ZXItc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnkpIHZhcigtLWNrLWNvbG9yLWZvY3VzLWVycm9yLXNoYWRvdyk7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlciBvciBvdXRsaW5lLlxuXHQgKi9cblx0LS1jay1mb2N1cy1yaW5nOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1mb250LXNpemUtYmFzZTogMTNweDtcblx0LS1jay1saW5lLWhlaWdodC1iYXNlOiAxLjg0NjE1O1xuXHQtLWNrLWZvbnQtZmFjZTogSGVsdmV0aWNhLCBBcmlhbCwgVGFob21hLCBWZXJkYW5hLCBTYW5zLVNlcmlmO1xuXG5cdC0tY2stZm9udC1zaXplLXRpbnk6IDAuN2VtO1xuXHQtLWNrLWZvbnQtc2l6ZS1zbWFsbDogMC43NWVtO1xuXHQtLWNrLWZvbnQtc2l6ZS1ub3JtYWw6IDFlbTtcblx0LS1jay1mb250LXNpemUtYmlnOiAxLjRlbTtcblx0LS1jay1mb250LXNpemUtbGFyZ2U6IDEuOGVtO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQvKiBUaGlzIGlzIHN1cGVyLWltcG9ydGFudC4gVGhpcyBpcyAqKm1hbnVhbGx5KiogYWRqdXN0ZWQgc28gYSBidXR0b24gd2l0aG91dCBhbiBpY29uXG5cdGlzIG5ldmVyIHNtYWxsZXIgdGhhbiBhIGJ1dHRvbiB3aXRoIGljb24sIGFkZGl0aW9uYWxseSBtYWtpbmcgc3VyZSB0aGF0IHRleHQtbGVzcyBidXR0b25zXG5cdGFyZSBwZXJmZWN0IHNxdWFyZXMuIFRoZSB2YWx1ZSBpcyBhbHNvIHNoYXJlZCBieSBvdGhlciBjb21wb25lbnRzIHdoaWNoIHNob3VsZCBzdGF5IFwiaW4tbGluZVwiXG5cdHdpdGggYnV0dG9ucy4gKi9cblx0LS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodDogMi4zZW07XG59XG5cbi8qKlxuICogUmVzZXRzIGFuIGVsZW1lbnQsIGlnbm9yaW5nIGl0cyBjaGlsZHJlbi5cbiAqL1xuLmNrLmNrLXJlc2V0LFxuLmNrLmNrLXJlc2V0X2FsbCxcbi5jay1yZXNldF9hbGwgKjpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdHdpZHRoOiBhdXRvO1xuXHRoZWlnaHQ6IGF1dG87XG5cdHBvc2l0aW9uOiBzdGF0aWM7XG5cblx0LyogRG8gbm90IGluY2x1ZGUgaW5oZXJpdGFibGUgcnVsZXMgaGVyZS4gKi9cblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IDA7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHRyYW5zaXRpb246IG5vbmU7XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xMDUgKi9cblx0d29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4vKipcbiAqIFJlc2V0cyBhbiBlbGVtZW50IEFORCBpdHMgY2hpbGRyZW4uXG4gKi9cbi5jay5jay1yZXNldF9hbGwsXG4uY2stcmVzZXRfYWxsICo6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHQvKiBUaGVzZSBhcmUgcnVsZSBpbmhlcml0ZWQgYnkgYWxsIGNoaWxkcmVuIGVsZW1lbnRzLiAqL1xuXHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCB2YXIoLS1jay1mb250LXNpemUtYmFzZSkvdmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSkgdmFyKC0tY2stZm9udC1mYWNlKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRleHQpO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRjdXJzb3I6IGF1dG87XG5cdGZsb2F0OiBub25lO1xufVxuXG4uY2stcmVzZXRfYWxsIHtcblx0JiAuY2stcnRsICo6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG5cblx0JiBpZnJhbWU6bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRcdC8qIEZvciBJRSAqL1xuXHRcdHZlcnRpY2FsLWFsaWduOiBpbmhlcml0O1xuXHR9XG5cblx0JiB0ZXh0YXJlYTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSB7XG5cdFx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xuXHR9XG5cblx0JiB0ZXh0YXJlYTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSxcblx0JiBpbnB1dFt0eXBlPVwidGV4dFwiXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSxcblx0JiBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06bm90KC5jay1yZXNldF9hbGwtZXhjbHVkZWQgKikge1xuXHRcdGN1cnNvcjogdGV4dDtcblx0fVxuXG5cdCYgdGV4dGFyZWFbZGlzYWJsZWRdOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopLFxuXHQmIGlucHV0W3R5cGU9XCJ0ZXh0XCJdW2Rpc2FibGVkXTpub3QoLmNrLXJlc2V0X2FsbC1leGNsdWRlZCAqKSxcblx0JiBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl1bZGlzYWJsZWRdOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdH1cblxuXHQmIGZpZWxkc2V0Om5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopIHtcblx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdGJvcmRlcjogMnB4IGdyb292ZSBoc2woMjU1LCA3JSwgODglKTtcblx0fVxuXG5cdCYgYnV0dG9uOm5vdCguY2stcmVzZXRfYWxsLWV4Y2x1ZGVkICopOjotbW96LWZvY3VzLWlubmVyIHtcblx0XHQvKiBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81NTE3NzQ0L3JlbW92ZS1leHRyYS1idXR0b24tc3BhY2luZy1wYWRkaW5nLWluLWZpcmVmb3ggKi9cblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlcjogMFxuXHR9XG59XG5cbi8qKlxuICogRGVmYXVsdCBVSSBydWxlcyBmb3IgUlRMIGxhbmd1YWdlcy5cbiAqL1xuLmNrW2Rpcj1cInJ0bFwiXSxcbi5ja1tkaXI9XCJydGxcIl0gLmNrIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIERlZmF1bHQgYm9yZGVyLXJhZGl1cyB2YWx1ZS5cbiAqL1xuOnJvb3R7XG5cdC0tY2stYm9yZGVyLXJhZGl1czogMnB4O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZWxlbWVudCdzIGlubmVyIHNoYWRvdyAoaS5lLiBpbnB1dCkuXG5cdCAqL1xuXHQtLWNrLWlubmVyLXNoYWRvdzogMnB4IDJweCAzcHggdmFyKC0tY2stY29sb3Itc2hhZG93LWlubmVyKSBpbnNldDtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZWxlbWVudCdzIGRyb3Agc2hhZG93IChpLmUuIHBhbmVsKS5cblx0ICovXG5cdC0tY2stZHJvcC1zaGFkb3c6IDAgMXB4IDJweCAxcHggdmFyKC0tY2stY29sb3Itc2hhZG93LWRyb3ApO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBlbGVtZW50J3MgYWN0aXZlIHNoYWRvdyAoaS5lLiBjb21tZW50IG9yIHN1Z2dlc3Rpb24pLlxuXHQgKi9cblx0LS1jay1kcm9wLXNoYWRvdy1hY3RpdmU6IDAgM3B4IDZweCAxcHggdmFyKC0tY2stY29sb3Itc2hhZG93LWRyb3AtYWN0aXZlKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1zcGFjaW5nLXVuaXQ6IFx0XHRcdFx0XHRcdDAuNmVtO1xuXHQtLWNrLXNwYWNpbmctbGFyZ2U6IFx0XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAxLjUpO1xuXHQtLWNrLXNwYWNpbmctc3RhbmRhcmQ6IFx0XHRcdFx0XHR2YXIoLS1jay1zcGFjaW5nLXVuaXQpO1xuXHQtLWNrLXNwYWNpbmctbWVkaXVtOiBcdFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC44KTtcblx0LS1jay1zcGFjaW5nLXNtYWxsOiBcdFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC41KTtcblx0LS1jay1zcGFjaW5nLXRpbnk6IFx0XHRcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDAuMyk7XG5cdC0tY2stc3BhY2luZy1leHRyYS10aW55OiBcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDAuMTYpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL3RoZW1lL21peGlucy9fc2hhZG93LmNzc1wiO1xuXG4uY2suY2stYXV0b2NvbXBsZXRlIHtcblx0JiA+IC5jay1zZWFyY2hfX3Jlc3VsdHMge1xuXHRcdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cdFx0QG1peGluIGNrLWRyb3Atc2hhZG93O1xuXG5cdFx0bWF4LWhlaWdodDogMjAwcHg7XG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcik7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXG5cdFx0Ji5jay1zZWFyY2hfX3Jlc3VsdHNfbiB7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cblx0XHRcdC8qIFByZXZlbnQgZHVwbGljYXRlZCBib3JkZXJzIGJldHdlZW4gdGhlIGlucHV0IGFuZCB0aGUgcmVzdWx0cyBwYW5lLiAqL1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogLTFweDtcblx0XHR9XG5cblx0XHQmLmNrLXNlYXJjaF9fcmVzdWx0c19zIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblxuXHRcdFx0LyogUHJldmVudCBkdXBsaWNhdGVkIGJvcmRlcnMgYmV0d2VlbiB0aGUgaW5wdXQgYW5kIHRoZSByZXN1bHRzIHBhbmUuICovXG5cdFx0XHRtYXJnaW4tdG9wOiAtMXB4O1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHQuY2stcm91bmRlZC1jb3JuZXJzICYsXG5cdCYuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRAbWl4aW4tY29udGVudDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stYm94LXNoYWRvdyAkc2hhZG93QSwgJHNoYWRvd0I6IDAgMCB7XG5cdGJveC1zaGFkb3c6ICRzaGFkb3dBLCAkc2hhZG93Qjtcbn1cblxuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5AZGVmaW5lLW1peGluIGNrLWRyb3Atc2hhZG93IHtcblx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZHJvcC1zaGFkb3cpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHQuY2stcm91bmRlZC1jb3JuZXJzICYsXG5cdCYuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRAbWl4aW4tY29udGVudDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stYm94LXNoYWRvdyAkc2hhZG93QSwgJHNoYWRvd0I6IDAgMCB7XG5cdGJveC1zaGFkb3c6ICRzaGFkb3dBLCAkc2hhZG93Qjtcbn1cblxuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5AZGVmaW5lLW1peGluIGNrLWRyb3Atc2hhZG93IHtcblx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZHJvcC1zaGFkb3cpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fZm9jdXMuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19kaXNhYmxlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vbWl4aW5zL19idXR0b24uY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uIHtcblx0QG1peGluIGNrLWJ1dHRvbi1jb2xvcnMgLS1jay1jb2xvci1idXR0b24tZGVmYXVsdDtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblxuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHQvKiBBIHZlcnkgaW1wb3J0YW50IHBpZWNlIG9mIHN0eWxpbmcuIEdvIHRvIHZhcmlhYmxlIGRlY2xhcmF0aW9uIHRvIGxlYXJuIG1vcmUuICovXG5cdG1pbi13aWR0aDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cblx0LyogTm9ybWFsaXplIHRoZSBoZWlnaHQgb2YgdGhlIGxpbmUuIFJlbW92aW5nIHRoaXMgd2lsbCBicmVhayBjb25zaXN0ZW50IGhlaWdodFxuXHRhbW9uZyB0ZXh0IGFuZCB0ZXh0LWxlc3MgYnV0dG9ucyAod2l0aCBpY29ucykuICovXG5cdGxpbmUtaGVpZ2h0OiAxO1xuXG5cdC8qIEVuYWJsZSBmb250IHNpemUgaW5oZXJpdGFuY2UsIHdoaWNoIGFsbG93cyBmbHVpZCBVSSBzY2FsaW5nLiAqL1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cblx0LyogQXZvaWQgZmxpY2tlcmluZyB3aGVuIHRoZSBmb3VjcyBib3JkZXIgc2hvd3MgdXAuICovXG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG5cdC8qIEFwcGx5IHNvbWUgc21vb3RoIHRyYW5zaXRpb24gdG8gdGhlIGJveC1zaGFkb3cgYW5kIGJvcmRlci4gKi9cblx0dHJhbnNpdGlvbjogYm94LXNoYWRvdyAuMnMgZWFzZS1pbi1vdXQsIGJvcmRlciAuMnMgZWFzZS1pbi1vdXQ7XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xODkgKi9cblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXG5cdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0fVxuXG5cdCY6YWN0aXZlLFxuXHQmOmZvY3VzIHtcblx0XHRAbWl4aW4gY2stZm9jdXMtcmluZztcblx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHR9XG5cblx0LyogQWxsb3cgaWNvbiBjb2xvcmluZyB1c2luZyB0aGUgdGV4dCBcImNvbG9yXCIgcHJvcGVydHkuICovXG5cdCYgLmNrLWJ1dHRvbl9faWNvbiB7XG5cdFx0JiB1c2UsXG5cdFx0JiB1c2UgKiB7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHR9XG5cdH1cblxuXHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0XHRmb250LXNpemU6IGluaGVyaXQ7XG5cdFx0Zm9udC13ZWlnaHQ6IGluaGVyaXQ7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0Y3Vyc29yOiBpbmhlcml0O1xuXG5cdFx0LyogTXVzdCBiZSBjb25zaXN0ZW50IHdpdGggLmNrLWljb24ncyB2ZXJ0aWNhbCBhbGlnbi4gT3RoZXJ3aXNlLCBidXR0b25zIHdpdGggYW5kXG5cdFx0d2l0aG91dCBsYWJlbHMgKGJ1dCB3aXRoIGljb25zKSBoYXZlIGRpZmZlcmVudCBzaXplcyBpbiBDaHJvbWUgKi9cblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHR9XG5cdH1cblxuXHQmIC5jay1idXR0b25fX2tleXN0cm9rZSB7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHR9XG5cblx0XHRvcGFjaXR5OiAuNTtcblx0fVxuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvNzAgKi9cblx0Ji5jay1kaXNhYmxlZCB7XG5cdFx0JjphY3RpdmUsXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHQvKiBUaGUgZGlzYWJsZWQgYnV0dG9uIHNob3VsZCBoYXZlIGEgc2xpZ2h0bHkgbGVzcyB2aXNpYmxlIHNoYWRvdyB3aGVuIGZvY3VzZWQuICovXG5cdFx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1mb2N1cy1kaXNhYmxlZC1vdXRlci1zaGFkb3cpO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbl9faWNvbiB7XG5cdFx0XHRAbWl4aW4gY2stZGlzYWJsZWQ7XG5cdFx0fVxuXG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy85OCAqL1xuXHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0QG1peGluIGNrLWRpc2FibGVkO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbl9fa2V5c3Ryb2tlIHtcblx0XHRcdG9wYWNpdHk6IC4zO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYnV0dG9uX3dpdGgtdGV4dCB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cdFx0JiAuY2stYnV0dG9uX19pY29uIHtcblx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHR9XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLmNrLWJ1dHRvbl93aXRoLWtleXN0cm9rZSB7XG5cdFx0Lyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHR9XG5cdH1cblxuXHQvKiBBIHN0eWxlIG9mIHRoZSBidXR0b24gd2hpY2ggaXMgY3VycmVudGx5IG9uLCBlLmcuIGl0cyBmZWF0dXJlIGlzIGFjdGl2ZS4gKi9cblx0Ji5jay1vbiB7XG5cdFx0QG1peGluIGNrLWJ1dHRvbi1jb2xvcnMgLS1jay1jb2xvci1idXR0b24tb247XG5cblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWNvbG9yKTtcblx0fVxuXG5cdCYuY2stYnV0dG9uLXNhdmUge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tc2F2ZSk7XG5cdH1cblxuXHQmLmNrLWJ1dHRvbi1jYW5jZWwge1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tY2FuY2VsKTtcblx0fVxufVxuXG4vKiBBIHN0eWxlIG9mIHRoZSBidXR0b24gd2hpY2ggaGFuZGxlcyB0aGUgcHJpbWFyeSBhY3Rpb24uICovXG4uY2suY2stYnV0dG9uLWFjdGlvbixcbmEuY2suY2stYnV0dG9uLWFjdGlvbiB7XG5cdEBtaXhpbiBjay1idXR0b24tY29sb3JzIC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbjtcblxuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi10ZXh0KTtcbn1cblxuLmNrLmNrLWJ1dHRvbi1ib2xkLFxuYS5jay5jay1idXR0b24tYm9sZCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stZm9jdXMtcmluZyB7XG5cdC8qIERpc2FibGUgbmF0aXZlIG91dGxpbmUuICovXG5cdG91dGxpbmU6IG5vbmU7XG5cdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZylcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stZGlzYWJsZWQge1xuXHRvcGFjaXR5OiB2YXIoLS1jay1kaXNhYmxlZC1vcGFjaXR5KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyBhIGJ1dHRvbiBvZiBnaXZlbiBiYWNrZ3JvdW5kIGNvbG9yLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSAkYmFja2dyb3VuZCAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkYm9yZGVyIC0gQm9yZGVyIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stYnV0dG9uLWNvbG9ycyAkcHJlZml4IHtcblx0YmFja2dyb3VuZDogdmFyKCQocHJlZml4KS1iYWNrZ3JvdW5kKTtcblxuXHQmOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigkKHByZWZpeCktaG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXG5cdFx0JjphY3RpdmUge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKCQocHJlZml4KS1hY3RpdmUtYmFja2dyb3VuZCk7XG5cdFx0fVxuXHR9XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy85OCAqL1xuXHQmLmNrLWRpc2FibGVkIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoJChwcmVmaXgpLWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AZGVmaW5lLW1peGluIGNrLWRpciAkZGlyZWN0aW9uIHtcblx0W2Rpcj1cIiQoZGlyZWN0aW9uKVwiXSAmIHtcblx0XHRAbWl4aW4tY29udGVudDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2Rpc2FibGVkLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi8qIE5vdGU6IFRvIGF2b2lkIHJlbmRlcmluZyBpc3N1ZXMgKGFsaWFzaW5nKSBidXQgdG8gcHJlc2VydmUgdGhlIHJlc3BvbnNpdmUgbmF0dXJlXG5vZiB0aGUgY29tcG9uZW50LCBmbG9hdGluZ+KAk3BvaW50IG51bWJlcnMgaGF2ZSBiZWVuIHVzZWQgd2hpY2gsIGZvciB0aGUgZGVmYXVsdCBmb250IHNpemVcbihzZWU6IC0tY2stZm9udC1zaXplLWJhc2UpLCB3aWxsIGdlbmVyYXRlIHNpbXBsZSBpbnRlZ2Vycy4gKi9cbjpyb290IHtcblx0LyogMzRweCBhdCAxM3B4IGZvbnQtc2l6ZSAqL1xuXHQtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLXdpZHRoOiAyLjYxNTM4NDYxNTRlbTtcblx0LyogMTRweCBhdCAxM3B4IGZvbnQtc2l6ZSAqL1xuXHQtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemU6IGNhbGMoMS4wNzY5MjMwNzY5ZW0gKyAxcHgpO1xuXHQtLWNrLXN3aXRjaC1idXR0b24tdHJhbnNsYXRpb246IGNhbGMoXG5cdFx0dmFyKC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtd2lkdGgpIC1cblx0XHR2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS1pbm5lci1zaXplKSAtXG5cdFx0MnB4IC8qIEJvcmRlciAqL1xuXHQpO1xuXHQtLWNrLXN3aXRjaC1idXR0b24taW5uZXItaG92ZXItc2hhZG93OiAwIDAgMCA1cHggdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1zaGFkb3cpO1xufVxuXG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiB7XG5cdC8qIFVubGlrZSBhIHJlZ3VsYXIgYnV0dG9uLCB0aGUgc3dpdGNoIGJ1dHRvbiB0ZXh0IGNvbG9yIGFuZCBiYWNrZ3JvdW5kIHNob3VsZCBuZXZlciBjaGFuZ2UuXG5cdCAqIENoYW5naW5nIHRvZ2dsZSBzd2l0Y2ggKGJhY2tncm91bmQsIG91dGxpbmUpIGlzIGVub3VnaCB0byBjYXJyeSB0aGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlXG5cdCAqIHN0YXRlIG9mIHRoZSBlbnRpcmUgY29tcG9uZW50IChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMjUxOSlcblx0ICovXG5cdCYsICY6aG92ZXIsICY6Zm9jdXMsICY6YWN0aXZlLCAmLmNrLW9uOmhvdmVyLCAmLmNrLW9uOmZvY3VzLCAmLmNrLW9uOmFjdGl2ZSB7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdH1cblxuXHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHQvKiBTZXBhcmF0ZSB0aGUgbGFiZWwgZnJvbSB0aGUgc3dpdGNoICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHQvKiBTZXBhcmF0ZSB0aGUgbGFiZWwgZnJvbSB0aGUgc3dpdGNoICovXG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkpO1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSB0b2dnbGUgaXMgYWx3YXlzIHRvIHRoZSByaWdodCBhcyBmYXIgYXMgcG9zc2libGUuICovXG5cdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIHRvZ2dsZSBpcyBhbHdheXMgdG8gdGhlIGxlZnQgYXMgZmFyIGFzIHBvc3NpYmxlLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xuXHRcdH1cblxuXHRcdC8qIEFwcGx5IHNvbWUgc21vb3RoIHRyYW5zaXRpb24gdG8gdGhlIGJveC1zaGFkb3cgYW5kIGJvcmRlci4gKi9cblx0XHQvKiBHZW50bHkgYW5pbWF0ZSB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgdG9nZ2xlIHN3aXRjaCAqL1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgNDAwbXMgZWFzZSwgYm94LXNoYWRvdyAuMnMgZWFzZS1pbi1vdXQsIG91dGxpbmUgLjJzIGVhc2UtaW4tb3V0O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdHdpZHRoOiB2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS13aWR0aCk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vZmYtYmFja2dyb3VuZCk7XG5cblx0XHQmIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IGNhbGMoLjUgKiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSk7XG5cdFx0XHR9XG5cblx0XHRcdHdpZHRoOiB2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS1pbm5lci1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtaW5uZXItc2l6ZSk7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLWlubmVyLWJhY2tncm91bmQpO1xuXG5cdFx0XHQvKiBHZW50bHkgYW5pbWF0ZSB0aGUgaW5uZXIgcGFydCBvZiB0aGUgdG9nZ2xlIHN3aXRjaCAqL1xuXHRcdFx0dHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7XG5cblx0XHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1ob3Zlci1iYWNrZ3JvdW5kKTtcblxuXHRcdFx0JiAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stc3dpdGNoLWJ1dHRvbi1pbm5lci1ob3Zlci1zaGFkb3cpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYuY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRAbWl4aW4gY2stZGlzYWJsZWQ7XG5cdH1cblxuXHQvKiBPdmVycmlkaW5nIGRlZmF1bHQgLmNrLWJ1dHRvbjpmb2N1cyBzdHlsZXMgKyBhbiBvdXRsaW5lIGFyb3VuZCB0aGUgdG9vZ2xlICovXG5cdCY6Zm9jdXMge1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXG5cdFx0JiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdFx0Ym94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDVweCB2YXIoLS1jay1jb2xvci1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHRcdFx0b3V0bGluZS1vZmZzZXQ6IDFweDtcblx0XHRcdG91dGxpbmU6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdH1cblx0fVxuXG5cdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cdCYuY2stb24ge1xuXHRcdCYgLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb24tYmFja2dyb3VuZCk7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuXG5cdFx0XHQmIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0XHQvKlxuXHRcdFx0XHQqIE1vdmUgdGhlIHRvZ2dsZSBzd2l0Y2ggdG8gdGhlIHJpZ2h0LiBJdCB3aWxsIGJlIGFuaW1hdGVkLlxuXHRcdFx0XHQqL1xuXHRcdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCB2YXIoIC0tY2stc3dpdGNoLWJ1dHRvbi10cmFuc2xhdGlvbiApICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCBjYWxjKCAtMSAqIHZhciggLS1jay1zd2l0Y2gtYnV0dG9uLXRyYW5zbGF0aW9uICkgKSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWJ1dHRvbi5jay1saXN0LWl0ZW0tYnV0dG9uIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSBjYWxjKDIgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSk7XG5cblx0Jixcblx0Ji5jay1vbiB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1iYWNrZ3JvdW5kKTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdH1cblxuXHQmOmhhcyguY2stbGlzdC1pdGVtLWJ1dHRvbl9fY2hlY2staG9sZGVyKSB7XG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBgLmNrLW9uYCBjbGFzcyBhbmQgYmFja2dyb3VuZCBzdHlsaW5nIGlzIG92ZXJyaWRkZW4gZm9yIGBjay1idXR0b25gIGluIG1hbnkgcGxhY2VzLlxuXHQgKiBUaGlzIGlzIGEgd29ya2Fyb3VuZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYmFja2dyb3VuZCBpcyBub3Qgb3ZlcnJpZGRlbiBhbmQgdXNlcyBzaW1pbGFyXG5cdCAqIHNlbGVjdG9yIHNwZWNpZmljaXR5IGFzIHRoZSBvdGhlciBvdmVycmlkZXMuXG5cdCAqL1xuXHQmOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpLFxuXHQmLmNrLWJ1dHRvbi5jay1vbjpob3Zlcixcblx0Ji5jay1vbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b25fdG9nZ2xlYWJsZSksXG5cdCYuY2stb246aG92ZXIge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuXG5cdFx0Jjpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sbGFwc2libGUtYXJyb3ctc2l6ZTogY2FsYygwLjUgKiB2YXIoLS1jay1pY29uLXNpemUpKTtcbn1cblxuLmNrLmNrLWNvbGxhcHNpYmxlIHtcblx0JiA+IC5jay5jay1idXR0b24ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdH1cblxuXHRcdCY6YWN0aXZlLCAmOm5vdCg6Zm9jdXMpLCAmOmhvdmVyOm5vdCg6Zm9jdXMpIHtcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1pY29uIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLWNvbGxhcHNpYmxlLWFycm93LXNpemUpO1xuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2stY29sbGFwc2libGVfX2NoaWxkcmVuIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cblxuXHQmLmNrLWNvbGxhcHNpYmxlX2NvbGxhcHNlZCB7XG5cdFx0JiA+IC5jay5jay1idXR0b24gLmNrLWljb24ge1xuXHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX21lZGlhY29sb3JzLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItZ3JpZC10aWxlLXNpemU6IDI0cHg7XG5cblx0LyogTm90IHVzaW5nIGdsb2JhbCBjb2xvcnMgaGVyZSBiZWNhdXNlIHRoZXNlIG1heSBjaGFuZ2UgYnV0IHNvbWUgY29sb3JzIGluIGEgcGFsbGV0dGVcblx0ICogcmVxdWlyZSBzcGVjaWFsIHRyZWF0bWVudC4gRm9yIGluc3RhbmNlLCB0aGlzIGVuc3VyZXMgbm8gbWF0dGVyIHdoYXQgdGhlIFVJIHRleHQgY29sb3IgaXMsXG5cdCAqIHRoZSBjaGVjayBpY29uIHdpbGwgbG9vayBnb29kIG9uIHRoZSBibGFjayBjb2xvciB0aWxlLiAqL1xuXHQtLWNrLWNvbG9yLWNvbG9yLWdyaWQtY2hlY2staWNvbjogaHNsKDIxMiwgODElLCA0NiUpO1xufVxuXG4uY2suY2stY29sb3ItZ3JpZCB7XG5cdGdyaWQtZ2FwOiA1cHg7XG5cdHBhZGRpbmc6IDhweDtcbn1cblxuLmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUge1xuXHR0cmFuc2l0aW9uOiAuMnMgZWFzZSBib3gtc2hhZG93O1xuXG5cdEBtaXhpbiBjay1tZWRpYS1kZWZhdWx0LWNvbG9ycyB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplKTtcblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplKTtcblx0XHRtaW4taGVpZ2h0OiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDA7XG5cblx0XHQmLmNrLW9uLFxuXHRcdCY6Zm9jdXM6bm90KCAuY2stZGlzYWJsZWQgKSxcblx0XHQmOmhvdmVyOm5vdCggLmNrLWRpc2FibGVkICkge1xuXHRcdFx0LyogRGlzYWJsZSB0aGUgZGVmYXVsdCAuY2stYnV0dG9uJ3MgYm9yZGVyIHJpbmcuICovXG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0fVxuXG5cdFx0Ji5jay1jb2xvci1zZWxlY3Rvcl9fY29sb3ItdGlsZV9ib3JkZXJlZCB7XG5cdFx0XHRib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdH1cblxuXHRcdCYuY2stb24ge1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHRcdH1cblxuXHRcdCY6Zm9jdXM6bm90KCAuY2stZGlzYWJsZWQgKSxcblx0XHQmOmhvdmVyOm5vdCggLmNrLWRpc2FibGVkICkge1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIEluIGhpZ2ggY29udHJhc3QgbW9kZSwgdGhlIGNvbG9ycyBhcmUgcmVwbGFjZWQgd2l0aCB0ZXh0IGxhYmVscy5cblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0OTA3LlxuXHQgKi9cblx0QG1peGluIGNrLW1lZGlhLWZvcmNlZC1jb2xvcnMge1xuXHRcdHdpZHRoOiB1bnNldDtcblx0XHRoZWlnaHQ6IHVuc2V0O1xuXHRcdG1pbi13aWR0aDogdW5zZXQ7XG5cdFx0bWluLWhlaWdodDogdW5zZXQ7XG5cdFx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblxuXHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblx0fVxuXG5cdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0fVxuXG5cdCYuY2stZGlzYWJsZWQge1xuXHRcdGN1cnNvcjogdW5zZXQ7XG5cdFx0dHJhbnNpdGlvbjogdW5zZXQ7XG5cdH1cblxuXHQmIC5jay5jay1pY29uIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1jb2xvci1ncmlkLWNoZWNrLWljb24pO1xuXHR9XG5cblx0Ji5jay1vbiB7XG5cdFx0JiAuY2suY2staWNvbiB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cdH1cbn1cblxuLmNrLmNrLWNvbG9yLWdyaWRfX2xhYmVsIHtcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBkZWZpbmUtbWl4aW4gY2stbWVkaWEtZm9yY2VkLWNvbG9ycyB7XG5cdEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG5cdFx0JiB7XG5cdFx0XHRAbWl4aW4tY29udGVudDtcblx0XHR9XG5cdH1cbn1cblxuQGRlZmluZS1taXhpbiBjay1tZWRpYS1kZWZhdWx0LWNvbG9ycyB7XG5cdEBtZWRpYSAoZm9yY2VkLWNvbG9yczogbm9uZSkge1xuXHRcdCYge1xuXHRcdFx0QG1peGluLWNvbnRlbnQ7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWNvbG9yLXNlbGVjdG9yIHtcblx0LyogVmlldyBmcmFnbWVudCB3aXRoIGNvbG9yIGdyaWRzLiAqL1xuXHQmIC5jay1jb2xvci1ncmlkcy1mcmFnbWVudCB7XG5cdFx0JiAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19yZW1vdmUtY29sb3IsXG5cdFx0JiAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXIge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uLmNrLWNvbG9yLXNlbGVjdG9yX19jb2xvci1waWNrZXIge1xuXHRcdFx0cGFkZGluZzogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSAvIDIpIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXG5cdFx0XHQmOm5vdCg6Zm9jdXMpIHtcblx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblxuXHRcdFx0JiAuY2suY2staWNvbiB7XG5cdFx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYgbGFiZWwuY2suY2stY29sb3ItZ3JpZF9fbGFiZWwge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IHVuc2V0O1xuXHRcdH1cblx0fVxuXG5cdC8qIFZpZXcgZnJhZ21lbnQgd2l0aCBhIGNvbG9yIHBpY2tlci4gKi9cblx0JiAuY2stY29sb3ItcGlja2VyLWZyYWdtZW50IHtcblx0XHQmIC5jay5jay1jb2xvci1waWNrZXIge1xuXHRcdFx0cGFkZGluZzogOHB4O1xuXG5cdFx0XHQmIC5oZXgtY29sb3ItcGlja2VyIHtcblx0XHRcdFx0aGVpZ2h0OiAxMDBweDtcblx0XHRcdFx0bWluLXdpZHRoOiAxODBweDtcblxuXHRcdFx0XHQmOjpwYXJ0KHNhdHVyYXRpb24pIHtcblx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSAwIDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOjpwYXJ0KGh1ZSkge1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS1jay1ib3JkZXItcmFkaXVzKSB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6OnBhcnQoc2F0dXJhdGlvbi1wb2ludGVyKSxcblx0XHRcdFx0Jjo6cGFydChodWUtcG9pbnRlcikge1xuXHRcdFx0XHRcdHdpZHRoOiAxNXB4O1xuXHRcdFx0XHRcdGhlaWdodDogMTVweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYgLmNrLmNrLWNvbG9yLXNlbGVjdG9yX2FjdGlvbi1iYXIge1xuXHRcdFx0cGFkZGluZzogMCA4cHggOHB4O1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stZGlhbG9nLW92ZXJsYXktYmFja2dyb3VuZC1jb2xvcjogaHNsYSggMCwgMCUsIDAlLCAuNSApO1xuXHQtLWNrLWRpYWxvZy1kcm9wLXNoYWRvdzogMHB4IDBweCA2cHggMnB4IGhzbCgwZGVnIDAlIDAlIC8gMTUlKTtcblx0LS1jay1kaWFsb2ctbWF4LXdpZHRoOiAxMDB2dztcblx0LS1jay1kaWFsb2ctbWF4LWhlaWdodDogOTB2aDtcblx0LS1jay1jb2xvci1kaWFsb2ctYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1kaWFsb2ctZm9ybS1oZWFkZXItYm9yZGVyOiB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG59XG5cbi5jay5jay1kaWFsb2ctb3ZlcmxheSB7XG5cdGFuaW1hdGlvbjogY2stZGlhbG9nLWZhZGUtaW4gLjNzO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1kaWFsb2ctb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yKTtcblx0ei1pbmRleDogdmFyKC0tY2stei1kaWFsb2cpO1xufVxuXG4uY2suY2stZGlhbG9nIHtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblx0QG1peGluIGNrLWRyb3Atc2hhZG93O1xuXG5cdC0tY2stZHJvcC1zaGFkb3c6IHZhcigtLWNrLWRpYWxvZy1kcm9wLXNoYWRvdyk7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZGlhbG9nLWJhY2tncm91bmQpO1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1kaWFsb2ctbWF4LWhlaWdodCk7XG5cdG1heC13aWR0aDogdmFyKC0tY2stZGlhbG9nLW1heC13aWR0aCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0b3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcblxuXHQmIC5jay5jay1mb3JtX19oZWFkZXIge1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kaWFsb2ctZm9ybS1oZWFkZXItYm9yZGVyKTtcblx0fVxufVxuXG4uY2stZGlhbG9nLXNjcm9sbC1sb2NrZWQge1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5Aa2V5ZnJhbWVzIGNrLWRpYWxvZy1mYWRlLWluIHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQ6IGhzbGEoIDAsIDAlLCAwJSwgMCApO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stZGlhbG9nLW92ZXJsYXktYmFja2dyb3VuZC1jb2xvcik7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBkZWZpbmUtbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXHRcdEBtaXhpbi1jb250ZW50O1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZGlhbG9nIHtcblx0JiAuY2suY2stZGlhbG9nX19hY3Rpb25zIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblxuXHRcdCYgPiAqICsgKiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fZGlzYWJsZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19zaGFkb3cuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWRyb3Bkb3duLWFycm93LXNpemU6IGNhbGMoMC41ICogdmFyKC0tY2staWNvbi1zaXplKSk7XG59XG5cbi5jay5jay1kcm9wZG93biB7XG5cdC8qIEVuYWJsZSBmb250IHNpemUgaW5oZXJpdGFuY2UsIHdoaWNoIGFsbG93cyBmbHVpZCBVSSBzY2FsaW5nLiAqL1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cblx0JiAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cdH1cblxuXHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0JiAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0LyogQSBzcGFjZSB0byBhY2NvbW1vZGF0ZSB0aGUgdHJpYW5nbGUuICovXG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuXHR9XG5cblx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdCYgLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0LyogQSBzcGFjZSB0byBhY2NvbW1vZGF0ZSB0aGUgdHJpYW5nbGUuICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stZGlzYWJsZWQgLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0QG1peGluIGNrLWRpc2FibGVkO1xuXHR9XG5cblx0JiAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdCY6bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdC8qIE1ha2Ugc3VyZSBkcm9wZG93bnMgd2l0aCBqdXN0IGFuIGljb24gaGF2ZSB0aGUgcmlnaHQgaW5uZXIgc3BhY2luZyAqL1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdCY6bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdC8qIE1ha2Ugc3VyZSBkcm9wZG93bnMgd2l0aCBqdXN0IGFuIGljb24gaGF2ZSB0aGUgcmlnaHQgaW5uZXIgc3BhY2luZyAqL1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiAjMjMgKi9cblx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdHdpZHRoOiA3ZW07XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0fVxuXG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy83MCAqL1xuXHRcdCYuY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0QG1peGluIGNrLWRpc2FibGVkO1xuXHRcdH1cblxuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgxNiAqL1xuXHRcdCYuY2stb24ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cblxuXHRcdCYuY2stZHJvcGRvd25fX2J1dHRvbl9sYWJlbC13aWR0aF9hdXRvIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdH1cblxuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzg2OTkgKi9cblx0XHQmLmNrLW9mZjphY3RpdmUsXG5cdFx0Ji5jay1vbjphY3RpdmUge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblxuXHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdEBtaXhpbiBjay1ib3gtc2hhZG93IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jay5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXHRAbWl4aW4gY2stZHJvcC1zaGFkb3c7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcik7XG5cdGJvdHRvbTogMDtcblxuXHQvKiBNYWtlIHN1cmUgdGhlIHBhbmVsIGlzIGF0IGxlYXN0IGFzIHdpZGUgYXMgdGhlIGRyb3AtZG93bidzIGJ1dHRvbi4gKi9cblx0bWluLXdpZHRoOiAxMDAlO1xuXG5cdC8qIERpc2FibGVkIGNvcm5lciBib3JkZXIgcmFkaXVzIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgLmRyb3Bkb3duX19idXR0b25cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODE2ICovXG5cdCYuY2stZHJvcGRvd25fX3BhbmVsX3NlIHtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Ji5jay1kcm9wZG93bl9fcGFuZWxfc3cge1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbmUge1xuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmLmNrLWRyb3Bkb3duX19wYW5lbF9udyB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuXG4uY2suY2stZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsID4gLmNrLWxpc3Qge1xuXHQvKiBEaXNhYmxlZCByYWRpdXMgb2YgdG9wLWxlZnQgYm9yZGVyIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCAuZHJvcGRvd25fX2J1dHRvblxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MTYgKi9cblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuXG5cdC8qIE1ha2Ugc3VyZSB0aGUgYnV0dG9uIGJlbG9uZ2luZyB0byB0aGUgZmlyc3QvbGFzdCBjaGlsZCBvZiB0aGUgbGlzdCBnb2VzIHdlbGwgd2l0aCB0aGVcblx0Ym9yZGVyIHJhZGl1cyBvZiB0aGUgZW50aXJlIHBhbmVsLiAqL1xuXHQmIC5jay1saXN0X19pdGVtIHtcblx0XHQmOmZpcnN0LWNoaWxkID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JjpsYXN0LWNoaWxkID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3Itc3BsaXQtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTIlKTtcblx0LS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYm9yZGVyOiBoc2woMCwgMCUsIDcwJSk7XG59XG5cbi5jay5jay1zcGxpdGJ1dHRvbiB7XG5cdC8qXG5cdCAqIE5vdGU6IGNrLXJvdW5kZWQgYW5kIGNrLWRpciBtaXhpbnMgZG9uJ3QgZ28gdG9nZXRoZXIgKGJlY2F1c2UgdGhleSBib3RoIHVzZSBAbmVzdCkuXG5cdCAqL1xuXHQmOmhvdmVyID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24sXG5cdCYuY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uIHtcblx0XHRbZGlyPVwibHRyXCJdICYge1xuXHRcdFx0LyogRG9uJ3Qgcm91bmQgdGhlIGFjdGlvbiBidXR0b24gb24gdGhlIHJpZ2h0IHNpZGUgKi9cblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHR9XG5cblx0XHRbZGlyPVwicnRsXCJdICYge1xuXHRcdFx0LyogRG9uJ3Qgcm91bmQgdGhlIGFjdGlvbiBidXR0b24gb24gdGhlIGxlZnQgc2lkZSAqL1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdW5zZXQ7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB1bnNldDtcblx0XHR9XG5cdH1cblxuXHQmID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdyB7XG5cdFx0LyogSXQncyBhIHRleHQtbGVzcyBidXR0b24gYW5kIHNpbmNlIHRoZSBpY29uIGlzIHBvc2l0aW9uZWQgYWJzb2x1dGVseSBpbiBzdWNoIHNpdHVhdGlvbixcblx0XHRpdCBtdXN0IGdldCBzb21lIGFyYml0cmFyeSBtaW4td2lkdGguICovXG5cdFx0bWluLXdpZHRoOiB1bnNldDtcblxuXHRcdFtkaXI9XCJsdHJcIl0gJiB7XG5cdFx0XHQvKiBEb24ndCByb3VuZCB0aGUgYXJyb3cgYnV0dG9uIG9uIHRoZSBsZWZ0IHNpZGUgKi9cblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHVuc2V0O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdW5zZXQ7XG5cdFx0fVxuXG5cdFx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0XHRcdC8qIERvbid0IHJvdW5kIHRoZSBhcnJvdyBidXR0b24gb24gdGhlIHJpZ2h0IHNpZGUgKi9cblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHR9XG5cblx0XHQmIHN2ZyB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cdFx0fVxuXHR9XG5cblx0LyogTWFrZSBzdXJlIHRoZSBkaXZpZGVyIHN0cmV0Y2hlcyAxMDAlIGhlaWdodCBvZiB0aGUgYnV0dG9uXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEwOTM2ICovXG5cdCYgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCg6Zm9jdXMpIHtcblx0XHRib3JkZXItdG9wLXdpZHRoOiAwcHg7XG5cdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMHB4O1xuXHR9XG5cblx0LyogRG9uJ3Qgcm91bmQgdGhlIGJvdHRvbSBsZWZ0IGFuZCByaWdodCBjb3JuZXJzIG9mIHRoZSBidXR0b25zIHdoZW4gXCJvcGVuXCJcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODE2ICovXG5cdCYuY2stc3BsaXRidXR0b25fb3BlbiB7XG5cdFx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0XHQmID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24ge1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0fVxuXG5cdFx0XHQmID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdyB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIFdoZW4gdGhlIHNwbGl0IGJ1dHRvbiBpcyBcIm9wZW5cIiAodGhlIGFycm93IGlzIG9uKSBvciBiZWluZyBob3ZlcmVkLCBpdCBzaG91bGQgZ2V0IHNvbWUgc3R5bGluZ1xuXHRhcyBhIHdob2xlLiBUaGUgYmFja2dyb3VuZCBvZiBib3RoIGJ1dHRvbnMgc2hvdWxkIHN0YW5kIG91dCBhbmQgdGhlcmUgc2hvdWxkIGJlIGEgdmlzdWFsXG5cdHNlcGFyYXRpb24gYmV0d2VlbiBib3RoIGJ1dHRvbnMuICovXG5cdCYuY2stc3BsaXRidXR0b25fb3Blbixcblx0Jjpob3ZlciB7XG5cdFx0LyogV2hlbiB0aGUgc3BsaXQgYnV0dG9uIGhvdmVyZWQgYXMgYSB3aG9sZSwgbm90IGFzIGluZGl2aWR1YWwgYnV0dG9ucy4gKi9cblx0XHQmID4gLmNrLWJ1dHRvbjpub3QoLmNrLW9uKTpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXG5cdFx0LyogU3BsaXRidXR0b24gc2VwYXJhdG9yIG5lZWRzIHRvIGJlIHNldCB3aXRoIHRoZSA6OmFmdGVyIHBzZXVkb3NlbGVjdG9yXG5cdFx0dG8gZGlzcGxheSBwcm9wZXJseSB0aGUgYm9yZGVycyBvbiBmb2N1cyAqL1xuXHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHdpZHRoOiAxcHg7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYm9yZGVyKTtcblx0XHR9XG5cblx0XHQvKiBNYWtlIHN1cmUgdGhlIGRpdmlkZXIgYmV0d2VlbiB0aGUgYnV0dG9ucyBsb29rcyBmaW5lIHdoZW4gdGhlIGJ1dHRvbiBpcyBmb2N1c2VkICovXG5cdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6Zm9jdXM6OmFmdGVyIHtcblx0XHRcdC0tY2stY29sb3Itc3BsaXQtYnV0dG9uLWhvdmVyLWJvcmRlcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHR9XG5cblx0XHRbZGlyPVwibHRyXCJdICYge1xuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6OmFmdGVyIHtcblx0XHRcdFx0bGVmdDogLTFweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRbZGlyPVwicnRsXCJdICYge1xuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6OmFmdGVyIHtcblx0XHRcdFx0cmlnaHQ6IC0xcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdG9vbGJhci1kcm9wZG93biAuY2stdG9vbGJhciB7XG5cdGJvcmRlcjogMDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9taXhpbnMvX2Rpc2FibGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fYnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi8qXG4gKiBBbGwgbWVudSBidXR0b25zLlxuICovXG4uY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duLW1lbnUtbGlzdF9fbmVzdGVkLW1lbnVfX2J1dHRvbiB7XG5cdHdpZHRoOiAxMDAlO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHQmOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cblx0XHQmOm5vdCguY2stb24pIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0ZmxleC1ncm93OiAxO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdH1cblxuXHQmLmNrLWRpc2FibGVkID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdEBtaXhpbiBjay1kaXNhYmxlZDtcblx0fVxuXG5cdC8qIFNwYWNpbmcgaW4gYnV0dG9ucyB0aGF0IG1pc3MgdGhlIGljb24uICovXG5cdCYuY2staWNvbi1zcGFjaW5nOm5vdCg6aGFzKC5jay1idXR0b25fX2ljb24pKSA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jay1pY29uLXNpemUpIC0gdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHR9XG5cblx0JiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXG5cdFx0XHQvKiBOdWRnZSB0aGUgYXJyb3cgZ2VudGx5IHRvIHRoZSByaWdodCBiZWNhdXNlIGl0cyBjZW50ZXIgb2YgZ3Jhdml0eSBpcyB0byB0aGUgbGVmdCAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcblxuXHRcdFx0LyogTnVkZ2UgdGhlIGFycm93IGdlbnRseSB0byB0aGUgbGVmdCBiZWNhdXNlIGl0cyBjZW50ZXIgb2YgZ3Jhdml0eSBpcyB0byB0aGUgcmlnaHQgKGFmdGVyIHJvdGF0aW9uKS4gKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stZGlzYWJsZWQgPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0QG1peGluIGNrLWRpc2FibGVkO1xuXHR9XG5cblx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdCY6bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuXHRcdCYgPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cblx0fVxuXG5cdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHQmOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkge1xuXHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stZHJvcGRvd24tbWVudS1tZW51LWl0ZW0tbWluLXdpZHRoOiAxOGVtO1xufVxuXG4uY2suY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9faXRlbSB7XG5cdG1pbi13aWR0aDogdmFyKC0tY2stZHJvcGRvd24tbWVudS1tZW51LWl0ZW0tbWluLXdpZHRoKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBMaXN0IGl0ZW0gYnV0dG9ucy5cbiAqL1xuLmNrLWJ1dHRvbi5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19pdGVtX19idXR0b24ge1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdCYgPiAuY2stc3Bpbm5lci1jb250YWluZXIsXG5cdCYgPiAuY2stc3Bpbm5lci1jb250YWluZXIgLmNrLXNwaW5uZXIge1xuXHRcdC8qIFRoZXNlIHN0eWxlcyBjb3JyZXNwb25kIHRvIC5jay1pY29uIHNvIHRoYXQgdGhlIHNwaW5uZXIgc2VhbWxlc3NseSByZXBsYWNlcyB0aGUgaWNvbi4gKi9cblx0XHQtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplOiAyMHB4O1xuXHR9XG5cblx0JiA+IC5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdFx0LyogVGhlc2UgbWFyZ2lucyBhcmUgdGhlIHNhbWUgYXMgZm9yIC5jay1pY29uLiAqL1xuXHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQvKlxuXHQgKiBIb3ZlcmVkIGl0ZW1zIGF1dG9tYXRpY2FsbHkgZ2V0IGZvY3VzZWQuIERlZmF1bHQgZm9jdXMgc3R5bGVzIGxvb2sgb2RkXG5cdCAqIHdoaWxlIG1vdmluZyBhY3Jvc3MgYSBodWdlIGxpc3Qgb2YgaXRlbXMgc28gbGV0J3MgZ2V0IHJpZCBvZiB0aGVtXG5cdCAqL1xuXHQmOmZvY3VzIHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cblx0XHQmOm5vdCguY2stb24pIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWRyb3Bkb3duLW1lbnUtbWVudS1wYW5lbC1tYXgtd2lkdGg6IDc1dnc7XG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWRyb3Bkb3duLW1lbnVfX25lc3RlZC1tZW51X19wYW5lbCB7XG5cdEBtaXhpbiBjay1kcm9wLXNoYWRvdztcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYm9yZGVyKTtcblx0Ym90dG9tOiAwO1xuXHRoZWlnaHQ6IGZpdC1jb250ZW50O1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLW1lbnUtbWVudS1wYW5lbC1tYXgtd2lkdGgpO1xuXG5cdC8qIFJlc2V0IGJhbGxvb24gc3R5bGluZyAqL1xuXHQmOjphZnRlcixcblx0Jjo6YmVmb3JlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0LyogQ29ybmVyIGJvcmRlciByYWRpdXMgY29uc2lzdGVudCB3aXRoIHRoZSBidXR0b24uICovXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9lcyxcblx0Ji5jay1iYWxsb29uLXBhbmVsX3NlIHtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX3dzLFxuXHQmLmNrLWJhbGxvb24tcGFuZWxfc3cge1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2VuLFxuXHQmLmNrLWJhbGxvb24tcGFuZWxfbmUge1xuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfd24sXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9udyB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19mb2N1cy5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctbWF4LXdpZHRoOiA2MDBweDtcblx0LS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLW1heC1oZWlnaHQ6IDQwMHB4O1xuXHQtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctYm9yZGVyLWNvbG9yOiBoc2woMjIwLCA2JSwgODElKTtcblx0LS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWNvZGUtYmFja2dyb3VuZC1jb2xvcjogaHNsKDBkZWcgMCUgOTIuOTQlKTtcblx0LS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWtiZC1zaGFkb3ctY29sb3I6IGhzbCgwZGVnIDAlIDYxJSk7XG59XG5cbi5jay5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nIC5jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nX19jb250ZW50IHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdG1heC13aWR0aDogdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1tYXgtd2lkdGgpO1xuXHRtYXgtaGVpZ2h0OiB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLW1heC1oZWlnaHQpO1xuXHRvdmVyZmxvdzogYXV0bztcblx0dXNlci1zZWxlY3Q6IHRleHQ7XG5cblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0Jjpmb2N1cyB7XG5cdFx0QG1peGluIGNrLWZvY3VzLXJpbmc7XG5cdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93KTtcblx0fVxuXG5cdCoge1xuXHRcdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cdH1cblxuXHQvKiBIaWRlIHRoZSBtYWluIGxhYmVsIG9mIHRoZSBjb250ZW50IGNvbnRhaW5lci4gKi9cblx0JiAuY2stbGFiZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQmIGgzIHtcblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRmb250LXNpemU6IDEuMmVtO1xuXHR9XG5cblx0JiBoNCB7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0Zm9udC1zaXplOiAxZW07XG5cdH1cblxuXHQmIHAsXG5cdCYgaDMsXG5cdCYgaDQsXG5cdCYgdGFibGUge1xuXHRcdG1hcmdpbjogMWVtIDA7XG5cdH1cblxuXHQmIGRsIHtcblx0XHRkaXNwbGF5OiBncmlkO1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmcjtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stYWNjZXNzaWJpbGl0eS1oZWxwLWRpYWxvZy1ib3JkZXItY29sb3IpO1xuXHRcdGJvcmRlci1ib3R0b206IG5vbmU7XG5cblx0XHQmIGR0LCAmIGRkIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWJvcmRlci1jb2xvcik7XG5cdFx0XHRwYWRkaW5nOiAuNGVtIDA7XG5cdFx0fVxuXG5cdFx0JiBkdCB7XG5cdFx0XHRncmlkLWNvbHVtbi1zdGFydDogMTtcblx0XHR9XG5cblx0XHQmIGRkIHtcblx0XHRcdGdyaWQtY29sdW1uLXN0YXJ0OiAyO1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0fVxuXHR9XG5cblx0JiBrYmQsICYgY29kZSB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWFjY2Vzc2liaWxpdHktaGVscC1kaWFsb2ctY29kZS1iYWNrZ3JvdW5kLWNvbG9yKTtcblx0XHRwYWRkaW5nOiAuNGVtO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXNpemU6IC45ZW07XG5cdH1cblxuXHQmIGNvZGUge1xuXHRcdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdH1cblxuXHQmIGtiZCB7XG5cdFx0bWluLXdpZHRoOiAxLjhlbTtcblx0XHRib3gtc2hhZG93OiAwcHggMXB4IDFweCB2YXIoLS1jay1hY2Nlc3NpYmlsaXR5LWhlbHAtZGlhbG9nLWtiZC1zaGFkb3ctY29sb3IpO1xuXHRcdG1hcmdpbjogMCAxcHg7XG5cblx0XHQmICsga2JkIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAycHg7XG5cdFx0fVxuXHR9XG59XG5cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19kaXNhYmxlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2ZvY3VzLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uL21peGlucy9fYnV0dG9uLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItZWRpdGFibGUtYmx1ci1zZWxlY3Rpb246IGhzbCgwLCAwJSwgODUlKTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSkge1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdCYuY2stZm9jdXNlZCB7XG5cdFx0QG1peGluIGNrLWZvY3VzLXJpbmc7XG5cdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2staW5uZXItc2hhZG93KTtcblx0fVxufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUge1xuXHRvdmVyZmxvdzogYXV0bztcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0JltkaXI9XCJsdHJcIl0ge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cblxuXHQmW2Rpcj1cInJ0bFwiXSB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cblxuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzExNiAqL1xuXHQmID4gKjpmaXJzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cblxuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84NDcgKi9cblx0JiA+ICo6bGFzdC1jaGlsZCB7XG5cdFx0Lypcblx0XHQgKiBUaGlzIHZhbHVlIHNob3VsZCBtYXRjaCB3aXRoIHRoZSBkZWZhdWx0IG1hcmdpbnMgb2YgdGhlIGJsb2NrIGVsZW1lbnRzIChsaWtlIC5tZWRpYSBvciAuaW1hZ2UpXG5cdFx0ICogdG8gYXZvaWQgYSBjb250ZW50IGp1bXBpbmcgd2hlbiB0aGUgZmFrZSBzZWxlY3Rpb24gY29udGFpbmVyIHNob3dzIHVwIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuXG5cdFx0ICovXG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cblxuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NTE3ICovXG5cdCYuY2stYmx1cnJlZCA6OnNlbGVjdGlvbiB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZWRpdGFibGUtYmx1ci1zZWxlY3Rpb24pO1xuXHR9XG59XG5cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTExICovXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sYmFyLWNvbnRhaW5lcltjbGFzcyo9XCJhcnJvd19uXCJdIHtcblx0Jjo6YWZ0ZXIge1xuXHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpO1xuXHR9XG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2xiYXItY29udGFpbmVyW2NsYXNzKj1cImFycm93X3NcIl0ge1xuXHQmOjphZnRlciB7XG5cdFx0Ym9yZGVyLXRvcC1jb2xvcjogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stZm9ybS1oZWFkZXItaGVpZ2h0OiA0NHB4O1xufVxuXG4uY2suY2stZm9ybV9faGVhZGVyIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdGhlaWdodDogdmFyKC0tY2stZm9ybS1oZWFkZXItaGVpZ2h0KTtcblx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWZvcm0taGVhZGVyLWhlaWdodCk7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0JiA+IC5jay1pY29uIHtcblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdH1cblx0fVxuXG5cdCYgLmNrLWZvcm1fX2hlYWRlcl9fbGFiZWwge1xuXHRcdC0tY2stZm9udC1zaXplLWJhc2U6IDE1cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1pY29uLXNpemU6IGNhbGModmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSkgKiB2YXIoLS1jay1mb250LXNpemUtbm9ybWFsKSk7XG5cdC0tY2staWNvbi1mb250LXNpemU6IC44MzMzMzUwNjk0ZW07XG59XG5cbi5jay5jay1pY29uIHtcblx0d2lkdGg6IHZhcigtLWNrLWljb24tc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2staWNvbi1zaXplKTtcblxuXHQvKiBNdWx0aXBsaWVkIGJ5IHRoZSBoZWlnaHQgb2YgdGhlIGxpbmUgaW4gXCJweFwiIHNob3VsZCBnaXZlIFNWRyBcInZpZXdwb3J0XCIgZGltZW5zaW9ucyAqL1xuXHRmb250LXNpemU6IHZhcigtLWNrLWljb24tZm9udC1zaXplKTtcblxuXHQvKiBJbmhlcml0IGN1cnNvciBzdHlsZSAoIzUpLiAqL1xuXHRjdXJzb3I6IGluaGVyaXQ7XG5cblx0JiAqIHtcblx0XHQvKiBJbmhlcml0IGN1cnNvciBzdHlsZSAoIzUpLiAqL1xuXHRcdGN1cnNvcjogaW5oZXJpdDtcblx0fVxuXG5cdC8qIEFsbG93cyBkeW5hbWljIGNvbG9yaW5nIG9mIGFuIGljb24gYnkgaW5oZXJpdGluZyBpdHMgY29sb3IgZnJvbSB0aGUgcGFyZW50LiAqL1xuXHQmLmNrLWljb25faW5oZXJpdC1jb2xvciB7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cblx0XHQmICoge1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cblx0XHRcdCY6bm90KFtmaWxsXSkge1xuXHRcdFx0XHQvKiBOZWVkZWQgYnkgRkYuICovXG5cdFx0XHRcdGZpbGw6IGN1cnJlbnRDb2xvcjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19mb2N1cy5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWlucHV0LXdpZHRoOiAxOGVtO1xuXG5cdC8qIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICovXG5cdC0tY2staW5wdXQtdGV4dC13aWR0aDogdmFyKC0tY2staW5wdXQtd2lkdGgpO1xufVxuXG4uY2suY2staW5wdXQge1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWlucHV0LWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1pbnB1dC1ib3JkZXIpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWV4dHJhLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0bWluLXdpZHRoOiB2YXIoLS1jay1pbnB1dC13aWR0aCk7XG5cblx0LyogVGhpcyBpcyBpbXBvcnRhbnQgdG8gc3RheSBvZiB0aGUgc2FtZSBoZWlnaHQgYXMgc3Vycm91bmRpbmcgYnV0dG9ucyAqL1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cblx0LyogQXBwbHkgc29tZSBzbW9vdGggdHJhbnNpdGlvbiB0byB0aGUgYm94LXNoYWRvdyBhbmQgYm9yZGVyLiAqL1xuXHR0cmFuc2l0aW9uOiBib3gtc2hhZG93IC4xcyBlYXNlLWluLW91dCwgYm9yZGVyIC4xcyBlYXNlLWluLW91dDtcblxuXHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRAbWl4aW4gY2stZm9jdXMtcmluZztcblx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHR9XG5cblx0JltyZWFkb25seV0ge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJvcmRlcik7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLXRleHQpO1xuXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHQvKiBUaGUgcmVhZC1vbmx5IGlucHV0IHNob3VsZCBoYXZlIGEgc2xpZ2h0bHkgbGVzcyB2aXNpYmxlIHNoYWRvdyB3aGVuIGZvY3VzZWQuICovXG5cdFx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1mb2N1cy1kaXNhYmxlZC1vdXRlci1zaGFkb3cpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stZXJyb3Ige1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItaW5wdXQtZXJyb3ItYm9yZGVyKTtcblx0XHRhbmltYXRpb246IGNrLWlucHV0LXNoYWtlIC4zcyBlYXNlIGJvdGg7XG5cblx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdH1cblxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2stZm9jdXMtZXJyb3Itb3V0ZXItc2hhZG93KTtcblx0XHR9XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay1pbnB1dC1zaGFrZSB7XG5cdDIwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpO1xuXHR9XG5cblx0NDAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcblx0fVxuXG5cdDYwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcHgpO1xuXHR9XG5cblx0ODAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxhYmVsIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1sYWJlbGVkLWZpZWxkLXZpZXctdHJhbnNpdGlvbjogLjFzIGN1YmljLWJlemllcigwLCAwLCAwLjI0LCAwLjk1KTtcblx0LS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGg6IDEwMCUgLSAyICogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHQtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXk6IGNhbGMoMC42ICogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpKTtcblx0LS1jay1jb2xvci1sYWJlbGVkLWZpZWxkLWxhYmVsLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG59XG5cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdCYgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyIHtcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdCYgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0dG9wOiAwcHg7XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0bGVmdDogMHB4O1xuXHRcdFx0XHR0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG5cdFx0XHRcdC8qIEJ5IGRlZmF1bHQsIGRpc3BsYXkgdGhlIGxhYmVsIHNjYWxlZCBkb3duIGFib3ZlIHRoZSBmaWVsZC4gKi9cblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tY2stc3BhY2luZy1tZWRpdW0pLCAtNnB4KSBzY2FsZSguNzUpO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdHJpZ2h0OiAwcHg7XG5cdFx0XHRcdHRyYW5zZm9ybS1vcmlnaW46IDEwMCUgMDtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKSksIC02cHgpIHNjYWxlKC43NSk7XG5cdFx0XHR9XG5cblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1sYWJlbGVkLWZpZWxkLWxhYmVsLWJhY2tncm91bmQpO1xuXHRcdFx0cGFkZGluZzogMCBjYWxjKC41ICogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpKTtcblx0XHRcdGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuXHRcdFx0LyogUHJldmVudCBvdmVyZmxvdyB3aGVuIHRoZSBsYWJlbCBpcyBsb25nZXIgdGhhbiB0aGUgaW5wdXQgKi9cblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0XHR0cmFuc2l0aW9uOlxuXHRcdFx0XHR0cmFuc2Zvcm0gdmFyKC0tY2stbGFiZWxlZC1maWVsZC12aWV3LXRyYW5zaXRpb24pLFxuXHRcdFx0XHRwYWRkaW5nIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtdmlldy10cmFuc2l0aW9uKSxcblx0XHRcdFx0YmFja2dyb3VuZCB2YXIoLS1jay1sYWJlbGVkLWZpZWxkLXZpZXctdHJhbnNpdGlvbik7XG5cblx0XHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1lcnJvciB7XG5cdFx0JiA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHRcdH1cblxuXHRcdCYgLmNrLWlucHV0Om5vdChbcmVhZG9ubHldKSArIC5jay5jay1sYWJlbCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0fVxuXHR9XG5cblx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3X19zdGF0dXMge1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXNtYWxsKTtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblxuXHRcdC8qIExldCB0aGUgaW5mbyB3cmFwIHRvIHRoZSBuZXh0IGxpbmUgdG8gYXZvaWQgc3RyZXRjaGluZyB0aGUgbGF5b3V0IGhvcml6b250YWxseS5cblx0XHRUaGUgc3RhdHVzIGNvdWxkIGJlIHZlcnkgbG9uZy4gKi9cblx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXG5cdFx0Ji5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1c19lcnJvciB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0fVxuXHR9XG5cblx0LyogRGlzYWJsZWQgZmllbGRzIGFuZCBmaWVsZHMgdGhhdCBoYXZlIG5vIGZvY3VzIHNob3VsZCBmYWRlIG91dC4gKi9cblx0Ji5jay1kaXNhYmxlZCA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwsXG5cdCYuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X2ZvY3VzZWQpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLXRleHQpO1xuXHR9XG5cblx0LyogRmllbGRzIHRoYXQgYXJlIGRpc2FibGVkIG9yIG5vdCBmb2N1c2VkIGFuZCB3aXRob3V0IGEgcGxhY2Vob2xkZXIgc2hvdWxkIGhhdmUgZnVsbC1zaXplZCBsYWJlbHMuICovXG5cdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cdCYuY2stZGlzYWJsZWQuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwsXG5cdCYuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5Om5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X2ZvY3VzZWQpOm5vdCguY2stbGFiZWxlZC1maWVsZC12aWV3X3BsYWNlaG9sZGVyKTpub3QoLmNrLWVycm9yKSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLWNrLWxhYmVsZWQtZmllbGQtbGFiZWwtZGVmYXVsdC1wb3NpdGlvbi14KSwgdmFyKC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXkpKSBzY2FsZSgxKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKC0xICogdmFyKC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXgpKSwgdmFyKC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXkpKSBzY2FsZSgxKTtcblx0XHR9XG5cblx0XHQvKiBDb21wZW5zYXRlIGZvciB0aGUgZGVmYXVsdCB0cmFuc2xhdGUgcG9zaXRpb24uICovXG5cdFx0bWF4LXdpZHRoOiBjYWxjKHZhcigtLWNrLWxhYmVsZWQtZmllbGQtZW1wdHktdW5mb2N1c2VkLW1heC13aWR0aCkpO1xuXG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC8qLS0tLS0tIERyb3Bkb3duVmlldyBpbnRlZ3JhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC8qIE1ha2Ugc3VyZSBkcm9wZG93bicgYmFja2dyb3VuZCBjb2xvciBpbiBhbnkgb2YgZHJvcGRvd24ncyBzdGF0ZSBkb2VzIG5vdCBjb2xsaWRlIHdpdGggbGFiZWxlZCBmaWVsZC4gKi9cblx0JiA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0fVxuXG5cdC8qIFdoZW4gdGhlIGRyb3Bkb3duIGlzIFwiZW1wdHlcIiwgdGhlIGxhYmVsZWQgZmllbGQgbGFiZWwgcmVwbGFjZXMgaXRzIGxhYmVsLiAqL1xuXHQmLmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eSA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2stZHJvcGRvd24gPiAuY2stYnV0dG9uID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblxuXHQvKiBNYWtlIHN1cmUgdGhlIGxhYmVsIG9mIHRoZSBlbXB0eSwgdW5mb2N1c2VkIGlucHV0IGRvZXMgbm90IGNvdmVyIHRoZSBkcm9wZG93biBhcnJvdy4gKi9cblx0Ji5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZm9jdXNlZCk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfcGxhY2Vob2xkZXIpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay1kcm9wZG93biArIC5jay1sYWJlbCB7XG5cdFx0bWF4LXdpZHRoOiBjYWxjKHZhcigtLWNrLWxhYmVsZWQtZmllbGQtZW1wdHktdW5mb2N1c2VkLW1heC13aWR0aCkgLSB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKSAtIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxhYmVsZWQtaW5wdXQgLmNrLWxhYmVsZWQtaW5wdXRfX3N0YXR1cyB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXNtYWxsKTtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0LyogTGV0IHRoZSBpbmZvIHdyYXAgdG8gdGhlIG5leHQgbGluZSB0byBhdm9pZCBzdHJldGNoaW5nIHRoZSBsYXlvdXQgaG9yaXpvbnRhbGx5LlxuXHRUaGUgc3RhdHVzIGNvdWxkIGJlIHZlcnkgbG9uZy4gKi9cblx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuLmNrLmNrLWxhYmVsZWQtaW5wdXQgLmNrLWxhYmVsZWQtaW5wdXRfX3N0YXR1c19lcnJvciB7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2Rpc2FibGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stbGlzdCB7XG5cdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJhY2tncm91bmQpO1xuXG5cdC8qIEEgc3BhY2luZyBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGxpc3QgKi9cblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgMDtcbn1cblxuLmNrLmNrLWxpc3RfX2l0ZW0ge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cblx0LyogQWxtb3N0IGFzIHdpZGUgYXMgbWVudSBiYXIgaXRlbXMuICovXG5cdG1pbi13aWR0aDogMTVlbTtcblxuXHQmID4gLmNrLWJ1dHRvbjpub3QoLmNrLWxpc3QtaXRlbS1idXR0b24pIHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpKTtcblx0XHRtaW4taGVpZ2h0OiB1bnNldDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHR9XG5cblx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtaGVhZGluZy9pc3N1ZXMvNjMgKi9cblx0XHRcdGxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLWNrLWxpbmUtaGVpZ2h0LWJhc2UpICogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpKTtcblx0XHR9XG5cblx0XHQmOmFjdGl2ZSB7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdH1cblxuXHRcdCYuY2stb24ge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tdGV4dCk7XG5cblx0XHRcdCY6YWN0aXZlIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0Jjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLWJhY2tncm91bmQtZm9jdXMpO1xuXHRcdFx0fVxuXG5cdFx0XHQmOmZvY3VzOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXHR9XG5cblx0LyogSXQncyB1bm5lY2Vzc2FyeSB0byBjaGFuZ2UgdGhlIGJhY2tncm91bmQvdGV4dCBvZiBhIHN3aXRjaCB0b2dnbGU7IGl0IGhhcyBkaWZmZXJlbnQgd2F5c1xuXHRvZiBjb252ZXlpbmcgaXRzIHN0YXRlIChsaWtlIHRoZSBzd2l0Y2hlcikgKi9cblx0JiA+IC5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIHtcblx0XHQmLmNrLW9uIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogaW5oZXJpdDtcblxuXHRcdFx0Jjpob3Zlcjpub3QoLmNrLWRpc2FibGVkKSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdFx0XHRjb2xvcjogaW5oZXJpdDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmNrLWxpc3QgLmNrLWxpc3RfX2dyb3VwIHtcblx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblxuXHQvKiBMaXN0cyBjb21lIHdpdGggYW4gaW5uZXIgdmVydGljYWwgcGFkZGluZy4gRG9uJ3QgZHVwbGljYXRlIGl0LiAqL1xuXHQmOmZpcnN0LWNoaWxkIHtcblx0XHRwYWRkaW5nLXRvcDogMDtcblx0fVxuXG5cdC8qIFRoZSBncm91cCBzaG91bGQgaGF2ZSBhIGJvcmRlciB3aGVuIGl0J3Mgbm90IHRoZSBmaXJzdCBpdGVtLiAqL1xuXHQqOm5vdCguY2staGlkZGVuKSB+ICYge1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdH1cblxuXHQmID4gLmNrLWxhYmVsIHtcblx0XHRmb250LXNpemU6IDExcHg7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIDA7XG5cdH1cbn1cblxuLmNrLmNrLWxpc3RfX3NlcGFyYXRvciB7XG5cdGhlaWdodDogMXB4O1xuXHR3aWR0aDogMTAwJTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIEdpdmUgdGhlIHNlcGFyYXRvciBzb21lIGFpciAqL1xuXHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIDA7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbWVudS1iYXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LXdyYXA6IHdyYXA7XG5cdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdGdhcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyKTtcblx0d2lkdGg6IDEwMCU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stbWVudS1iYXJfX21lbnUge1xuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0O1xuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfdG9wLWxldmVsIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2Rpc2FibGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uL21peGlucy9fYnV0dG9uLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSB7XG5cdC8qXG5cdCAqIEFsbCBtZW51IGJ1dHRvbnMuXG5cdCAqL1xuXHQmID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0JiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHR9XG5cblx0XHQmLmNrLWRpc2FibGVkID4gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0QG1peGluIGNrLWRpc2FibGVkO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdCY6bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0Jjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Lypcblx0ICogVG9wLWxldmVsIG1lbnUgYnV0dG9ucyBvbmx5LlxuXHQgKi9cblx0Ji5jay1tZW51LWJhcl9fbWVudV90b3AtbGV2ZWwgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXG5cdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHR3aWR0aDogdW5zZXQ7XG5cdFx0XHRsaW5lLWhlaWdodDogdW5zZXQ7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBUb3AtbGV2ZWwgYnV0dG9ucyBkb24ndCB1c2UgZWxsaXBzaXMgYW5kIG92ZXJmbG93OiBoaWRkZW4gY2xpcHMgZGVzY2VuZGVycy5cblx0XHRcdCAqICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTc0MjIuXG5cdFx0XHQgKi9cblx0XHRcdG92ZXJmbG93OiB2aXNpYmxlO1xuXHRcdH1cblxuXHRcdCYuY2stb24ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cblxuXHRcdCYgLmNrLWljb24ge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTdWItbWVudSBidXR0b25zLlxuXHQgKi9cblx0Jjpub3QoLmNrLW1lbnUtYmFyX19tZW51X3RvcC1sZXZlbCkgLmNrLW1lbnUtYmFyX19tZW51X19idXR0b24ge1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHQmID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdHdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1hcnJvdy1zaXplKTtcblxuXHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXG5cdFx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdFx0LyogTnVkZ2UgdGhlIGFycm93IGdlbnRseSB0byB0aGUgcmlnaHQgYmVjYXVzZSBpdHMgY2VudGVyIG9mIGdyYXZpdHkgaXMgdG8gdGhlIGxlZnQgKi9cblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcblxuXHRcdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblxuXHRcdFx0XHQvKiBOdWRnZSB0aGUgYXJyb3cgZ2VudGx5IHRvIHRoZSBsZWZ0IGJlY2F1c2UgaXRzIGNlbnRlciBvZiBncmF2aXR5IGlzIHRvIHRoZSByaWdodCAoYWZ0ZXIgcm90YXRpb24pLiAqL1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmNrLWRpc2FibGVkID4gLmNrLW1lbnUtYmFyX19tZW51X19idXR0b25fX2Fycm93IHtcblx0XHRcdEBtaXhpbiBjay1kaXNhYmxlZDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1tZW51LWJhci1tZW51LWl0ZW0tbWluLXdpZHRoOiAxOGVtO1xufVxuXG4uY2suY2stbWVudS1iYXJfX21lbnUgLmNrLmNrLW1lbnUtYmFyX19tZW51X19pdGVtIHtcblx0bWluLXdpZHRoOiB2YXIoLS1jay1tZW51LWJhci1tZW51LWl0ZW0tbWluLXdpZHRoKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stbWVudS1iYXJfX21lbnUge1xuXHQvKlxuXHQgKiBMaXN0IGl0ZW0gYnV0dG9ucy5cblx0ICovXG5cdCYgLmNrLWJ1dHRvbi5jay1tZW51LWJhcl9fbWVudV9faXRlbV9fYnV0dG9uIHtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0JiA+IC5jay1zcGlubmVyLWNvbnRhaW5lcixcblx0XHQmID4gLmNrLXNwaW5uZXItY29udGFpbmVyIC5jay1zcGlubmVyIHtcblx0XHRcdC8qIFRoZXNlIHN0eWxlcyBjb3JyZXNwb25kIHRvIC5jay1pY29uIHNvIHRoYXQgdGhlIHNwaW5uZXIgc2VhbWxlc3NseSByZXBsYWNlcyB0aGUgaWNvbi4gKi9cblx0XHRcdC0tY2stdG9vbGJhci1zcGlubmVyLXNpemU6IDIwcHg7XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1zcGlubmVyLWNvbnRhaW5lciB7XG5cdFx0XHQvKiBUaGlzIGVuc3VyZXMgbWFyZ2lucyBjb3JyZXNwb25kaW5nIHRvIHRoZSAuY2staWNvbi4gKi9cblx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tY2staWNvbi1mb250LXNpemUpO1xuXG5cdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cblxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fcm91bmRlZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX2ZvY3VzLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stbWVudS1iYXItbWVudS1wYW5lbC1tYXgtd2lkdGg6IDc1dnc7XG59XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwge1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXHRAbWl4aW4gY2stZHJvcC1zaGFkb3c7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcik7XG5cdGJvdHRvbTogMDtcblx0aGVpZ2h0OiBmaXQtY29udGVudDtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay1tZW51LWJhci1tZW51LXBhbmVsLW1heC13aWR0aCk7XG5cblx0LyogQ29ybmVyIGJvcmRlciByYWRpdXMgY29uc2lzdGVudCB3aXRoIHRoZSBidXR0b24uICovXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VzLFxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zZSB7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0fVxuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3dzLFxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zdyB7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lbixcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbmUge1xuXHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93bixcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbncge1xuXHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Jjpmb2N1cyB7XG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxufVxuXG4uY2suY2stbWVudS1iYXIge1xuXHQmIC5jay1saXN0LWl0ZW0tYnV0dG9uIHtcblx0XHQmOmZvY3VzLFxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stbWVudS1iYXJfZm9jdXMtYm9yZGVyLWVuYWJsZWQgLmNrLWxpc3QtaXRlbS1idXR0b24ge1xuXHRcdCY6Zm9jdXMsXG5cdFx0JjphY3RpdmUge1xuXHRcdFx0LyogRml4IHRydW5jYXRlZCBzaGFkb3dzIGR1ZSB0byByZW5kZXJpbmcgb3JkZXIuICovXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR6LWluZGV4OiAyO1xuXG5cdFx0XHRAbWl4aW4gY2stZm9jdXMtcmluZztcblx0XHRcdEBtaXhpbiBjay1ib3gtc2hhZG93IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdyk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fc2hhZG93LmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGg6IDFweDtcblx0LS1jay1iYWxsb29uLWFycm93LW9mZnNldDogMnB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0OiAxMHB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aDogOHB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctZHJvcC1zaGFkb3c6IDAgMnB4IDJweCB2YXIoLS1jay1jb2xvci1zaGFkb3ctZHJvcCk7XG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsIHtcblx0QG1peGluIGNrLXJvdW5kZWQtY29ybmVycztcblx0QG1peGluIGNrLWRyb3Atc2hhZG93O1xuXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcik7XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX3dpdGgtYXJyb3cge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHR3aWR0aDogMDtcblx0XHRcdGhlaWdodDogMDtcblx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0fVxuXHR9XG5cblx0JltjbGFzcyo9XCJhcnJvd19uXCJdIHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLXdpZHRoOiAwIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCk7XG5cdFx0fVxuXG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYm9yZGVyKSB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi10b3A6IGNhbGMoIC0xICogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKSB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi10b3A6IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblx0fVxuXG5cdCZbY2xhc3MqPVwiYXJyb3dfc1wiXSB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgMCB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpO1xuXHRcdH1cblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRmaWx0ZXI6IGRyb3Atc2hhZG93KHZhcigtLWNrLWJhbGxvb24tYXJyb3ctZHJvcC1zaGFkb3cpKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IGNhbGMoIC0xICogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi1ib3R0b206IGNhbGMoIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KSAtIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblx0fVxuXG5cdCZbY2xhc3MqPVwiYXJyb3dfZVwiXSB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSAwIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpO1xuXHRcdH1cblxuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcik7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoIC0xICogdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0XHRcdG1hcmdpbi1yaWdodDogY2FsYyggdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQpIC0gdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuXHR9XG5cblx0JltjbGFzcyo9XCJhcnJvd193XCJdIHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLXdpZHRoOiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIDA7XG5cdFx0fVxuXG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYm9yZGVyKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKCAtMSAqIHZhcigtLWNrLWJhbGxvb24tYm9yZGVyLXdpZHRoKSApO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYyggdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQpIC0gdmFyKC0tY2stYmFsbG9vbi1ib3JkZXItd2lkdGgpICk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X24ge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbncge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRsZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X25lIHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0cmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfcyB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zdyB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc2Uge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRyaWdodDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zbWUge1xuXHRcdCY6OmJlZm9yZSxcblx0XHQmOjphZnRlciB7XG5cdFx0XHRyaWdodDogMjUlO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NtdyB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDI1JTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX2Fycm93X25tZSB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiAyNSU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbm13IHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0bGVmdDogMjUlO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cdH1cblxuXHQmLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfZSB7XG5cdFx0Jjo6YmVmb3JlLFxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHRcdG1hcmdpbi10b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF9hcnJvd193IHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0bGVmdDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0XHRtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19uYXZpZ2F0aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbGJhci1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyKTtcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblxuXHQvKiBMZXQncyBrZWVwIHNpbWlsYXIgYXBwZWFyYW5jZSB0byBgY2stdG9vbGJhcmAuICovXG5cdCYgPiAqIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cblx0LyogR2l2ZXMgY291bnRlciBtb3JlIGJyZWF0aCB0aGFuIGJ1dHRvbnMuICovXG5cdCYgLmNrLWJhbGxvb24tcm90YXRvcl9fY291bnRlciB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdC8qIFdlIG5lZWQgdG8gdXNlIHNtYWxsZXIgbWFyZ2luIGJlY2F1c2Ugb2YgcHJldmlvdXMgYnV0dG9uJ3MgcmlnaHQgbWFyZ2luLiAqL1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxufVxuXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fY29udGVudCB7XG5cblx0LyogRGlzYWJsZSBkZWZhdWx0IGFubm90YXRpb24gc2hhZG93IGluc2lkZSByb3RhdG9yIHdpdGggZmFrZSBwYW5lbHMuICovXG5cdCYgLmNrLmNrLWFubm90YXRpb24td3JhcHBlciB7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uLy4uL21peGlucy9fc2hhZG93LmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsOiA2cHg7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbDogNnB4O1xufVxuXG4vKiBMZXQncyB1c2UgYC5jay1iYWxsb29uLXBhbmVsYCBhcHBlYXJhbmNlLiBTZWU6IGJhbGxvb25wYW5lbC5jc3MuICovXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2IHtcblx0QG1peGluIGNrLWRyb3Atc2hhZG93O1xuXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcik7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAxICkge1xuXHRtYXJnaW4tbGVmdDogdmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsKTtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbCk7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAyICkge1xuXHRtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LWhvcml6b250YWwpICogMik7XG5cdG1hcmdpbi10b3A6IGNhbGModmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbCkgKiAyKTtcbn1cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAzICkge1xuXHRtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LWhvcml6b250YWwpICogMyk7XG5cdG1hcmdpbi10b3A6IGNhbGModmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbCkgKiAzKTtcbn1cblxuLyogSWYgYmFsbG9vbiBpcyBwb3NpdGlvbmVkIGFib3ZlIGVsZW1lbnQsIHdlIG5lZWQgdG8gbW92ZSBmYWtlIHBhbmVsIHRvIHRoZSB0b3AuICovXG4uY2sgLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfcyArIC5jay1mYWtlLXBhbmVsLFxuLmNrIC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NlICsgLmNrLWZha2UtcGFuZWwsXG4uY2sgLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc3cgKyAuY2stZmFrZS1wYW5lbCB7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbDogLTZweDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3NoYWRvdy5jc3NcIjtcblxuLmNrLmNrLXN0aWNreS1wYW5lbCB7XG5cdCYgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3kge1xuXHRcdEBtaXhpbiBjay1kcm9wLXNoYWRvdztcblxuXHRcdGJvcmRlci13aWR0aDogMCAxcHggMXB4O1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay12ZXJ0aWNhbC1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKTo6YWZ0ZXIge1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG59XG5cbi5jay5jay1yZXNwb25zaXZlLWZvcm0ge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblxuXHQmOmZvY3VzIHtcblx0XHQvKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzQ3NzMgKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG5cblx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdCYgPiA6bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cblx0fVxuXG5cdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHQmID4gOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cblx0fVxuXG5cdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0cGFkZGluZzogMDtcblx0XHR3aWR0aDogY2FsYyguOCAqIHZhcigtLWNrLWlucHV0LXdpZHRoKSk7XG5cblx0XHQmIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSAwO1xuXG5cdFx0XHQmIC5jay1pbnB1dC10ZXh0LFxuXHRcdFx0JiAuY2staW5wdXQtbnVtYmVyIHtcblx0XHRcdFx0bWluLXdpZHRoOiAwO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblxuXHRcdFx0LyogTGV0IHRoZSBsb25nIGVycm9yIG1lc3NhZ2VzIHdyYXAgaW4gdGhlIG5hcnJvdyBmb3JtLiAqL1xuXHRcdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3X19lcnJvciB7XG5cdFx0XHRcdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyogU3R5bGVzIGZvciB0d28gbGFzdCBidXR0b25zIGluIHRoZSBmb3JtIChzYXZlJmNhbmNlbCwgZWRpdCZ1bmxpbmssIGV0Yy4pLiAqL1xuXHRcdCYgPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDIpIHtcblx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYgPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDEpLFxuXHRcdCYgPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDIpIHtcblx0XHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdFx0XHQmOm5vdCg6Zm9jdXMpIHtcblx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblxuXHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZzogY2FsYyh2YXIoLS1jay1pY29uLXNpemUpICsgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pKTtcbn1cblxuLmNrLmNrLXNlYXJjaCB7XG5cdCYgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHQmIC5jay1pbnB1dCB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cblx0XHQmLmNrLXNlYXJjaF9fcXVlcnlfd2l0aC1pY29uIHtcblx0XHRcdC0tY2stbGFiZWxlZC1maWVsZC1sYWJlbC1kZWZhdWx0LXBvc2l0aW9uLXg6IHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cblx0XHRcdCYgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWljb24ge1xuXHRcdFx0XHRvcGFjaXR5OiAuNTtcblx0XHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLWlucHV0IHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc2VhcmNoLWZpZWxkLXZpZXctaG9yaXpvbnRhbC1zcGFjaW5nKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0XHQmOm5vdCguY2staW5wdXQtdGV4dF9lbXB0eSkge1xuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuY2stc2VhcmNoX19xdWVyeV93aXRoLXJlc2V0IHtcblx0XHRcdC0tY2stbGFiZWxlZC1maWVsZC1lbXB0eS11bmZvY3VzZWQtbWF4LXdpZHRoOiAxMDAlIC0gMiAqIHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cblx0XHRcdCYuY2stbGFiZWxlZC1maWVsZC12aWV3X2VtcHR5IHtcblx0XHRcdFx0LS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGg6IDEwMCUgLSB2YXIoLS1jay1zZWFyY2gtZmllbGQtdmlldy1ob3Jpem9udGFsLXNwYWNpbmcpIC0gdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuXG5cdFx0XHQmIC5jay1zZWFyY2hfX3Jlc2V0IHtcblx0XHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdFx0XHRtaW4taGVpZ2h0OiBhdXRvO1xuXG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHRcdG9wYWNpdHk6IC41O1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRcdGxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0JiAuY2staW5wdXQge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdFx0Jjpub3QoLmNrLWlucHV0LXRleHRfZW1wdHkpIHtcblx0XHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNlYXJjaC1maWVsZC12aWV3LWhvcml6b250YWwtc3BhY2luZyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmID4gLmNrLXNlYXJjaF9fcmVzdWx0cyB7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXG5cdFx0JiA+IC5jay1zZWFyY2hfX2luZm8ge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0XHRcdCYgKiB7XG5cdFx0XHRcdHdoaXRlLXNwYWNlOiBub3JtYWw7XG5cdFx0XHR9XG5cblx0XHRcdCYgPiBzcGFuOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHR9XG5cblx0XHRcdCYgPiBzcGFuOmxhc3QtY2hpbGQge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay10b29sYmFyLXNwaW5uZXItc2l6ZTogMThweDtcbn1cblxuLmNrLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0d2lkdGg6IHZhcigtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay10b29sYmFyLXNwaW5uZXItc2l6ZSk7XG5cdGFuaW1hdGlvbjogMS41cyBpbmZpbml0ZSBjay1zcGlubmVyLXJvdGF0ZSBsaW5lYXI7XG5cblx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRhbmltYXRpb24tZHVyYXRpb246IDNzO1xuXHR9XG59XG5cbi5jay5jay1zcGlubmVyIHtcblx0d2lkdGg6IHZhcigtLWNrLXRvb2xiYXItc3Bpbm5lci1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay10b29sYmFyLXNwaW5uZXItc2l6ZSk7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0Ym9yZGVyOiAycHggc29saWQgdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5Aa2V5ZnJhbWVzIGNrLXNwaW5uZXItcm90YXRlIHtcblx0dG8ge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZylcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIFRoaXMgZml4ZXMgYSBwcm9ibGVtIGluIEZpcmVmb3ggd2hlbiB0aGUgaW5pdGlhbCBoZWlnaHQgb2YgdGhlIGNvbXBsZW1lbnQgZG9lcyBub3QgbWF0Y2ggdGhlIG51bWJlciBvZiByb3dzLlxuICogVGhpcyBidWcgaXMgZXNwZWNpYWxseSB2aXNpYmxlIHdoZW4gcm93cz0xLlxuICovXG4uY2stdGV4dGFyZWEge1xuXHRvdmVyZmxvdy14OiBoaWRkZW5cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1ibG9jay10b29sYmFyLWJ1dHRvbjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdC0tY2stYmxvY2stdG9vbGJhci1idXR0b24tc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLW5vcm1hbCk7XG59XG5cbi5jay5jay1ibG9jay10b29sYmFyLWJ1dHRvbiB7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1ibG9jay10b29sYmFyLWJ1dHRvbik7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stYmxvY2stdG9vbGJhci1zaXplKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi8uLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLXRvb2xiYXIge1xuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYmFja2dyb3VuZCk7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyKTtcblxuXHQmIC5jay5jay10b29sYmFyX19zZXBhcmF0b3Ige1xuXHRcdGhlaWdodDogdmFyKC0tY2staWNvbi1zaXplKTtcblx0XHR3aWR0aDogMXB4O1xuXHRcdG1pbi13aWR0aDogMXB4O1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyKTtcblxuXHRcdC8qXG5cdFx0ICogVGhlc2UgbWFyZ2lucyBtYWtlIHRoZSBzZXBhcmF0b3JzIGxvb2sgYmV0dGVyIGluIGJhbGxvb24gdG9vbGJhcnMgKHdoZW4gYWxpZ25lZCB3aXRoIHRoZSBcInRpcFwiKS5cblx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNzQ5My5cblx0XHQgKi9cblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5cdCYgLmNrLXRvb2xiYXJfX2xpbmUtYnJlYWsge1xuXHRcdGhlaWdodDogMDtcblx0fVxuXG5cdCYgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdCYgPiAqOm5vdCguY2stdG9vbGJhcl9fbGluZS1icmVhaykge1xuXHRcdFx0LyogKCMxMSkgU2VwYXJhdGUgdG9vbGJhciBpdGVtcy4gKi9cblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXG5cdFx0LyogRG9uJ3QgZGlzcGxheSBhIHNlcGFyYXRvciBhZnRlciBhbiBlbXB0eSBpdGVtcyBjb250YWluZXIsIGZvciBpbnN0YW5jZSxcblx0XHR3aGVuIGFsbCBpdGVtcyB3ZXJlIGdyb3VwZWQgKi9cblx0XHQmOmVtcHR5ICsgLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdCYgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAqOm5vdCguY2stdG9vbGJhcl9fbGluZS1icmVhayksXG5cdCYgPiAuY2suY2stdG9vbGJhcl9fZ3JvdXBlZC1kcm9wZG93biB7XG5cdFx0LyogTWFrZSBzdXJlIGl0ZW1zIHdyYXBwZWQgdG8gdGhlIG5leHQgbGluZSBoYXZlIHYtc3BhY2luZyAqL1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cblx0Ji5jay10b29sYmFyX3ZlcnRpY2FsIHtcblx0XHQvKiBJdGVtcyBpbiBhIHZlcnRpY2FsIHRvb2xiYXIgc3BhbiB0aGUgZW50aXJlIHdpZHRoLiAqL1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQvKiBTcGVjaWZpY2l0eSBtYXR0ZXJzIGhlcmUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzE2OC4gKi9cblx0XHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrIHtcblx0XHRcdC8qIEl0ZW1zIGluIGEgdmVydGljYWwgdG9vbGJhciBzaG91bGQgc3BhbiB0aGUgaG9yaXpvbnRhbCBzcGFjZS4gKi9cblx0XHRcdHdpZHRoOiAxMDAlO1xuXG5cdFx0XHQvKiBJdGVtcyBpbiBhIHZlcnRpY2FsIHRvb2xiYXIgc2hvdWxkIGhhdmUgbm8gbWFyZ2luLiAqL1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHQvKiBJdGVtcyBpbiBhIHZlcnRpY2FsIHRvb2xiYXIgc3BhbiB0aGUgZW50aXJlIHdpZHRoIHNvIHJvdW5kZWQgY29ybmVycyBhcmUgcG9pbnRsZXNzLiAqL1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHR9XG5cdH1cblxuXHQmLmNrLXRvb2xiYXJfY29tcGFjdCB7XG5cdFx0LyogTm8gc3BhY2luZyBhcm91bmQgaXRlbXMuICovXG5cdFx0cGFkZGluZzogMDtcblxuXHRcdCYgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAqIHtcblx0XHRcdC8qIENvbXBhY3QgdG9vbGJhciBpdGVtcyBoYXZlIG5vIHNwYWNpbmcgYmV0d2VlbiB0aGVtLiAqL1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHQvKiBcIk1pZGRsZVwiIGNoaWxkcmVuIHNob3VsZCBoYXZlIG5vIHJvdW5kZWQgY29ybmVycy4gKi9cblx0XHRcdCY6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay5jay10b29sYmFyX19ncm91cGVkLWRyb3Bkb3duIHtcblx0XHQvKlxuXHRcdCAqIERyb3Bkb3duIGJ1dHRvbiBoYXMgYXN5bW1ldHJpYyBwYWRkaW5nIHRvIGZpdCB0aGUgYXJyb3cuXG5cdFx0ICogVGhpcyBidXR0b24gaGFzIG5vIGFycm93IHNvIGxldCdzIHJldmVydCB0aGF0IHBhZGRpbmcgYmFjayB0byBub3JtYWwuXG5cdFx0ICovXG5cdFx0JiA+IC5jay5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbiB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdFx0fVxuXHR9XG5cblx0LyogQSBkcm9wLWRvd24gY29udGFpbmluZyB0aGUgbmVzdGVkIHRvb2xiYXIgd2l0aCBjb25maWd1cmVkIGl0ZW1zLiAqL1xuXHQmIC5jay10b29sYmFyX19uZXN0ZWQtdG9vbGJhci1kcm9wZG93biB7XG5cdFx0LyogUHJldmVudCBlbXB0eSBzcGFjZSBpbiB0aGUgcGFuZWwgd2hlbiB0aGUgZHJvcGRvd24gbGFiZWwgaXMgdmlzaWJsZSBhbmQgbG9uZyBidXQgdGhlIHRvb2xiYXIgaGFzIGZldyBpdGVtcy4gKi9cblx0XHQmID4gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdFx0XHRtaW4td2lkdGg6IGF1dG87XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1idXR0b24gPiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRtYXgtd2lkdGg6IDdlbTtcblx0XHRcdHdpZHRoOiBhdXRvO1xuXHRcdH1cblx0fVxuXG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cblxuXHQuY2stdG9vbGJhci1jb250YWluZXIgJiB7XG5cdFx0Ym9yZGVyOiAwO1xuXHR9XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5cbi8qXG4gKiBTdHlsZXMgZm9yIFJUTCB0b29sYmFycy5cbiAqXG4gKiBOb3RlOiBJbiBzb21lIGNhc2VzIChlLmcuIGEgZGVjb3VwbGVkIGVkaXRvciksIHRoZSB0b29sYmFyIGhhcyBpdHMgb3duIFwiZGlyXCJcbiAqIGJlY2F1c2UgaXRzIHBhcmVudCBpcyBub3QgY29udHJvbGxlZCBieSB0aGUgZWRpdG9yIGZyYW1ld29yay5cbiAqL1xuW2Rpcj1cInJ0bFwiXSAuY2suY2stdG9vbGJhcixcbi5jay5jay10b29sYmFyW2Rpcj1cInJ0bFwiXSB7XG5cdCYgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2sge1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0fVxuXG5cdCY6bm90KC5jay10b29sYmFyX2NvbXBhY3QpID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrIHtcblx0XHQvKiAoIzExKSBTZXBhcmF0ZSB0b29sYmFyIGl0ZW1zLiAqL1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5cdCYgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdH1cblxuXHQmLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0LyogTm8gcm91bmRlZCBjb3JuZXJzIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBmaXJzdCBjaGlsZC4gKi9cblx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdH1cblxuXHRcdC8qIE5vIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBsYXN0IGNoaWxkLiAqL1xuXHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cblx0fVxuXG5cdC8qIFNlcGFyYXRlIHRoZSB0aGUgc2VwYXJhdG9yIGZvcm0gdGhlIGdyb3VwaW5nIGRyb3Bkb3duIHdoZW4gc29tZSBpdGVtcyBhcmUgZ3JvdXBlZC4gKi9cblx0JiA+IC5jay5jay10b29sYmFyX19zZXBhcmF0b3Ige1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5cdC8qIFNvbWUgc3BhY2luZyBiZXR3ZWVuIHRoZSBpdGVtcyBhbmQgdGhlIHNlcGFyYXRvciBiZWZvcmUgdGhlIGdyb3VwZWQgaXRlbXMgZHJvcGRvd24uICovXG5cdCYuY2stdG9vbGJhcl9ncm91cGluZyA+IC5jay10b29sYmFyX19pdGVtczpub3QoOmVtcHR5KTpub3QoOm9ubHktY2hpbGQpIHtcblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cbn1cblxuLypcbiAqIFN0eWxlcyBmb3IgTFRSIHRvb2xiYXJzLlxuICpcbiAqIE5vdGU6IEluIHNvbWUgY2FzZXMgKGUuZy4gYSBkZWNvdXBsZWQgZWRpdG9yKSwgdGhlIHRvb2xiYXIgaGFzIGl0cyBvd24gXCJkaXJcIlxuICogYmVjYXVzZSBpdHMgcGFyZW50IGlzIG5vdCBjb250cm9sbGVkIGJ5IHRoZSBlZGl0b3IgZnJhbWV3b3JrLlxuICovXG5bZGlyPVwibHRyXCJdIC5jay5jay10b29sYmFyLFxuLmNrLmNrLXRvb2xiYXJbZGlyPVwibHRyXCJdIHtcblx0JiA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdH1cblxuXHQmLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0LyogTm8gcm91bmRlZCBjb3JuZXJzIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBmaXJzdCBjaGlsZC4gKi9cblx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuXG5cdFx0LyogTm8gcm91bmRlZCBjb3JuZXJzIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGxhc3QgY2hpbGQuICovXG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdH1cblx0fVxuXG5cdC8qIFNlcGFyYXRlIHRoZSB0aGUgc2VwYXJhdG9yIGZvcm0gdGhlIGdyb3VwaW5nIGRyb3Bkb3duIHdoZW4gc29tZSBpdGVtcyBhcmUgZ3JvdXBlZC4gKi9cblx0JiA+IC5jay5jay10b29sYmFyX19zZXBhcmF0b3Ige1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQvKiBTb21lIHNwYWNpbmcgYmV0d2VlbiB0aGUgaXRlbXMgYW5kIHRoZSBzZXBhcmF0b3IgYmVmb3JlIHRoZSBncm91cGVkIGl0ZW1zIGRyb3Bkb3duLiAqL1xuXHQmLmNrLXRvb2xiYXJfZ3JvdXBpbmcgPiAuY2stdG9vbGJhcl9faXRlbXM6bm90KDplbXB0eSk6bm90KDpvbmx5LWNoaWxkKSB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sdGlwIHtcblx0LS1jay1iYWxsb29uLWJvcmRlci13aWR0aDogMHB4O1xuXHQtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0OiAwcHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoOiA0cHg7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQ6IDRweDtcblx0LS1jay10b29sdGlwLXRleHQtcGFkZGluZzogNHB4O1xuXHQtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXRvb2x0aXAtYmFja2dyb3VuZCk7XG5cblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cblx0JiAuY2stdG9vbHRpcF9fdGV4dCB7XG5cdFx0Zm9udC1zaXplOiAuOWVtO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjU7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXRvb2x0aXAtdGV4dCk7XG5cdH1cblxuXHQmLmNrLXRvb2x0aXBfbXVsdGktbGluZSAuY2stdG9vbHRpcF9fdGV4dCB7XG5cdFx0d2hpdGUtc3BhY2U6IGJyZWFrLXNwYWNlcztcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stdG9vbHRpcC10ZXh0LXBhZGRpbmcpIDA7XG5cdFx0bWF4LXdpZHRoOiAyMDBweDtcblx0fVxuXG5cdC8qIFJlc2V0IGJhbGxvb24gcGFuZWwgc3R5bGVzICovXG5cdGJveC1zaGFkb3c6IG5vbmU7XG5cblx0LyogSGlkZSB0aGUgZGVmYXVsdCBzaGFkb3cgb2YgdGhlIC5jay1iYWxsb29uLXBhbmVsIHRpcCAqL1xuXHQmOjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5cbi5jay5jay1lZGl0b3JfX3RvcCB7XG5cdCYgLmNrLXN0aWNreS1wYW5lbCB7XG5cdFx0JiAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50IHtcblx0XHRcdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdH1cblxuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMDtcblxuXHRcdFx0Ji5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnRfc3RpY2t5IHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xuXHRcdFx0fVxuXG5cdFx0XHQmIC5jay1tZW51LWJhciB7XG5cdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblxuXHRcdFx0JiAuY2stdG9vbGJhciB7XG5cdFx0XHRcdGJvcmRlcjogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyogTm90ZTogVXNlIGNrLWVkaXRvcl9fbWFpbiB0byBtYWtlIHN1cmUgdGhlc2Ugc3R5bGVzIGRvbid0IGFwcGx5IHRvIG90aGVyIGVkaXRvciB0eXBlcyAqL1xuLmNrLmNrLWVkaXRvcl9fbWFpbiA+IC5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xMTMgKi9cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHR9XG5cblx0Jjpub3QoLmNrLWZvY3VzZWQpIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIENsYXNzZXMgdXNlZCBieSB0aGUgXCJmYWtlIHZpc3VhbCBzZWxlY3Rpb25cIiBkaXNwbGF5ZWQgaW4gdGhlIGNvbnRlbnQgd2hlbiBhbiBpbnB1dFxuICogaW4gdGhlIGJvb2ttYXJrIFVJIGhhcyBmb2N1cyAodGhlIGJyb3dzZXIgZG9lcyBub3QgcmVuZGVyIHRoZSBuYXRpdmUgc2VsZWN0aW9uIGluIHRoaXMgc3RhdGUpLlxuICovXG4uY2sgLmNrLWZha2UtYm9va21hcmstc2VsZWN0aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGluay1mYWtlLXNlbGVjdGlvbik7XG59XG5cbi8qIEEgY29sbGFwc2VkIGZha2UgdmlzdWFsIHNlbGVjdGlvbi4gKi9cbi5jayAuY2stZmFrZS1ib29rbWFyay1zZWxlY3Rpb25fY29sbGFwc2VkIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHRtYXJnaW4tcmlnaHQ6IC0xcHg7XG5cdG91dGxpbmU6IHNvbGlkIDFweCBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGg6IDEycHg7XG5cdC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQ6IDhweDtcblx0LS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0Lypcblx0ICogVmVydGljYWwgZHJvcCB0YXJnZXQgKGluIHRleHQpLlxuXHQgKi9cblx0JiAuY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LXBvc2l0aW9uIHtcblx0XHQmIHNwYW4ge1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSk7XG5cdFx0XHR0b3A6IGNhbGMoLS41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQpKTtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IC0xcHg7XG5cblx0XHRcdC8qIFRoZSB0cmlhbmdsZSBhYm92ZSB0aGUgbWFya2VyICovXG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0aGVpZ2h0OiAwO1xuXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0dG9wOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3QtaGVpZ2h0KSk7XG5cblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGJvcmRlci13aWR0aDogY2FsYyh2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCkpIGNhbGMoLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSkgMCBjYWxjKC41ICogdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC13aWR0aCkpO1xuXHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgd2lkZ2V0IHRoYXQgaXQgYSBkcm9wIHRhcmdldC5cblx0ICovXG5cdCYgLmNrLXdpZGdldC5jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtcmFuZ2Uge1xuXHRcdG91dGxpbmU6IHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgc29saWQgdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWNvbG9yKSAhaW1wb3J0YW50O1xuXHR9XG5cblx0Lypcblx0ICogU3R5bGVzIG9mIHRoZSB3aWRnZXQgYmVpbmcgZHJhZ2dlZCAoaXRzIHByZXZpZXcpLlxuXHQgKi9cblx0JiAuY2std2lkZ2V0Oi13ZWJraXQtZHJhZyB7XG5cdFx0em9vbTogMC42O1xuXHRcdG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuXG4uY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWxpbmUge1xuXHRoZWlnaHQ6IDA7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1jb2xvcik7XG5cdG1hcmdpbi10b3A6IC0xcHg7XG5cblx0Jjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiAnJztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiBjYWxjKC0uNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKTtcblx0XHR3aWR0aDogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdGxlZnQ6IC0xcHg7XG5cblx0XHRcdGJvcmRlci13aWR0aDogY2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKSAwIGNhbGMoLjUgKiB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LXdpZHRoKSkgdmFyKC0tY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWRvdC1oZWlnaHQpO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdHJpZ2h0OiAtMXB4O1xuXG5cdFx0XHRib3JkZXItd2lkdGg6Y2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKSB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtZG90LWhlaWdodCkgY2FsYyguNSAqIHZhcigtLWNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1kb3Qtd2lkdGgpKSAwO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB2YXIoLS1jay1jbGlwYm9hcmQtZHJvcC10YXJnZXQtY29sb3IpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWNvZGUtYmxvY2stbGFiZWwtYmFja2dyb3VuZDogaHNsKDAsIDAlLCA0NiUpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSBwcmVbZGF0YS1sYW5ndWFnZV06OmFmdGVyIHtcblx0dG9wOiAtMXB4O1xuXHRyaWdodDogMTBweDtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItY29kZS1ibG9jay1sYWJlbC1iYWNrZ3JvdW5kKTtcblxuXHRmb250LXNpemU6IDEwcHg7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1jay1mb250LWZhY2UpO1xuXHRsaW5lLWhlaWdodDogMTZweDtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uY2suY2stY29kZS1ibG9jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsIHtcblx0LyogVGhlcmUgY291bGQgYmUgZG96ZW5zIG9mIGxhbmd1YWdlcyBhdmFpbGFibGUuIFVzZSBzY3JvbGwgdG8gcHJldmVudCBhIDEwZTZweCBkcm9wZG93bi4gKi9cblx0bWF4LWhlaWdodDogMjUwcHg7XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fbWVkaWFjb2xvcnMuY3NzXCI7XG5cbi8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjOTM2LiAqL1xuLmNrLmNrLXBsYWNlaG9sZGVyLCAuY2sgLmNrLXBsYWNlaG9sZGVyIHtcblx0QG1peGluIGNrLW1lZGlhLWZvcmNlZC1jb2xvcnMge1xuXHRcdC8qXG5cdFx0ICogVGhpcyBpcyBuZWVkZWQgZm9yIEVkZ2Ugb24gV2luZG93cyB0byB1c2UgdGhlIHJpZ2h0IGNvbG9yIGZvciB0aGUgcGxhY2Vob2xkZXIgY29udGVudCAoOjpiZWZvcmUpLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDkwNy5cblx0XHQgKi9cblx0XHRmb3JjZWQtY29sb3ItYWRqdXN0OiBwcmVzZXJ2ZS1wYXJlbnQtY29sb3I7XG5cdH1cblxuXHQmOjpiZWZvcmUge1xuXHRcdGN1cnNvcjogdGV4dDtcblxuXHRcdEBtaXhpbiBjay1tZWRpYS1kZWZhdWx0LWNvbG9ycyB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItZW5naW5lLXBsYWNlaG9sZGVyLXRleHQpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1tZWRpYS1mb3JjZWQtY29sb3JzIHtcblx0XHRcdC8qXG5cdFx0XHQgKiBJbiB0aGUgaGlnaCBjb250cmFzdCBtb2RlIHRoZXJlIGlzIG5vIHRlbGxpbmcgYmV0d2VlbiByZWd1bGFyIGFuZCBwbGFjZWhvbGRlciB0ZXh0LiBVc2luZ1xuXHRcdFx0ICogaXRhbGljIHRleHQgdG8gYWRkcmVzcyB0aGF0IGlzc3VlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcuXG5cdFx0XHQgKi9cblx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblxuXHRcdFx0Lypcblx0XHRcdCAqIFdpdGhvdXQgdGhpcyBtYXJnaW4sIHRoZSBjYXJldCB3aWxsIG5vdCBzaG93IHVwIGFuZCBibGluayB3aGVuIHRoZSB1c2VyIHB1dHMgdGhlIHNlbGVjdGlvblxuXHRcdFx0ICogaW4gdGhlIHBsYWNlaG9sZGVyIChFZGdlIG9uIFdpbmRvd3MpLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ5MDcuXG5cdFx0XHQgKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiAxcHg7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtIHtcblx0d2lkdGg6IDQwMHB4O1xuXG5cdC8qXG5cdCAqIFRoZSA8Zm9ybT4gbmVlZHMgdGFiaW5kZXg9XCItMVwiIGZvciBwcm9wZXIgRXNjIGhhbmRsaW5nIGFmdGVyIGJlaW5nIGNsaWNrZWRcblx0ICogYnV0IHRoZSBzaWRlIGVmZmVjdCBpcyB0aGF0IHRoaXMgY3JlYXRlcyBhIG5hc3R5IGZvY3VzIG91dGxpbmUgaW4gc29tZSBicm93c2Vycy5cblx0ICovXG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cblxuXHQvKiBHZW5lcmljIHN0eWxlcyBmb3IgdGhlIGZvcm0gaW5wdXRzIGFuZCBhY3Rpb25zLiAqL1xuXHQmIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cyxcblx0JiAuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19hY3Rpb25zIHtcblx0XHRmbGV4OiAxIDEgYXV0bztcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG5cblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRtYXJnaW46IDA7XG5cblx0XHQmID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRmbGV4OiAwIDAgYXV0bztcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHQmID4gKiArICoge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0JiA+ICogKyAqIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0ZmxleDogMSAxIGF1dG87XG5cblx0XHRcdCYgLmNrLWlucHV0IHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdG1pbi13aWR0aDogNTBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0fVxuXG5cdC8qIFN0eWxlcyBzcGVjaWZpYyBmb3IgaW5wdXRzIGFyZWEuICovXG5cdCYgLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIHtcblx0XHQvKiBUbyBkaXNwbGF5IGFsbCBjb250cm9scyBpbiBsaW5lIHdoZW4gdGhlcmUncyBhbiBlcnJvciB1bmRlciB0aGUgaW5wdXQgKi9cblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuXHRcdCYgPiAuY2stYnV0dG9uLXByZXYgPiAuY2staWNvbiB7XG5cdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1idXR0b24tbmV4dCA+IC5jay1pY29uIHtcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG5cdFx0fVxuXG5cdFx0JiAuY2stcmVzdWx0cy1jb3VudGVyIHtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXG5cdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cblxuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG5cblx0XHQmID4gLmNrLWxhYmVsZWQtZmllbGQtcmVwbGFjZSB7XG5cdFx0XHRmbGV4OiAwIDAgMTAwJTtcblx0XHRcdHBhZGRpbmctdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdH1cblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyogU3R5bGVzIHNwZWNpZmljIGZvciBhY3Rpb25zIGFyZWEuICovXG5cdCYgLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cdFx0bWFyZ2luLXRvcDogY2FsYyggLTEgKiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSApO1xuXG5cdFx0JiA+IC5jay1idXR0b24tZmluZCB7XG5cdFx0XHRmb250LXdlaWdodDogYm9sZDtcblxuXHRcdFx0LyogQmVlZiB0aGUgZmluZCBidXR0b24gdXAgYSBsaXR0bGUuIEl0J3MgdGhlIG1haW4gYWN0aW9uIGJ1dHRvbiBpbiB0aGUgZm9ybSAqL1xuXHRcdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYgLmNrLXN3aXRjaGJ1dHRvbiB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR9XG59XG5cbkBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdC5jay5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm0ge1xuXHRcdHdpZHRoOiAzMDBweDtcblxuXHRcdC8qIERvbid0IGxldCB0aGUgZm9ybSBvdmVyZmxvdyBmcm9tIHRoZSBkaWFsb2cgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja3NvdXJjZS9ja2VkaXRvcjUtY29tbWVyY2lhbC9pc3N1ZXMvNTkxMykgKi9cblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0XHQvKiBTdHlsZXMgc3BlY2lmaWMgZm9yIGlucHV0cyBhcmVhLiAqL1xuXHRcdCYuY2stZmluZC1hbmQtcmVwbGFjZS1mb3JtX19pbnB1dCB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0XHRcdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRcdGZsZXg6IDEgMCBhdXRvO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cblx0XHRcdCYgPiAuY2stYnV0dG9uIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0ZmxleDogMSAxIGF1dG87XG5cblx0XHRcdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiBTdHlsZXMgc3BlY2lmaWMgZm9yIGFjdGlvbnMgYXJlYS4gKi9cblx0XHQmLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyA+IDpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlldykge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0ZmxleDogMSAxIGF1dG87XG5cblx0XHRcdCYgPiAuY2stYnV0dG9uIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0ZmxleDogMSAxIGF1dG87XG5cblx0XHRcdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBSZXNpemUgZHJvcGRvd24ncyBidXR0b24gbGFiZWwuICovXG4uY2suY2stZHJvcGRvd24uY2staGVhZGluZy1kcm9wZG93biB7XG5cdCYgLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdHdpZHRoOiA4ZW07XG5cdH1cblxuXHQmIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdG1pbi13aWR0aDogMThlbTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLypcbiAqIE5vdGU6IFRoaXMgZmlsZSBzaG91bGQgY29udGFpbiB0aGUgd2lyZWZyYW1lIHN0eWxlcyBvbmx5LiBCdXQgc2luY2UgdGhlcmUgYXJlIG5vIHN1Y2ggc3R5bGVzLFxuICogaXQgYWN0cyBhcyBhIG1lc3NhZ2UgdG8gdGhlIGJ1aWxkZXIgdGVsbGluZyB0aGF0IGl0IHNob3VsZCBsb29rIGZvciB0aGUgY29ycmVzcG9uZGluZyBzdHlsZXNcbiAqICoqaW4gdGhlIHRoZW1lKiogd2hlbiBjb21waWxpbmcgdGhlIGVkaXRvci5cbiAqL1xuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWh0bWwtZW1iZWQtY29udGVudC13aWR0aDogY2FsYygxMDAlIC0gMS41ICogdmFyKC0tY2staWNvbi1zaXplKSk7XG5cdC0tY2staHRtbC1lbWJlZC1zb3VyY2UtaGVpZ2h0OiAxMGVtO1xuXHQtLWNrLWh0bWwtZW1iZWQtdW5mb2N1c2VkLW91dGxpbmUtd2lkdGg6IDFweDtcblx0LS1jay1odG1sLWVtYmVkLWNvbnRlbnQtbWluLWhlaWdodDogY2FsYyh2YXIoLS1jay1pY29uLXNpemUpICsgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkpO1xuXG5cdC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblx0LS1jay1odG1sLWVtYmVkLXNvdXJjZS1kaXNhYmxlZC1jb2xvcjogaHNsKDBkZWcgMCUgNDUlKTtcbn1cblxuLyogVGhlIGZlYXR1cmUgY29udGFpbmVyLiAqL1xuLmNrLXdpZGdldC5yYXctaHRtbC1lbWJlZCB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXG5cdCY6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCg6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay1odG1sLWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoKSBkYXNoZWQgdmFyKC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyKTtcblx0fVxuXG5cdC8qIEhUTUwgZW1iZWQgd2lkZ2V0IGl0c2VsZiBzaG91bGQgcmVzcGVjdCBVSSBsYW5ndWFnZSBkaXJlY3Rpb24gKi9cblx0JltkaXI9XCJsdHJcIl0ge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cblxuXHQmW2Rpcj1cInJ0bFwiXSB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cblxuXHQvKiAtLS0tLSBFbWJlZCBsYWJlbCBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQmOjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1odG1sLWVtYmVkLWxhYmVsKTtcblx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1odG1sLWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoKSk7XG5cdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0YmFja2dyb3VuZDogaHNsKDBkZWcgMCUgNjAlKTtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblx0XHRwYWRkaW5nOiBjYWxjKHZhcigtLWNrLXNwYWNpbmctdGlueSkgKyB2YXIoLS1jay1odG1sLWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoKSkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy10aW55KTtcblx0XHRib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtdGlueSk7XG5cdFx0Zm9udC1mYW1pbHk6IHZhcigtLWNrLWZvbnQtZmFjZSk7XG5cdH1cblxuXHQmW2Rpcj1cInJ0bFwiXTo6YmVmb3JlIHtcblx0XHRsZWZ0OiBhdXRvO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0fVxuXG5cdC8qIE1ha2Ugc3BhY2UgZm9yIGxhYmVsIGJ1dCBpdCBvbmx5IGNvbGxpZGVzIGluIExUUiBsYW5ndWFnZXMgKi9cblx0JltkaXI9XCJsdHJcIl0gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbi5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlIHtcblx0XHRtYXJnaW4tbGVmdDogNTBweDtcblx0fVxuXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgJi5jay13aWRnZXRfc2VsZWN0ZWQ6OmJlZm9yZSB7XG5cdFx0dG9wOiAwcHg7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stYmx1cnJlZCkgJi5jay13aWRnZXRfc2VsZWN0ZWQ6OmJlZm9yZSB7XG5cdFx0dG9wOiAwO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0fVxuXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlICY6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOmhvdmVyOjpiZWZvcmUge1xuXHRcdHRvcDogMHB4O1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuXHQvKiAtLS0tLSBFbWViZWQgaW50ZXJuYWxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdCYgLnJhdy1odG1sLWVtYmVkX19jb250ZW50LXdyYXBwZXIge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG5cblx0LyogVGhlIHN3aXRjaCBtb2RlIGJ1dHRvbiB3cmFwcGVyLiAqL1xuXHQmIC5yYXctaHRtbC1lbWJlZF9fYnV0dG9ucy13cmFwcGVyIHtcblx0XHR0b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdCYgLmNrLWJ1dHRvbi5yYXctaHRtbC1lbWJlZF9fc2F2ZS1idXR0b24ge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1zYXZlKTtcblx0XHR9XG5cblx0XHQmIC5jay1idXR0b24ucmF3LWh0bWwtZW1iZWRfX2NhbmNlbC1idXR0b24ge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1jYW5jZWwpO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbjpub3QoOmZpcnN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cdH1cblxuXHQmW2Rpcj1cInJ0bFwiXSAucmF3LWh0bWwtZW1iZWRfX2J1dHRvbnMtd3JhcHBlciB7XG5cdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0cmlnaHQ6IGF1dG87XG5cdH1cblxuXHQvKiBUaGUgZWRpdCBzb3VyY2UgZWxlbWVudC4gKi9cblx0JiAucmF3LWh0bWwtZW1iZWRfX3NvdXJjZSB7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLWh0bWwtZW1iZWQtc291cmNlLWhlaWdodCk7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWh0bWwtZW1iZWQtY29udGVudC13aWR0aCk7XG5cdFx0cmVzaXplOiBub25lO1xuXHRcdG1pbi13aWR0aDogMDtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cdFx0dGFiLXNpemU6IDQ7XG5cdFx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpOyAvKiBTYWZhcmkgbmVlZHMgdGhpcy4gKi9cblxuXHRcdC8qIEhUTUwgY29kZSBpcyBkaXJlY3Rpb27igJNhZ25vc3RpYy4gKi9cblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdGRpcmVjdGlvbjogbHRyO1xuXG5cdFx0JltkaXNhYmxlZF0ge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2staHRtbC1lbWJlZC1zb3VyY2UtZGlzYWJsZWQtY29sb3IpO1xuXG5cdFx0XHQvKiBTYWZhcmkgbmVlZHMgdGhpcyBmb3IgdGhlIHByb3BlciB0ZXh0IGNvbG9yIGluIGRpc2FibGVkIGlucHV0IChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MzIwKS4gKi9cblx0XHRcdC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB2YXIoLS1jay1odG1sLWVtYmVkLXNvdXJjZS1kaXNhYmxlZC1jb2xvcik7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxuXG5cdC8qIFRoZSBwcmV2aWV3IGRhdGEgY29udGFpbmVyLiAqL1xuXHQmIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldyB7XG5cdFx0bWluLWhlaWdodDogdmFyKC0tY2staHRtbC1lbWJlZC1jb250ZW50LW1pbi1oZWlnaHQpO1xuXHRcdHdpZHRoOiB2YXIoLS1jay1odG1sLWVtYmVkLWNvbnRlbnQtd2lkdGgpO1xuXG5cdFx0LyogRGlzYWJsZSBhbGwgbW91c2UgaW50ZXJhY3Rpb24gYXMgbG9uZyBhcyB0aGUgZWRpdG9yIGlzIG5vdCByZWFk4oCTb25seS4gKi9cblx0XHQuY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLXJlYWQtb25seSkgJiB7XG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQmIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1jb250ZW50IHtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cblx0XHQmID4gKiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHR9XG5cdH1cblxuXHQmIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1wbGFjZWhvbGRlciB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWh0bWwtZW1iZWQtc291cmNlLWRpc2FibGVkLWNvbG9yKVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLWltYWdlLWluc2VydC1pbnNlcnQtYnktdXJsLXdpZHRoOiAyNTBweDtcbn1cblxuLmNrLmNrLWltYWdlLWluc2VydC11cmwge1xuXHQtLWNrLWlucHV0LXdpZHRoOiAxMDAlO1xuXG5cdCYgLmNrLWltYWdlLWluc2VydC11cmxfX2FjdGlvbi1yb3cge1xuXHRcdGdyaWQtY29sdW1uLWdhcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0XHQmIC5jay1idXR0b24tc2F2ZSxcblx0XHQmIC5jay1idXR0b24tY2FuY2VsIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdH1cblxuXHRcdCYgLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdFx0fVxuXHR9XG59XG5cbi5jay5jay1pbWFnZS1pbnNlcnQtZm9ybSB7XG5cdCYgPiAuY2suY2stYnV0dG9uIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogMTAwJTtcblxuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay5jay1jb2xsYXBzaWJsZSB7XG5cdFx0Jjpub3QoOmZpcnN0LWNoaWxkKSB7XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdH1cblxuXHRcdCY6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdH1cblxuXHRcdG1pbi13aWR0aDogdmFyKC0tY2staW1hZ2UtaW5zZXJ0LWluc2VydC1ieS11cmwtd2lkdGgpO1xuXHR9XG5cblx0LyogVGhpcyBpcyB0aGUgY2FzZSB3aGVuIHRoZXJlIGFyZSBubyBvdGhlciBpbnRlZ3JhdGlvbnMgY29uZmlndXJlZCB0aGFuIGluc2VydCBieSBVUkwgKi9cblx0JiA+IC5jay5jay1pbWFnZS1pbnNlcnQtdXJsIHtcblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWltYWdlLWluc2VydC1pbnNlcnQtYnktdXJsLXdpZHRoKTtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuXG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItaW1hZ2UtdXBsb2FkLWljb246IGhzbCgwLCAwJSwgMTAwJSk7XG5cdC0tY2stY29sb3ItaW1hZ2UtdXBsb2FkLWljb24tYmFja2dyb3VuZDogaHNsKDEyMCwgMTAwJSwgMjclKTtcblxuXHQvKiBNYXRjaCB0aGUgaWNvbiBzaXplIHdpdGggdGhlIGxpbmtlZCBpbWFnZSBpbmRpY2F0b3IgYnJvdWdodCBieSB0aGUgbGluayBpbWFnZSBmZWF0dXJlLiAqL1xuXHQtLWNrLWltYWdlLXVwbG9hZC1pY29uLXNpemU6IDIwO1xuXHQtLWNrLWltYWdlLXVwbG9hZC1pY29uLXdpZHRoOiAycHg7XG5cdC0tY2staW1hZ2UtdXBsb2FkLWljb24taXMtdmlzaWJsZTogY2xhbXAoMHB4LCAxMDAlIC0gNTBweCwgMXB4KTtcbn1cblxuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uIHtcblx0b3BhY2l0eTogMDtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaW1hZ2UtdXBsb2FkLWljb24tYmFja2dyb3VuZCk7XG5cdGFuaW1hdGlvbi1uYW1lOiBjay11cGxvYWQtY29tcGxldGUtaWNvbi1zaG93LCBjay11cGxvYWQtY29tcGxldGUtaWNvbi1oaWRlO1xuXHRhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcywgZm9yd2FyZHM7XG5cdGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXMsIDUwMG1zO1xuXG5cdC8qIFRvIG1ha2UgYW5pbWF0aW9uIHNjYWxhYmxlLiAqL1xuXHRmb250LXNpemU6IGNhbGMoMXB4ICogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24tc2l6ZSkpO1xuXG5cdC8qIEhpZGUgY29tcGxldGVkIHVwbG9hZCBpY29uIGFmdGVyIDMgc2Vjb25kcy4gKi9cblx0YW5pbWF0aW9uLWRlbGF5OiAwbXMsIDMwMDBtcztcblxuXHQvKlxuXHQgKiBVc2UgQ1NTIG1hdGggdG8gc2ltdWxhdGUgY29udGFpbmVyIHF1ZXJpZXMuXG5cdCAqIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vdGhlLXJhdmVuLXRlY2huaXF1ZS1vbmUtc3RlcC1jbG9zZXItdG8tY29udGFpbmVyLXF1ZXJpZXMvI3doYXQtYWJvdXQtc2hvd2luZy1hbmQtaGlkaW5nLXRoaW5nc1xuXHQgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0d2lkdGg6IGNhbGModmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24taXMtdmlzaWJsZSkgKiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplKSk7XG5cdGhlaWdodDogY2FsYyh2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1pcy12aXNpYmxlKSAqIHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXNpemUpKTtcblxuXHQvKiBUaGlzIGlzIGNoZWNrIGljb24gZWxlbWVudCBtYWRlIGZyb20gYm9yZGVyLXdpZHRoIG1peGVkIHdpdGggYW5pbWF0aW9ucy4gKi9cblx0Jjo6YWZ0ZXIge1xuXHRcdC8qIEJlY2F1c2Ugb2YgYm9yZGVyIHRyYW5zZm9ybWF0aW9uIHdlIG5lZWQgdG8gXCJoYXJkIGNvZGVcIiBsZWZ0IHBvc2l0aW9uLiAqL1xuXHRcdGxlZnQ6IDI1JTtcblxuXHRcdHRvcDogNTAlO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHRcdHdpZHRoOiAwO1xuXG5cdFx0dHJhbnNmb3JtOiBzY2FsZVgoLTEpIHJvdGF0ZSgxMzVkZWcpO1xuXHRcdHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuXHRcdGJvcmRlci10b3A6IHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXdpZHRoKSBzb2xpZCB2YXIoLS1jay1jb2xvci1pbWFnZS11cGxvYWQtaWNvbik7XG5cdFx0Ym9yZGVyLXJpZ2h0OiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi13aWR0aCkgc29saWQgdmFyKC0tY2stY29sb3ItaW1hZ2UtdXBsb2FkLWljb24pO1xuXG5cdFx0YW5pbWF0aW9uLW5hbWU6IGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLWNoZWNrO1xuXHRcdGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXM7XG5cdFx0YW5pbWF0aW9uLWRlbGF5OiA1MDBtcztcblx0XHRhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcblxuXHRcdC8qICMxMDk1LiBXaGlsZSByZXNldCBpcyBub3QgcHJvdmlkaW5nIHByb3BlciBib3gtc2l6aW5nIGZvciBwc2V1ZG9lbGVtZW50cywgd2UgbmVlZCB0byBoYW5kbGUgaXQuICovXG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXG5cdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiAwbXM7XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRhbmltYXRpb246IG5vbmU7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0d2lkdGg6IDAuM2VtO1xuXHRcdFx0aGVpZ2h0OiAwLjQ1ZW07XG5cdFx0fVxuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2stdXBsb2FkLWNvbXBsZXRlLWljb24tc2hvdyB7XG5cdGZyb20ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblxuXHR0byB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLWhpZGUge1xuXHRmcm9tIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cblx0dG8ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay11cGxvYWQtY29tcGxldGUtaWNvbi1jaGVjayB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHdpZHRoOiAwO1xuXHRcdGhlaWdodDogMDtcblx0fVxuXHQzMyUge1xuXHRcdHdpZHRoOiAwLjNlbTtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR3aWR0aDogMC4zZW07XG5cdFx0aGVpZ2h0OiAwLjQ1ZW07XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyOiBoc2woMCwgMCUsIDcwJSk7XG5cdC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplOiAzMnB4O1xuXHQtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1pbWFnZS1hc3BlY3QtcmF0aW86IDIuODtcbn1cblxuLmNrIC5jay1pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIge1xuXHQvKiBXZSBuZWVkIHRvIGNvbnRyb2wgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIFNWRyBncmF5IGJhY2tncm91bmQuICovXG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW46IDA7XG5cblx0Ji5pbWFnZS1pbmxpbmUge1xuXHRcdHdpZHRoOiBjYWxjKCAyICogdmFyKC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplKSAqIHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1pbWFnZS1hc3BlY3QtcmF0aW8pICk7XG5cdH1cblxuXHQmIGltZyB7XG5cdFx0Lypcblx0XHQgKiBUaGlzIGlzIGFuIGFyYml0cmFyeSBhc3BlY3QgZm9yIGEgMXgxIHB4IEdJRiB0byBkaXNwbGF5IHRvIHRoZSB1c2VyLiBOb3QgdG9vIHRhbGwsIG5vdCB0b28gc2hvcnQuXG5cdFx0ICogVGhlcmUncyBub3RoaW5nIHNwZWNpYWwgYWJvdXQgdGhpcyBudW1iZXIgZXhjZXB0IHRoYXQgaXQgc2hvdWxkIG1ha2UgdGhlIGltYWdlIHBsYWNlaG9sZGVyIGxvb2sgbGlrZVxuXHRcdCAqIGEgcmVhbCBpbWFnZSBkdXJpbmcgdGhpcyBzaG9ydCBwZXJpb2QgYWZ0ZXIgdGhlIHVwbG9hZCBzdGFydGVkIGFuZCBiZWZvcmUgdGhlIGltYWdlIHdhcyByZWFkIGZyb20gdGhlXG5cdFx0ICogZmlsZSBzeXN0ZW0gKGFuZCBhIHJpY2ggcHJldmlldyB3YXMgbG9hZGVkKS5cblx0XHQgKi9cblx0XHRhc3BlY3QtcmF0aW86IHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1pbWFnZS1hc3BlY3QtcmF0aW8pO1xuXHR9XG59XG5cbi5jayAuY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cblx0Jjo6YmVmb3JlIHtcblx0XHR3aWR0aDogdmFyKC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplKTtcblx0XHRoZWlnaHQ6IHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXItc2l6ZSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdGJvcmRlci10b3A6IDNweCBzb2xpZCB2YXIoLS1jay1jb2xvci11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyKTtcblx0XHRib3JkZXItcmlnaHQ6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRhbmltYXRpb246IGNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIgMXMgbGluZWFyIGluZmluaXRlO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlciB7XG5cdHRvIHtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZSggMzYwZGVnICk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0JiAuaW1hZ2UsXG5cdCYgLmltYWdlLWlubGluZSB7XG5cdFx0LyogU2hvd2luZyBhbmltYXRpb24uICovXG5cdFx0Ji5jay1hcHBlYXIge1xuXHRcdFx0YW5pbWF0aW9uOiBmYWRlSW4gNzAwbXM7XG5cblx0XHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvKiBVcGxvYWQgcHJvZ3Jlc3MgYmFyLiAqL1xuXHQmIC5pbWFnZSAuY2stcHJvZ3Jlc3MtYmFyLFxuXHQmIC5pbWFnZS1pbmxpbmUgLmNrLXByb2dyZXNzLWJhciB7XG5cdFx0aGVpZ2h0OiAycHg7XG5cdFx0d2lkdGg6IDA7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdXBsb2FkLWJhci1iYWNrZ3JvdW5kKTtcblx0XHR0cmFuc2l0aW9uOiB3aWR0aCAxMDBtcztcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG5cdGZyb20geyBvcGFjaXR5OiAwOyB9XG5cdHRvICAgeyBvcGFjaXR5OiAxOyB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKiBDbGFzcyBhZGRlZCB0byBzcGFuIGVsZW1lbnQgc3Vycm91bmRpbmcgY3VycmVudGx5IHNlbGVjdGVkIGxpbmsuICovXG4uY2sgLmNrLWxpbmtfc2VsZWN0ZWQge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuXG5cdC8qIEdpdmUgbGlua2VkIGlubGluZSBpbWFnZXMgc29tZSBvdXRsaW5lIHRvIGxldCB0aGUgdXNlciBrbm93IHRoZXkgYXJlIGFsc28gcGFydCBvZiB0aGUgbGluay4gKi9cblx0JiBzcGFuLmltYWdlLWlubGluZSB7XG5cdFx0b3V0bGluZTogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSBzb2xpZCB2YXIoLS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQpO1xuXHR9XG59XG5cbi8qXG4gKiBDbGFzc2VzIHVzZWQgYnkgdGhlIFwiZmFrZSB2aXN1YWwgc2VsZWN0aW9uXCIgZGlzcGxheWVkIGluIHRoZSBjb250ZW50IHdoZW4gYW4gaW5wdXRcbiAqIGluIHRoZSBsaW5rIFVJIGhhcyBmb2N1cyAodGhlIGJyb3dzZXIgZG9lcyBub3QgcmVuZGVyIHRoZSBuYXRpdmUgc2VsZWN0aW9uIGluIHRoaXMgc3RhdGUpLlxuICovXG4uY2sgLmNrLWZha2UtbGluay1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uKTtcbn1cblxuLyogQSBjb2xsYXBzZWQgZmFrZSB2aXN1YWwgc2VsZWN0aW9uLiAqL1xuLmNrIC5jay1mYWtlLWxpbmstc2VsZWN0aW9uX2NvbGxhcHNlZCB7XG5cdGhlaWdodDogMTAwJTtcblx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0bWFyZ2luLXJpZ2h0OiAtMXB4O1xuXHRvdXRsaW5lOiBzb2xpZCAxcHggaHNsYSgwLCAwJSwgMTAwJSwgLjUpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL191bnNlbGVjdGFibGUuY3NzXCI7XG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnMvX2ZvY3VzLmNzc1wiO1xuQGltcG9ydCBcIi4uL21peGlucy9fc2hhZG93LmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbi5jay5jay1saW5rLWFjdGlvbnMge1xuXHQmIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3IHtcblx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0cGFkZGluZy1yaWdodDogMDtcblxuXHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbGluay1kZWZhdWx0KTtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHQvKiBNYXRjaCB0aGUgYm94IG1vZGVsIG9mIHRoZSBsaW5rIGVkaXRvciBmb3JtJ3MgaW5wdXQgc28gdGhlIGJhbGxvb25cblx0XHRcdGRvZXMgbm90IGNoYW5nZSB3aWR0aCB3aGVuIG1vdmluZyBiZXR3ZWVuIGFjdGlvbnMgYW5kIHRoZSBmb3JtLiAqL1xuXHRcdFx0bWF4LXdpZHRoOiB2YXIoLS1jay1pbnB1dC13aWR0aCk7XG5cdFx0XHRtaW4td2lkdGg6IDNlbTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYsXG5cdFx0Jjpob3Zlcixcblx0XHQmOmZvY3VzLFxuXHRcdCY6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0fVxuXG5cdFx0JjphY3RpdmUge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0JiAuY2stYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5cdH1cblxuXHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0JiAuY2stYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cblx0fVxuXG5cdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0JiAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIDA7XG5cblx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmIC5jay1idXR0b246bm90KC5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcpIHtcblx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHR9XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4vKipcbiAqIE1ha2VzIGVsZW1lbnQgdW5zZWxlY3RhYmxlLlxuICovXG5AZGVmaW5lLW1peGluIGNrLXVuc2VsZWN0YWJsZSB7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmVcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4vKlxuICogU3R5bGUgbGluayBmb3JtIGRpZmZlcmVudGx5IHdoZW4gbWFudWFsIGRlY29yYXRvcnMgYXJlIGF2YWlsYWJsZS5cbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1saW5rL2lzc3Vlcy8xODYuXG4gKi9cbi5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIHtcblx0cGFkZGluZzogMDtcblx0bWluLXdpZHRoOiB2YXIoLS1jay1pbnB1dC13aWR0aCk7XG5cblx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXG5cdFx0JiAuY2staW5wdXQtdGV4dCB7XG5cdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cdH1cblxuXHQmID4gLmNrLWJ1dHRvbiB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHdpZHRoOiA1MCU7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdCY6bm90KDpmb2N1cykge1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHR9XG5cblx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblxuXHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyogVXNpbmcgYWRkaXRpb25hbCBgLmNrYCBjbGFzcyBmb3Igc3Ryb25nZXIgQ1NTIHNwZWNpZmljaXR5IHRoYW4gYC5jay5jay1saW5rLWZvcm0gPiA6bm90KDpmaXJzdC1jaGlsZClgLiAqL1xuXHQmIC5jay5jay1saXN0IHtcblx0XHRtYXJnaW46IDAgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0XHQmIC5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC8qIE1hdGNoIHRoZSBpY29uIHNpemUgd2l0aCB0aGUgdXBsb2FkIGluZGljYXRvciBicm91Z2h0IGJ5IHRoZSBpbWFnZSB1cGxvYWQgZmVhdHVyZS4gKi9cblx0LS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLXNpemU6IDIwO1xuXHQtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24taXMtdmlzaWJsZTogY2xhbXAoMHB4LCAxMDAlIC0gNTBweCwgMXB4KTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQvKiBMaW5rZWQgaW1hZ2UgaW5kaWNhdG9yICovXG5cdCYgZmlndXJlLmltYWdlID4gYSxcblx0JiBhIHNwYW4uaW1hZ2UtaW5saW5lIHtcblx0XHQmOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXG5cdFx0XHQvKlxuXHRcdFx0ICogU21hbGxlciBpbWFnZXMgc2hvdWxkIGhhdmUgdGhlIGljb24gY2xvc2VyIHRvIHRoZSBib3JkZXIuXG5cdFx0XHQgKiBNYXRjaCB0aGUgaWNvbiBwb3NpdGlvbiB3aXRoIHRoZSB1cGxvYWQgaW5kaWNhdG9yIGJyb3VnaHQgYnkgdGhlIGltYWdlIHVwbG9hZCBmZWF0dXJlLlxuXHRcdFx0ICovXG5cdFx0XHR0b3A6IG1pbih2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIDYlKTtcblx0XHRcdHJpZ2h0OiBtaW4odmFyKC0tY2stc3BhY2luZy1tZWRpdW0pLCA2JSk7XG5cblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGhzbGEoMCwgMCUsIDAlLCAuNCk7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUIyYVdWM1FtOTRQU0l3SURBZ01qQWdNakFpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUkrUEhCaGRHZ2dabWxzYkQwaUkyWm1aaUlnWkQwaWJURXhMakEzTnlBeE5TQXVPVGt4TFRFdU5ERTJZUzQzTlM0M05TQXdJREVnTVNBeExqSXlPUzQ0Tm13dE1TNHhORGdnTVM0Mk5HRXVOelE0TGpjME9DQXdJREFnTVMwdU1qRTNMakl3TmlBMUxqSTFNU0ExTGpJMU1TQXdJREFnTVMwNExqVXdNeTAxTGprMU5TNDNOREV1TnpReElEQWdNQ0F4SUM0eE1pMHVNamMwYkRFdU1UUTNMVEV1TmpNNVlTNDNOUzQzTlNBd0lERWdNU0F4TGpJeU9DNDROa3cwTGprek15QXhNQzQzYkM0d01EWXVNREF6WVRNdU56VWdNeTQzTlNBd0lEQWdNQ0EyTGpFek1pQTBMakk1Tkd3dU1EQTJMakF3TkhwdE5TNDBPVFF0TlM0ek16VmhMamMwT0M0M05EZ2dNQ0F3SURFdExqRXlMakkzTkd3dE1TNHhORGNnTVM0Mk16bGhMamMxTGpjMUlEQWdNU0F4TFRFdU1qSTRMUzQ0Tm13dU9EWXRNUzR5TTJFekxqYzFJRE11TnpVZ01DQXdJREF0Tmk0eE5EUXROQzR6TURGc0xTNDROaUF4TGpJeU9XRXVOelV1TnpVZ01DQXdJREV0TVM0eU1qa3RMamcyYkRFdU1UUTRMVEV1TmpSaExqYzBPQzQzTkRnZ01DQXdJREVnTGpJeE55MHVNakEySURVdU1qVXhJRFV1TWpVeElEQWdNQ0F4SURndU5UQXpJRFV1T1RVMWVtMHROQzQxTmpNdE1pNDFNekpoTGpjMUxqYzFJREFnTUNBeElDNHhPRFFnTVM0d05EVnNMVE11TVRVMUlEUXVOVEExWVM0M05TNDNOU0F3SURFZ01TMHhMakl5T1MwdU9EWnNNeTR4TlRVdE5DNDFNRFpoTGpjMUxqYzFJREFnTUNBeElERXVNRFExTFM0eE9EUjZJaTgrUEM5emRtYytcIik7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDE0cHg7XG5cdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwJTtcblxuXHRcdFx0Lypcblx0XHRcdCogVXNlIENTUyBtYXRoIHRvIHNpbXVsYXRlIGNvbnRhaW5lciBxdWVyaWVzLlxuXHRcdFx0KiBodHRwczovL2Nzcy10cmlja3MuY29tL3RoZS1yYXZlbi10ZWNobmlxdWUtb25lLXN0ZXAtY2xvc2VyLXRvLWNvbnRhaW5lci1xdWVyaWVzLyN3aGF0LWFib3V0LXNob3dpbmctYW5kLWhpZGluZy10aGluZ3Ncblx0XHRcdCovXG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0d2lkdGg6IGNhbGModmFyKC0tY2stbGluay1pbWFnZS1pbmRpY2F0b3ItaWNvbi1pcy12aXNpYmxlKSAqIHZhcigtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24tc2l6ZSkpO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKHZhcigtLWNrLWxpbmstaW1hZ2UtaW5kaWNhdG9yLWljb24taXMtdmlzaWJsZSkgKiB2YXIoLS1jay1saW5rLWltYWdlLWluZGljYXRvci1pY29uLXNpemUpKTtcblx0XHR9XG5cdH1cbn1cblxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxpc3QtcHJvcGVydGllcyB7XG5cdC8qIFdoZW4gdGhlcmUgYXJlIG5vIGxpc3Qgc3R5bGVzIGFuZCB0aGVyZSBpcyBubyBjb2xsYXBzaWJsZS4gKi9cblx0Ji5jay1saXN0LXByb3BlcnRpZXNfd2l0aG91dC1zdHlsZXMge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdFx0JiA+ICoge1xuXHRcdFx0bWluLXdpZHRoOiAxNGVtO1xuXG5cdFx0XHQmICsgKiB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIFdoZW4gdGhlIG51bWJlcmVkIGxpc3QgcHJvcGVydHkgZmllbGRzIChzdGFydCBhdCwgcmV2ZXJzZWQpIHNob3VsZCBiZSBkaXNwbGF5ZWQsXG5cdCAqIG1vcmUgaG9yaXpvbnRhbCBzcGFjZSBpcyBuZWVkZWQuIFJlY29uZmlndXJlIHRoZSBzdHlsZSBncmlkIHRvIGNyZWF0ZSB0aGF0IHNwYWNlLlxuXHQgKi9cblx0Ji5jay1saXN0LXByb3BlcnRpZXNfd2l0aC1udW1iZXJlZC1wcm9wZXJ0aWVzIHtcblx0XHQmID4gLmNrLWxpc3Qtc3R5bGVzLWxpc3Qge1xuXHRcdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoIDQsIGF1dG8gKTtcblx0XHR9XG5cblx0XHQvKiBXaGVuIGxpc3Qgc3R5bGVzIGFyZSByZW5kZXJlZCBhbmQgcHJvcGVydHkgZmllbGRzIGFyZSBpbiBhIGNvbGxhcHNpYmxlLiAqL1xuXHRcdCYgPiAuY2stY29sbGFwc2libGUge1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHRcdFx0JiA+IC5jay1jb2xsYXBzaWJsZV9fY2hpbGRyZW4ge1xuXHRcdFx0XHQmID4gKiB7XG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdFx0XHQmICsgKiB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmIC5jay5jay1udW1iZXJlZC1saXN0LXByb3BlcnRpZXNfX3N0YXJ0LWluZGV4IC5jay1pbnB1dCB7XG5cdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0JiAuY2suY2stbnVtYmVyZWQtbGlzdC1wcm9wZXJ0aWVzX19yZXZlcnNlZC1vcmRlciB7XG5cdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctdGlueSkpO1xuXG5cdFx0JjphY3RpdmUsICY6aG92ZXIge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemU6IDQ0cHg7XG59XG5cbi5jay5jay1saXN0LXN0eWxlcy1saXN0IHtcblx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoIDMsIGF1dG8gKTtcblx0cm93LWdhcDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRjb2x1bW4tZ2FwOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdCYgLmNrLWJ1dHRvbiB7XG5cdFx0LyogTWFrZSB0aGUgYnV0dG9uIGxvb2sgbGlrZSBhIHRodW1ibmFpbCAodGhlIGljb24gXCJ0YWtlcyBpdCBhbGxcIikuICovXG5cdFx0d2lkdGg6IHZhcigtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stbGlzdC1zdHlsZS1idXR0b24tc2l6ZSk7XG5cdFx0cGFkZGluZzogMDtcblxuXHRcdC8qXG5cdFx0ICogQnV0dG9ucyBhcmUgYWxpZ25lZCBieSB0aGUgZ3JpZCBzbyBkaXNhYmxlIGRlZmF1bHQgYnV0dG9uIG1hcmdpbnMgdG8gbm90IGNvbGxpZGUgd2l0aCB0aGVcblx0XHQgKiBnYXBzIGluIHRoZSBncmlkLlxuXHRcdCAqL1xuXHRcdG1hcmdpbjogMDtcblxuXHRcdC8qXG5cdFx0ICogTWFrZSBzdXJlIHRoZSBidXR0b24gYm9yZGVyICh3aGljaCBpcyBkaXNwbGF5ZWQgb24gZm9jdXMsIEJUVykgZG9lcyBub3Qgc3RlYWwgcGl4ZWxzXG5cdFx0ICogZnJvbSB0aGUgYnV0dG9uIGRpbWVuc2lvbnMgYW5kLCBhcyBhIHJlc3VsdCwgZGVjcmVhc2UgdGhlIHNpemUgb2YgdGhlIGljb25cblx0XHQgKiAod2hpY2ggYmVjb21lcyBibHVycnkgYXMgaXQgc2NhbGVzIGRvd24pLlxuXHRcdCAqL1xuXHRcdGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuXG5cdFx0JiAuY2staWNvbiB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stbGlzdC1zdHlsZS1idXR0b24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLWxpc3Qtc3R5bGUtYnV0dG9uLXNpemUpO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLWljb24tc2l6ZTogM2VtO1xuXG5cdC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQ6IGhzbCgwLCAwJSwgNDYlKTtcblx0LS1jay1jb2xvci1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci11cmwtdGV4dC1ob3ZlcjogdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcbn1cblxuLmNrLW1lZGlhX193cmFwcGVyIHtcblx0bWFyZ2luOiAwIGF1dG87XG5cblx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHRwYWRkaW5nOiBjYWxjKCAzICogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXG5cdFx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItaWNvbi1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItaWNvbi1zaXplKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcblxuXHRcdFx0JiAuY2staWNvbiB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLXVybC10ZXh0KTtcblx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci11cmwtdGV4dC1ob3Zlcik7XG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JltkYXRhLW9lbWJlZC11cmwqPVwib3Blbi5zcG90aWZ5LmNvbVwiXSB7XG5cdFx0bWF4LXdpZHRoOiAzMDBweDtcblx0XHRtYXgtaGVpZ2h0OiAzODBweDtcblx0fVxuXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cImdvb2dsZS5jb20vbWFwc1wiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uLFxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJnb28uZ2wvbWFwc1wiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uLFxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJtYXBzLmdvb2dsZS5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbixcblx0JltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5hcHAuZ29vLmdsXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24ge1xuXHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXlOVEF1TXpjNElpQm9aV2xuYUhROUlqSTFOQzR4TmpjaUlIWnBaWGRDYjNnOUlqQWdNQ0EyTmk0eU5EWWdOamN1TWpRNElqNDhaeUIwY21GdWMyWnZjbTA5SW5SeVlXNXpiR0YwWlNndE1UY3lMalV6TVNBdE1qRTRMalExTlNrZ2MyTmhiR1VvTGprNE1ERXlLU0krUEhKbFkzUWdjbms5SWpVdU1qTTRJaUJ5ZUQwaU5TNHlNemdpSUhrOUlqSXpNUzR6T1RraUlIZzlJakUzTmk0d016RWlJR2hsYVdkb2REMGlOakF1TURrNUlpQjNhV1IwYUQwaU5qQXVNRGs1SWlCbWFXeHNQU0lqTXpSaE5qWTRJaUJ3WVdsdWRDMXZjbVJsY2owaWJXRnlhMlZ5Y3lCemRISnZhMlVnWm1sc2JDSXZQanh3WVhSb0lHUTlJazB5TURZdU5EYzNJREkyTUM0NWJDMHlPQzQ1T0RjZ01qZ3VPVGczWVRVdU1qRTRJRFV1TWpFNElEQWdNQ0F3SURNdU56Z2dNUzQyTVdnME9TNDJNakZqTVM0Mk9UUWdNQ0F6TGpFNUxTNDNPVGdnTkM0eE5EWXRNaTR3TXpkNklpQm1hV3hzUFNJak5XTTRPR00xSWk4K1BIQmhkR2dnWkQwaVRUSXlOaTQzTkRJZ01qSXlMams0T0dNdE9TNHlOallnTUMweE5pNDNOemNnTnk0eE55MHhOaTQzTnpjZ01UWXVNREUwTGpBd055QXlMamMyTWk0Mk5qTWdOUzQwTnpRZ01pNHdPVE1nTnk0NE56VXVORE11TnpBekxqZ3pJREV1TkRBNElERXVNVGtnTWk0eE1EY3VNek16TGpVd01pNDJOU0F4TGpBd05TNDVOU0F4TGpVd09DNHpORE11TkRjM0xqWTNNeTQ1TlRjdU9UZzRJREV1TkRRZ01TNHpNU0F4TGpjMk9TQXlMalVnTXk0MU1ESWdNeTQyTXpjZ05TNHhOamd1TnpreklERXVNamMxSURFdU5qZ3pJREl1TmpRZ01pNDBOallnTXk0NU9TQXlMak0yTXlBMExqQTVOQ0EwTGpBd055QTRMakE1TWlBMExqWWdNVE11T1RFMGRpNHdNVEpqTGpFNE1pNDBNVEl1TlRFMkxqWTJOaTQ0TnprdU5qWTNMalF3TXkwdU1EQXhMamMyT0MwdU16RTBMamt6TFM0M09Ua3VOakF6TFRVdU56VTJJREl1TWpNNExUa3VOekk1SURRdU5UZzFMVEV6TGpjNU5DNDNPREl0TVM0ek5TQXhMalkzTXkweUxqY3hOU0F5TGpRMk5TMHpMams1SURFdU1UTTNMVEV1TmpZMklESXVNekk0TFRNdU5DQXpMall6T0MwMUxqRTJPUzR6TVRVdExqUTRNaTQyTkRVdExqazJNaTQ1T0RndE1TNDBNemt1TXkwdU5UQXpMall4TnkweExqQXdOaTQ1TlMweExqVXdPQzR6TlRrdExqY3VOell0TVM0ME1EUWdNUzR4T1MweUxqRXdOeUF4TGpReU5pMHlMalF3TWlBeUxUVXVNVEUwSURJdU1EQTBMVGN1T0RjMUlEQXRPQzQ0TkRRdE55NDFNVEV0TVRZdU1ERTBMVEUyTGpjM05pMHhOaTR3TVRSNklpQm1hV3hzUFNJalpHUTBZak5sSWlCd1lXbHVkQzF2Y21SbGNqMGliV0Z5YTJWeWN5QnpkSEp2YTJVZ1ptbHNiQ0l2UGp4bGJHeHBjSE5sSUhKNVBTSTFMalUyTkNJZ2NuZzlJalV1T0RJNElpQmplVDBpTWpNNUxqQXdNaUlnWTNnOUlqSXlOaTQzTkRJaUlHWnBiR3c5SWlNNE1ESmtNamNpSUhCaGFXNTBMVzl5WkdWeVBTSnRZWEpyWlhKeklITjBjbTlyWlNCbWFXeHNJaTgrUEhCaGRHZ2daRDBpVFRFNU1DNHpNREVnTWpNM0xqSTRNMk10TkM0Mk55QXdMVGd1TkRVM0lETXVPRFV6TFRndU5EVTNJRGd1TmpBMmN6TXVOemcySURndU5qQTNJRGd1TkRVM0lEZ3VOakEzWXpNdU1EUXpJREFnTkM0NE1EWXRMamsxT0NBMkxqTXpOeTB5TGpVeE5pQXhMalV6TFRFdU5UVTNJREl1TURnM0xUTXVPVEV6SURJdU1EZzNMVFl1TWprZ01DMHVNell5TFM0d01qTXRMamN5TWkwdU1EWTBMVEV1TURjNWFDMDRMakkxTjNZekxqQTBNMmcwTGpnMVl5MHVNVGszTGpjMU9TMHVOVE14SURFdU5EVXRNUzR3TlRnZ01TNDVPRFl0TGprME1pNDVOVGd0TWk0d01qZ2dNUzQxTkRndE15NDVNREVnTVM0MU5EZ3RNaTQ0TnpZZ01DMDFMakl3T0MweUxqTTNNaTAxTGpJd09DMDFMakk1T1NBd0xUSXVPVEkySURJdU16TXlMVFV1TWprNUlEVXVNakE0TFRVdU1qazVJREV1TXprNUlEQWdNaTQyTVRndU5EQTNJRE11TlRnMElERXVNamt6YkRJdU16Z3hMVEl1TXpoak1DMHVNREF5TFM0d01ETXRMakF3TkMwdU1EQTBMUzR3TURVdE1TNDFPRGd0TVM0MU1qUXRNeTQyTWkweUxqSXhOUzAxTGprMU5TMHlMakl4TlhwdE5DNDBNeUExTGpZMmJDNHdNRE11TURBMmRpMHVNREF6ZWlJZ1ptbHNiRDBpSTJabVppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhjR0YwYUNCa1BTSk5NakUxTGpFNE5DQXlOVEV1T1RJNWJDMDNMams0SURjdU9UYzVJREk0TGpRM055QXlPQzQwTnpWakxqSTROeTB1TmpRNUxqUTBPUzB4TGpNMk5pNDBORGt0TWk0eE1qTjJMVE14TGpFMk5XTXRMalEyT1M0Mk56VXRMamt6TkNBeExqTTBPUzB4TGpNNE1pQXlMakF3TlMwdU56a3lJREV1TWpjMUxURXVOamd5SURJdU5qUXRNaTQwTmpVZ015NDVPUzB5TGpNME55QTBMakEyTlMwekxqazRNaUE0TGpBek9DMDBMalU0TlNBeE15NDNPVFF0TGpFMk1pNDBPRFV0TGpVeU55NDNPVGd0TGprekxqYzVPUzB1TXpZekxTNHdNREV0TGpZNU55MHVNalUxTFM0NE56a3RMalkyTjNZdExqQXhNbU10TGpVNU15MDFMamd5TWkweUxqSXpOeTA1TGpneUxUUXVOaTB4TXk0NU1UUXRMamM0TXkweExqTTFMVEV1TmpjekxUSXVOekUxTFRJdU5EWTJMVE11T1RrdE1TNHhNemN0TVM0Mk5qWXRNaTR6TWpjdE15NDBMVE11TmpNM0xUVXVNVFk1YkMwdU1EQXlMUzR3TURONklpQm1hV3hzUFNJall6TmpNMk16SWk4K1BIQmhkR2dnWkQwaVRUSXhNaTQ1T0RNZ01qUTRMalE1Tld3dE16WXVPVFV5SURNMkxqazFNM1l1T0RFeVlUVXVNakkzSURVdU1qSTNJREFnTUNBd0lEVXVNak00SURVdU1qTTRhREV1TURFMWJETTFMalkyTmkwek5TNDJOalpoTVRNMkxqSTNOU0F4TXpZdU1qYzFJREFnTUNBd0xUSXVOelkwTFRNdU9TQXpOeTQxTnpVZ016Y3VOVGMxSURBZ01DQXdMUzQ1T0RrdE1TNDBOR010TGpJNU9TMHVOVEF6TFM0Mk1UWXRNUzR3TURZdExqazFMVEV1TlRBNExTNHdPRE10TGpFMk1pMHVNVGMyTFM0ek1qWXRMakkyTkMwdU5EZzVlaUlnWm1sc2JEMGlJMlprWkdNMFppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhjR0YwYUNCa1BTSk5NakV4TGprNU9DQXlOakV1TURnemJDMDJMakUxTWlBMkxqRTFNU0F5TkM0eU5qUWdNalF1TWpZMGFDNDNPREZoTlM0eU1qY2dOUzR5TWpjZ01DQXdJREFnTlM0eU16a3ROUzR5TXpoMkxURXVNRFExZWlJZ1ptbHNiRDBpSTJabVppSWdjR0ZwYm5RdGIzSmtaWEk5SW0xaGNtdGxjbk1nYzNSeWIydGxJR1pwYkd3aUx6NDhMMmMrUEM5emRtYyspO1xuXHR9XG5cblx0JltkYXRhLW9lbWJlZC11cmwqPVwiZmFjZWJvb2suY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdGJhY2tncm91bmQ6IGhzbCgyMjAsIDQ2JSwgNDglKTtcblxuXHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpVlZSR0xUZ2lQejQ4YzNabklIZHBaSFJvUFNJeE1ESTBjSGdpSUdobGFXZG9kRDBpTVRBeU5IQjRJaUIyYVdWM1FtOTRQU0l3SURBZ01UQXlOQ0F4TURJMElpQjJaWEp6YVc5dVBTSXhMakVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lQaUFnSUNBZ0lDQWdQSFJwZEd4bFBrWnBiR3dnTVR3dmRHbDBiR1UrSUNBZ0lEeGtaWE5qUGtOeVpXRjBaV1FnZDJsMGFDQlRhMlYwWTJndVBDOWtaWE5qUGlBZ0lDQThaR1ZtY3o0OEwyUmxabk0rSUNBZ0lEeG5JR2xrUFNKUVlXZGxMVEVpSUhOMGNtOXJaVDBpYm05dVpTSWdjM1J5YjJ0bExYZHBaSFJvUFNJeElpQm1hV3hzUFNKdWIyNWxJaUJtYVd4c0xYSjFiR1U5SW1WMlpXNXZaR1FpUGlBZ0lDQWdJQ0FnUEdjZ2FXUTlJbVpNYjJkdlgxZG9hWFJsSWlCbWFXeHNQU0lqUmtaR1JrWkZJajRnSUNBZ0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk9UWTNMalE0TkN3d0lFdzFOaTQxTVRjc01DQkRNalV1TXpBMExEQWdNQ3d5TlM0ek1EUWdNQ3cxTmk0MU1UY2dUREFzT1RZM0xqUTRNeUJETUN3NU9UZ3VOamswSURJMUxqSTVOeXd4TURJMElEVTJMalV5TWl3eE1ESTBJRXcxTkRjc01UQXlOQ0JNTlRRM0xEWXlPQ0JNTkRFMExEWXlPQ0JNTkRFMExEUTNNeUJNTlRRM0xEUTNNeUJNTlRRM0xETTFPUzR3TWprZ1F6VTBOeXd5TWpZdU56WTNJRFl5Tnk0M056TXNNVFUwTGpjME55QTNORFV1TnpVMkxERTFOQzQzTkRjZ1F6Z3dNaTR5Tmprc01UVTBMamMwTnlBNE5UQXVPRFF5TERFMU9DNDVOVFVnT0RZMUxERTJNQzQ0TXpZZ1REZzJOU3d5T1RrZ1REYzRNeTR6T0RRc01qazVMakF6TnlCRE56RTVMak01TVN3eU9Ua3VNRE0zSURjd055d3pNamt1TlRJNUlEY3dOeXd6TnpRdU1qY3pJRXczTURjc05EY3pJRXc0TmpBdU5EZzNMRFEzTXlCTU9EUXdMalV3TVN3Mk1qZ2dURGN3Tnl3Mk1qZ2dURGN3Tnl3eE1ESTBJRXc1TmpjdU5EZzBMREV3TWpRZ1F6azVPQzQyT1Rjc01UQXlOQ0F4TURJMExEazVPQzQyT1RjZ01UQXlOQ3c1TmpjdU5EZzBJRXd4TURJMExEVTJMalV4TlNCRE1UQXlOQ3d5TlM0ek1ETWdPVGs0TGpZNU55d3dJRGsyTnk0ME9EUXNNQ0lnYVdROUlrWnBiR3d0TVNJK1BDOXdZWFJvUGlBZ0lDQWdJQ0FnUEM5blBpQWdJQ0E4TDJjK1BDOXpkbWMrKTtcblx0XHR9XG5cblx0XHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRjb2xvcjogaHNsKDIyMCwgMTAwJSwgOTAlKTtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cImluc3RhZ3JhbS5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlciB7XG5cdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC0xMzVkZWcsaHNsKDI0NiwgMTAwJSwgMzklKSxoc2woMzAyLCAxMDAlLCAzNiUpLGhzbCgwLCAxMDAlLCA0OCUpKTtcblxuXHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpVlZSR0xUZ2lQejQ4YzNabklIZHBaSFJvUFNJMU1EUndlQ0lnYUdWcFoyaDBQU0kxTURSd2VDSWdkbWxsZDBKdmVEMGlNQ0F3SURVd05DQTFNRFFpSUhabGNuTnBiMjQ5SWpFdU1TSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklpQjRiV3h1Y3pwNGJHbHVhejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOTRiR2x1YXlJK0lDQWdJQ0FnSUNBOGRHbDBiR1UrWjJ4NWNHZ3RiRzluYjE5TllYa3lNREUyUEM5MGFYUnNaVDRnSUNBZ1BHUmxjMk0rUTNKbFlYUmxaQ0IzYVhSb0lGTnJaWFJqYUM0OEwyUmxjMk0rSUNBZ0lEeGtaV1p6UGlBZ0lDQWdJQ0FnUEhCdmJIbG5iMjRnYVdROUluQmhkR2d0TVNJZ2NHOXBiblJ6UFNJd0lEQXVNVFU1SURVd015NDROREVnTUM0eE5Ua2dOVEF6TGpnME1TQTFNRE11T1RRZ01DQTFNRE11T1RRaVBqd3ZjRzlzZVdkdmJqNGdJQ0FnUEM5a1pXWnpQaUFnSUNBOFp5QnBaRDBpWjJ4NWNHZ3RiRzluYjE5TllYa3lNREUySWlCemRISnZhMlU5SW01dmJtVWlJSE4wY205clpTMTNhV1IwYUQwaU1TSWdabWxzYkQwaWJtOXVaU0lnWm1sc2JDMXlkV3hsUFNKbGRtVnViMlJrSWo0Z0lDQWdJQ0FnSUR4bklHbGtQU0pIY205MWNDMHpJajRnSUNBZ0lDQWdJQ0FnSUNBOGJXRnpheUJwWkQwaWJXRnpheTB5SWlCbWFXeHNQU0ozYUdsMFpTSStJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeDFjMlVnZUd4cGJtczZhSEpsWmowaUkzQmhkR2d0TVNJK1BDOTFjMlUrSUNBZ0lDQWdJQ0FnSUNBZ1BDOXRZWE5yUGlBZ0lDQWdJQ0FnSUNBZ0lEeG5JR2xrUFNKRGJHbHdMVElpUGp3dlp6NGdJQ0FnSUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQU0pOTWpVeExqa3lNU3d3TGpFMU9TQkRNVGd6TGpVd015d3dMakUxT1NBeE56UXVPVEkwTERBdU5EUTVJREUwT0M0d05UUXNNUzQyTnpVZ1F6RXlNUzR5TkN3eUxqZzVPQ0F4TURJdU9USTNMRGN1TVRVM0lEZzJMamt3TXl3eE15NHpPRFVnUXpjd0xqTXpOeXd4T1M0NE1qSWdOVFl1TWpnNExESTRMalF6TmlBME1pNHlPRElzTkRJdU5EUXhJRU15T0M0eU56Y3NOVFl1TkRRM0lERTVMalkyTXl3M01DNDBPVFlnTVRNdU1qSTJMRGczTGpBMk1pQkROaTQ1T1Rnc01UQXpMakE0TmlBeUxqY3pPU3d4TWpFdU16azVJREV1TlRFMkxERTBPQzR5TVRNZ1F6QXVNamtzTVRjMUxqQTRNeUF3TERFNE15NDJOaklnTUN3eU5USXVNRGdnUXpBc016SXdMalE1TnlBd0xqSTVMRE15T1M0d056WWdNUzQxTVRZc016VTFMamswTmlCRE1pNDNNemtzTXpneUxqYzJJRFl1T1RrNExEUXdNUzR3TnpNZ01UTXVNakkyTERReE55NHdPVGNnUXpFNUxqWTJNeXcwTXpNdU5qWXpJREk0TGpJM055dzBORGN1TnpFeUlEUXlMakk0TWl3ME5qRXVOekU0SUVNMU5pNHlPRGdzTkRjMUxqY3lNeUEzTUM0ek16Y3NORGcwTGpNek55QTROaTQ1TURNc05Ea3dMamMzTlNCRE1UQXlMamt5Tnl3ME9UY3VNREF5SURFeU1TNHlOQ3cxTURFdU1qWXhJREUwT0M0d05UUXNOVEF5TGpRNE5DQkRNVGMwTGpreU5DdzFNRE11TnpFZ01UZ3pMalV3TXl3MU1EUWdNalV4TGpreU1TdzFNRFFnUXpNeU1DNHpNemdzTlRBMElETXlPQzQ1TVRjc05UQXpMamN4SURNMU5TNDNPRGNzTlRBeUxqUTROQ0JETXpneUxqWXdNU3cxTURFdU1qWXhJRFF3TUM0NU1UUXNORGszTGpBd01pQTBNVFl1T1RNNExEUTVNQzQzTnpVZ1F6UXpNeTQxTURRc05EZzBMak16TnlBME5EY3VOVFV6TERRM05TNDNNak1nTkRZeExqVTFPU3cwTmpFdU56RTRJRU0wTnpVdU5UWTBMRFEwTnk0M01USWdORGcwTGpFM09DdzBNek11TmpZeklEUTVNQzQyTVRZc05ERTNMakE1TnlCRE5EazJMamcwTXl3ME1ERXVNRGN6SURVd01TNHhNRElzTXpneUxqYzJJRFV3TWk0ek1qVXNNelUxTGprME5pQkROVEF6TGpVMU1Td3pNamt1TURjMklEVXdNeTQ0TkRFc016SXdMalE1TnlBMU1ETXVPRFF4TERJMU1pNHdPQ0JETlRBekxqZzBNU3d4T0RNdU5qWXlJRFV3TXk0MU5URXNNVGMxTGpBNE15QTFNREl1TXpJMUxERTBPQzR5TVRNZ1F6VXdNUzR4TURJc01USXhMak01T1NBME9UWXVPRFF6TERFd015NHdPRFlnTkRrd0xqWXhOaXc0Tnk0d05qSWdRelE0TkM0eE56Z3NOekF1TkRrMklEUTNOUzQxTmpRc05UWXVORFEzSURRMk1TNDFOVGtzTkRJdU5EUXhJRU0wTkRjdU5UVXpMREk0TGpRek5pQTBNek11TlRBMExERTVMamd5TWlBME1UWXVPVE00TERFekxqTTROU0JETkRBd0xqa3hOQ3czTGpFMU55QXpPREl1TmpBeExESXVPRGs0SURNMU5TNDNPRGNzTVM0Mk56VWdRek15T0M0NU1UY3NNQzQwTkRrZ016SXdMak16T0N3d0xqRTFPU0F5TlRFdU9USXhMREF1TVRVNUlGb2dUVEkxTVM0NU1qRXNORFV1TlRVZ1F6TXhPUzR4T0RZc05EVXVOVFVnTXpJM0xqRTFOQ3cwTlM0NE1EY2dNelV6TGpjeE9DdzBOeTR3TVRrZ1F6TTNPQzR5T0N3ME9DNHhNemtnTXpreExqWXhPU3cxTWk0eU5ETWdOREF3TGpRNU5pdzFOUzQyT1RNZ1F6UXhNaTR5TlRVc05qQXVNall6SURReU1DNDJORGNzTmpVdU56SXlJRFF5T1M0ME5qSXNOelF1TlRNNElFTTBNemd1TWpjNExEZ3pMak0xTXlBME5ETXVOek0zTERreExqYzBOU0EwTkRndU16QTNMREV3TXk0MU1EUWdRelExTVM0M05UY3NNVEV5TGpNNE1TQTBOVFV1T0RZeExERXlOUzQzTWlBME5UWXVPVGd4TERFMU1DNHlPRElnUXpRMU9DNHhPVE1zTVRjMkxqZzBOaUEwTlRndU5EVXNNVGcwTGpneE5DQTBOVGd1TkRVc01qVXlMakE0SUVNME5UZ3VORFVzTXpFNUxqTTBOU0EwTlRndU1Ua3pMRE15Tnk0ek1UTWdORFUyTGprNE1Td3pOVE11T0RjM0lFTTBOVFV1T0RZeExETTNPQzQwTXprZ05EVXhMamMxTnl3ek9URXVOemM0SURRME9DNHpNRGNzTkRBd0xqWTFOU0JETkRRekxqY3pOeXcwTVRJdU5ERTBJRFF6T0M0eU56Z3NOREl3TGpnd05pQTBNamt1TkRZeUxEUXlPUzQyTWpFZ1F6UXlNQzQyTkRjc05ETTRMalF6TnlBME1USXVNalUxTERRME15NDRPVFlnTkRBd0xqUTVOaXcwTkRndU5EWTJJRU16T1RFdU5qRTVMRFExTVM0NU1UWWdNemM0TGpJNExEUTFOaTR3TWlBek5UTXVOekU0TERRMU55NHhOQ0JETXpJM0xqRTFPQ3cwTlRndU16VXlJRE14T1M0eE9URXNORFU0TGpZd09TQXlOVEV1T1RJeExEUTFPQzQyTURrZ1F6RTROQzQyTlN3ME5UZ3VOakE1SURFM05pNDJPRFFzTkRVNExqTTFNaUF4TlRBdU1USXpMRFExTnk0eE5DQkRNVEkxTGpVMk1TdzBOVFl1TURJZ01URXlMakl5TWl3ME5URXVPVEUySURFd015NHpORFVzTkRRNExqUTJOaUJET1RFdU5UZzJMRFEwTXk0NE9UWWdPRE11TVRrMExEUXpPQzQwTXpjZ056UXVNemM1TERReU9TNDJNakVnUXpZMUxqVTJOQ3cwTWpBdU9EQTJJRFl3TGpFd05DdzBNVEl1TkRFMElEVTFMalV6TkN3ME1EQXVOalUxSUVNMU1pNHdPRFFzTXpreExqYzNPQ0EwTnk0NU9Dd3pOemd1TkRNNUlEUTJMamcyTERNMU15NDROemNnUXpRMUxqWTBPQ3d6TWpjdU16RXpJRFExTGpNNU1Td3pNVGt1TXpRMUlEUTFMak01TVN3eU5USXVNRGdnUXpRMUxqTTVNU3d4T0RRdU9ERTBJRFExTGpZME9Dd3hOell1T0RRMklEUTJMamcyTERFMU1DNHlPRElnUXpRM0xqazRMREV5TlM0M01pQTFNaTR3T0RRc01URXlMak00TVNBMU5TNDFNelFzTVRBekxqVXdOQ0JETmpBdU1UQTBMRGt4TGpjME5TQTJOUzQxTmpNc09ETXVNelV6SURjMExqTTNPU3czTkM0MU16Z2dRemd6TGpFNU5DdzJOUzQzTWpJZ09URXVOVGcyTERZd0xqSTJNeUF4TURNdU16UTFMRFUxTGpZNU15QkRNVEV5TGpJeU1pdzFNaTR5TkRNZ01USTFMalUyTVN3ME9DNHhNemtnTVRVd0xqRXlNeXcwTnk0d01Ua2dRekUzTmk0Mk9EY3NORFV1T0RBM0lERTROQzQyTlRVc05EVXVOVFVnTWpVeExqa3lNU3cwTlM0MU5TQmFJaUJwWkQwaVJtbHNiQzB4SWlCbWFXeHNQU0lqUmtaR1JrWkdJaUJ0WVhOclBTSjFjbXdvSTIxaGMyc3RNaWtpUGp3dmNHRjBhRDRnSUNBZ0lDQWdJRHd2Wno0Z0lDQWdJQ0FnSUR4d1lYUm9JR1E5SWsweU5URXVPVEl4TERNek5pNHdOVE1nUXpJd05TNDFORE1zTXpNMkxqQTFNeUF4TmpjdU9UUTNMREk1T0M0ME5UY2dNVFkzTGprME55d3lOVEl1TURnZ1F6RTJOeTQ1TkRjc01qQTFMamN3TWlBeU1EVXVOVFF6TERFMk9DNHhNRFlnTWpVeExqa3lNU3d4TmpndU1UQTJJRU15T1RndU1qazRMREUyT0M0eE1EWWdNek0xTGpnNU5Dd3lNRFV1TnpBeUlETXpOUzQ0T1RRc01qVXlMakE0SUVNek16VXVPRGswTERJNU9DNDBOVGNnTWprNExqSTVPQ3d6TXpZdU1EVXpJREkxTVM0NU1qRXNNek0yTGpBMU15QmFJRTB5TlRFdU9USXhMREV5TWk0M01UVWdRekU0TUM0ME56UXNNVEl5TGpjeE5TQXhNakl1TlRVMkxERTRNQzQyTXpNZ01USXlMalUxTml3eU5USXVNRGdnUXpFeU1pNDFOVFlzTXpJekxqVXlOaUF4T0RBdU5EYzBMRE00TVM0ME5EUWdNalV4TGpreU1Td3pPREV1TkRRMElFTXpNak11TXpZM0xETTRNUzQwTkRRZ016Z3hMakk0TlN3ek1qTXVOVEkySURNNE1TNHlPRFVzTWpVeUxqQTRJRU16T0RFdU1qZzFMREU0TUM0Mk16TWdNekl6TGpNMk55d3hNakl1TnpFMUlESTFNUzQ1TWpFc01USXlMamN4TlNCYUlpQnBaRDBpUm1sc2JDMDBJaUJtYVd4c1BTSWpSa1pHUmtaR0lqNDhMM0JoZEdnK0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk5ERTJMall5Tnl3eE1UY3VOakEwSUVNME1UWXVOakkzTERFek5DNHpJRFF3TXk0d09USXNNVFEzTGpnek5DQXpPRFl1TXprMkxERTBOeTQ0TXpRZ1F6TTJPUzQzTURFc01UUTNMamd6TkNBek5UWXVNVFkyTERFek5DNHpJRE0xTmk0eE5qWXNNVEUzTGpZd05DQkRNelUyTGpFMk5pd3hNREF1T1RBNElETTJPUzQzTURFc09EY3VNemN6SURNNE5pNHpPVFlzT0RjdU16Y3pJRU0wTURNdU1Ea3lMRGczTGpNM015QTBNVFl1TmpJM0xERXdNQzQ1TURnZ05ERTJMall5Tnl3eE1UY3VOakEwSWlCcFpEMGlSbWxzYkMwMUlpQm1hV3hzUFNJalJrWkdSa1pHSWo0OEwzQmhkR2crSUNBZ0lEd3ZaejQ4TDNOMlp6ND0pO1xuXHRcdH1cblxuXHRcdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cdFx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0Y29sb3I6IGhzbCgzMDIsIDEwMCUsIDk0JSk7XG5cblx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJ0d2l0dGVyLmNvbVwiXSAuY2suY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHQvKiBVc2UgZ3JhZGllbnQgdG8gY29udHJhc3Qgd2l0aCBmb2N1c2VkIHdpZGdldCAoY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkIzIyKS4gKi9cblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoIHRvIHJpZ2h0LCBoc2woMjAxLCA4NSUsIDcwJSksIGhzbCgyMDEsIDg1JSwgMzUlKSApO1xuXG5cdFx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlkWFJtTFRnaVB6NDhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWxkb2FYUmxJaUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0Ykc1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklpQjRQU0l3Y0hnaUlIazlJakJ3ZUNJZ2RtbGxkMEp2ZUQwaU1DQXdJRFF3TUNBME1EQWlJSE4wZVd4bFBTSmxibUZpYkdVdFltRmphMmR5YjNWdVpEcHVaWGNnTUNBd0lEUXdNQ0EwTURBN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajQ4YzNSNWJHVWdkSGx3WlQwaWRHVjRkQzlqYzNNaVBpNXpkREI3Wm1sc2JEb2pSa1pHUmtaR08zMDhMM04wZVd4bFBqeHdZWFJvSUdOc1lYTnpQU0p6ZERBaUlHUTlJazAwTURBc01qQXdZekFzTVRFd0xqVXRPRGt1TlN3eU1EQXRNakF3TERJd01GTXdMRE14TUM0MUxEQXNNakF3VXpnNUxqVXNNQ3d5TURBc01GTTBNREFzT0RrdU5TdzBNREFzTWpBd2VpQk5NVFl6TGpRc016QTFMalZqT0RndU55d3dMREV6Tnk0eUxUY3pMalVzTVRNM0xqSXRNVE0zTGpKak1DMHlMakVzTUMwMExqSXRNQzR4TFRZdU1tTTVMalF0Tmk0NExERTNMall0TVRVdU15d3lOQzR4TFRJMVl5MDRMallzTXk0NExURTNMamtzTmk0MExUSTNMamNzTnk0Mll6RXdMVFlzTVRjdU5pMHhOUzQwTERJeExqSXRNall1TjJNdE9TNHpMRFV1TlMweE9TNDJMRGt1TlMwek1DNDJMREV4TGpkakxUZ3VPQzA1TGpRdE1qRXVNeTB4TlM0eUxUTTFMakl0TVRVdU1tTXRNall1Tml3d0xUUTRMaklzTWpFdU5pMDBPQzR5TERRNExqSmpNQ3d6TGpnc01DNDBMRGN1TlN3eExqTXNNVEZqTFRRd0xqRXRNaTAzTlM0MkxUSXhMakl0T1RrdU5DMDFNQzQwWXkwMExqRXNOeTR4TFRZdU5Td3hOUzQwTFRZdU5Td3lOQzR5WXpBc01UWXVOeXc0TGpVc016RXVOU3d5TVM0MUxEUXdMakZqTFRjdU9TMHdMakl0TVRVdU15MHlMalF0TWpFdU9DMDJZekFzTUM0eUxEQXNNQzQwTERBc01DNDJZekFzTWpNdU5Dd3hOaTQyTERReUxqZ3NNemd1Tnl3ME55NHpZeTAwTERFdU1TMDRMak1zTVM0M0xURXlMamNzTVM0M1l5MHpMakVzTUMwMkxqRXRNQzR6TFRrdU1TMHdMamxqTmk0eExERTVMaklzTWpNdU9Td3pNeTR4TERRMUxETXpMalZqTFRFMkxqVXNNVEl1T1Mwek55NHpMREl3TGpZdE5Ua3VPU3d5TUM0Mll5MHpMamtzTUMwM0xqY3RNQzR5TFRFeExqVXRNQzQzUXpFeE1DNDRMREk1Tnk0MUxERXpOaTR5TERNd05TNDFMREUyTXk0MExETXdOUzQxSWk4K1BDOXpkbWMrKTtcblx0XHR9XG5cblx0XHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRjb2xvcjogaHNsKDIwMSwgMTAwJSwgODYlKTtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLW1lbnRpb24tYmFja2dyb3VuZDogaHNsYSgzNDEsIDEwMCUsIDMwJSwgMC4xKTtcblx0LS1jay1jb2xvci1tZW50aW9uLXRleHQ6IGhzbCgzNDEsIDEwMCUsIDMwJSk7XG59XG5cbi5jay1jb250ZW50IC5tZW50aW9uIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbWVudGlvbi1iYWNrZ3JvdW5kKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLW1lbnRpb24tdGV4dCk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1iYWNrZ3JvdW5kOiBoc2xhKDMxLCAxMDAlLCA2NSUsIC4yKTtcblx0LS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWhvdmVyLWJhY2tncm91bmQ6IGhzbGEoMzEsIDEwMCUsIDY1JSwgLjM1KTtcblx0LS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJyYWNrZXRzOiBoc2xhKDMxLCAxMDAlLCA0MCUsIC40KTtcblx0LS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctc2VsZWN0ZWQtZXhjZXB0aW9uLWJhY2tncm91bmQ6IGhzbGEoMzEsIDEwMCUsIDY1JSwgLjUpO1xuXHQtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYnJhY2tldHM6IGhzbGEoMzEsIDEwMCUsIDQwJSwgLjYpO1xufVxuXG4uY2stZWRpdG9yX19lZGl0YWJsZSAucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbiB7XG5cdHRyYW5zaXRpb246IC4ycyBlYXNlLWluLW91dCBiYWNrZ3JvdW5kO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZDtcblx0Ym9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG5cdFx0dG8gcmlnaHQsXG5cdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0cykgMCUsXG5cdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0cykgNXB4LFxuXHRcdGhzbGEoMCwgMCUsIDAlLCAwKSA2cHgsXG5cdFx0aHNsYSgwLCAwJSwgMCUsIDApIGNhbGMoMTAwJSAtIDZweCksXG5cdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbi1icmFja2V0cykgY2FsYygxMDAlIC0gNXB4KSxcblx0XHR2YXIoLS1jay1jb2xvci1yZXN0cmljdGVkLWVkaXRpbmctZXhjZXB0aW9uLWJyYWNrZXRzKSAxMDAlXG5cdCkgMTtcblxuXHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblxuXHQmLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb25fc2VsZWN0ZWQge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYmFja2dyb3VuZCk7XG5cdFx0Ym9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG5cdFx0XHR0byByaWdodCxcblx0XHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYnJhY2tldHMpIDAlLFxuXHRcdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1icmFja2V0cykgNXB4LFxuXHRcdFx0dmFyKC0tY2stY29sb3ItcmVzdHJpY3RlZC1lZGl0aW5nLXNlbGVjdGVkLWV4Y2VwdGlvbi1icmFja2V0cykgY2FsYygxMDAlIC0gNXB4KSxcblx0XHRcdHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1zZWxlY3RlZC1leGNlcHRpb24tYnJhY2tldHMpIDEwMCVcblx0XHQpIDE7XG5cdH1cblxuXHQmLnJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb25fY29sbGFwc2VkIHtcblx0XHQvKiBFbXB0eSBleGNlcHRpb24gc2hvdWxkIGhhdmUgdGhlIHNhbWUgd2lkdGggYXMgZXhjZXB0aW9uIHdpdGggYXQgbGVhc3QgMSBjaGFyICovXG5cdFx0cGFkZGluZy1sZWZ0OiAxY2g7XG5cdH1cbn1cblxuLmNrLXJlc3RyaWN0ZWQtZWRpdGluZ19tb2RlX3Jlc3RyaWN0ZWQge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cblx0LyogV2UgYWxzbyBoYXZlIHRvIG92ZXJyaWRlIGFsbCBlbGVtZW50cyBpbnNpZGUgdGhlIHJlc3RyaWN0ZWQgZWRpdGFibGUgdG8gcHJldmVudCBjdXJzb3Igc3dpdGNoaW5nIGJldHdlZW4gZGVmYXVsdCBhbmQgdGV4dFxuXHRkdXJpbmcgdGhlIHBvaW50ZXIgbW92ZW1lbnQuICovXG5cdCYgKiB7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHR9XG5cblx0JiAucmVzdHJpY3RlZC1lZGl0aW5nLWV4Y2VwdGlvbiB7XG5cdFx0Y3Vyc29yOiB0ZXh0O1xuXG5cdFx0JiAqIHtcblx0XHRcdGN1cnNvcjogdGV4dDtcblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXJlc3RyaWN0ZWQtZWRpdGluZy1leGNlcHRpb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcbkBpbXBvcnQgXCIuLi9taXhpbnMvX3JvdW5kZWQuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemU6IDI0cHg7XG59XG5cbi5jay5jay1jaGFyYWN0ZXItZ3JpZCB7XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblxuXHQmIC5jay1jaGFyYWN0ZXItZ3JpZF9fdGlsZXMge1xuXHRcdGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSksIDFmcikpO1xuXHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0Z3JpZC1nYXA6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHR9XG5cblx0JiAuY2stY2hhcmFjdGVyLWdyaWRfX3RpbGUge1xuXHRcdHdpZHRoOiB2YXIoLS1jay1jaGFyYWN0ZXItZ3JpZC10aWxlLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKTtcblx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWNoYXJhY3Rlci1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0bWluLWhlaWdodDogdmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKTtcblx0XHRmb250LXNpemU6IDEuNWVtO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0dHJhbnNpdGlvbjogLjJzIGVhc2UgYm94LXNoYWRvdztcblx0XHRib3JkZXI6IDA7XG5cblx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cblx0XHQmOmZvY3VzOm5vdCggLmNrLWRpc2FibGVkICksXG5cdFx0Jjpob3Zlcjpub3QoIC5jay1kaXNhYmxlZCApIHtcblx0XHRcdC8qIERpc2FibGUgdGhlIGRlZmF1bHQgLmNrLWJ1dHRvbidzIGJvcmRlciByaW5nLiAqL1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdH1cblxuXHRcdC8qIE1ha2Ugc3VyZSB0aGUgZ2x5cGggaXMgcmVuZGVyZWQgaW4gdGhlIGNlbnRlciBvZiB0aGUgYnV0dG9uICovXG5cdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stY2hhcmFjdGVyLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbi5jay5jay1jaGFyYWN0ZXItaW5mbyB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdCYgPiAqIHtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXNtYWxsKTtcblx0fVxuXG5cdCYgLmNrLWNoYXJhY3Rlci1pbmZvX19uYW1lIHtcblx0XHRtYXgtd2lkdGg6IDI4MHB4O1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cblxuXHQmIC5jay1jaGFyYWN0ZXItaW5mb19fY29kZSB7XG5cdFx0b3BhY2l0eTogLjY7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbi5jay5jay1zcGVjaWFsLWNoYXJhY3RlcnMtbmF2aWdhdGlvbiB7XG5cblx0JiA+IC5jay1sYWJlbCB7XG5cdFx0bWF4LXdpZHRoOiAxNjBweDtcblx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHR9XG5cblx0JiA+IC5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsIHtcblx0XHQvKiBUaGVyZSBjb3VsZCBiZSBkb3plbnMgb2YgY2F0ZWdvcmllcyBhdmFpbGFibGUuIFVzZSBzY3JvbGwgdG8gcHJldmVudCBhIDEwZTZweCBkcm9wZG93bi4gKi9cblx0XHRtYXgtaGVpZ2h0OiAyNTBweDtcblx0XHRvdmVyZmxvdy15OiBhdXRvO1xuXHRcdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0fVxuXG5cdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0bWF4LXdpZHRoOiAxOTBweDtcblxuXHRcdCYgPiAuY2stZm9ybV9faGVhZGVyX19sYWJlbCB7XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZHJvcGRvd24uY2stc3R5bGUtZHJvcGRvd24uY2stc3R5bGUtZHJvcGRvd25fbXVsdGlwbGUtYWN0aXZlID4gLmNrLWJ1dHRvbiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi13aWR0aDogMTIwcHg7XG5cdC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhlaWdodDogODBweDtcblx0LS1jay1zdHlsZS1wYW5lbC1idXR0b24tbGFiZWwtYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5NC4xJSk7XG5cdC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhvdmVyLWxhYmVsLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTIuMSUpO1xuXHQtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgNzAlKTtcbn1cblxuLmNrLmNrLXN0eWxlLXBhbmVsIC5jay1zdHlsZS1ncmlkIHtcblx0cm93LWdhcDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdGNvbHVtbi1nYXA6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdCYgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbiB7XG5cdFx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0XHRwYWRkaW5nOiAwO1xuXHRcdHdpZHRoOiB2YXIoLS1jay1zdHlsZS1wYW5lbC1idXR0b24td2lkdGgpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhlaWdodCk7XG5cblx0XHQvKiBMZXQgZGVmYXVsdCAuY2stYnV0dG9uIDpmb2N1cyBzdHlsZXMgYXBwbHkgKi9cblx0XHQmOm5vdCg6Zm9jdXMpIHtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHR9XG5cblx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGhlaWdodDogMjJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyMnB4O1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdGZsZXgtc2hyaW5rOiAwO1xuXHRcdH1cblxuXHRcdCYgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRvcGFjaXR5OiAuOTtcblxuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0fVxuXG5cdFx0Ji5jay1kaXNhYmxlZCB7XG5cdFx0XHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWRpc2FibGVkLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cblx0XHRcdC8qIExldCBkZWZhdWx0IC5jay1idXR0b24gOmZvY3VzIHN0eWxlcyBhcHBseSAqL1xuXHRcdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWxhYmVsLWJhY2tncm91bmQpO1xuXHRcdFx0fVxuXG5cdFx0XHQmIC5jay1zdHlsZS1ncmlkX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0XHRvcGFjaXR5OiAuNDtcblxuXHRcdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cdFx0XHRcdGZpbHRlcjogc2F0dXJhdGUoLjMpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuY2stb24ge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWFjdGl2ZSk7XG5cblx0XHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRib3gtc2hhZG93OiAwIC0xcHggMCB2YXIoLS1jay1jb2xvci1iYXNlLWFjdGl2ZSk7XG5cdFx0XHRcdHotaW5kZXg6IDE7IC8qIFN0YXkgb24gdG9wIG9mIHRoZSBwcmV2aWV3IHdpdGggdGhlIHNoYWRvdy4gKi9cblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUtZm9jdXMpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6bm90KC5jay1vbikge1xuXHRcdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1sYWJlbC1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblxuXHRcdFx0Jjpob3ZlciAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLXN0eWxlLXBhbmVsLWJ1dHRvbi1ob3Zlci1sYWJlbC1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpOm5vdCguY2stb24pIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stc3R5bGUtcGFuZWwtYnV0dG9uLWhvdmVyLWJvcmRlci1jb2xvcik7XG5cblx0XHRcdCYgLmNrLXN0eWxlLWdyaWRfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLXBhbmVsX19zdHlsZS1ncm91cCB7XG5cdCYgPiAuY2stbGFiZWwge1xuXHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMDtcblx0fVxuXG5cdCY6Zmlyc3QtY2hpbGQge1xuXHRcdCYgPiAuY2stbGFiZWwge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1zdHlsZS1wYW5lbC1tYXgtaGVpZ2h0OiA0NzBweDtcbn1cblxuLmNrLmNrLXN0eWxlLXBhbmVsIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdG92ZXJmbG93LXk6IGF1dG87XG5cdG1heC1oZWlnaHQ6IHZhcigtLWNrLXN0eWxlLXBhbmVsLW1heC1oZWlnaHQpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5AaW1wb3J0IFwiLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuXG4uY2suY2staW5wdXQtY29sb3Ige1xuXHQmID4gLmNrLmNrLWlucHV0LXRleHQge1xuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0fVxuXG5cdFx0LyogTWFrZSBzdXJlIHRoZSBmb2N1c2VkIGlucHV0IGlzIGFsd2F5cyBvbiB0b3Agb2YgdGhlIGRyb3Bkb3duIGJ1dHRvbiBzbyBpdHNcblx0XHQgICBvdXRsaW5lIGFuZCBib3JkZXIgYXJlIG5ldmVyIGNyb3BwZWQgKGFsc28gd2hlbiB0aGUgaW5wdXQgaXMgcmVhZC1vbmx5KS4gKi9cblx0XHQmOmZvY3VzIHtcblx0XHRcdHotaW5kZXg6IDA7XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay5jay1kcm9wZG93biB7XG5cdFx0JiA+IC5jay5jay1idXR0b24uY2staW5wdXQtY29sb3JfX2J1dHRvbiB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cblx0XHRcdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdFx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblxuXHRcdFx0XHQmOm5vdCg6Zm9jdXMpIHtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmLmNrLWRpc2FibGVkIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG5cblx0XHRcdCYgPiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlldyB7XG5cdFx0XHRcdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnM7XG5cblx0XHRcdFx0d2lkdGg6IDIwcHg7XG5cdFx0XHRcdGhlaWdodDogMjBweDtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItaW5wdXQtYm9yZGVyKTtcblxuXHRcdFx0XHQmID4gLmNrLmNrLWlucHV0LWNvbG9yX19idXR0b25fX3ByZXZpZXdfX25vLWNvbG9yLWluZGljYXRvciB7XG5cdFx0XHRcdFx0dG9wOiAtMzAlO1xuXHRcdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0XHRoZWlnaHQ6IDE1MCU7XG5cdFx0XHRcdFx0d2lkdGg6IDglO1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IGhzbCgwLCAxMDAlLCA1MCUpO1xuXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDJweDtcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cdFx0XHRcdFx0dHJhbnNmb3JtLW9yaWdpbjogNTAlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JiAuY2suY2staW5wdXQtY29sb3JfX3JlbW92ZS1jb2xvciB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cGFkZGluZzogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSAvIDIpIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblxuXHRcdCY6bm90KDpmb2N1cykge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWlucHV0LWJvcmRlcik7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBsdHIge1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHR9XG5cblx0XHQmIC5jay5jay1pY29uIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZm9ybSB7XG5cdHBhZGRpbmc6IDAgMCB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblxuXHQmOmZvY3VzIHtcblx0XHQvKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzQ3NzMgKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG5cblx0JiAuY2suY2staW5wdXQtdGV4dCB7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHRcdHdpZHRoOiAwO1xuXHR9XG5cblx0JiAuY2suY2stZHJvcGRvd24ge1xuXHRcdG1pbi13aWR0aDogMTAwJTtcblxuXHRcdCYgLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblxuXHRcdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay5jay1mb3JtX19yb3cge1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSAwO1xuXG5cdC8qIElnbm9yZSBsYWJlbHMgdGhhdCB3b3JrIGFzIGZpZWxkc2V0IGxlZ2VuZHMgKi9cblx0JiA+ICo6bm90KC5jay1sYWJlbCkge1xuXHRcdCYgKyAqIHtcblx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JiA+IC5jay1sYWJlbCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWluLXdpZHRoOiAxMDAlO1xuXHR9XG5cblx0Ji5jay10YWJsZS1mb3JtX19hY3Rpb24tcm93IHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblxuXHRcdCYgLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLXBhZGRpbmc6IDEwcHg7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1oZWlnaHQ6IDExcHg7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC13aWR0aDogMTJweDtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LW1hcmdpbjogMXB4O1xufVxuXG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fZ3JpZCB7XG5cdC8qIFRoZSB3aWR0aCBvZiBhIGNvbnRhaW5lciBzaG91bGQgbWF0Y2ggMTAgaXRlbXMgaW4gYSByb3cgc28gdGhlcmUgd2lsbCBiZSBhIDEweDEwIGdyaWQuICovXG5cdHdpZHRoOiBjYWxjKHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtd2lkdGgpICogMTAgKyB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LW1hcmdpbikgKiAyMCArIHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1wYWRkaW5nKSAqIDIpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tcGFkZGluZykgdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLXBhZGRpbmcpIDA7XG59XG5cbi5jayAuY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duX19sYWJlbCxcbi5ja1tkaXI9cnRsXSAuY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duX19sYWJlbCB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tZ3JpZC1ib3gge1xuXHRtaW4td2lkdGg6IHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtd2lkdGgpO1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LWhlaWdodCk7XG5cdG1hcmdpbjogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1tYXJnaW4pO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdGJvcmRlci1yYWRpdXM6IDFweDtcblx0b3V0bGluZTogbm9uZTtcblx0dHJhbnNpdGlvbjogbm9uZTtcblxuXHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblxuXHQmOmZvY3VzIHtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHR9XG5cblx0Ji5jay1vbiB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWZvY3VzLW91dGVyLXNoYWRvdyk7XG5cdH1cbn1cblxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtIHtcblx0d2lkdGg6IDMyMHB4O1xuXG5cdCYgLmNrLWZvcm1fX3JvdyB7XG5cdFx0Ji5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9fcGFkZGluZy1yb3cge1xuXHRcdFx0YWxpZ24tc2VsZjogZmxleC1lbmQ7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0d2lkdGg6IDI1JTtcblx0XHR9XG5cblx0XHQmLmNrLXRhYmxlLWNlbGwtcHJvcGVydGllcy1mb3JtX19hbGlnbm1lbnQtcm93IHtcblx0XHRcdCYgLmNrLmNrLXRvb2xiYXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXG5cdFx0XHRcdC8qIENvbXBlbnNhdGUgZm9yIG1pc3NpbmcgaW5wdXQgbGFiZWwgdGhhdCB3b3VsZCBwdXNoIHRoZSBtYXJnaW4gKHRvb2xiYXIgaGFzIG5vIGlucHV0cykuICovXG5cdFx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXNlbGVjdG9yLWZvY3VzZWQtY2VsbC1iYWNrZ3JvdW5kOiBoc2xhKDIxMiwgOTAlLCA4MCUsIC4zKTtcbn1cblxuLmNrLXdpZGdldC50YWJsZSB7XG5cdCYgdGQsXG5cdCYgdGgge1xuXHRcdC8qKlxuXHRcdCAqIFdoaWxlIHNldHRpbmcgb3V0bGluZSBpcyBmaW5lLCB0aGUgYm9yZGVyIHNob3VsZCBub3QgYmUgbW9kaWZpZWQgaGVyZVxuXHRcdCAqIGJlY2F1c2UgaXQgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0IHRhYmxlIGNlbGwgYm9yZGVyIGNvbG9yIHdoaWNoIGlzIG5vdCBleHBlY3RlZC5cblx0XHQgKiBTbyBkbyBub3QgdXNlIGBAbWl4aW4gY2stZm9jdXMtcmluZztgIGhlcmUsIG9yIGFueSBvdGhlciBib3JkZXIgc3R5bGVzLlxuXHRcdCAqIFNlZSBtb3JlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNjk3OVxuXHRcdCAqL1xuXHRcdCYuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCxcblx0XHQmLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlOmZvY3VzIHtcblx0XHRcdC8qIEEgdmVyeSBzbGlnaHQgYmFja2dyb3VuZCB0byBoaWdobGlnaHQgdGhlIGZvY3VzZWQgY2VsbCAqL1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc2VsZWN0b3ItZm9jdXNlZC1jZWxsLWJhY2tncm91bmQpO1xuXHRcdFx0b3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0XHRvdXRsaW5lLW9mZnNldDogLTFweDsgLyogcHJvZ3Jlc3NpdmUgZW5oYW5jZW1lbnQgLSBubyBJRSBzdXBwb3J0ICovXG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplOiA2cHg7XG5cdC0tY2stdGFibGUtcHJvcGVydGllcy1taW4tZXJyb3Itd2lkdGg6IDE1MHB4O1xufVxuXG4uY2suY2stdGFibGUtZm9ybSB7XG5cdCYgLmNrLWZvcm1fX3JvdyB7XG5cdFx0Ji5jay10YWJsZS1mb3JtX19ib3JkZXItcm93IHtcblx0XHRcdCYgLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRcdCYgPiAuY2stbGFiZWwge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmIC5jay10YWJsZS1mb3JtX19ib3JkZXItc3R5bGUsXG5cdFx0XHQmIC5jay10YWJsZS1mb3JtX19ib3JkZXItd2lkdGgge1xuXHRcdFx0XHR3aWR0aDogODBweDtcblx0XHRcdFx0bWluLXdpZHRoOiA4MHB4O1xuXHRcdFx0XHRtYXgtd2lkdGg6IDgwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvdyB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHQmIC5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvd19fd2lkdGgsXG5cdFx0XHQmIC5jay10YWJsZS1mb3JtX19kaW1lbnNpb25zLXJvd19faGVpZ2h0IHtcblx0XHRcdFx0bWFyZ2luOiAwXG5cdFx0XHR9XG5cblx0XHRcdCYgLmNrLXRhYmxlLWZvcm1fX2RpbWVuc2lvbi1vcGVyYXRvciB7XG5cdFx0XHRcdGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdGhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXHRcdFx0XHRtYXJnaW46IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRwYWRkaW5nLXRvcDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHQmIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0XHRAbWl4aW4gY2stcm91bmRlZC1jb3JuZXJzO1xuXG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0bWluLXdpZHRoOiB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLW1pbi1lcnJvci13aWR0aCk7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdC8qIFRoZSBhcnJvdyBwb2ludGluZyB0b3dhcmRzIHRoZSBmaWVsZC4gKi9cblx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKSB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAwIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpO1xuXHRcdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0fVxuXG5cdFx0XHRhbmltYXRpb246IGNrLXRhYmxlLWZvcm0tbGFiZWxlZC12aWV3LXN0YXR1cy1hcHBlYXIgLjE1cyBlYXNlIGJvdGg7XG5cblx0XHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKiBIaWRlIHRoZSBlcnJvciBiYWxsb29uIHdoZW4gdGhlIGZpZWxkIGlzIGJsdXJyZWQuIE1ha2VzIHRoZSBleHBlcmllbmNlIG11Y2ggbW9yZSBjbGVhci4gKi9cblx0XHQmIC5jay1pbnB1dC5jay1lcnJvcjpub3QoOmZvY3VzKSArIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXRhYmxlLWZvcm0tbGFiZWxlZC12aWV3LXN0YXR1cy1hcHBlYXIge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdDEwMCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay10YWJsZS1wcm9wZXJ0aWVzLWZvcm0ge1xuXHR3aWR0aDogMzIwcHg7XG5cblx0JiAuY2stZm9ybV9fcm93IHtcblx0XHQmLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyB7XG5cdFx0XHRhbGlnbi1zZWxmOiBmbGV4LWVuZDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdCYgLmNrLmNrLXRvb2xiYXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXG5cdFx0XHRcdC8qIENvbXBlbnNhdGUgZm9yIG1pc3NpbmcgaW5wdXQgbGFiZWwgdGhhdCB3b3VsZCBwdXNoIHRoZSBtYXJnaW4gKHRvb2xiYXIgaGFzIG5vIGlucHV0cykuICovXG5cdFx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHRcdCYgLmNrLXRvb2xiYXJfX2l0ZW1zID4gKiB7XG5cdFx0XHRcdFx0d2lkdGg6IDQwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay10YWJsZS1zZWxlY3RlZC1jZWxsLWJhY2tncm91bmQ6IGhzbGEoMjA4LCA5MCUsIDgwJSwgLjMpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUge1xuXHQmIHRkLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQsXG5cdCYgdGguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdGNhcmV0LWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRvdXRsaW5lOiB1bnNldDtcblx0XHRib3gtc2hhZG93OiB1bnNldDtcblxuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY0NDYgKi9cblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay10YWJsZS1zZWxlY3RlZC1jZWxsLWJhY2tncm91bmQpO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0Ym90dG9tOiAwO1xuXHRcdH1cblxuXHRcdCYgOjpzZWxlY3Rpb24sXG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHR9XG5cblx0XHQvKlxuXHRcdCAqIFRvIHJlZHVjZSB0aGUgYW1vdW50IG9mIG5vaXNlLCBhbGwgd2lkZ2V0cyBpbiB0aGUgdGFibGUgc2VsZWN0aW9uIGhhdmUgbm8gb3V0bGluZSBhbmQgbm8gc2VsZWN0aW9uIGhhbmRsZS5cblx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTQ5MS5cblx0XHQgKi9cblx0XHQmIC5jay13aWRnZXQge1xuXHRcdFx0b3V0bGluZTogdW5zZXQ7XG5cblx0XHRcdCYgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi9taXhpbnMvX2ZvY3VzLmNzc1wiO1xuQGltcG9ydCBcIi4uL21peGlucy9fc2hhZG93LmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19tZWRpYWNvbG9ycy5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzczogM3B4O1xuXHQtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZTogMTZweDtcblx0LS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb246IDIwMG1zO1xuXHQtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZTogZWFzZTtcblxuXHQtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcjogaHNsKDAsIDAlLCA4NyUpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC1ob3Zlci1ib3JkZXI6IGhzbCg0MywgMTAwJSwgNjIlKTtcblx0LS1jay1jb2xvci13aWRnZXQtZWRpdGFibGUtZm9jdXMtYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci13aWRnZXQtZHJhZy1oYW5kbGVyLWljb24tY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG59XG5cbi5jayAuY2std2lkZ2V0IHtcblx0b3V0bGluZS13aWR0aDogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKTtcblx0b3V0bGluZS1zdHlsZTogc29saWQ7XG5cdG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuXHR0cmFuc2l0aW9uOiBvdXRsaW5lLWNvbG9yIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblxuXHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblxuXHQmLmNrLXdpZGdldF9zZWxlY3RlZCxcblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdG91dGxpbmU6IHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgc29saWQgdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0fVxuXG5cdCY6aG92ZXIge1xuXHRcdG91dGxpbmUtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ob3Zlci1ib3JkZXIpO1xuXHR9XG59XG5cbi5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXHQvKiBUaGUgOmZvY3VzIHN0eWxlIGlzIGFwcGxpZWQgYmVmb3JlIC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZV9mb2N1c2VkIGNsYXNzIGlzIHJlbmRlcmVkIGluIHRoZSB2aWV3LlxuXHRUaGVzZSBzdHlsZXMgc2hvdyBhIGRpZmZlcmVudCBib3JkZXIgZm9yIGEgYmxpbmsgb2YgYW4gZXllLCBzbyBgOmZvY3VzYCBuZWVkIHRvIGhhdmUgc2FtZSBzdHlsZXMgYXBwbGllZC4gKi9cblx0Ji5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZV9mb2N1c2VkLFxuXHQmOmZvY3VzIHtcblx0XHRAbWl4aW4gY2stYm94LXNoYWRvdyB2YXIoLS1jay1pbm5lci1zaGFkb3cpO1xuXHRcdEBtaXhpbiBjay1tZWRpYS1kZWZhdWx0LWNvbG9ycyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtZWRpdGFibGUtZm9jdXMtYmFja2dyb3VuZCk7XG5cdFx0fVxuXG5cdFx0LyoqXG5cdFx0ICogRm9jdXMgYm9yZGVyIHNob3VsZCBub3QgYmUgYXBwbGllZCB0byB0YWJsZSBjZWxscyBiZWNhdXNlIGl0IG92ZXJyaWRlcyB0aGUgZGVmYXVsdCB0YWJsZSBjZWxsIGJvcmRlciBjb2xvci5cblx0XHQgKiBJbiBvdGhlciB3b3JkcyAtIGluIHNvbWUgc2NlbmFyaW9zLCB0aGUgcGFydCBvZiB0aGUgdGFibGUgY2VsbCBib3JkZXIgaGFzIGZvY3VzIGNvbG9yIHN0eWxlLCB3aGljaCBpcyBub3QgZXhwZWN0ZWQgYmVoYXZpb3Jcblx0XHQgKiBiZWNhdXNlIGl0IHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgdGFibGUgY2VsbCBib3JkZXIgY29sb3IuXG5cdFx0ICovXG5cdFx0Jjpub3QodGQsIHRoKSB7XG5cdFx0XHRAbWl4aW4gY2stZm9jdXMtcmluZztcblx0XHR9XG5cdH1cbn1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSB7XG5cdCYgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0cGFkZGluZzogNHB4O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cblx0XHQvKiBCYWNrZ3JvdW5kIGFuZCBvcGFjaXR5IHdpbGwgYmUgYW5pbWF0ZWQgYXMgdGhlIGhhbmRsZXIgc2hvd3MgdXAgb3IgdGhlIHdpZGdldCBnZXRzIHNlbGVjdGVkLiAqL1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdG9wYWNpdHk6IDA7XG5cblx0XHQvKiBUcmFuc2l0aW9uOlxuXHRcdCAgICogYmFja2dyb3VuZC1jb2xvciBmb3IgdGhlIC5jay13aWRnZXRfc2VsZWN0ZWQgc3RhdGUgY2hhbmdlLFxuXHRcdCAgICogdmlzaWJpbGl0eSBmb3IgaGlkaW5nIHRoZSBoYW5kbGVyLFxuXHRcdCAgICogb3BhY2l0eSBmb3IgdGhlIHByb3BlciBsb29rIG9mIHRoZSBpY29uIHdoZW4gdGhlIGhhbmRsZXIgZGlzYXBwZWFycy4gKi9cblx0XHR0cmFuc2l0aW9uOlxuXHRcdFx0YmFja2dyb3VuZC1jb2xvciB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSksXG5cdFx0XHR2aXNpYmlsaXR5IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKSxcblx0XHRcdG9wYWNpdHkgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xuXG5cdFx0LyogTWFrZSBvbmx5IHRvcCBjb3JuZXJzIHJvdW5kLiAqL1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIDAgMDtcblxuXHRcdC8qIFBsYWNlIHRoZSBkcmFnIGhhbmRsZXIgb3V0c2lkZSB0aGUgd2lkZ2V0IHdyYXBwZXIuICovXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcblx0XHRsZWZ0OiBjYWxjKDBweCAtIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpO1xuXHRcdHRvcDogMDtcblxuXHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdH1cblxuXHRcdCYgLmNrLWljb24ge1xuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBkaW1lbnNpb25zIG9mIHRoZSBpY29uIGFyZSBpbmRlcGVuZGVudCBvZiB0aGUgZm9uLXNpemUgb2YgdGhlIGNvbnRlbnQuICovXG5cdFx0XHR3aWR0aDogdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItaWNvbi1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItaWNvbi1zaXplKTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtZHJhZy1oYW5kbGVyLWljb24tY29sb3IpO1xuXG5cdFx0XHQvKiBUaGUgXCJzZWxlY3RlZFwiIHBhcnQgb2YgdGhlIGljb24gaXMgaW52aXNpYmxlIGJ5IGRlZmF1bHQgKi9cblx0XHRcdCYgLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cblx0XHRcdFx0LyogTm90ZTogVGhlIGFuaW1hdGlvbiBpcyBsb25nZXIgb24gcHVycG9zZS4gU2ltcGx5IGZlZWxzIGJldHRlci4gKi9cblx0XHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xuXG5cdFx0XHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8qIEFkdmVydGlzZSB1c2luZyB0aGUgbG9vayBvZiB0aGUgaWNvbiB0aGF0IG9uY2UgY2xpY2tlZCB0aGUgaGFuZGxlciwgdGhlIHdpZGdldCB3aWxsIGJlIHNlbGVjdGVkLiAqL1xuXHRcdCY6aG92ZXIgLmNrLWljb24gLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0fVxuXG5cdC8qIFNob3cgdGhlIHNlbGVjdGlvbiBoYW5kbGVyIG9uIG1vdXNlIGhvdmVyIG92ZXIgdGhlIHdpZGdldCwgYnV0IG5vdCBmb3IgbmVzdGVkIHdpZGdldHMuICovXG5cdCY6aG92ZXIgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ob3Zlci1ib3JkZXIpO1xuXHR9XG5cblx0LyogU2hvdyB0aGUgc2VsZWN0aW9uIGhhbmRsZXIgd2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkLCBidXQgbm90IGZvciBuZXN0ZWQgd2lkZ2V0cy4gKi9cblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyIHtcblx0XHQmID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblxuXHRcdFx0LyogV2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkLCBub3RpZnkgdGhlIHVzZXIgdXNpbmcgdGhlIHByb3BlciBsb29rIG9mIHRoZSBpY29uLiAqL1xuXHRcdFx0JiAuY2staWNvbiAuY2staWNvbl9fc2VsZWN0ZWQtaW5kaWNhdG9yIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyogSW4gYSBSVEwgZW52aXJvbm1lbnQsIGFsaWduIHRoZSBzZWxlY3Rpb24gaGFuZGxlciB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgd2lkZ2V0ICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuLmNrW2Rpcj1cInJ0bFwiXSAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdGxlZnQ6IGF1dG87XG5cdHJpZ2h0OiBjYWxjKDBweCAtIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpO1xufVxuXG4vKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82NDE1ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZWFkLW9ubHkgLmNrLXdpZGdldCB7XG5cdC8qIFByZXZlbnQgdGhlIDpob3ZlciBvdXRsaW5lIGZyb20gc2hvd2luZyB1cCBiZWNhdXNlIG9mIHRoZSB1c2VkIG91dGxpbmUtY29sb3IgdHJhbnNpdGlvbi4gKi9cblx0dHJhbnNpdGlvbjogbm9uZTtcblxuXHQmOm5vdCguY2std2lkZ2V0X3NlbGVjdGVkKSB7XG5cdFx0LyogRGlzYWJsZSB2aXN1YWwgZWZmZWN0cyBvZiBob3Zlci9hY3RpdmUgd2lkZ2V0IHdoZW4gQ0tFZGl0b3IgaXMgaW4gcmVhZE9ubHkgbW9kZS5cblx0XHQgKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEyNjFcblx0XHQgKlxuXHRcdCAqIExlYXZlIHRoZSB1bml0IGJlY2F1c2UgdGhpcyBjdXN0b20gcHJvcGVydHkgaXMgdXNlZCBpbiBjYWxjKCkgYnkgb3RoZXIgZmVhdHVyZXMuXG5cdFx0ICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82Nzc1XG5cdFx0ICovXG5cdFx0LS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3M6IDBweDtcblx0fVxuXG5cdCYuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0JiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlLFxuXHRcdCYgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHRcdH1cblx0fVxufVxuXG4vKiBTdHlsZSB0aGUgd2lkZ2V0IHdoZW4gaXQncyBzZWxlY3RlZCBidXQgdGhlIGVkaXRhYmxlIGl0IGJlbG9uZ3MgdG8gbG9zdCBmb2N1cy4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQge1xuXHQmLmNrLXdpZGdldF9zZWxlY3RlZCxcblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdG91dGxpbmUtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cblx0XHQmLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0JiA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsXG5cdFx0XHQmID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZTpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlID4gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmZpcnN0LWNoaWxkLFxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgYmxvY2txdW90ZSA+IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZTpmaXJzdC1jaGlsZCB7XG5cdC8qIERvIG5vdCBjcm9wIHNlbGVjdGlvbiBoYW5kbGVyIGlmIGEgd2lkZ2V0IGlzIGEgZmlyc3QtY2hpbGQgaW4gdGhlIGJsb2NrcXVvdGUgb3IgaW4gdGhlIHJvb3QgZWRpdGFibGUuXG5cdEluIGZhY3QsIGFueXRoaW5nIHdpdGggb3ZlcmZsb3c6IGhpZGRlbi5cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1ibG9jay1xdW90ZS9pc3N1ZXMvMjhcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS13aWRnZXQvaXNzdWVzLzQ0XG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtd2lkZ2V0L2lzc3Vlcy82NiAqL1xuXHRtYXJnaW4tdG9wOiBjYWxjKDFlbSArIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSkpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXJlc2l6ZXItc2l6ZTogMTBweDtcblxuXHQvKiBTZXQgdGhlIHJlc2l6ZXIgd2l0aCBhIDUwJSBvZmZzZXQuICovXG5cdC0tY2stcmVzaXplci1vZmZzZXQ6IGNhbGMoICggdmFyKC0tY2stcmVzaXplci1zaXplKSAvIC0yICkgLSAycHgpO1xuXHQtLWNrLXJlc2l6ZXItYm9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi5jayAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0b3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXJlc2l6ZXIpO1xufVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlIHtcblx0d2lkdGg6IHZhcigtLWNrLXJlc2l6ZXItc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2stcmVzaXplci1zaXplKTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0Ym9yZGVyOiB2YXIoLS1jay1yZXNpemVyLWJvcmRlci13aWR0aCkgc29saWQgaHNsKDAsIDAlLCAxMDAlKTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stcmVzaXplci1ib3JkZXItcmFkaXVzKTtcblxuXHQmLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1sZWZ0IHtcblx0XHR0b3A6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0XHRsZWZ0OiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdH1cblxuXHQmLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1yaWdodCB7XG5cdFx0dG9wOiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0fVxuXG5cdCYuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtYm90dG9tLXJpZ2h0IHtcblx0XHRib3R0b206IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0XHRyaWdodDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHR9XG5cblx0Ji5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS1ib3R0b20tbGVmdCB7XG5cdFx0Ym90dG9tOiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdFx0bGVmdDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplOiAyMHB4O1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tYWN0aXZlOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taG92ZXI6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ob3Zlci1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tYmx1cnJlZC1lZGl0YWJsZTogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyKTtcblx0LS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXJhZGFyLXN0YXJ0LWFscGhhOiAwO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItZW5kLWFscGhhOiAuMztcblx0LS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWljb246IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG59XG5cbkBkZWZpbmUtbWl4aW4gY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi12aXNpYmxlIHtcblx0b3BhY2l0eTogMTtcblx0cG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbkBkZWZpbmUtbWl4aW4gY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1oaWRkZW4ge1xuXHRvcGFjaXR5OiAwO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNrIC5jay13aWRnZXQge1xuXHQvKlxuXHQgKiBTdHlsZXMgb2YgdGhlIHR5cGUgYXJvdW5kIGJ1dHRvbnNcblx0ICovXG5cdCYgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemUpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24pO1xuXHRcdGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuXHRcdHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpLCBiYWNrZ3JvdW5kIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKTtcblxuXHRcdEBtaXhpbiBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWhpZGRlbjtcblxuXHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdH1cblxuXHRcdCYgc3ZnIHtcblx0XHRcdHdpZHRoOiAxMHB4O1xuXHRcdFx0aGVpZ2h0OiA4cHg7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuXHRcdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIC41cyBlYXNlO1xuXHRcdFx0bWFyZ2luLXRvcDogMXB4O1xuXG5cdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHQmICoge1xuXHRcdFx0XHRzdHJva2UtZGFzaGFycmF5OiAxMDtcblx0XHRcdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG5cblx0XHRcdFx0ZmlsbDogbm9uZTtcblx0XHRcdFx0c3Ryb2tlOiB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWljb24pO1xuXHRcdFx0XHRzdHJva2Utd2lkdGg6IDEuNXB4O1xuXHRcdFx0XHRzdHJva2UtbGluZWNhcDogcm91bmQ7XG5cdFx0XHRcdHN0cm9rZS1saW5lam9pbjogcm91bmQ7XG5cdFx0XHR9XG5cblx0XHRcdCYgbGluZSB7XG5cdFx0XHRcdHN0cm9rZS1kYXNoYXJyYXk6IDc7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQvKlxuXHRcdFx0ICogRGlzcGxheSB0aGUgXCJzb25hclwiIGFyb3VuZCB0aGUgYnV0dG9uIHdoZW4gaG92ZXJlZC5cblx0XHRcdCAqL1xuXHRcdFx0YW5pbWF0aW9uOiBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNvbmFyIDFzIGVhc2UgaW5maW5pdGU7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBBbmltYXRlIGFjdGl2ZSBidXR0b24ncyBpY29uLlxuXHRcdFx0ICovXG5cdFx0XHQmIHN2ZyB7XG5cdFx0XHRcdCYgcG9seWxpbmUge1xuXHRcdFx0XHRcdGFuaW1hdGlvbjogY2std2lkZ2V0LXR5cGUtYXJvdW5kLWFycm93LWRhc2ggMnMgbGluZWFyO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JiBsaW5lIHtcblx0XHRcdFx0XHRhbmltYXRpb246IGNrLXdpZGdldC10eXBlLWFyb3VuZC1hcnJvdy10aXAtZGFzaCAycyBsaW5lYXI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXG5cdFx0XHRcdCYgc3ZnIHtcblx0XHRcdFx0XHQmIHBvbHlsaW5lIHtcblx0XHRcdFx0XHRcdGFuaW1hdGlvbjogbm9uZTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmIGxpbmUge1xuXHRcdFx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIFNob3cgdHlwZSBhcm91bmQgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgZ2V0cyBzZWxlY3RlZCBvciBiZWluZyBob3ZlcmVkLlxuXHQgKi9cblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdCY6aG92ZXIge1xuXHRcdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdFx0QG1peGluIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tdmlzaWJsZTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBidXR0b25zIHdoZW4gdGhlIHdpZGdldCBpcyBOT1Qgc2VsZWN0ZWQgKGJ1dCB0aGUgYnV0dG9ucyBhcmUgdmlzaWJsZVxuXHQgKiBhbmQgc3RpbGwgY2FuIGJlIGhvdmVyZWQpLlxuXHQgKi9cblx0Jjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCkgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taG92ZXIpO1xuXHR9XG5cblx0Lypcblx0ICogU3R5bGVzIGZvciB0aGUgYnV0dG9ucyB3aGVuOlxuXHQgKiAtIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQsXG5cdCAqIC0gb3IgdGhlIGJ1dHRvbiBpcyBiZWluZyBob3ZlcmVkIChyZWdhcmRsZXNzIG9mIHRoZSB3aWRnZXQgc3RhdGUpLlxuXHQgKi9cblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24sXG5cdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXIge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tYWN0aXZlKTtcblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdHdpZHRoOiBjYWxjKHZhcigtLWNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZSkgLSAycHgpO1xuXHRcdFx0aGVpZ2h0OiBjYWxjKHZhcigtLWNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc2l6ZSkgLSAycHgpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTAwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBoc2xhKDAsMCUsMTAwJSwwKSAwJSwgaHNsYSgwLDAlLDEwMCUsLjMpIDEwMCUpO1xuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIFwiYmVmb3JlXCIgYnV0dG9uIHdoZW4gdGhlIHdpZGdldCBoYXMgYSBzZWxlY3Rpb24gaGFuZGxlLiBCZWNhdXNlIHNvbWUgc3BhY2Vcblx0ICogaXMgY29uc3VtZWQgYnkgdGhlIGhhbmRsZSwgdGhlIGJ1dHRvbiBtdXN0IGJlIG1vdmVkIHNsaWdodGx5IHRvIHRoZSByaWdodCB0byBsZXQgaXQgYnJlYXRoZS5cblx0ICovXG5cdCYuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9iZWZvcmUge1xuXHRcdG1hcmdpbi1sZWZ0OiAyMHB4O1xuXHR9XG5cblx0Lypcblx0ICogU3R5bGVzIGZvciB0aGUgaG9yaXpvbnRhbCBcImZha2UgY2FyZXRcIiB3aGljaCBpcyBkaXNwbGF5ZWQgd2hlbiB0aGUgdXNlciBuYXZpZ2F0ZXMgdXNpbmcgdGhlIGtleWJvYXJkLlxuXHQgKi9cblx0JiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0aGVpZ2h0OiAxcHg7XG5cdFx0YW5pbWF0aW9uOiBjay13aWRnZXQtdHlwZS1hcm91bmQtZmFrZS1jYXJldC1wdWxzZSBsaW5lYXIgMXMgaW5maW5pdGUgbm9ybWFsIGZvcndhcmRzO1xuXG5cdFx0Lypcblx0XHQgKiBUaGUgc2VtaS10cmFuc3BhcmVudC1vdXRsaW5lK2JhY2tncm91bmQgY29tYm8gaW1wcm92ZXMgdGhlIGNvbnRyYXN0XG5cdFx0ICogd2hlbiB0aGUgYmFja2dyb3VuZCB1bmRlcm5lYXRoIHRoZSBmYWtlIGNhcmV0IGlzIGRhcmsuXG5cdFx0ICovXG5cdFx0b3V0bGluZTogc29saWQgMXB4IGhzbGEoMCwgMCUsIDEwMCUsIC41KTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHR9XG5cblx0Lypcblx0ICogU3R5bGVzIG9mIHRoZSB3aWRnZXQgd2hlbiB0aGUgXCJmYWtlIGNhcmV0XCIgaXMgYmxpbmtpbmcgKGUuZy4gdXBvbiBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0ICogRGVzcGl0ZSB0aGUgd2lkZ2V0IGJlaW5nIHBoeXNpY2FsbHkgc2VsZWN0ZWQgaW4gdGhlIG1vZGVsLCBpdHMgb3V0bGluZSBzaG91bGQgZGlzYXBwZWFyLlxuXHQgKi9cblx0Ji5jay13aWRnZXRfc2VsZWN0ZWQge1xuXHRcdCYuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUsXG5cdFx0Ji5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2FmdGVyIHtcblx0XHRcdG91dGxpbmUtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdH1cblx0fVxuXG5cdCYuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUsXG5cdCYuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlciB7XG5cdFx0Lypcblx0XHQgKiBXaGVuIHRoZSBcImZha2UgY2FyZXRcIiBpcyB2aXNpYmxlIHdlIHNpbXVsYXRlIHRoYXQgdGhlIHdpZGdldCBpcyBub3Qgc2VsZWN0ZWRcblx0XHQgKiAoZGVzcGl0ZSBiZWluZyBwaHlzaWNhbGx5IHNlbGVjdGVkKSwgc28gdGhlIG91dGxpbmUgY29sb3Igc2hvdWxkIGJlIGZvciB0aGVcblx0XHQgKiB1bnNlbGVjdGVkIHdpZGdldC5cblx0XHQgKi9cblx0XHQmLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0XHRvdXRsaW5lLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0XHR9XG5cblx0XHQvKlxuXHRcdCAqIFN0eWxlcyBvZiB0aGUgdHlwZSBhcm91bmQgYnV0dG9ucyB3aGVuIHRoZSBcImZha2UgY2FyZXRcIiBpcyBibGlua2luZyAoZS5nLiB1cG9uIGtleWJvYXJkIG5hdmlnYXRpb24pLlxuXHRcdCAqIEluIHRoaXMgc3RhdGUsIHRoZSB0eXBlIGFyb3VuZCBidXR0b25zIHdvdWxkIGNvbGxpZGUgd2l0aCB0aGUgZmFrZSBjYXJldHMgc28gdGhleSBzaG91bGQgZGlzYXBwZWFyLlxuXHRcdCAqL1xuXHRcdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdFx0QG1peGluIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taGlkZGVuO1xuXHRcdH1cblxuXHRcdC8qXG5cdFx0ICogRmFrZSBob3Jpem9udGFsIGNhcmV0IGludGVncmF0aW9uIHdpdGggdGhlIHNlbGVjdGlvbiBoYW5kbGUuIFdoZW4gdGhlIGNhcmV0IGlzIHZpc2libGUsIHNpbXBseVxuXHRcdCAqIGhpZGUgdGhlIGhhbmRsZSBiZWNhdXNlIGl0IGludGVyc2VjdHMgd2l0aCB0aGUgY2FyZXQgKGFuZCBkb2VzIG5vdCBtYWtlIG11Y2ggc2Vuc2UgYW55d2F5KS5cblx0XHQgKi9cblx0XHQmLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUge1xuXHRcdFx0Ji5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdFx0XHQmLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciB7XG5cdFx0XHRcdCYgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdFx0XHRvcGFjaXR5OiAwXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvKlxuXHRcdCAqIEZha2UgaG9yaXpvbnRhbCBjYXJldCBpbnRlZ3JhdGlvbiB3aXRoIHRoZSByZXNpemUgVUkuIFdoZW4gdGhlIGNhcmV0IGlzIHZpc2libGUsIHNpbXBseVxuXHRcdCAqIGhpZGUgdGhlIHJlc2l6ZSBVSSBiZWNhdXNlIGl0IGNyZWF0ZXMgdG9vIG11Y2ggbm9pc2UuIEl0IGNhbiBiZSB2aXNpYmxlIHdoZW4gdGhlIHVzZXJcblx0XHQgKiBob3ZlcnMgdGhlIHdpZGdldCwgdGhvdWdoLlxuXHRcdCAqL1xuXHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkLmNrLXdpZGdldF93aXRoLXJlc2l6ZXIgPiAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0XHRcdG9wYWNpdHk6IDBcblx0XHR9XG5cdH1cbn1cblxuLypcbiAqIFN0eWxlcyBmb3IgdGhlIFwiYmVmb3JlXCIgYnV0dG9uIHdoZW4gdGhlIHdpZGdldCBoYXMgYSBzZWxlY3Rpb24gaGFuZGxlIGluIGFuIFJUTCBlbnZpcm9ubWVudC5cbiAqIFRoZSBzZWxlY3Rpb24gaGFuZGxlciBpcyBhbGlnbmVkIHRvIHRoZSByaWdodCBzaWRlIG9mIHRoZSB3aWRnZXQgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBjcmVhdGVcbiAqIGFkZGl0aW9uYWwgc3BhY2UgZm9yIGl0IG5leHQgdG8gdGhlIFwiYmVmb3JlXCIgYnV0dG9uLlxuICovXG4uY2tbZGlyPVwicnRsXCJdIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b25fYmVmb3JlIHtcblx0bWFyZ2luLWxlZnQ6IDA7XG5cdG1hcmdpbi1yaWdodDogMjBweDtcbn1cblxuLypcbiAqIEhpZGUgdHlwZSBhcm91bmQgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQgYXMgYSBjaGlsZCBvZiBhIHNlbGVjdGVkXG4gKiBuZXN0ZWQgZWRpdGFibGUgKGUuZy4gbXVsaXQtY2VsbCB0YWJsZSBzZWxlY3Rpb24pLlxuICpcbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy83MjYzLlxuICovXG4uY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCB7XG5cdCYgLmNrLXdpZGdldCB7XG5cdFx0Ji5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHtcblx0XHRcdFx0QG1peGluIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taGlkZGVuO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vKlxuICogU3R5bGVzIGZvciB0aGUgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQgYnV0IHRoZSB1c2VyIGNsaWNrZWQgb3V0c2lkZSBvZiB0aGUgZWRpdG9yIChibHVycmVkIHRoZSBlZGl0b3IpLlxuICovXG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOm5vdCg6aG92ZXIpIHtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1ibHVycmVkLWVkaXRhYmxlKTtcblxuXHQmIHN2ZyAqIHtcblx0XHRzdHJva2U6IGhzbCgwLDAlLDYwJSk7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctZGFzaCB7XG5cdDAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogMTA7XG5cdH1cblx0MjAlLCAxMDAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogMDtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXdpZGdldC10eXBlLWFyb3VuZC1hcnJvdy10aXAtZGFzaCB7XG5cdDAlLCAyMCUge1xuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiA3O1xuXHR9XG5cdDQwJSwgMTAwJSB7XG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNvbmFyIHtcblx0MCUge1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDAgaHNsYSh2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXItY29vcmRpbmF0ZXMpLCB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXJhZGFyLXN0YXJ0LWFscGhhKSk7XG5cdH1cblx0NTAlIHtcblx0XHRib3gtc2hhZG93OiAwIDAgMCA1cHggaHNsYSh2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXItY29vcmRpbmF0ZXMpLCB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXJhZGFyLWVuZC1hbHBoYSkpO1xuXHR9XG5cdDEwMCUge1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDVweCBoc2xhKHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlcyksIHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItc3RhcnQtYWxwaGEpKTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXdpZGdldC10eXBlLWFyb3VuZC1mYWtlLWNhcmV0LXB1bHNlIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0NDklIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cdDUwJSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXHQ5OSUge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgY29kZSB7XG5cdGJhY2tncm91bmQtY29sb3I6IGhzbGEoMCwgMCUsIDc4JSwgMC4zKTtcblx0cGFkZGluZzogLjE1ZW07XG5cdGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLWNvZGVfc2VsZWN0ZWQgIHtcblx0YmFja2dyb3VuZC1jb2xvcjogaHNsYSgwLCAwJSwgNzglLCAwLjUpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgYmxvY2txdW90ZSB7XG5cdC8qIFNlZSAjMTIgKi9cblx0b3ZlcmZsb3c6IGhpZGRlbjtcblxuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWJsb2NrLXF1b3RlL2lzc3Vlcy8xNSAqL1xuXHRwYWRkaW5nLXJpZ2h0OiAxLjVlbTtcblx0cGFkZGluZy1sZWZ0OiAxLjVlbTtcblxuXHRtYXJnaW4tbGVmdDogMDtcblx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdGJvcmRlci1sZWZ0OiBzb2xpZCA1cHggaHNsKDAsIDAlLCA4MCUpO1xufVxuXG4uY2stY29udGVudFtkaXI9XCJydGxcIl0gYmxvY2txdW90ZSB7XG5cdGJvcmRlci1sZWZ0OiAwO1xuXHRib3JkZXItcmlnaHQ6IHNvbGlkIDVweCBoc2woMCwgMCUsIDgwJSk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stYm9va21hcmstaWNvbi1ob3Zlci1maWxsLWNvbG9yOiB2YXIoLS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyKTtcblx0LS1jay1ib29rbWFyay1pY29uLXNlbGVjdGVkLWZpbGwtY29sb3I6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbik7XG5cdC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tY3VydmU6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG59XG5cbi5jay1ib29rbWFyayB7XG5cdCYuY2std2lkZ2V0IHtcblx0XHRvdXRsaW5lOiBub25lO1xuXG5cdFx0JiAuY2stYm9va21hcmtfX2ljb24gLmNrLWljb25fX2ZpbGwge1xuXHRcdFx0dHJhbnNpdGlvbjogZmlsbCB2YXIoLS1jay1ib29rbWFyay1pY29uLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2stYm9va21hcmstaWNvbi1hbmltYXRpb24tY3VydmUpO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0JiAuY2stYm9va21hcmtfX2ljb24gLmNrLWljb25fX2ZpbGwge1xuXHRcdFx0XHRmaWxsOiB2YXIoLS1jay1ib29rbWFyay1pY29uLWhvdmVyLWZpbGwtY29sb3IpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkIHtcblx0XHRcdC5jay1ib29rbWFya19faWNvbiAuY2staWNvbl9fZmlsbCB7XG5cdFx0XHRcdGZpbGw6IHZhcigtLWNrLWJvb2ttYXJrLWljb24tc2VsZWN0ZWQtZmlsbC1jb2xvcik7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ji5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdFx0Ji5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdFx0b3V0bGluZTogbm9uZTtcblx0XHR9XG5cblx0XHQmIC5jay1ib29rbWFya19faWNvbiB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHQvKiBUbyBtYWtlIGl0IGFsaWduIHdpdGggdGV4dCBiYXNlbGluZS4gKi9cblx0XHRcdHRvcDogLTAuMWVtO1xuXG5cdFx0XHQmIC5jay1pY29uIHtcblx0XHRcdFx0aGVpZ2h0OiAxLjJlbTtcblx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcblxuLmNrLmNrLWJvb2ttYXJrLXZpZXcge1xuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG59XG5cbi5jay5jay1ib29rbWFyay1mb3JtIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cblx0QG1peGluIGNrLW1lZGlhLXBob25lIHtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0XHQmIC5jay1idXR0b24sXG5cdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uIHtcblx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stcmVzcG9uc2l2ZS1mb3JtIHtcblx0XHQmID4gLmNrLWJ1dHRvbiB7XG5cdFx0XHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdFx0XHQmOm50aC1sYXN0LWNoaWxkKDEpIHtcblx0XHRcdFx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL191bnNlbGVjdGFibGUuY3NzXCI7XG5cbi5jay5jay1ib29rbWFyay1hY3Rpb25zIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHQmIC5jay1ib29rbWFyay1hY3Rpb25zX19wcmV2aWV3IHtcblx0XHRtYXgtd2lkdGg6IHZhcigtLWNrLWlucHV0LXdpZHRoKTtcblx0XHRtaW4td2lkdGg6IDNlbTtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdFx0QG1peGluIGNrLXVuc2VsZWN0YWJsZTtcblx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdH1cblxuXHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXG5cdFx0JiAuY2stYm9va21hcmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSAwO1xuXHRcdFx0bWluLXdpZHRoOiBhdXRvO1xuXHRcdH1cblx0fVxuXG5cdCYuY2stcmVzcG9uc2l2ZS1mb3JtIHtcblx0XHQmIC5jay1idXR0b24ge1xuXHRcdFx0QG1peGluIGNrLW1lZGlhLXBob25lIHtcblx0XHRcdFx0ZmxleC1iYXNpczogNTAlO1xuXHRcdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyogQmFzZWQgb24gZGVmYXVsdCBDS0JveCB0aGVtZSBjb2xvcnMgKi9cblx0LS1jay1pbWFnZS1wcm9jZXNzaW5nLWhpZ2hsaWdodC1jb2xvcjogaHNsKDIyMCwgMTAlLCA5OCUpO1xuXHQtLWNrLWltYWdlLXByb2Nlc3NpbmctYmFja2dyb3VuZC1jb2xvcjogaHNsKDIyMCwgMTAlLCA5MCUpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdCYgLmltYWdlIHtcblx0XHQmLmltYWdlLXByb2Nlc3Npbmcge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdGNvbnRlbnQ6ICcnO1xuXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHR6LWluZGV4OiAxO1xuXG5cdFx0XHRcdGhlaWdodDogMTAwJTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuXHRcdFx0XHRcdDkwZGVnLFxuXHRcdFx0XHRcdHZhcigtLWNrLWltYWdlLXByb2Nlc3NpbmctYmFja2dyb3VuZC1jb2xvciksXG5cdFx0XHRcdFx0dmFyKC0tY2staW1hZ2UtcHJvY2Vzc2luZy1oaWdobGlnaHQtY29sb3IpLFxuXHRcdFx0XHRcdHZhcigtLWNrLWltYWdlLXByb2Nlc3NpbmctYmFja2dyb3VuZC1jb2xvcilcblx0XHRcdFx0KTtcblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG5cblx0XHRcdFx0YW5pbWF0aW9uOiBjay1pbWFnZS1wcm9jZXNzaW5nLWFuaW1hdGlvbiAycyBsaW5lYXIgaW5maW5pdGU7XG5cdFx0XHR9XG5cblx0XHRcdCYgaW1nIHtcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLWltYWdlLXByb2Nlc3NpbmctYW5pbWF0aW9uIHtcblx0MCUge1xuXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDtcblx0fVxuXHQxMDAlIHtcblx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwJSAwO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdC8qXG5cdCAqIFZlcnRpY2FsIGRyb3AgdGFyZ2V0IChpbiB0ZXh0KS5cblx0ICovXG5cdCYgLmNrLmNrLWNsaXBib2FyZC1kcm9wLXRhcmdldC1wb3NpdGlvbiB7XG5cdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRcdCYgc3BhbiB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR3aWR0aDogMDtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgb2YgdGhlIHdpZGdldCBiZWluZyBkcmFnZ2VkIChpdHMgcHJldmlldykuXG5cdCAqL1xuXHQmIC5jay13aWRnZXQ6LXdlYmtpdC1kcmFnIHtcblx0XHQmID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdCYgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4uY2suY2stY2xpcGJvYXJkLWRyb3AtdGFyZ2V0LWxpbmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgcHJlIHtcblx0cGFkZGluZzogMWVtO1xuXHRjb2xvcjogaHNsKDAsIDAlLCAyMC44JSk7XG5cdGJhY2tncm91bmQ6IGhzbGEoMCwgMCUsIDc4JSwgMC4zKTtcblx0Ym9yZGVyOiAxcHggc29saWQgaHNsKDAsIDAlLCA3NyUpO1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG5cblx0LyogQ29kZSBibG9jayBhcmUgbGFuZ3VhZ2UgZGlyZWN0aW9u4oCTYWdub3N0aWMuICovXG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdGRpcmVjdGlvbjogbHRyO1xuXG5cdHRhYi1zaXplOiA0O1xuXHR3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG5cblx0LyogRG9uJ3QgaW5oZXJpdCB0aGUgc3R5bGUsIGUuZy4gd2hlbiBpbiBhIGJsb2NrIHF1b3RlLiAqL1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cblx0LyogRG9uJ3QgbGV0IHRoZSBjb2RlIGJlIHNxdWFzaGVkIGUuZy4gd2hlbiBpbiBhIHRhYmxlIGNlbGwuICovXG5cdG1pbi13aWR0aDogMjAwcHg7XG5cblx0JiBjb2RlIHtcblx0XHRiYWNrZ3JvdW5kOiB1bnNldDtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdH1cbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgcHJlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCZbZGF0YS1sYW5ndWFnZV06OmFmdGVyIHtcblx0XHRjb250ZW50OiBhdHRyKGRhdGEtbGFuZ3VhZ2UpO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVkaXRvciB7XG5cdC8qIEFsbCB0aGUgZWxlbWVudHMgd2l0aGluIGAuY2stZWRpdG9yYCBhcmUgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIGl0LlxuXHQgSWYgYW55IGVsZW1lbnQgbmVlZHMgdG8gYmUgcG9zaXRpb25lZCB3aXRoIHJlc3BlY3QgdG8gdGhlIDxib2R5PiwgZXRjLixcblx0IGl0IG11c3QgbGFuZCBvdXRzaWRlIG9mIHRoZSBgLmNrLWVkaXRvcmAgaW4gRE9NLiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JiAuY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stdG9vbGJhciB7XG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1lZGl0b3ItY2xhc3NpYy9pc3N1ZXMvNjIgKi9cblx0XHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lbnUtYmFyIHtcblx0Ym9yZGVyOiBub25lO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplOiAyN3B4O1xufVxuXG4uY2suY2stZW1vamkge1xuXHQmIC5jay5jay1lbW9qaV9fdGlsZXMge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRtYXgtaGVpZ2h0OiBtaW4oMjY1cHgsIDQwdmgpO1xuXG5cdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblxuXHRcdCYgLmNrLWVtb2ppX19ncmlkIHtcblx0XHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCh2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSksIDFmcikpO1xuXHRcdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0XHRcdGdyaWQtZ2FwOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cblx0XHQmIC5jay1lbW9qaV9fdGlsZSB7XG5cdFx0XHR3aWR0aDogdmFyKC0tY2stZW1vamktZ3JpZC10aWxlLXNpemUpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay1lbW9qaS1ncmlkLXRpbGUtc2l6ZSk7XG5cdFx0XHRtaW4td2lkdGg6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdG1pbi1oZWlnaHQ6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdGZvbnQtc2l6ZTogMS41ZW07XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0dHJhbnNpdGlvbjogLjJzIGVhc2UgYm94LXNoYWRvdztcblx0XHRcdGJvcmRlcjogMDtcblxuXHRcdFx0QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcblx0XHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1czpub3QoLmNrLWRpc2FibGVkKSxcblx0XHRcdCY6aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0XHQvKiBEaXNhYmxlIHRoZSBkZWZhdWx0IC5jay1idXR0b24ncyBib3JkZXIgcmluZy4gKi9cblx0XHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKSwgMCAwIDAgMnB4IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0XHR9XG5cblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgZ2x5cGggaXMgcmVuZGVyZWQgaW4gdGhlIGNlbnRlciBvZiB0aGUgYnV0dG9uICovXG5cdFx0XHQmIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IHZhcigtLWNrLWVtb2ppLWdyaWQtdGlsZS1zaXplKTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lbW9qaV9fY2F0ZWdvcmllcy1saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRtYXJnaW46IDAgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0PiAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQge1xuXHRcdGJvcmRlci13aWR0aDogMDtcblx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG5cdFx0Ym9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG5cdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0cGFkZGluZzogMDtcblx0XHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iaWcpO1xuXHRcdG1pbi13aWR0aDogdmFyKC0tY2stZm9udC1zaXplLWJpZyk7XG5cdFx0bWluLWhlaWdodDogdmFyKC0tY2stZm9udC1zaXplLWJpZyk7XG5cblx0XHQmLmNrLWVtb2ppX19jYXRlZ29yeS1pdGVtLmNrLW9uIHtcblx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlKTtcblx0XHR9XG5cblx0XHQ+IHNwYW4ge1xuXHRcdFx0bWFyZ2luOiBhdXRvO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWVtb2ppX19za2luLXRvbmUge1xuXHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0PiAuY2suY2stZHJvcGRvd24ge1xuXG5cdFx0LmNrLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdFx0bWluLXdpZHRoOiAxZW07XG5cdFx0fVxuXG5cdFx0LmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIHtcblx0XHRcdC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0d2lkdGg6IGluaXRpYWw7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZW1vamkge1xuXHR3aWR0aDogMzIwcHg7XG59XG5cbi5jayAuY2suY2stZW1vamlfX3NlYXJjaCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRwYWRkaW5nLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qXG4gKiBDbGFzc2VzIHVzZWQgYnkgdGhlIFwiZmFrZSB2aXN1YWwgc2VsZWN0aW9uXCIgZGlzcGxheWVkIGluIHRoZSBjb250ZW50IHdoZW4gYW4gaW5wdXRcbiAqIGluIHRoZSBlbW9qaSBwaWNrZXIgVUkgaGFzIGZvY3VzICh0aGUgYnJvd3NlciBkb2VzIG5vdCByZW5kZXIgdGhlIG5hdGl2ZSBzZWxlY3Rpb24gaW4gdGhpcyBzdGF0ZSkuXG4gKi9cbi5jayAuY2stZmFrZS1lbW9qaS1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uKTtcbn1cblxuLyogQSBjb2xsYXBzZWQgZmFrZSB2aXN1YWwgc2VsZWN0aW9uLiAqL1xuLmNrIC5jay1mYWtlLWVtb2ppLXNlbGVjdGlvbl9jb2xsYXBzZWQge1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdG1hcmdpbi1yaWdodDogLTFweDtcblx0b3V0bGluZTogc29saWQgMXB4IGhzbGEoMCwgMCUsIDEwMCUsIC41KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjOTM2LiAqL1xuLmNrLmNrLXBsYWNlaG9sZGVyLFxuLmNrIC5jay1wbGFjZWhvbGRlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmOjpiZWZvcmUge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGNvbnRlbnQ6IGF0dHIoZGF0YS1wbGFjZWhvbGRlcik7XG5cblx0XHQvKiBTZWUgY2tlZGl0b3IvY2tlZGl0b3I1IzQ2OS4gKi9cblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0fVxufVxuXG4vKiBTZWUgY2tlZGl0b3IvY2tlZGl0b3I1IzE5ODcuICovXG4uY2suY2stcmVhZC1vbmx5IC5jay1wbGFjZWhvbGRlciB7XG5cdCY6OmJlZm9yZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4vKlxuICogUnVsZXMgZm9yIHRoZSBgY2stcGxhY2Vob2xkZXJgIGFyZSBsb2FkZWQgYmVmb3JlIHRoZSBydWxlcyBmb3IgYGNrLXJlc2V0X2FsbGAgaW4gdGhlIGJhc2UgQ0tFZGl0b3IgNSBETEwgYnVpbGQuXG4gKiBUaGlzIGZpeCBvdmVyd3JpdGVzIHRoZSBpbmNvcnJlY3RseSBzZXQgYHBvc2l0aW9uOiBzdGF0aWNgIGZyb20gYGNrLXJlc2V0X2FsbGAuXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTE0MTguXG4gKi9cbi5jay5jay1yZXNldF9hbGwgLmNrLXBsYWNlaG9sZGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogRWxlbWVudHMgbWFya2VkIGJ5IHRoZSBSZW5kZXJlciBhcyBoaWRkZW4gc2hvdWxkIGJlIGludmlzaWJsZSBpbiB0aGUgZWRpdG9yLiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgc3BhbltkYXRhLWNrLXVuc2FmZS1lbGVtZW50XSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stZmluZC1yZXN1bHQge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1oaWdobGlnaHQtYmFja2dyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci10ZXh0KTtcbn1cblxuLmNrLWZpbmQtcmVzdWx0X3NlbGVjdGVkIHtcblx0YmFja2dyb3VuZDogaHNsKDI5LCAxMDAlLCA2MCUpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybSB7XG5cdG1heC13aWR0aDogMTAwJTtcblxuXHQmIC5jay1maW5kLWFuZC1yZXBsYWNlLWZvcm1fX2lucHV0cywgLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9fYWN0aW9ucyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblxuXHRcdC8qIFRoZSBpbnB1dHMgYXJlYSBzdHlsZXMgKi9cblx0XHQmLmNrLWZpbmQtYW5kLXJlcGxhY2UtZm9ybV9faW5wdXRzIC5jay1yZXN1bHRzLWNvdW50ZXIge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogVGhlIHZhbHVlcyBzaG91bGQgYmUgc3luY2hyb25pemVkIHdpdGggdGhlIFwiRk9OVF9TSVpFX1BSRVNFVF9VTklUU1wiIG9iamVjdCBpbiB0aGUgXCIvc3JjL2ZvbnRzaXplL3V0aWxzLmpzXCIgZmlsZS4gKi9cblxuLyogU3R5bGVzIHNob3VsZCBiZSBwcmVmaXhlZCB3aXRoIHRoZSBgLmNrLWNvbnRlbnRgIGNsYXNzLlxuU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY2MzYgKi9cbi5jay1jb250ZW50IHtcblx0JiAudGV4dC10aW55IHtcblx0XHRmb250LXNpemU6IC43ZW07XG5cdH1cblxuXHQmIC50ZXh0LXNtYWxsIHtcblx0XHRmb250LXNpemU6IC44NWVtO1xuXHR9XG5cblx0JiAudGV4dC1iaWcge1xuXHRcdGZvbnQtc2l6ZTogMS40ZW07XG5cdH1cblxuXHQmIC50ZXh0LWh1Z2Uge1xuXHRcdGZvbnQtc2l6ZTogMS44ZW07XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1oZWFkaW5nX2hlYWRpbmcxIC5jay1idXR0b25fX2xhYmVsIHtcblx0Zm9udC1zaXplOiAyMHB4O1xufVxuXG4uY2suY2staGVhZGluZ19oZWFkaW5nMiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdGZvbnQtc2l6ZTogMTdweDtcbn1cblxuLmNrLmNrLWhlYWRpbmdfaGVhZGluZzMgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRmb250LXNpemU6IDE0cHg7XG59XG5cbi5ja1tjbGFzcyo9XCJjay1oZWFkaW5nX2hlYWRpbmdcIl0ge1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1oaWdobGlnaHQtbWFya2VyLXllbGxvdzogaHNsKDYwLCA5NyUsIDczJSk7XG5cdC0tY2staGlnaGxpZ2h0LW1hcmtlci1ncmVlbjogaHNsKDEyMCwgOTMlLCA2OCUpO1xuXHQtLWNrLWhpZ2hsaWdodC1tYXJrZXItcGluazogaHNsKDM0NSwgOTYlLCA3MyUpO1xuXHQtLWNrLWhpZ2hsaWdodC1tYXJrZXItYmx1ZTogaHNsKDIwMSwgOTclLCA3MiUpO1xuXHQtLWNrLWhpZ2hsaWdodC1wZW4tcmVkOiBoc2woMCwgODUlLCA0OSUpO1xuXHQtLWNrLWhpZ2hsaWdodC1wZW4tZ3JlZW46IGhzbCgxMTIsIDEwMCUsIDI3JSk7XG59XG5cbkBkZWZpbmUtbWl4aW4gaGlnaGxpZ2h0LW1hcmtlci1jb2xvciAkY29sb3Ige1xuXHQuY2stY29udGVudCAubWFya2VyLSRjb2xvciB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2staGlnaGxpZ2h0LW1hcmtlci0kY29sb3IpO1xuXHR9XG59XG5cbkBkZWZpbmUtbWl4aW4gaGlnaGxpZ2h0LXBlbi1jb2xvciAkY29sb3Ige1xuXHQuY2stY29udGVudCAucGVuLSRjb2xvciB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWhpZ2hsaWdodC1wZW4tJGNvbG9yKTtcblxuXHRcdC8qIE92ZXJyaWRlIGRlZmF1bHQgeWVsbG93IGJhY2tncm91bmQgb2YgYDxtYXJrPmAgZnJvbSB1c2VyIGFnZW50IHN0eWxlc2hlZXQgKi9cblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxufVxuXG5AbWl4aW4gaGlnaGxpZ2h0LW1hcmtlci1jb2xvciB5ZWxsb3c7XG5AbWl4aW4gaGlnaGxpZ2h0LW1hcmtlci1jb2xvciBncmVlbjtcbkBtaXhpbiBoaWdobGlnaHQtbWFya2VyLWNvbG9yIHBpbms7XG5AbWl4aW4gaGlnaGxpZ2h0LW1hcmtlci1jb2xvciBibHVlO1xuXG5AbWl4aW4gaGlnaGxpZ2h0LXBlbi1jb2xvciByZWQ7XG5AbWl4aW4gaGlnaGxpZ2h0LXBlbi1jb2xvciBncmVlbjtcbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLWhvcml6b250YWwtbGluZSB7XG5cdC8qIE5lY2Vzc2FyeSB0byByZW5kZXIgcHJvcGVybHkgbmV4dCB0byBmbG9hdGVkIG9iamVjdHMsIGUuZy4gc2lkZSBpbWFnZSBjYXNlLiAqL1xuXHRkaXNwbGF5OiBmbG93LXJvb3Q7XG59XG5cbi5jay1jb250ZW50IGhyIHtcblx0bWFyZ2luOiAxNXB4IDA7XG5cdGhlaWdodDogNHB4O1xuXHRiYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDg3JSk7XG5cdGJvcmRlcjogMDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qIFRoZSBmZWF0dXJlIGNvbnRhaW5lci4gKi9cbi5jay13aWRnZXQucmF3LWh0bWwtZW1iZWQge1xuXHQvKiBHaXZlIHRoZSBlbWJlZCBzb21lIGFpci4gKi9cblx0LyogVGhlIGZpcnN0IHZhbHVlIHNob3VsZCBiZSBlcXVhbCB0byAtLWNrLXNwYWNpbmctbGFyZ2UgdmFyaWFibGUgaWYgdXNlZCBpbiB0aGUgZWRpdG9yIGNvbnRleHRcblx0dG8gYXZvaWQgdGhlIGNvbnRlbnQganVtcGluZyAoU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzk4MjUpLiAqL1xuXHRtYXJnaW46IDAuOWVtIGF1dG87XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogZmxvdy1yb290O1xuXG5cdC8qIEdpdmUgdGhlIGh0bWwgZW1iZWQgc29tZSBtaW5pbWFsIHdpZHRoIGluIHRoZSBjb250ZW50IHRvIHByZXZlbnQgdGhlbVxuXHRmcm9tIGJlaW5nIFwic3F1YXNoZWRcIiBpbiB0aWdodCBzcGFjZXMsIGUuZy4gaW4gdGFibGUgY2VsbHMgKGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgzMzEpICovXG5cdG1pbi13aWR0aDogMTVlbTtcblxuXHQvKiBEb24ndCBpbmhlcml0IHRoZSBzdHlsZSwgZS5nLiB3aGVuIGluIGEgYmxvY2sgcXVvdGUuICovXG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcblxuXHQvKiAtLS0tLSBFbWViZWQgbGFiZWwgaW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0Jjo6YmVmb3JlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0XHQvKiBNYWtlIHN1cmUgdGhlIGNvbnRlbnQgZG9lcyBub3QgY292ZXIgdGhlIGxhYmVsLiAqL1xuXHRcdHotaW5kZXg6IDE7XG5cdH1cblxuXHQvKiAtLS0tLSBFbWViZWQgaW50ZXJuYWxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC8qIFRoZSBzd2l0Y2ggbW9kZSBidXR0b24gd3JhcHBlci4gKi9cblx0JiAucmF3LWh0bWwtZW1iZWRfX2J1dHRvbnMtd3JhcHBlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0fVxuXG5cdCYgLnJhdy1odG1sLWVtYmVkX19wcmV2aWV3IHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHR9XG5cblx0JiAucmF3LWh0bWwtZW1iZWRfX3ByZXZpZXctY29udGVudCB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1hcmdpbjogYXV0bztcblxuXHRcdC8qIEdpdmVzIHNwYWNpbmcgdG8gdGhlIHNtYWxsIHJlbmRlcmFibGUgZWxlbWVudHMsIHNvIHRoZXkgYWx3YXlzIGNvdmVyIHRoZSBwbGFjZWhvbGRlci4gKi9cblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuXHRcdGJvcmRlci1zcGFjaW5nOiA3cHg7XG5cdH1cblxuXHQmIC5yYXctaHRtbC1lbWJlZF9fcHJldmlldy1wbGFjZWhvbGRlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0dG9wOiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogMDtcblxuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWh0bWwtb2JqZWN0LWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoOiAxcHg7XG59XG5cbi5jay13aWRnZXQuaHRtbC1vYmplY3QtZW1iZWQge1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdC8qIExlYXZlIHNwYWNlIGZvciBsYWJlbCAqL1xuXHRwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1jay1mb250LXNpemUtdGlueSkgKyB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSk7XG5cdG1pbi13aWR0aDogY2FsYyg3NnB4ICsgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkpO1xuXG5cdCY6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpOm5vdCg6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay1odG1sLW9iamVjdC1lbWJlZC11bmZvY3VzZWQtb3V0bGluZS13aWR0aCkgZGFzaGVkIHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdH1cblxuXHQmOjpiZWZvcmUge1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdFx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRjb250ZW50OiBhdHRyKGRhdGEtaHRtbC1vYmplY3QtZW1iZWQtbGFiZWwpO1xuXHRcdHRvcDogMDtcblx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRiYWNrZ3JvdW5kOiBoc2woMGRlZyAwJSA2MCUpO1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xuXHRcdHBhZGRpbmc6IGNhbGModmFyKC0tY2stc3BhY2luZy10aW55KSArIHZhcigtLWNrLWh0bWwtb2JqZWN0LWVtYmVkLXVuZm9jdXNlZC1vdXRsaW5lLXdpZHRoKSkgdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy10aW55KTtcblx0XHRib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tY2stYm9yZGVyLXJhZGl1cykgdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtdGlueSk7XG5cdFx0Zm9udC1mYW1pbHk6IHZhcigtLWNrLWZvbnQtZmFjZSk7XG5cdH1cblxuXHQvKiBNYWtlIHNwYWNlIGZvciBsYWJlbC4gKi9cblx0JiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9iZWZvcmUge1xuXHRcdG1hcmdpbi1sZWZ0OiA1MHB4O1xuXHR9XG5cblx0JiAuaHRtbC1vYmplY3QtZW1iZWRfX2NvbnRlbnQge1xuXHRcdC8qIERpc2FibGUgdXNlciBpbnRlcmFjdGlvbiB3aXRoIGVtYmVkIGNvbnRlbnQgKi9cblx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0fVxufVxuXG5kaXYuY2std2lkZ2V0Lmh0bWwtb2JqZWN0LWVtYmVkIHtcblx0bWFyZ2luOiAxZW0gYXV0bztcbn1cblxuc3Bhbi5jay13aWRnZXQuaHRtbC1vYmplY3QtZW1iZWQge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fbWVkaWFjb2xvcnMuY3NzXCI7XG5cbjpyb290IHtcblx0LS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgOTclKTtcblx0LS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLXRleHQ6IGhzbCgwLCAwJSwgMjAlKTtcblx0LS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLWhpZ2hsaWdodGVkLWJhY2tncm91bmQ6IGhzbCg1MmRlZyAxMDAlIDUwJSk7XG59XG5cbi8qIENvbnRlbnQgc3R5bGVzICovXG4uY2stY29udGVudCAuaW1hZ2UgPiBmaWdjYXB0aW9uIHtcblx0ZGlzcGxheTogdGFibGUtY2FwdGlvbjtcblx0Y2FwdGlvbi1zaWRlOiBib3R0b207XG5cdHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLXRleHQpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1pbWFnZS1jYXB0aW9uLWJhY2tncm91bmQpO1xuXHRwYWRkaW5nOiAuNmVtO1xuXHRmb250LXNpemU6IC43NWVtO1xuXHRvdXRsaW5lLW9mZnNldDogLTFweDtcblxuXHQvKiBJbXByb3ZlIHBsYWNlaG9sZGVyIHJlbmRlcmluZyBpbiBoaWdoLWNvbnN0cmFzdCBtb2RlIChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDkwNykuICovXG5cdEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cdFx0Y29sb3I6IHVuc2V0O1xuXHR9XG59XG5cbi8qIEVkaXRpbmcgc3R5bGVzICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UgPiBmaWdjYXB0aW9uLmltYWdlX19jYXB0aW9uX2hpZ2hsaWdodGVkIHtcblx0QG1peGluIGNrLW1lZGlhLWRlZmF1bHQtY29sb3JzIHtcblx0XHRhbmltYXRpb246IGNrLWltYWdlLWNhcHRpb24taGlnaGxpZ2h0IC42cyBlYXNlLW91dDtcblx0fVxuXG5cdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0YW5pbWF0aW9uOiBub25lO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2staW1hZ2UtY2FwdGlvbi1oaWdobGlnaHQge1xuXHQwJSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3ItaW1hZ2UtY2FwdGlvbi1oaWdobGlnaHRlZC1iYWNrZ3JvdW5kKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWltYWdlLWNhcHRpb24tYmFja2dyb3VuZCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1pbWFnZS1pbnNlcnQtdXJsIHtcblx0d2lkdGg6IDQwMHB4O1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSAwO1xuXG5cdCYgLmNrLWltYWdlLWluc2VydC11cmxfX2FjdGlvbi1yb3cge1xuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyogUHJlc2VydmUgYXNwZWN0IHJhdGlvIG9mIHRoZSByZXNpemVkIGltYWdlIGFmdGVyIGludHJvZHVjaW5nIGltYWdlIGhlaWdodCBhdHRyaWJ1dGUuICovXG4uY2stY29udGVudCBpbWcuaW1hZ2VfcmVzaXplZCB7XG5cdGhlaWdodDogYXV0bztcbn1cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlX3Jlc2l6ZWQge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdC8qXG5cdFRoZSBgPGZpZ3VyZT5gIGVsZW1lbnQgZm9yIHJlc2l6ZWQgaW1hZ2VzIG11c3Qgbm90IHVzZSBgZGlzcGxheTp0YWJsZWAgYXMgYnJvd3NlcnMgZG8gbm90IHN1cHBvcnQgYG1heC13aWR0aGAgZm9yIGl0IHdlbGwuXG5cdFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MDE5NjA0L2Nocm9tZS1zYWZhcmktaWdub3JpbmctbWF4LXdpZHRoLWluLXRhYmxlLzE0NDIwNjkxIzE0NDIwNjkxIGZvciBtb3JlLlxuXHRGb3J0dW5hdGVseSwgc2luY2Ugd2UgY29udHJvbCB0aGUgd2lkdGgsIHRoZXJlIGlzIG5vIHJpc2sgdGhhdCB0aGUgaW1hZ2Ugd2lsbCBsb29rIGJhZC5cblx0Ki9cblx0ZGlzcGxheTogYmxvY2s7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cblx0JiBpbWcge1xuXHRcdC8qIEZvciByZXNpemVkIGltYWdlcyBpdCBpcyB0aGUgYDxmaWd1cmU+YCBlbGVtZW50IHRoYXQgZGV0ZXJtaW5lcyB0aGUgaW1hZ2Ugd2lkdGguICovXG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQmID4gZmlnY2FwdGlvbiB7XG5cdFx0LyogVGhlIGA8ZmlndXJlPmAgZWxlbWVudCB1c2VzIGBkaXNwbGF5OmJsb2NrYCwgc28gYDxmaWdjYXB0aW9uPmAgYWxzbyBoYXMgdG8uICovXG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQvKiBUaGUgcmVzaXplZCBpbmxpbmUgaW1hZ2UgbmVzdGVkIGluIHRoZSB0YWJsZSBzaG91bGQgcmVzcGVjdCBpdHMgcGFyZW50IHNpemUuXG5cdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTE3LiAqL1xuXHQmIHRkLFxuXHQmIHRoIHtcblx0XHQmIC5pbWFnZS1pbmxpbmUuaW1hZ2VfcmVzaXplZCBpbWcge1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxufVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dC5jay1yZXNpemUtaW1hZ2UtYnV0dG9uIC5jay1idXR0b25fX2ljb24ge1xuXHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xufVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dC5jay1yZXNpemUtaW1hZ2UtYnV0dG9uIC5jay1idXR0b25fX2ljb24ge1xuXHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG59XG5cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLXJlc2l6ZS1pbWFnZS1idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHR3aWR0aDogNGVtO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbi5jay5jay1pbWFnZS1jdXN0b20tcmVzaXplLWZvcm0ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cblx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblxuXHQmIC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXG5cdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uIHtcblx0XHRcdGZsZXgtYmFzaXM6IDUwJTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nOiAxLjVlbTtcblx0LS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZzogY2FsYyh2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKSAvIDIpO1xufVxuXG4uY2stY29udGVudCB7XG5cdC8qIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTYzMTcgKi9cblx0JiAuaW1hZ2Uge1xuXHRcdC8qIFByb3ZpZGVzIGEgbWluaW1hbCBzaWRlIG1hcmdpbiBmb3IgdGhlIGxlZnQgYW5kIHJpZ2h0IGFsaWduZWQgaW1hZ2VzLCBzbyB0aGF0IHRoZSB1c2VyIGhhcyBhIHZpc3VhbCBmZWVkYmFja1xuXHRcdGNvbmZpcm1pbmcgc3VjY2Vzc2Z1bCBhcHBsaWNhdGlvbiBvZiB0aGUgc3R5bGUgaWYgaW1hZ2Ugd2lkdGggZXhjZWVkcyB0aGUgZWRpdG9yJ3Mgc2l6ZS5cblx0XHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTM0MiAqL1xuXHRcdCYuaW1hZ2Utc3R5bGUtYmxvY2stYWxpZ24tbGVmdCxcblx0XHQmLmltYWdlLXN0eWxlLWJsb2NrLWFsaWduLXJpZ2h0IHtcblx0XHRcdG1heC13aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZykpO1xuXHRcdH1cblxuXHRcdC8qIEFsbG93cyBkaXNwbGF5aW5nIG11bHRpcGxlIGZsb2F0aW5nIGltYWdlcyBpbiB0aGUgc2FtZSBsaW5lLlxuXHRcdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTgzI2lzc3VlY29tbWVudC04MDQ5ODgxMzIgKi9cblx0XHQmLmltYWdlLXN0eWxlLWFsaWduLWxlZnQsXG5cdFx0Ji5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0XHRjbGVhcjogbm9uZTtcblx0XHR9XG5cblx0XHQmLmltYWdlLXN0eWxlLXNpZGUge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdFx0bWF4LXdpZHRoOiA1MCU7XG5cdFx0fVxuXG5cdFx0Ji5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0IHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cblx0XHQmLmltYWdlLXN0eWxlLWFsaWduLXJpZ2h0IHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cblx0XHQmLmltYWdlLXN0eWxlLWJsb2NrLWFsaWduLXJpZ2h0IHtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdH1cblxuXHRcdCYuaW1hZ2Utc3R5bGUtYmxvY2stYWxpZ24tbGVmdCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0XHR9XG5cdH1cblxuXHQmIC5pbWFnZS1zdHlsZS1hbGlnbi1jZW50ZXIge1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0fVxuXG5cdCYgLmltYWdlLXN0eWxlLWFsaWduLWxlZnQge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdH1cblxuXHQmIC5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0fVxuXG5cdC8qIFNpbXVsYXRlcyBtYXJnaW4gY29sbGFwc2luZyB3aXRoIHRoZSBwcmVjZWRpbmcgcGFyYWdyYXBoLCB3aGljaCBkb2VzIG5vdCB3b3JrIGZvciB0aGUgZmxvYXRpbmcgZWxlbWVudHMuICovXG5cdCYgcCArIC5pbWFnZS5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0LFxuXHQmIHAgKyAuaW1hZ2UuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQsXG5cdCYgcCArIC5pbWFnZS5pbWFnZS1zdHlsZS1zaWRlIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHR9XG5cblx0JiAuaW1hZ2UtaW5saW5lIHtcblx0XHQmLmltYWdlLXN0eWxlLWFsaWduLWxlZnQsXG5cdFx0Ji5pbWFnZS1zdHlsZS1hbGlnbi1yaWdodCB7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1pbmxpbmUtaW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdFx0fVxuXG5cdFx0Ji5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0IHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2staW5saW5lLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHRcdH1cblxuXHRcdCYuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWlubGluZS1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHR9XG5cdH1cbn1cblxuLmNrLmNrLXNwbGl0YnV0dG9uIHtcblx0LyogVGhlIGJ1dHRvbiBzaG91bGQgZGlzcGxheSBhcyBhIHJlZ3VsYXIgZHJvcC1kb3duIGlmIHRoZSBhY3Rpb24gYnV0dG9uXG5cdGlzIGZvcmNlZCB0byBmaXJlIHRoZSBzYW1lIGFjdGlvbiBhcyB0aGUgYXJyb3cgYnV0dG9uLiAqL1xuXHQmLmNrLXNwbGl0YnV0dG9uX2ZsYXR0ZW4ge1xuXHRcdCY6aG92ZXIsXG5cdFx0Ji5jay1zcGxpdGJ1dHRvbl9vcGVuIHtcblx0XHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbjpub3QoLmNrLWRpc2FibGVkKSxcblx0XHRcdCYgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCk6bm90KDpob3Zlcikge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tb24tYmFja2dyb3VuZCk7XG5cblx0XHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQmLmNrLXNwbGl0YnV0dG9uX29wZW46aG92ZXIge1xuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpLFxuXHRcdFx0JiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3c6bm90KC5jay1kaXNhYmxlZCksXG5cdFx0XHQmID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG4uY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cblx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblxuXHQmIC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXG5cdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uIHtcblx0XHRcdGZsZXgtYmFzaXM6IDUwJTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0JiAuaW1hZ2UsXG5cdCYgLmltYWdlLWlubGluZSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cblx0LyogVXBsb2FkIHByb2dyZXNzIGJhci4gKi9cblx0JiAuaW1hZ2UgLmNrLXByb2dyZXNzLWJhcixcblx0JiAuaW1hZ2UtaW5saW5lIC5jay1wcm9ncmVzcy1iYXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQvKlxuXHQgKiBTbWFsbGVyIGltYWdlcyBzaG91bGQgaGF2ZSB0aGUgaWNvbiBjbG9zZXIgdG8gdGhlIGJvcmRlci5cblx0ICogTWF0Y2ggdGhlIGljb24gcG9zaXRpb24gd2l0aCB0aGUgbGlua2VkIGltYWdlIGluZGljYXRvciBicm91Z2h0IGJ5IHRoZSBsaW5rIGltYWdlIGZlYXR1cmUuXG5cdCAqL1xuXHR0b3A6IG1pbih2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIDYlKTtcblx0cmlnaHQ6IG1pbih2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIDYlKTtcblx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHR6LWluZGV4OiAxO1xuXG5cdCY6OmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXG5cdCY6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCB7XG5cdCYgLmltYWdlIHtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRjbGVhcjogYm90aDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHQvKiBNYWtlIHN1cmUgdGhlcmUgaXMgc29tZSBzcGFjZSBiZXR3ZWVuIHRoZSBjb250ZW50IGFuZCB0aGUgaW1hZ2UuIENlbnRlciBpbWFnZSBieSBkZWZhdWx0LiAqL1xuXHRcdC8qIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgZXF1YWwgdG8gLS1jay1zcGFjaW5nLWxhcmdlIHZhcmlhYmxlIGlmIHVzZWQgaW4gdGhlIGVkaXRvciBjb250ZXh0XG5cdCBcdHRvIGF2b2lkIHRoZSBjb250ZW50IGp1bXBpbmcgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS4gKi9cblx0XHRtYXJnaW46IDAuOWVtIGF1dG87XG5cblx0XHQvKiBNYWtlIHN1cmUgdGhlIGNhcHRpb24gd2lsbCBiZSBkaXNwbGF5ZWQgcHJvcGVybHkgKFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTg3MCkuICovXG5cdFx0bWluLXdpZHRoOiA1MHB4O1xuXG5cdFx0JiBpbWcge1xuXHRcdFx0LyogUHJldmVudCB1bm5lY2Vzc2FyeSBtYXJnaW5zIGNhdXNlZCBieSBsaW5lLWhlaWdodCAoc2VlICM0NCkuICovXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0LyogQ2VudGVyIHRoZSBpbWFnZSBpZiBpdHMgd2lkdGggaXMgc21hbGxlciB0aGFuIHRoZSBjb250ZW50J3Mgd2lkdGguICovXG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblxuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBpbWFnZSBuZXZlciBleGNlZWRzIHRoZSBzaXplIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyIChja2VkaXRvci9ja2VkaXRvcjUtdWkjNjcpLiAqL1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGltYWdlIGlzIG5ldmVyIHNtYWxsZXIgdGhhbiB0aGUgcGFyZW50IGNvbnRhaW5lciAoU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MzAwKS4gKi9cblx0XHRcdG1pbi13aWR0aDogMTAwJTtcblxuXHRcdFx0LyogS2VlcCBwcm9wb3J0aW9ucyBvZiB0aGUgYmxvY2sgaW1hZ2UgaWYgdGhlIGhlaWdodCBpcyBzZXQgYW5kIHRoZSBpbWFnZSBpcyB3aWRlciB0aGFuIHRoZSBlZGl0b3Igd2lkdGguXG5cdFx0XHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTQ1NDIuICovXG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0fVxuXHR9XG5cblx0JiAuaW1hZ2UtaW5saW5lIHtcblx0XHQvKlxuXHRcdCAqIE5vcm1hbGx5LCB0aGUgLmltYWdlLWlubGluZSB3b3VsZCBoYXZlIFwiZGlzcGxheTogaW5saW5lLWJsb2NrXCIgYW5kIFwiaW1nIHsgd2lkdGg6IDEwMCUgfVwiICh0byBmb2xsb3cgdGhlIHdyYXBwZXIgd2hpbGUgcmVzaXppbmcpLlxuXHRcdCAqIFVuZm9ydHVuYXRlbHksIHRvZ2V0aGVyIHdpdGggXCJzcmNzZXRcIiwgaXQgZ2V0cyBhdXRvbWF0aWNhbGx5IHN0cmV0Y2hlZCB1cCB0byB0aGUgd2lkdGggb2YgdGhlIGVkaXRpbmcgcm9vdC5cblx0XHQgKiBUaGlzIHN0cmFuZ2UgYmVoYXZpb3IgZG9lcyBub3QgaGFwcGVuIHdpdGggaW5saW5lLWZsZXguXG5cdFx0ICovXG5cdFx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cblx0XHQvKiBXaGlsZSBiZWluZyByZXNpemVkLCBkb24ndCBhbGxvdyB0aGUgaW1hZ2UgdG8gZXhjZWVkIHRoZSB3aWR0aCBvZiB0aGUgZWRpdGluZyByb290LiAqL1xuXHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdC8qIFRoaXMgaXMgcmVxdWlyZWQgYnkgU2FmYXJpIHRvIHJlc2l6ZSBpbWFnZXMgaW4gYSBzZW5zaWJsZSB3YXkuIFdpdGhvdXQgdGhpcywgdGhlIGJyb3dzZXIgYnJlYWtzIHRoZSByYXRpby4gKi9cblx0XHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuXHRcdC8qIFdoZW4gdGhlIHBpY3R1cmUgaXMgcHJlc2VudCBpdCBtdXN0IGFjdCBhcyBhIGZsZXggY29udGFpbmVyIHRvIGxldCB0aGUgaW1nIHJlc2l6ZSBwcm9wZXJseSAqL1xuXHRcdCYgcGljdHVyZSB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdH1cblxuXHRcdC8qIFdoZW4gdGhlIHBpY3R1cmUgaXMgcHJlc2VudCwgaXQgbXVzdCBhY3QgbGlrZSBhIHJlc2l6YWJsZSBpbWcuICovXG5cdFx0JiBwaWN0dXJlLFxuXHRcdCYgaW1nIHtcblx0XHRcdC8qIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciB0aGUgaW1nIHRvIHNwYW4gdGhlIGVudGlyZSAuaW1hZ2UtaW5saW5lIHdyYXBwZXIgYW5kIHRvIHJlc2l6ZSBwcm9wZXJseS4gKi9cblx0XHRcdGZsZXgtZ3JvdzogMTtcblx0XHRcdGZsZXgtc2hyaW5rOiAxO1xuXG5cdFx0XHQvKiBQcmV2ZW50cyBvdmVyZmxvd2luZyB0aGUgZWRpdGluZyByb290IGJvdW5kYXJpZXMgd2hlbiBhbiBpbmxpbmUgaW1hZ2UgaXMgdmVyeSB3aWRlLiAqL1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdH1cblx0fVxufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdC8qXG5cdCAqIEluaGVydGl0IHRoZSBjb250ZW50IHN0eWxlcyBwYWRkaW5nIG9mIHRoZSA8ZmlnY2FwdGlvbj4gaW4gY2FzZSB0aGUgaW50ZWdyYXRpb24gb3ZlcnJpZGVzIGB0ZXh0LWFsaWduOiBjZW50ZXJgXG5cdCAqIG9mIGAuaW1hZ2VgIChlLmcuIHRvIHRoZSBsZWZ0L3JpZ2h0KS4gVGhpcyBlbnN1cmVzIHRoZSBwbGFjZWhvbGRlciBzdGF5cyBhdCB0aGUgcGFkZGluZyBqdXN0IGxpa2UgdGhlIG5hdGl2ZVxuXHQgKiBjYXJldCBkb2VzLCBhbmQgbm90IGF0IHRoZSBlZGdlIG9mIDxmaWdjYXB0aW9uPi5cblx0ICovXG5cdCYgLmltYWdlID4gZmlnY2FwdGlvbi5jay1wbGFjZWhvbGRlcjo6YmVmb3JlIHtcblx0XHRwYWRkaW5nLWxlZnQ6IGluaGVyaXQ7XG5cdFx0cGFkZGluZy1yaWdodDogaW5oZXJpdDtcblxuXHRcdC8qXG5cdFx0ICogTWFrZSBzdXJlIHRoZSBpbWFnZSBjYXB0aW9uIHBsYWNlaG9sZGVyIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIHBsYWNlaG9sZGVyIGFyZWEuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxNjIuXG5cdFx0ICovXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR9XG5cblx0Lypcblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE1MTE1LlxuXHQgKi9cblx0JiAuaW1hZ2Uge1xuXHRcdHotaW5kZXg6IDE7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgc2VsZWN0ZWQgaW1hZ2UgYWx3YXlzIHN0YXlzIG9uIHRvcCBvZiBpdHMgc2libGluZ3MuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxMDguXG5cdFx0ICovXG5cdFx0Ji5jay13aWRnZXRfc2VsZWN0ZWQge1xuXHRcdFx0ei1pbmRleDogMjtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTUxMTUuXG5cdCAqL1xuXHQmIC5pbWFnZS1pbmxpbmUge1xuXHRcdHotaW5kZXg6IDE7XG5cblx0XHQvKlxuXHRcdCAqIE1ha2Ugc3VyZSB0aGUgc2VsZWN0ZWQgaW5saW5lIGltYWdlIGFsd2F5cyBzdGF5cyBvbiB0b3Agb2YgaXRzIHNpYmxpbmdzLlxuXHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTA4LlxuXHRcdCAqL1xuXHRcdCYuY2std2lkZ2V0X3NlbGVjdGVkIHtcblx0XHRcdHotaW5kZXg6IDI7XG5cblx0XHRcdC8qXG5cdFx0XHQgKiBNYWtlIHN1cmUgdGhlIG5hdGl2ZSBicm93c2VyIHNlbGVjdGlvbiBzdHlsZSBpcyBub3QgZGlzcGxheWVkLlxuXHRcdFx0ICogSW5saW5lIGltYWdlIHdpZGdldHMgaGF2ZSB0aGVpciBvd24gc3R5bGVzIGZvciB0aGUgc2VsZWN0ZWQgc3RhdGUgYW5kXG5cdFx0XHQgKiBsZWF2aW5nIHRoaXMgdXAgdG8gdGhlIGJyb3dzZXIgaXMgYXNraW5nIGZvciBhIHZpc3VhbCBjb2xsaXNpb24uXG5cdFx0XHQgKi9cblx0XHRcdCYgOjpzZWxlY3Rpb24ge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qIEtlZXAgcHJvcG9ydGlvbnMgb2YgdGhlIGlubGluZSBpbWFnZSBpZiB0aGUgaGVpZ2h0IGlzIHNldCBhbmQgdGhlIGltYWdlIGlzIHdpZGVyIHRoYW4gdGhlIGVkaXRvciB3aWR0aC5cblx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE0NTQyLiAqL1xuXHQmIC5pbWFnZS1pbmxpbmUgaW1nIHtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cblxuXHQvKiBUaGUgaW5saW5lIGltYWdlIG5lc3RlZCBpbiB0aGUgdGFibGUgc2hvdWxkIGhhdmUgaXRzIG9yaWdpbmFsIHNpemUgaWYgbm90IHJlc2l6ZWQuXG5cdFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTE3LiAqL1xuXHQmIHRkLFxuXHQmIHRoIHtcblx0XHQmIC5pbWFnZS1pbmxpbmUgaW1nIHtcblx0XHRcdG1heC13aWR0aDogbm9uZTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0JiBpbWcuaW1hZ2VfcGxhY2Vob2xkZXIge1xuXHRcdGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSB7XG5cdC8qIExpbmtlZCBpbWFnZSBpbmRpY2F0b3IgKi9cblx0JiBmaWd1cmUuaW1hZ2UgPiBhLFxuXHQmIGEgc3Bhbi5pbWFnZS1pbmxpbmUge1xuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblx0fVxufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcblxuLmNrLmNrLWxpbmstYWN0aW9ucyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXG5cdCYgLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdFx0JiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdH1cblx0fVxuXG5cdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXG5cdFx0JiAuY2stbGluay1hY3Rpb25zX19wcmV2aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uOm5vdCguY2stbGluay1hY3Rpb25zX19wcmV2aWV3KSB7XG5cdFx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX3J3ZC5jc3NcIjtcblxuLmNrLmNrLWxpbmstZm9ybSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG5cdCYgLmNrLWxhYmVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0QG1peGluIGNrLW1lZGlhLXBob25lIHtcblx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0XHQmIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHR9XG5cblx0XHQmIC5jay1idXR0b24ge1xuXHRcdFx0ZmxleC1iYXNpczogNTAlO1xuXHRcdH1cblx0fVxufVxuXG4vKlxuICogU3R5bGUgbGluayBmb3JtIGRpZmZlcmVudGx5IHdoZW4gbWFudWFsIGRlY29yYXRvcnMgYXJlIGF2YWlsYWJsZS5cbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1saW5rL2lzc3Vlcy8xODYuXG4gKi9cbi5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cblx0Lypcblx0ICogV2hldGhlciB0aGUgZm9ybSBpcyBpbiB0aGUgcmVzcG9uc2l2ZSBtb2RlIG9yIG5vdCwgaWYgdGhlcmUgYXJlIGRlY29yYXRvciBidXR0b25zXG5cdCAqIGtlZXAgdGhlIHRvcCBtYXJnaW4gb2YgYWN0aW9uIGJ1dHRvbnMgbWVkaXVtLlxuXHQgKi9cblx0JiAuY2stYnV0dG9uIHtcblx0XHQmLmNrLWJ1dHRvbi1zYXZlLFxuXHRcdCYuY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stZWRpdG9yX19lZGl0YWJsZSAuY2stbGlzdC1ib2d1cy1wYXJhZ3JhcGgge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1saXN0LXN0eWxlcy1saXN0IHtcblx0ZGlzcGxheTogZ3JpZDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IG9sIHtcblx0bGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuXG5cdCYgb2wge1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItbGF0aW47XG5cblx0XHQmIG9sIHtcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47XG5cblx0XHRcdCYgb2wge1xuXHRcdFx0XHRsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLWxhdGluO1xuXG5cdFx0XHRcdCYgb2wge1xuXHRcdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogdXBwZXItcm9tYW47XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmNrLWNvbnRlbnQgdWwge1xuXHRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG5cblx0JiB1bCB7XG5cdFx0bGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7XG5cblx0XHQmIHVsIHtcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlO1xuXG5cdFx0XHQmIHVsIHtcblx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplOiAxNnB4O1xufVxuXG5AZGVmaW5lLW1peGluIHRvZG8tbGlzdC1jaGVja2JveCB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSk7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cblx0LyogTmVlZGVkIG9uIGlPUyAqL1xuXHRib3JkZXI6IDA7XG5cblx0LyogTFRSIHN0eWxlcyAqL1xuXHRsZWZ0OiAtMjVweDtcblx0bWFyZ2luLXJpZ2h0OiAtMTVweDtcblx0cmlnaHQ6IDA7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXG5cdC8qIFJUTCBzdHlsZXMgKi9cblx0W2Rpcj1ydGxdJiB7XG5cdFx0bGVmdDogMDtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0cmlnaHQ6IC0yNXB4O1xuXHRcdG1hcmdpbi1sZWZ0OiAtMTVweDtcblx0fVxuXG5cdCY6OmJlZm9yZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkIGhzbCgwLCAwJSwgMjAlKTtcblx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0dHJhbnNpdGlvbjogMjUwbXMgZWFzZS1pbi1vdXQgYm94LXNoYWRvdztcblxuXHRcdEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG5cdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdH1cblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0Y29udGVudDogJyc7XG5cblx0XHQvKiBDYWxjdWxhdGUgdGljayBwb3NpdGlvbiwgc2l6ZSBhbmQgYm9yZGVyLXdpZHRoIHByb3BvcnRpb25hbCB0byB0aGUgY2hlY2ttYXJrIHNpemUuICovXG5cdFx0bGVmdDogY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDMgKTtcblx0XHR0b3A6IGNhbGMoIHZhcigtLWNrLXRvZG8tbGlzdC1jaGVja21hcmstc2l6ZSkgLyA1LjMgKTtcblx0XHR3aWR0aDogY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDUuMyApO1xuXHRcdGhlaWdodDogY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDIuNiApO1xuXHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItd2lkdGg6IDAgY2FsYyggdmFyKC0tY2stdG9kby1saXN0LWNoZWNrbWFyay1zaXplKSAvIDggKSBjYWxjKCB2YXIoLS1jay10b2RvLWxpc3QtY2hlY2ttYXJrLXNpemUpIC8gOCApIDA7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHR9XG5cblx0JltjaGVja2VkXSB7XG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdGJhY2tncm91bmQ6IGhzbCgxMjYsIDY0JSwgNDElKTtcblx0XHRcdGJvcmRlci1jb2xvcjogaHNsKDEyNiwgNjQlLCA0MSUpO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0XHR9XG5cdH1cbn1cblxuLypcbiAqIFRvLWRvIGxpc3QgY29udGVudCBzdHlsZXMuXG4gKi9cbi5jay1jb250ZW50IC50b2RvLWxpc3Qge1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXG5cdCYgbGkge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cblx0XHQmIC50b2RvLWxpc3Qge1xuXHRcdFx0bWFyZ2luLXRvcDogNXB4O1xuXHRcdH1cblx0fVxuXG5cdCYgLnRvZG8tbGlzdF9fbGFiZWwge1xuXHRcdCYgPiBpbnB1dCB7XG5cdFx0XHRAbWl4aW4gdG9kby1saXN0LWNoZWNrYm94O1xuXHRcdH1cblxuXHRcdCYgLnRvZG8tbGlzdF9fbGFiZWxfX2Rlc2NyaXB0aW9uIHtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0fVxuXG5cdFx0Ji50b2RvLWxpc3RfX2xhYmVsX3dpdGhvdXQtZGVzY3JpcHRpb24gaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblx0fVxufVxuXG4vKlxuICogVG8tZG8gbGlzdCBlZGl0aW5nIHZpZXcgc3R5bGVzLlxuICovXG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb250ZW50IC50b2RvLWxpc3QgLnRvZG8tbGlzdF9fbGFiZWwge1xuXHQvKlxuXHQgKiBUby1kbyBsaXN0IHNob3VsZCBiZSBpbnRlcmFjdGl2ZSBvbmx5IGR1cmluZyB0aGUgZWRpdGluZ1xuXHQgKiAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMjA5MCkuXG5cdCAqL1xuXHQmID4gaW5wdXQsXG5cdCYgPiBzcGFuW2NvbnRlbnRlZGl0YWJsZT1mYWxzZV0gPiBpbnB1dCB7XG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0Jjpob3Zlcjo6YmVmb3JlIHtcblx0XHRcdGJveC1zaGFkb3c6IDAgMCAwIDVweCBoc2xhKDAsIDAlLCAwJSwgMC4xKTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBEb2N1bWVudCBMaXN0cyAtIGVkaXRpbmcgdmlldyBoYXMgYW4gYWRkaXRpb25hbCBzcGFuIGFyb3VuZCBjaGVja2JveC5cblx0ICovXG5cdCYgPiBzcGFuW2NvbnRlbnRlZGl0YWJsZT1mYWxzZV0gPiBpbnB1dCB7XG5cdFx0QG1peGluIHRvZG8tbGlzdC1jaGVja2JveDtcblx0fVxuXG5cdCYudG9kby1saXN0X19sYWJlbF93aXRob3V0LWRlc2NyaXB0aW9uIHtcblx0XHQmIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay1jb250ZW50IC5tZWRpYSB7XG5cdC8qIERvbid0IGFsbG93IGZsb2F0ZWQgY29udGVudCBvdmVybGFwIHRoZSBtZWRpYS5cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9pc3N1ZXMvNTMgKi9cblx0Y2xlYXI6IGJvdGg7XG5cblx0LyogTWFrZSBzdXJlIHRoZXJlIGlzIHNvbWUgc3BhY2UgYmV0d2VlbiB0aGUgY29udGVudCBhbmQgdGhlIG1lZGlhLiAqL1xuXHQvKiBUaGUgZmlyc3QgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIC0tY2stc3BhY2luZy1sYXJnZSB2YXJpYWJsZSBpZiB1c2VkIGluIHRoZSBlZGl0b3IgY29udGV4dFxuXHR0byBhdm9pZCB0aGUgY29udGVudCBqdW1waW5nIChTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTgyNSkuICovXG5cdG1hcmdpbjogMC45ZW0gMDtcblxuXHQvKiBNYWtlIHN1cmUgbWVkaWEgaXMgbm90IG92ZXJyaWRlbiB3aXRoIEJvb3RzdHJhcCBkZWZhdWx0IGBmbGV4YCB2YWx1ZS5cblx0U2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMzczLiAqL1xuXHRkaXNwbGF5OiBibG9jaztcblxuXHQvKiBHaXZlIHRoZSBtZWRpYSBzb21lIG1pbmltYWwgd2lkdGggaW4gdGhlIGNvbnRlbnQgdG8gcHJldmVudCB0aGVtXG5cdGZyb20gYmVpbmcgXCJzcXVhc2hlZFwiIGluIHRpZ2h0IHNwYWNlcywgZS5nLiBpbiB0YWJsZSBjZWxscyAoIzQ0KSAqL1xuXHRtaW4td2lkdGg6IDE1ZW07XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stbWVkaWFfX3dyYXBwZXIge1xuXHQmIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdFx0JiAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmwge1xuXHRcdFx0LyogT3RoZXJ3aXNlIHRoZSBVUkwgd2lsbCBvdmVyZmxvdyB3aGVuIHRoZSBjb250ZW50IGlzIHZlcnkgbmFycm93LiAqL1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0JltkYXRhLW9lbWJlZC11cmwqPVwidHdpdHRlci5jb21cIl0sXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cImdvb2dsZS5jb20vbWFwc1wiXSxcblx0JltkYXRhLW9lbWJlZC11cmwqPVwiZ29vLmdsL21hcHNcIl0sXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cIm1hcHMuZ29vZ2xlLmNvbVwiXSxcblx0JltkYXRhLW9lbWJlZC11cmwqPVwibWFwcy5hcHAuZ29vLmdsXCJdLFxuXHQmW2RhdGEtb2VtYmVkLXVybCo9XCJmYWNlYm9vay5jb21cIl0sXG5cdCZbZGF0YS1vZW1iZWQtdXJsKj1cImluc3RhZ3JhbS5jb21cIl0ge1xuXHRcdCYgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAqIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cbi8qIERpc2FibGUgYWxsIG1vdXNlIGludGVyYWN0aW9uIGFzIGxvbmcgYXMgdGhlIGVkaXRvciBpcyBub3QgcmVhZOKAk29ubHkuXG4gICBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkL2lzc3Vlcy81OCAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1yZWFkLW9ubHkpIC5jay1tZWRpYV9fd3JhcHBlciA+ICo6bm90KC5jay1tZWRpYV9fcGxhY2Vob2xkZXIpIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIERpc2FibGUgYWxsIG1vdXNlIGludGVyYWN0aW9uIHdoZW4gdGhlIHdpZGdldCBpcyBub3Qgc2VsZWN0ZWQgKGUuZy4gdG8gYXZvaWQgb3BlbmluZyBsaW5rcyBieSBhY2NpZGVudCkuXG4gICBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkL2lzc3Vlcy8xOCAqL1xuLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1yZWFkLW9ubHkpIC5jay13aWRnZXQ6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fcndkLmNzc1wiO1xuXG4uY2stdmVydGljYWwtZm9ybSAuY2stYnV0dG9uIHtcblx0Jjo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0d2lkdGg6IDA7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHJpZ2h0OiAtMXB4O1xuXHRcdHRvcDogLTFweDtcblx0XHRib3R0b206IC0xcHg7XG5cdFx0ei1pbmRleDogMTtcblx0fVxuXG5cdCY6Zm9jdXM6OmFmdGVyIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi5jay5jay1yZXNwb25zaXZlLWZvcm0ge1xuXHRAbWl4aW4gY2stbWVkaWEtcGhvbmUge1xuXHRcdCYgLmNrLWJ1dHRvbiB7XG5cdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRcdHdpZHRoOiAwO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHJpZ2h0OiAtMXB4O1xuXHRcdFx0XHR0b3A6IC0xcHg7XG5cdFx0XHRcdGJvdHRvbTogLTFweDtcblx0XHRcdFx0ei1pbmRleDogMTtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1czo6YWZ0ZXIge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdWkvdGhlbWUvbWl4aW5zL19yd2QuY3NzXCI7XG5cbi5jay5jay1tZWRpYS1mb3JtIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHR3aWR0aDogNDAwcHg7XG5cblx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQmIC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdCYgLmNrLWlucHV0IHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxuXG5cdEBtaXhpbiBjay1tZWRpYS1waG9uZSB7XG5cdFx0ZmxleC13cmFwOiB3cmFwO1xuXG5cdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG5cdFx0JiAuY2stYnV0dG9uIHtcblx0XHRcdGZsZXgtYmFzaXM6IDUwJTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1tZW50aW9uLWxpc3QtbWF4LWhlaWdodDogMzAwcHg7XG59XG5cbi5jay5jay1tZW50aW9ucyB7XG5cdG1heC1oZWlnaHQ6IHZhcigtLWNrLW1lbnRpb24tbGlzdC1tYXgtaGVpZ2h0KTtcblxuXHRvdmVyZmxvdy15OiBhdXRvO1xuXG5cdC8qIFByZXZlbnQgdW5uZWNlc3NhcnkgaG9yaXpvbnRhbCBzY3JvbGxiYXIgaW4gU2FmYXJpXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbWVudGlvbi9pc3N1ZXMvNDEgKi9cblx0b3ZlcmZsb3cteDogaGlkZGVuO1xuXG5cdG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG5cblx0LyogUHJldmVudCB1bm5lY2Vzc2FyeSB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gU2FmYXJpXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbWVudGlvbi9pc3N1ZXMvNDEgKi9cblx0JiA+IC5jay1saXN0X19pdGVtIHtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdGZsZXgtc2hyaW5rOiAwO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItbWluaW1hcC10cmFja2VyLWJhY2tncm91bmQ6IDIwOCwgMCUsIDUxJTtcblx0LS1jay1jb2xvci1taW5pbWFwLWlmcmFtZS1vdXRsaW5lOiBoc2woMGRlZyAwJSA3NSUpO1xuXHQtLWNrLWNvbG9yLW1pbmltYXAtaWZyYW1lLXNoYWRvdzogaHNsKDBkZWcgMCUgMCUgLyAxMSUpO1xuXHQtLWNrLWNvbG9yLW1pbmltYXAtcHJvZ3Jlc3MtYmFja2dyb3VuZDogaHNsKDAsMCUsNDAlKTtcbn1cblxuLmNrLmNrLW1pbmltYXAge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdCYsXG5cdCYgaWZyYW1lIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdH1cblxuXHQmIGlmcmFtZSB7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItbWluaW1hcC1pZnJhbWUtb3V0bGluZSk7XG5cdFx0Ym94LXNoYWRvdzogMCAycHggNXB4IHZhcigtLWNrLWNvbG9yLW1pbmltYXAtaWZyYW1lLXNoYWRvdyk7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0JiAuY2suY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlciB7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHRvcDogMDtcblx0XHRiYWNrZ3JvdW5kOiBoc2xhKCB2YXIoLS1jay1jb2xvci1taW5pbWFwLXRyYWNrZXItYmFja2dyb3VuZCksIC4yICk7XG5cdFx0ei1pbmRleDogMTtcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDEwMG1zIGVhc2UtaW4tb3V0O1xuXG5cblx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0dHJhbnNpdGlvbjogbm9uZTtcblx0XHR9XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6aHNsYSggdmFyKC0tY2stY29sb3ItbWluaW1hcC10cmFja2VyLWJhY2tncm91bmQpLCAuMyApO1xuXHRcdH1cblxuXHRcdCYuY2stbWluaW1hcF9fcG9zaXRpb24tdHJhY2tlcl9kcmFnZ2luZyxcblx0XHQmLmNrLW1pbmltYXBfX3Bvc2l0aW9uLXRyYWNrZXJfZHJhZ2dpbmc6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDpoc2xhKCB2YXIoLS1jay1jb2xvci1taW5pbWFwLXRyYWNrZXItYmFja2dyb3VuZCksIC40ICk7XG5cblx0XHRcdCY6OmFmdGVyIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBhdHRyKGRhdGEtcHJvZ3Jlc3MpIFwiJVwiO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1cHg7XG5cdFx0XHRyaWdodDogNXB4O1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbWluaW1hcC1wcm9ncmVzcy1iYWNrZ3JvdW5kKTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0XHRcdHBhZGRpbmc6IDJweCA0cHg7XG5cdFx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAxMDBtcyBlYXNlLWluLW91dDtcblxuXG5cdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2stY29udGVudCAucGFnZS1icmVhayB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0Y2xlYXI6IGJvdGg7XG5cdHBhZGRpbmc6IDVweCAwO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuXHQmOjphZnRlciB7XG5cdFx0Y29udGVudDogJyc7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGJvcmRlci1ib3R0b206IDJweCBkYXNoZWQgaHNsKDAsIDAlLCA3NyUpO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG59XG5cbi5jay1jb250ZW50IC5wYWdlLWJyZWFrX19sYWJlbCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTtcblx0cGFkZGluZzogLjNlbSAuNmVtO1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Ym9yZGVyOiAxcHggc29saWQgaHNsKDAsIDAlLCA3NyUpO1xuXHRib3JkZXItcmFkaXVzOiAycHg7XG5cdGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBUYWhvbWEsIFZlcmRhbmEsIFNhbnMtU2VyaWY7XG5cdGZvbnQtc2l6ZTogMC43NWVtO1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0Y29sb3I6IGhzbCgwLCAwJSwgMjAlKTtcblx0YmFja2dyb3VuZDogaHNsKDAsIDAlLCAxMDAlKTtcblx0Ym94LXNoYWRvdzogMnB4IDJweCAxcHggaHNsYSgwLCAwJSwgMCUsIDAuMTUpO1xuXG5cdC8qIERpc2FibGUgdGhlIHBvc3NpYmlsaXR5IHRvIHNlbGVjdCB0aGUgbGFiZWwgdGV4dCBieSB0aGUgdXNlci4gKi9cblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLyogRG8gbm90IHNob3cgdGhlIHBhZ2UgYnJlYWsgZWxlbWVudCBpbnNpZGUgdGhlIHByaW50IHByZXZpZXcgd2luZG93LiAqL1xuQG1lZGlhIHByaW50IHtcblx0LmNrLWNvbnRlbnQgLnBhZ2UtYnJlYWsge1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdC8qXG5cdCAqIEZyb20gdGltZSB0byB0aW1lIHBsYWNpbmcgcGFnZS1icmVhayBkaXJlY3RseSBhZnRlciBhIGJsb2NrIGVsZW1lbnQgd2l0aCBtYXJnaW4gY2F1c2VzIGFwcGVuZGluZyBhIG5ldyBibGFuayBwYWdlIGluIHBhZ2luYXRpb24gbW9kZS5cblx0ICogUmVtb3ZpbmcgbWFyZ2luLWJvdHRvbSBmcm9tIHRoZSBibG9jayBlbGVtZW50IGZpeGVzIHRoYXQgaXNzdWUgYW5kIHRoZSBtYXJnaW4gaXMgbm90IGJlaW5nIG1vdmVkIHRvIHRoZSBuZXh0IGJsYW5rIHBhZ2UuXG5cdCAqXG5cdCAqIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIHBhZ2luYXRpb24gcGx1Z2lucy5cblx0ICovXG5cdC5jay1jb250ZW50ICo6aGFzKCsgLnBhZ2UtYnJlYWspIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX2Rpci5jc3NcIjtcblxuOnJvb3Qge1xuXHQtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcjogaHNsKDAsIDAlLCA0NiUpO1xufVxuXG5AZGVmaW5lLW1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZC1sdHIgJHRleHQge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHdpZHRoPScxMjAnIGhlaWdodD0nMTInIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgPjx0ZXh0IHN0eWxlPSdwYWludC1vcmRlcjpzdHJva2UgZmlsbDsgY2xpcC1wYXRoOiBpbnNldCgtM3B4KScgc3Ryb2tlPSclMjNFQUVBRUEnIHN0cm9rZS13aWR0aD0nMTMnIGRvbWluYW50LWJhc2VsaW5lPSdtaWRkbGUnIGZpbGw9J2JsYWNrJyB4PSczJyB5PSc3JyBmb250LXNpemU9JzlweCcgZm9udC1mYW1pbHk9J0NvbnNvbGFzLCAlMjJMdWNpZGEgQ29uc29sZSUyMiwgJTIyTHVjaWRhIFNhbnMgVHlwZXdyaXRlciUyMiwgJTIyRGVqYVZ1IFNhbnMgTW9ubyUyMiwgJTIyQml0c3RyZWFtIFZlcmEgU2FucyBNb25vJTIyLCAlMjJMaWJlcmF0aW9uIE1vbm8lMjIsIE1vbmFjbywgJTIyQ291cmllciBOZXclMjIsIENvdXJpZXIsIG1vbm9zcGFjZSc+JCh0ZXh0KTwvdGV4dD48L3N2Zz5cIik7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IDFweCAxcHg7XG59XG5cbkBkZWZpbmUtbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kLXJ0bCAkdGV4dCB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyA+PHRleHQgc3R5bGU9J3BhaW50LW9yZGVyOnN0cm9rZSBmaWxsOyBjbGlwLXBhdGg6IGluc2V0KC0zcHgpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC0ycHgsIDApJyBzdHJva2U9JyUyM0VBRUFFQScgc3Ryb2tlLXdpZHRoPScxMycgZG9taW5hbnQtYmFzZWxpbmU9J21pZGRsZScgZmlsbD0nYmxhY2snIHg9JzEwMCUnIHRleHQtYW5jaG9yPSdlbmQnIHk9JzcnIGZvbnQtc2l6ZT0nOXB4JyBmb250LWZhbWlseT0nQ29uc29sYXMsICUyMkx1Y2lkYSBDb25zb2xlJTIyLCAlMjJMdWNpZGEgU2FucyBUeXBld3JpdGVyJTIyLCAlMjJEZWphVnUgU2FucyBNb25vJTIyLCAlMjJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm8lMjIsICUyMkxpYmVyYXRpb24gTW9ubyUyMiwgTW9uYWNvLCAlMjJDb3VyaWVyIE5ldyUyMiwgQ291cmllciwgbW9ub3NwYWNlJz4kKHRleHQpPC90ZXh0Pjwvc3ZnPlwiKTtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gMXB4KSAxcHg7XG59XG5cbkBkZWZpbmUtbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kICR0ZXh0IHtcblx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0cGFkZGluZy10b3A6IDE1cHg7XG5cblx0LyogRml4IGZvciBNdWx0aS1yb290IGVkaXRvclxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNTk2OSAqL1xuXHRbZGlyPWx0cl0gJiB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZC1sdHIgJHRleHQ7XG5cdH1cblx0W2Rpcj1ydGxdICYge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQtcnRsICR0ZXh0O1xuXHR9XG5cblx0Jjpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCk6bm90KC5jay13aWRnZXQ6aG92ZXIpIHtcblx0XHRvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLWNrLXNob3ctYmxvY2tzLWJvcmRlci1jb2xvcik7XG5cdH1cblxuXHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZC1sdHIgJHRleHQ7XG5cdH1cblx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQtcnRsICR0ZXh0O1xuXHR9XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lLmNrLXNob3ctYmxvY2tzOm5vdCguY2std2lkZ2V0KSB7XG5cdCYgYWRkcmVzcyB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBBRERSRVNTO1xuXHR9XG5cblx0JiBhc2lkZSB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBBU0lERTtcblx0fVxuXG5cdCYgYmxvY2txdW90ZSB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBCTE9DS1FVT1RFO1xuXHR9XG5cblx0JiBkZXRhaWxzIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIERFVEFJTFM7XG5cdH1cblxuXHQmIGRpdjpub3QoLmNrLXdpZGdldCwgLmNrLXdpZGdldCAqKSB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBESVY7XG5cdH1cblxuXHQmIGZvb3RlciB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBGT09URVI7XG5cdH1cblxuXHQmIGgxIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEgxO1xuXHR9XG5cblx0JiBoMiB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBIMjtcblx0fVxuXG5cdCYgaDMge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgSDM7XG5cdH1cblxuXHQmIGg0IHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEg0O1xuXHR9XG5cblx0JiBoNSB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBINTtcblx0fVxuXG5cdCYgaDYge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgSDY7XG5cdH1cblxuXHQmIGhlYWRlciB7XG5cdFx0QG1peGluIGJsb2NrLW5hbWUtYmFja2dyb3VuZCBIRUFERVI7XG5cdH1cblxuXHQmIG1haW4ge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgTUFJTjtcblx0fVxuXG5cdCYgbmF2IHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIE5BVjtcblx0fVxuXG5cdCYgcHJlIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIFBSRTtcblx0fVxuXG5cdCYgb2wge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgT0w7XG5cdH1cblxuXHQmIHVsIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIFVMO1xuXHR9XG5cblx0JiBwIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIFA7XG5cdH1cblxuXHQmIHNlY3Rpb24ge1xuXHRcdEBtaXhpbiBibG9jay1uYW1lLWJhY2tncm91bmQgU0VDVElPTjtcblx0fVxuXG5cdCYgOndoZXJlKGZpZ3VyZS5pbWFnZSwgZmlndXJlLnRhYmxlKSBmaWdjYXB0aW9uIHtcblx0XHRAbWl4aW4gYmxvY2stbmFtZS1iYWNrZ3JvdW5kIEZJR0NBUFRJT047XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvdGhlbWUvbWl4aW5zL19yb3VuZGVkLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9taXhpbnMvX2ZvY3VzLmNzc1wiO1xuQGltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay90aGVtZS9taXhpbnMvX3NoYWRvdy5jc3NcIjtcblxuLmNrLXNvdXJjZS1lZGl0aW5nLWFyZWEge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5jay1zb3VyY2UtZWRpdGluZy1hcmVhOjphZnRlcixcbi5jay1zb3VyY2UtZWRpdGluZy1hcmVhIHRleHRhcmVhIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdG1hcmdpbjogMDtcblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKTtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtbm9ybWFsKTtcblx0Zm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcblx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xufVxuXG4uY2stc291cmNlLWVkaXRpbmctYXJlYTo6YWZ0ZXIge1xuXHRjb250ZW50OiBhdHRyKGRhdGEtdmFsdWUpIFwiIFwiO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY2stc291cmNlLWVkaXRpbmctYXJlYSB0ZXh0YXJlYSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0cmVzaXplOiBub25lO1xuXHRvdXRsaW5lOiBub25lO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG5cdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdEBtaXhpbiBjay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cdH1cblxuXHQmOm5vdChbcmVhZG9ubHldKTpmb2N1cyB7XG5cdFx0QG1peGluIGNrLWZvY3VzLXJpbmc7XG5cdFx0QG1peGluIGNrLWJveC1zaGFkb3cgdmFyKC0tY2staW5uZXItc2hhZG93KTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cbkBkZWZpbmUtbWl4aW4gY2stZm9jdXMtcmluZyB7XG5cdC8qIERpc2FibGUgbmF0aXZlIG91dGxpbmUuICovXG5cdG91dGxpbmU6IG5vbmU7XG5cdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZylcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1jaGFyYWN0ZXItZ3JpZCB7XG5cdG1heC13aWR0aDogMTAwJTtcblxuXHQmIC5jay1jaGFyYWN0ZXItZ3JpZF9fdGlsZXMge1xuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1jaGFyYWN0ZXItaW5mbyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi8qXG4gKiBOb3RlOiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIHdpcmVmcmFtZSBzdHlsZXMgb25seS4gQnV0IHNpbmNlIHRoZXJlIGFyZSBubyBzdWNoIHN0eWxlcyxcbiAqIGl0IGFjdHMgYXMgYSBtZXNzYWdlIHRvIHRoZSBidWlsZGVyIHRlbGxpbmcgdGhhdCBpdCBzaG91bGQgbG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGVzXG4gKiAqKmluIHRoZSB0aGVtZSoqIHdoZW4gY29tcGlsaW5nIHRoZSBlZGl0b3IuXG4gKi9cblxuLmNrLmNrLXNwZWNpYWwtY2hhcmFjdGVycyB7XG5cdCYgPiAuY2stZGlhbG9nX19jb250ZW50ID4gZGl2IHtcblx0XHR3aWR0aDogMzUwcHg7XG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblxuXHRcdGRpc3BsYXk6IGdyaWQ7XG5cdFx0Z3JpZC1jb2x1bW4tZ2FwOiAwcHg7XG5cdFx0Z3JpZC1yb3ctZ2FwOiAwcHg7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cdFx0Z3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmciBhdXRvO1xuXG5cdFx0JiA+IC5jay1jaGFyYWN0ZXItY2F0ZWdvcmllcyB7XG5cdFx0XHRncmlkLWFyZWE6IDEgLyAxIC8gMiAvIDI7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cblx0XHRcdCYgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdFx0cGFkZGluZy10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0XHQmIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0XHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0XHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1taW4tZXJyb3Itd2lkdGgpO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0XHRcdC8qIFRoZSBhcnJvdyBwb2ludGluZyB0b3dhcmRzIHRoZSBmaWVsZC4gKi9cblx0XHRcdFx0XHQmOjphZnRlciB7XG5cdFx0XHRcdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpIHRyYW5zcGFyZW50O1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXdpZHRoOiAwIHZhcigtLWNrLXRhYmxlLXByb3BlcnRpZXMtZXJyb3ItYXJyb3ctc2l6ZSkgdmFyKC0tY2stdGFibGUtcHJvcGVydGllcy1lcnJvci1hcnJvdy1zaXplKSB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpO1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRhbmltYXRpb246IGNrLXRhYmxlLWZvcm0tbGFiZWxlZC12aWV3LXN0YXR1cy1hcHBlYXIgLjE1cyBlYXNlIGJvdGg7XG5cblx0XHRcdFx0XHRAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuXHRcdFx0XHRcdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8qIEhpZGUgdGhlIGVycm9yIGJhbGxvb24gd2hlbiB0aGUgZmllbGQgaXMgYmx1cnJlZC4gTWFrZXMgdGhlIGV4cGVyaWVuY2UgbXVjaCBtb3JlIGNsZWFyLiAqL1xuXHRcdFx0XHQmIC5jay1pbnB1dC5jay1lcnJvcjpub3QoOmZvY3VzKSArIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYgPiAuY2stbGFiZWwge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXRpbnkpO1xuXHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuY2stZHJvcGRvd24ge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cblx0XHRcdFx0JiA+IGJ1dHRvbiB7XG5cdFx0XHRcdFx0Jjpub3QoOmZvY3VzKSB7XG5cdFx0XHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0JiA+IHNwYW4ge1xuXHRcdFx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JiA+IC5jay1jaGFyYWN0ZXItZ3JpZCB7XG5cdFx0XHRncmlkLWFyZWE6IDIgLyAxIC8gMyAvIDI7XG5cdFx0XHRtYXgtaGVpZ2h0OiAyMDBweDtcblx0XHR9XG5cblx0XHQmID4gLmNrLWNoYXJhY3Rlci1pbmZvIHtcblx0XHRcdGdyaWQtYXJlYTogMyAvIDEgLyA0IC8gMjtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1zdHlsZS1wYW5lbC1jb2x1bW5zOiAzO1xufVxuXG4uY2suY2stc3R5bGUtcGFuZWwgLmNrLXN0eWxlLWdyaWQge1xuXHRkaXNwbGF5OiBncmlkO1xuXHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCh2YXIoLS1jay1zdHlsZS1wYW5lbC1jb2x1bW5zKSxhdXRvKTtcblx0anVzdGlmeS1jb250ZW50OiBzdGFydDtcblxuXHQmIC5jay1zdHlsZS1ncmlkX19idXR0b24ge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0XHQmIC5jay1zdHlsZS1ncmlkX19idXR0b25fX3ByZXZpZXcge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRcdGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLWNvbnRlbnQgLnRhYmxlIHtcblx0LyogR2l2ZSB0aGUgdGFibGUgd2lkZ2V0IHNvbWUgYWlyIGFuZCBjZW50ZXIgaXQgaG9yaXpvbnRhbGx5ICovXG5cdC8qIFRoZSBmaXJzdCB2YWx1ZSBzaG91bGQgYmUgZXF1YWwgdG8gLS1jay1zcGFjaW5nLWxhcmdlIHZhcmlhYmxlIGlmIHVzZWQgaW4gdGhlIGVkaXRvciBjb250ZXh0XG5cdHRvIGF2b2lkIHRoZSBjb250ZW50IGp1bXBpbmcgKFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85ODI1KS4gKi9cblx0bWFyZ2luOiAwLjllbSBhdXRvO1xuXHRkaXNwbGF5OiB0YWJsZTtcblxuXHQmIHRhYmxlIHtcblx0XHQvKiBUaGUgdGFibGUgY2VsbHMgc2hvdWxkIGhhdmUgc2xpZ2h0IGJvcmRlcnMgKi9cblx0XHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRcdGJvcmRlci1zcGFjaW5nOiAwO1xuXG5cdFx0LyogVGFibGUgd2lkdGggYW5kIGhlaWdodCBhcmUgc2V0IG9uIHRoZSBwYXJlbnQgPGZpZ3VyZT4uIE1ha2Ugc3VyZSB0aGUgdGFibGUgaW5zaWRlIHN0cmV0Y2hlc1xuXHRcdHRvIHRoZSBmdWxsIGRpbWVuc2lvbnMgb2YgdGhlIGNvbnRhaW5lciAoaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjE4NikuICovXG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXG5cdFx0LyogVGhlIG91dGVyIGJvcmRlciBvZiB0aGUgdGFibGUgc2hvdWxkIGJlIHNsaWdodGx5IGRhcmtlciB0aGFuIHRoZSBpbm5lciBsaW5lcy5cblx0XHRBbHNvIHNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRhYmxlL2lzc3Vlcy81MC4gKi9cblx0XHRib3JkZXI6IDFweCBkb3VibGUgaHNsKDAsIDAlLCA3MCUpO1xuXG5cdFx0JiB0ZCxcblx0XHQmIHRoIHtcblx0XHRcdG1pbi13aWR0aDogMmVtO1xuXHRcdFx0cGFkZGluZzogLjRlbTtcblxuXHRcdFx0LyogVGhlIGJvcmRlciBpcyBpbmhlcml0ZWQgZnJvbSAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUgc3R5bGVzLCBzbyB0aGVvcmV0aWNhbGx5IGl0J3Mgbm90IG5lY2Vzc2FyeSBoZXJlLlxuXHRcdFx0SG93ZXZlciwgdGhlIGJvcmRlciBpcyBhIGNvbnRlbnQgc3R5bGUsIHNvIGl0IHNob3VsZCB1c2UgLmNrLWNvbnRlbnQgKHNvIGl0IHdvcmtzIG91dHNpZGUgdGhlIGVkaXRvcikuXG5cdFx0XHRIZW5jZSwgdGhlIGR1cGxpY2F0aW9uLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjMxNCAqL1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgaHNsKDAsIDAlLCA3NSUpO1xuXHRcdH1cblxuXHRcdCYgdGgge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRiYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCAwJSwgNSUpO1xuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIEV4cGFuZGluZyB0aGUgdGFibGUgdG8gdGhlIGZ1bGwgaGVpZ2h0IG9mIHRoZSBwYXJlbnQgY29udGFpbmVyIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRhYmxlc1xuICogYXJlIHJlbmRlcmVkIGluc2lkZSA8ZmlndXJlPiBlbGVtZW50cywgd2hpY2ggaXMga2luZGEgYnVnZ3kgaW4gdGFibGUgaGVpZ2h0IGNhbGN1bGF0aW9uLlxuICogV2hpbGUgc2V0dGluZyBgaGVpZ2h0OiAxMDAlYCBmaXhlcyB0aGUgaXNzdWUgaW4gdGhlIGVkaXRpbmcgbW9kZSBkZXNjcmliZWQgaGVyZTpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzYxODZcbiAqXG4gKiBpdCdzIGNhdXNpbmcgYW5vdGhlciBpc3N1ZSB3aXRoIHRoZSB0YWJsZSBoZWlnaHQgaW4gdGhlIHByaW50IHByZXZpZXcgbW9kZSBoZXJlOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTY4NTZcbiAqXG4gKiBGb3Igbm93LCByZXNldHRpbmcgdGhlIGhlaWdodCB0byBgaW5pdGlhbGAgaW4gdGhlIHByaW50IG1vZGUgd29ya3MgYXMgYSB3b3JrYXJvdW5kLlxuICovXG5AbWVkaWEgcHJpbnQge1xuXHQuY2stY29udGVudCAudGFibGUgdGFibGUge1xuXHRcdGhlaWdodDogaW5pdGlhbDtcblx0fVxufVxuXG4vKiBUZXh0IGFsaWdubWVudCBvZiB0aGUgdGFibGUgaGVhZGVyIHNob3VsZCBtYXRjaCB0aGUgZWRpdG9yIHNldHRpbmdzIGFuZCBvdmVycmlkZSB0aGUgbmF0aXZlIGJyb3dzZXIgc3R5bGluZyxcbndoZW4gY29udGVudCBpcyBhdmFpbGFibGUgb3V0c2lkZSB0aGUgZWRpdG9yLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjYzOCAqL1xuLmNrLWNvbnRlbnRbZGlyPVwicnRsXCJdIC50YWJsZSB0aCB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uY2stY29udGVudFtkaXI9XCJsdHJcIl0gLnRhYmxlIHRoIHtcblx0dGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmNrLWVkaXRvcl9fZWRpdGFibGUgLmNrLXRhYmxlLWJvZ3VzLXBhcmFncmFwaCB7XG5cdC8qXG5cdCAqIFVzZSBkaXNwbGF5OmlubGluZS1ibG9jayB0byBmb3JjZSBDaHJvbWUvU2FmYXJpIHRvIGxpbWl0IHRleHQgbXV0YXRpb25zIHRvIHRoaXMgZWxlbWVudC5cblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzYwNjIuXG5cdCAqL1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0Lypcblx0ICogSW5saW5lIEhUTUwgZWxlbWVudHMgbmVzdGVkIGluIHRoZSBzcGFuIHNob3VsZCBhbHdheXMgYmUgZGltZW5zaW9uZWQgaW4gcmVsYXRpb24gdG8gdGhlIHdob2xlIGNlbGwgd2lkdGguXG5cdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MTE3LlxuXHQgKi9cblx0d2lkdGg6IDEwMCU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fZ3JpZCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1mb3JtX19yb3cge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG5cdC8qIElnbm9yZSBsYWJlbHMgdGhhdCB3b3JrIGFzIGZpZWxkc2V0IGxlZ2VuZHMgKi9cblx0JiA+ICo6bm90KC5jay1sYWJlbCkge1xuXHRcdGZsZXgtZ3JvdzogMTtcblx0fVxuXG5cdCYuY2stdGFibGUtZm9ybV9fYWN0aW9uLXJvdyB7XG5cdFx0JiAuY2stYnV0dG9uLXNhdmUsXG5cdFx0JiAuY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybSB7XG5cdCYgLmNrLWZvcm1fX3JvdyB7XG5cdFx0Ji5jay10YWJsZS1jZWxsLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cblx0XHRcdCYgLmNrLmNrLXRvb2xiYXIge1xuXHRcdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdC8qIDQgYnV0dG9ucyBvdXQgb2YgNyAoaC1hbGlnbm1lbnQgKyB2LWFsaWdubWVudCkgPSAwLjU3ICovXG5cdFx0XHRcdFx0ZmxleC1ncm93OiAwLjU3O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdC8qIDMgYnV0dG9ucyBvdXQgb2YgNyAoaC1hbGlnbm1lbnQgKyB2LWFsaWdubWVudCkgPSAwLjQzICovXG5cdFx0XHRcdFx0ZmxleC1ncm93OiAwLjQzO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JiAuY2stYnV0dG9uIHtcblx0XHRcdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1pbnB1dC1jb2xvciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cblx0JiA+IGlucHV0LmNrLmNrLWlucHV0LXRleHQge1xuXHRcdG1pbi13aWR0aDogYXV0bztcblx0XHRmbGV4LWdyb3c6IDE7XG5cdH1cblxuXHQmID4gZGl2LmNrLmNrLWRyb3Bkb3duIHtcblx0XHRtaW4td2lkdGg6IGF1dG87XG5cblx0XHQvKiBUaGlzIGRyb3Bkb3duIGhhcyBubyBhcnJvdyBidXQgYSBjb2xvciBwcmV2aWV3IGluc3RlYWQuICovXG5cdFx0JiA+IC5jay1pbnB1dC1jb2xvcl9fYnV0dG9uIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQmIC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uIHtcblx0XHQvKiBSZXNvbHZpbmcgaXNzdWUgd2l0aCBtaXNhbGlnbmVkIGJ1dHRvbnMgb24gU2FmYXJpIChzZWUgIzEwNTg5KSAqL1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHQmIC5jay5jay1pbnB1dC1jb2xvcl9fYnV0dG9uX19wcmV2aWV3IHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cblx0XHRcdCYgPiAuY2suY2staW5wdXQtY29sb3JfX2J1dHRvbl9fcHJldmlld19fbm8tY29sb3ItaW5kaWNhdG9yIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay10YWJsZS1mb3JtIHtcblx0JiAuY2stZm9ybV9fcm93IHtcblx0XHQmLmNrLXRhYmxlLWZvcm1fX2JvcmRlci1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdH1cblxuXHRcdCYuY2stdGFibGUtZm9ybV9fYmFja2dyb3VuZC1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdH1cblxuXHRcdCYuY2stdGFibGUtZm9ybV9fZGltZW5zaW9ucy1yb3cge1xuXHRcdFx0ZmxleC13cmFwOiB3cmFwO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdFx0JiAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdFx0XHRcdCYgLmNrLmNrLWRyb3Bkb3duIHtcblx0XHRcdFx0XHRmbGV4LWdyb3c6IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0JiAuY2stdGFibGUtZm9ybV9fZGltZW5zaW9uLW9wZXJhdG9yIHtcblx0XHRcdFx0ZmxleC1ncm93OiAwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCYgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0LyogQWxsb3cgYWJzb2x1dGUgcG9zaXRpb25pbmcgb2YgdGhlIHN0YXR1cyAoZXJyb3IpIGJhbGxvb25zLiAqL1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdCYgLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19fc3RhdHVzIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdGJvdHRvbTogY2FsYyggLTEgKiB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpICk7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLDEwMCUpO1xuXG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGJhbGxvb24gc3RhdHVzIHN0YXlzIG9uIHRvcCBvZiBvdGhlciBmb3JtIGVsZW1lbnRzLiAqL1xuXHRcdFx0ei1pbmRleDogMTtcblxuXHRcdFx0LyogVGhlIGFycm93IHBvaW50aW5nIHRvd2FyZHMgdGhlIGZpZWxkLiAqL1xuXHRcdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRvcDogY2FsYyggLTEgKiB2YXIoLS1jay10YWJsZS1wcm9wZXJ0aWVzLWVycm9yLWFycm93LXNpemUpICk7XG5cdFx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCAtNTAlICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stdGFibGUtcHJvcGVydGllcy1mb3JtIHtcblx0JiAuY2stZm9ybV9fcm93IHtcblx0XHQmLmNrLXRhYmxlLXByb3BlcnRpZXMtZm9ybV9fYWxpZ25tZW50LXJvdyB7XG5cdFx0XHRmbGV4LXdyYXA6IHdyYXA7XG5cdFx0XHRmbGV4LWJhc2lzOiAwO1xuXHRcdFx0YWxpZ24tY29udGVudDogYmFzZWxpbmU7XG5cblx0XHRcdCYgLmNrLmNrLXRvb2xiYXIgLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRcdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiQGNrZWRpdG9yL2NrZWRpdG9yNS11aS90aGVtZS9taXhpbnMvX21lZGlhY29sb3JzLmNzc1wiO1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3Itc2VsZWN0b3ItY2FwdGlvbi1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDk3JSk7XG5cdC0tY2stY29sb3Itc2VsZWN0b3ItY2FwdGlvbi10ZXh0OiBoc2woMCwgMCUsIDIwJSk7XG5cdC0tY2stY29sb3Itc2VsZWN0b3ItY2FwdGlvbi1oaWdobGlnaHRlZC1iYWNrZ3JvdW5kOiBoc2woNTJkZWcgMTAwJSA1MCUpO1xufVxuXG4vKiBDb250ZW50IHN0eWxlcyAqL1xuLmNrLWNvbnRlbnQgLnRhYmxlID4gZmlnY2FwdGlvbiB7XG5cdGRpc3BsYXk6IHRhYmxlLWNhcHRpb247XG5cdGNhcHRpb24tc2lkZTogdG9wO1xuXHR3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1zZWxlY3Rvci1jYXB0aW9uLXRleHQpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1zZWxlY3Rvci1jYXB0aW9uLWJhY2tncm91bmQpO1xuXHRwYWRkaW5nOiAuNmVtO1xuXHRmb250LXNpemU6IC43NWVtO1xuXHRvdXRsaW5lLW9mZnNldDogLTFweDtcblxuXHQvKiBJbXByb3ZlIHBsYWNlaG9sZGVyIHJlbmRlcmluZyBpbiBoaWdoLWNvbnN0cmFzdCBtb2RlIChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xNDkwNykuICovXG5cdEBtaXhpbiBjay1tZWRpYS1mb3JjZWQtY29sb3JzIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcblx0XHRjb2xvcjogdW5zZXQ7XG5cdH1cbn1cblxuLyogRWRpdGluZyBzdHlsZXMgKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSA+IGZpZ2NhcHRpb24ge1xuXHRAbWl4aW4gY2stbWVkaWEtZGVmYXVsdC1jb2xvcnMge1xuXHRcdCYudGFibGVfX2NhcHRpb25faGlnaGxpZ2h0ZWQge1xuXHRcdFx0YW5pbWF0aW9uOiBjay10YWJsZS1jYXB0aW9uLWhpZ2hsaWdodCAuNnMgZWFzZS1vdXQ7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1wbGFjZWhvbGRlcjo6YmVmb3JlIHtcblx0XHRwYWRkaW5nLWxlZnQ6IGluaGVyaXQ7XG5cdFx0cGFkZGluZy1yaWdodDogaW5oZXJpdDtcblxuXHRcdC8qXG5cdFx0ICogTWFrZSBzdXJlIHRoZSB0YWJsZSBjYXB0aW9uIHBsYWNlaG9sZGVyIGRvZXNuJ3Qgb3ZlcmZsb3cgdGhlIHBsYWNlaG9sZGVyIGFyZWEuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkxNjIuXG5cdFx0ICovXG5cdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2stdGFibGUtY2FwdGlvbi1oaWdobGlnaHQge1xuXHQwJSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itc2VsZWN0b3ItY2FwdGlvbi1oaWdobGlnaHRlZC1iYWNrZ3JvdW5kKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXNlbGVjdG9yLWNhcHRpb24tYmFja2dyb3VuZCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1zZWxlY3Rvci1jb2x1bW4tcmVzaXplci1ob3ZlcjogdmFyKC0tY2stY29sb3ItYmFzZS1hY3RpdmUpO1xuXHQtLWNrLXRhYmxlLWNvbHVtbi1yZXNpemVyLXdpZHRoOiA3cHg7XG5cblx0LyogVGhlIG9mZnNldCB1c2VkIGZvciBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvZiB0aGUgcmVzaXplciBlbGVtZW50LCBzbyB0aGF0IGl0IGlzIHBsYWNlZCBleGFjdGx5IGFib3ZlIHRoZSBjZWxsIGJvcmRlci5cblx0ICAgVGhlIHZhbHVlIGlzOiBtaW51cyBoYWxmIHRoZSB3aWR0aCBvZiB0aGUgcmVzaXplciBkZWNyZWFzZWQgYWRkaXRpb25hbHkgYnkgdGhlIGhhbGYgdGhlIHdpZHRoIG9mIHRoZSBib3JkZXIgKDAuNXB4KS4gKi9cblx0LS1jay10YWJsZS1jb2x1bW4tcmVzaXplci1wb3NpdGlvbi1vZmZzZXQ6IGNhbGModmFyKC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItd2lkdGgpICogLTAuNSAtIDAuNXB4KTtcbn1cblxuLmNrLWNvbnRlbnQgLnRhYmxlIC5jay10YWJsZS1yZXNpemVkIHtcblx0dGFibGUtbGF5b3V0OiBmaXhlZDtcbn1cblxuLmNrLWNvbnRlbnQgLnRhYmxlIHRhYmxlIHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNrLWNvbnRlbnQgLnRhYmxlIHRkLFxuLmNrLWNvbnRlbnQgLnRhYmxlIHRoIHtcblx0LyogVG8gcHJldmVudCB0ZXh0IG92ZXJmbG93aW5nIGJleW9uZCBpdHMgY2VsbCB3aGVuIGNvbHVtbnMgYXJlIHJlc2l6ZWQgYnkgcmVzaXplIGhhbmRsZXJcblx0KGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvcHVsbC8xNDM3OSNpc3N1ZWNvbW1lbnQtMTU4OTQ2MDk3OCkuICovXG5cdG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIC5jay10YWJsZS1jb2x1bW4tcmVzaXplciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRib3R0b206IDA7XG5cdHJpZ2h0OiB2YXIoLS1jay10YWJsZS1jb2x1bW4tcmVzaXplci1wb3NpdGlvbi1vZmZzZXQpO1xuXHR3aWR0aDogdmFyKC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItd2lkdGgpO1xuXHRjdXJzb3I6IGNvbC1yZXNpemU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1jb2x1bW4tcmVzaXplX2Rpc2FibGVkIC50YWJsZSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKiBUaGUgcmVzaXplciBlbGVtZW50cywgd2hpY2ggYXJlIGV4dGVuZGVkIHRvIGFuIGV4dHJlbWVseSBoaWdoIGhlaWdodCwgYnJlYWsgdGhlIGRyYWcgJiBkcm9wIGZlYXR1cmUgaW4gQ2hyb21lLiBUbyBtYWtlIGl0IHdvcmsgYWdhaW4sXG4gICBhbGwgcmVzaXplcnMgbXVzdCBiZSBoaWRkZW4gd2hpbGUgdGhlIHRhYmxlIGlzIGRyYWdnZWQuICovXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGVbZHJhZ2dhYmxlXSAuY2stdGFibGUtY29sdW1uLXJlc2l6ZXIge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyOmhvdmVyLFxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIC5jay10YWJsZS1jb2x1bW4tcmVzaXplcl9fYWN0aXZlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itc2VsZWN0b3ItY29sdW1uLXJlc2l6ZXItaG92ZXIpO1xuXHRvcGFjaXR5OiAwLjI1O1xuXHQvKiBUaGUgcmVzaXplciBlbGVtZW50IHJlc2lkZXMgaW4gZWFjaCBjZWxsIHNvIHRvIG9jY3VweSB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgdGFibGUsIHdoaWNoIGlzIHVua25vd24gZnJvbSBhIENTUyBwb2ludCBvZiB2aWV3LFxuXHQgICBpdCBpcyBleHRlbmRlZCB0byBhbiBleHRyZW1lbHkgaGlnaCBoZWlnaHQuIEV2ZW4gZm9yIHNjcmVlbnMgd2l0aCBhIHZlcnkgaGlnaCBwaXhlbCBkZW5zaXR5LCB0aGUgcmVzaXplciB3aWxsIGZ1bGZpbGwgaXRzIHJvbGUgYXNcblx0ICAgaXQgc2hvdWxkLCBpLmUuIGZvciBhIHNjcmVlbiBvZiA0NzYgcHBpIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIHJlc2l6ZXIgd2lsbCB0YWtlIG92ZXIgMzUwIHNoZWV0cyBvZiBBNCBmb3JtYXQsIHdoaWNoIGlzIHRvdGFsbHlcblx0ICAgdW5yZWFsaXN0aWMgaGVpZ2h0IGZvciBhIHNpbmdsZSB0YWJsZS4gKi9cblx0dG9wOiAtOTk5OTk5cHg7XG5cdGJvdHRvbTogLTk5OTk5OXB4O1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZVtkaXI9cnRsXSAudGFibGUgLmNrLXRhYmxlLWNvbHVtbi1yZXNpemVyIHtcblx0bGVmdDogdmFyKC0tY2stdGFibGUtY29sdW1uLXJlc2l6ZXItcG9zaXRpb24tb2Zmc2V0KTtcblx0cmlnaHQ6IHVuc2V0O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4vX2hpZGRlbi5jc3NcIjtcbkBpbXBvcnQgXCIuL196aW5kZXguY3NzXCI7XG5AaW1wb3J0IFwiLi9fdHJhbnNpdGlvbi5jc3NcIjtcbkBpbXBvcnQgXCIuL19wb3dlcmVkYnkuY3NzXCI7XG5AaW1wb3J0IFwiLi9fZXZhbHVhdGlvbmJhZGdlLmNzc1wiO1xuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGhpZGVzIGFuIGVsZW1lbnQgaW4gRE9NLlxuICovXG4uY2staGlkZGVuIHtcblx0LyogT3ZlcnJpZGUgc2VsZWN0b3Igc3BlY2lmaWNpdHkuIE90aGVyd2lzZSwgYWxsIGVsZW1lbnRzIHdpdGggc29tZSBkaXNwbGF5XG5cdHN0eWxlIGRlZmluZWQgd2lsbCBvdmVycmlkZSB0aGlzIG9uZSwgd2hpY2ggaXMgbm90IGEgZGVzaXJlZCByZXN1bHQuICovXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay16LWRlZmF1bHQ6IDE7XG5cdC0tY2stei1wYW5lbDogY2FsYyggdmFyKC0tY2stei1kZWZhdWx0KSArIDk5OSApO1xuXHQtLWNrLXotZGlhbG9nOiA5OTk5O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBBIGNsYXNzIHRoYXQgZGlzYWJsZXMgYWxsIHRyYW5zaXRpb25zIG9mIHRoZSBlbGVtZW50IGFuZCBpdHMgY2hpbGRyZW4uXG4gKi9cbi5jay10cmFuc2l0aW9ucy1kaXNhYmxlZCxcbi5jay10cmFuc2l0aW9ucy1kaXNhYmxlZCAqIHtcblx0dHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQvKiB3aGVyZSA3LjUocHgpIGlzIHRoZSBmb250IHNpemUgb2YgdGhlIHBvd2VyZWQgYnkgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stcG93ZXJlZC1ieS1mb250LXNpemU6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogNy41IC8gMTMpO1xuXHQvKiB3aGVyZSAxMChweCkgaXMgdGhlIGxpbmUgaGVpZ2h0IG9mIHRoZSBwb3dlcmVkIGJ5IGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLXBvd2VyZWQtYnktbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogMTAgLyAxMyk7XG5cdC8qIHdoZXJlIC0wLjIocHgpIGlzIHRoZSBsZXR0ZXIgc3BhY2luZyBvZiB0aGUgcG93ZXJlZCBieSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1wb3dlcmVkLWJ5LWxldHRlci1zcGFjaW5nOiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIC0wLjIgLyAxMyk7XG5cdC0tY2stcG93ZXJlZC1ieS1wYWRkaW5nLXZlcnRpY2FsOiAycHg7XG5cdC0tY2stcG93ZXJlZC1ieS1wYWRkaW5nLWhvcml6b250YWw6IDRweDtcblx0LS1jay1wb3dlcmVkLWJ5LXRleHQtY29sb3I6IGhzbCgwLCAwJSwgMzElKTtcblx0LS1jay1wb3dlcmVkLWJ5LWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHQtLWNrLXBvd2VyZWQtYnktYmFja2dyb3VuZDogaHNsKDAsIDAlLCAxMDAlKTtcblx0LS1jay1wb3dlcmVkLWJ5LWJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblxuXHQtLWNrLXBvd2VyZWQtYnktc3ZnLXdpZHRoOiA1Mztcblx0LS1jay1wb3dlcmVkLWJ5LXN2Zy1oZWlnaHQ6IDEwO1xuXHQtLWNrLXBvd2VyZWQtYnktaWNvbi13aWR0aDogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiB2YXIoLS1jay1wb3dlcmVkLWJ5LXN2Zy13aWR0aCkgLyAxMyk7XG5cdC0tY2stcG93ZXJlZC1ieS1pY29uLWhlaWdodDogY2FsYyh2YXIoLS1jay1mb250LXNpemUtYmFzZSkgKiB2YXIoLS1jay1wb3dlcmVkLWJ5LXN2Zy1oZWlnaHQpIC8gMTMpO1xufVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1wb3dlcmVkLWJ5LWJhbGxvb24ge1xuXHQtLWNrLWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLXBvd2VyZWQtYnktYm9yZGVyLXJhZGl1cyk7XG5cblx0Ym94LXNoYWRvdzogbm9uZTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stcG93ZXJlZC1ieS1iYWNrZ3JvdW5kKTtcblx0bWluLWhlaWdodDogdW5zZXQ7XG5cdHotaW5kZXg6IGNhbGMoIHZhcigtLWNrLXotcGFuZWwpIC0gMSApO1xuXG5cdCYgLmNrLmNrLXBvd2VyZWQtYnkge1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1wb3dlcmVkLWJ5LWxpbmUtaGVpZ2h0KTtcblxuXHRcdCYgYSB7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdG9wYWNpdHk6IC42Njtcblx0XHRcdGZpbHRlcjogZ3JheXNjYWxlKDgwJSk7XG5cdFx0XHRsaW5lLWhlaWdodDogdmFyKC0tY2stcG93ZXJlZC1ieS1saW5lLWhlaWdodCk7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1wb3dlcmVkLWJ5LXBhZGRpbmctdmVydGljYWwpIHZhcigtLWNrLXBvd2VyZWQtYnktcGFkZGluZy1ob3Jpem9udGFsKTtcblx0XHR9XG5cblx0XHQmIC5jay1wb3dlcmVkLWJ5X19sYWJlbCB7XG5cdFx0XHRmb250LXNpemU6IHZhcigtLWNrLXBvd2VyZWQtYnktZm9udC1zaXplKTtcblx0XHRcdGxldHRlci1zcGFjaW5nOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWxldHRlci1zcGFjaW5nKTtcblx0XHRcdHBhZGRpbmctbGVmdDogMnB4O1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiA0cHg7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRsaW5lLWhlaWdodDogbm9ybWFsO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLXBvd2VyZWQtYnktdGV4dC1jb2xvcik7XG5cblx0XHR9XG5cblx0XHQmIC5jay1pY29uIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLXBvd2VyZWQtYnktaWNvbi13aWR0aCk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXBvd2VyZWQtYnktaWNvbi1oZWlnaHQpO1xuXHRcdH1cblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0JiBhIHtcblx0XHRcdFx0ZmlsdGVyOiBncmF5c2NhbGUoMCUpO1xuXHRcdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCZbY2xhc3MqPVwicG9zaXRpb25faW5zaWRlXCJdIHtcblx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXHR9XG5cblx0JltjbGFzcyo9XCJwb3NpdGlvbl9ib3JkZXJcIl0ge1xuXHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1wb3dlcmVkLWJ5LWJvcmRlci1jb2xvcik7XG5cdH1cbn1cblxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQvKiB3aGVyZSA3LjUocHgpIGlzIHRoZSBmb250IHNpemUgb2YgdGhlIGV2YWx1YXRpb24gYmFkZ2UgbGFiZWwgYW5kIDEzKHB4KSBpcyB0aGUgYmFzZSBmb250IHNpemUuICovXG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1mb250LXNpemU6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogNy41IC8gMTMpO1xuXHQvKiB3aGVyZSA3LjUocHgpIGlzIHRoZSBsaW5lIGhlaWdodCBvZiB0aGUgZXZhbHVhdGlvbiBiYWRnZSBsYWJlbCBhbmQgMTMocHgpIGlzIHRoZSBiYXNlIGZvbnQgc2l6ZS4gKi9cblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLWxpbmUtaGVpZ2h0OiBjYWxjKHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSAqIDcuNSAvIDEzKTtcblx0Lyogd2hlcmUgLTAuMihweCkgaXMgdGhlIGxldHRlciBzcGFjaW5nIG9mIHRoZSBldmFsdWF0aW9uIGJhZGdlIGxhYmVsIGFuZCAxMyhweCkgaXMgdGhlIGJhc2UgZm9udCBzaXplLiAqL1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtbGV0dGVyLXNwYWNpbmc6IGNhbGModmFyKC0tY2stZm9udC1zaXplLWJhc2UpICogLTAuMiAvIDEzKTtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLXBhZGRpbmctdmVydGljYWw6IDJweDtcblx0LS1jay1ldmFsdWF0aW9uLWJhZGdlLXBhZGRpbmctaG9yaXpvbnRhbDogNHB4O1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtdGV4dC1jb2xvcjogaHNsKDAsIDAlLCAzMSUpO1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYm9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdC0tY2stZXZhbHVhdGlvbi1iYWRnZS1iYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDEwMCUpO1xuXHQtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYm9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xufVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1ldmFsdWF0aW9uLWJhZGdlLWJhbGxvb24ge1xuXHQtLWNrLWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtYm9yZGVyLXJhZGl1cyk7XG5cblx0Ym94LXNoYWRvdzogbm9uZTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1iYWNrZ3JvdW5kKTtcblx0bWluLWhlaWdodDogdW5zZXQ7XG5cdHotaW5kZXg6IGNhbGMoIHZhcigtLWNrLXotcGFuZWwpIC0gMSApO1xuXG5cdCYgLmNrLmNrLWV2YWx1YXRpb24tYmFkZ2Uge1xuXHRcdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWxpbmUtaGVpZ2h0KTtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLXBhZGRpbmctdmVydGljYWwpIHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtcGFkZGluZy1ob3Jpem9udGFsKTtcblxuXHRcdCYgLmNrLWV2YWx1YXRpb24tYmFkZ2VfX2xhYmVsIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cGFkZGluZzogMCAycHg7XG5cdFx0XHRmb250LXNpemU6IHZhcigtLWNrLWV2YWx1YXRpb24tYmFkZ2UtZm9udC1zaXplKTtcblx0XHRcdGxldHRlci1zcGFjaW5nOiB2YXIoLS1jay1ldmFsdWF0aW9uLWJhZGdlLWxldHRlci1zcGFjaW5nKTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS10ZXh0LWNvbG9yKTtcblx0XHR9XG5cdH1cblxuXHQmW2NsYXNzKj1cInBvc2l0aW9uX2luc2lkZVwiXSB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxuXG5cdCZbY2xhc3MqPVwicG9zaXRpb25fYm9yZGVyXCJdIHtcblx0XHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stZXZhbHVhdGlvbi1iYWRnZS1ib3JkZXItY29sb3IpO1xuXHR9XG59XG5cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi9taXhpbnMvX3Vuc2VsZWN0YWJsZS5jc3NcIjtcbkBpbXBvcnQgXCIuLi8uLi9taXhpbnMvX2Rpci5jc3NcIjtcblxuLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uIHtcblx0QG1peGluIGNrLXVuc2VsZWN0YWJsZTtcblxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXG5cdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG5cdH1cblxuXHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0anVzdGlmeS1jb250ZW50OiByaWdodDtcblx0fVxuXG5cdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQmLmNrLWJ1dHRvbl93aXRoLXRleHQge1xuXHRcdCYgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblx0fVxuXG5cdC8qIENlbnRlciB0aGUgaWNvbiBob3Jpem9udGFsbHkgaW4gYSBidXR0b24gd2l0aG91dCB0ZXh0LiAqL1xuXHQmOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkgIHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLyoqXG4gKiBNYWtlcyBlbGVtZW50IHVuc2VsZWN0YWJsZS5cbiAqL1xuQGRlZmluZS1taXhpbiBjay11bnNlbGVjdGFibGUge1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lXG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AZGVmaW5lLW1peGluIGNrLWRpciAkZGlyZWN0aW9uIHtcblx0W2Rpcj1cIiQoZGlyZWN0aW9uKVwiXSAmIHtcblx0XHRAbWl4aW4tY29udGVudDtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24ge1xuXHQmIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHQmIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG5AaW1wb3J0IFwiLi4vLi4vbWl4aW5zL19kaXIuY3NzXCI7XG5cbi5jay5jay1saXN0LWl0ZW0tYnV0dG9uIHtcblx0bWluLWhlaWdodDogdW5zZXQ7XG5cdHdpZHRoOiAxMDAlO1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXG5cdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5cblx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG5cblx0Ji5jay1saXN0LWl0ZW0tYnV0dG9uX3RvZ2dsZWFibGUge1xuXHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXG5cdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0fVxuXHR9XG5cblx0JiAuY2stbGlzdC1pdGVtLWJ1dHRvbl9fY2hlY2staG9sZGVyIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtcblx0XHR3aWR0aDogLjllbTtcblx0XHRoZWlnaHQ6IC45ZW07XG5cblx0XHRAbWl4aW4gY2stZGlyIGx0ciB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuXHRcdEBtaXhpbiBjay1kaXIgcnRsIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cdH1cblxuXHQmIC5jay1saXN0LWl0ZW0tYnV0dG9uX19jaGVjay1pY29uIHtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1jb2xsYXBzaWJsZS5jay1jb2xsYXBzaWJsZV9jb2xsYXBzZWQge1xuXHQmID4gLmNrLWNvbGxhcHNpYmxlX19jaGlsZHJlbiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWNvbG9yLWdyaWQge1xuXHRkaXNwbGF5OiBncmlkO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNvbG9yLXBpY2tlci1oZXgtaW5wdXQge1xuXHR3aWR0aDogbWF4LWNvbnRlbnQ7XG5cblx0JiAuY2suY2staW5wdXQge1xuXHRcdG1pbi13aWR0aDogdW5zZXQ7XG5cdH1cbn1cblxuLmNrLmNrLWNvbG9yLXBpY2tlcl9fcm93IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXA7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSAwIDA7XG5cdHdpZHRoOiB1bnNldDtcblxuXHQmIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdHBhZGRpbmctdG9wOiB1bnNldDtcblx0fVxuXG5cdCYgLmNrLmNrLWlucHV0LXRleHQge1xuXHRcdHdpZHRoOiB1bnNldDtcblx0fVxuXG5cdCYgLmNrLWNvbG9yLXBpY2tlcl9faGFzaC12aWV3IHtcblx0XHRwYWRkaW5nLXRvcDogdmFyKC0tY2stc3BhY2luZy10aW55KTtcblx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stY29sb3Itc2VsZWN0b3Ige1xuXHQvKiBWaWV3IGZyYWdtZW50IHdpdGggY29sb3IgZ3JpZHMuICovXG5cdCYgLmNrLWNvbG9yLWdyaWRzLWZyYWdtZW50IHtcblx0XHQmIC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX3JlbW92ZS1jb2xvcixcblx0XHQmIC5jay1idXR0b24uY2stY29sb3Itc2VsZWN0b3JfX2NvbG9yLXBpY2tlciB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRcdFx0QG1peGluIGNrLWRpciBydGwge1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyogVmlldyBmcmFnbWVudCB3aXRoIGEgY29sb3IgcGlja2VyLiAqL1xuXHQmIC5jay1jb2xvci1waWNrZXItZnJhZ21lbnQge1xuXHRcdCYgLmNrLmNrLWNvbG9yLXNlbGVjdG9yX2FjdGlvbi1iYXIge1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblxuXHRcdFx0JiAuY2stYnV0dG9uLXNhdmUsXG5cdFx0XHQmIC5jay1idXR0b24tY2FuY2VsIHtcblx0XHRcdFx0ZmxleDogMVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWRpYWxvZyB7XG5cdCYgLmNrLmNrLWRpYWxvZ19fYWN0aW9ucyB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZGlhbG9nLW92ZXJsYXkge1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0b3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcblxuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdGJvdHRvbTogMDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdHRvcDogMDtcblxuXHQmLmNrLWRpYWxvZy1vdmVybGF5X190cmFuc3BhcmVudCB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0YW5pbWF0aW9uOiBub25lO1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdH1cbn1cblxuLmNrLmNrLWRpYWxvZyB7XG5cdG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XG5cdHdpZHRoOiBmaXQtY29udGVudDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdCYgLmNrLmNrLWZvcm1fX2hlYWRlciAge1xuXHRcdGZsZXgtc2hyaW5rOiAwO1xuXHR9XG5cblx0LyogTW9kYWxzIHNob3VsZCBub3QgYmUgZHJhZ2dhYmxlLiAqL1xuXHQmOm5vdCguY2stZGlhbG9nX21vZGFsKSB7XG5cdFx0JiAuY2suY2stZm9ybV9faGVhZGVyIC5jay1mb3JtX19oZWFkZXJfX2xhYmVsIHtcblx0XHRcdGN1cnNvcjogZ3JhYjtcblx0XHR9XG5cdH1cblxuXHQuY2suY2stZGlhbG9nLW92ZXJsYXkuY2stZGlhbG9nLW92ZXJsYXlfX3RyYW5zcGFyZW50ICYge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay1kcm9wZG93bi1tYXgtd2lkdGg6IDc1dnc7XG59XG5cbi5jay5jay1kcm9wZG93biB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCYgLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0fVxuXG5cdC8qIERyb3Bkb3duIGJ1dHRvbiBzaG91bGQgc3BhbiBob3Jpem9udGFsbHksIGUuZy4gaW4gdmVydGljYWwgdG9vbGJhcnMgKi9cblx0JiAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0JiAuY2stZHJvcGRvd25fX3BhbmVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpO1xuXHRcdG1heC13aWR0aDogdmFyKC0tY2stZHJvcGRvd24tbWF4LXdpZHRoKTtcblxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsLXZpc2libGUge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX25lLFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX253LFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX24sXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbm13LFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX25tZSB7XG5cdFx0XHRib3R0b206IDEwMCU7XG5cdFx0fVxuXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfc2UsXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfc3csXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfc213LFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX3NtZSxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zIHtcblx0XHRcdC8qXG5cdFx0XHQgKiBVc2luZyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKCAwLCAxMDAlLCAwICkgY2F1c2VzIGJsdXJyeSBkcm9wZG93biBvbiBDaHJvbWUgNjctNzgrIG9uIG5vbi1yZXRpbmEgZGlzcGxheXMuXG5cdFx0XHQgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTA1My5cblx0XHRcdCAqL1xuXHRcdFx0dG9wOiAxMDAlO1xuXHRcdFx0Ym90dG9tOiBhdXRvO1xuXHRcdH1cblxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX25lLFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX3NlIHtcblx0XHRcdGxlZnQ6IDBweDtcblx0XHR9XG5cblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9udyxcblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9zdyB7XG5cdFx0XHRyaWdodDogMHB4O1xuXHRcdH1cblxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX3MsXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbiB7XG5cdFx0XHQvKiBQb3NpdGlvbmluZyBwYW5lbHMgcmVsYXRpdmUgdG8gdGhlIGNlbnRlciBvZiB0aGUgYnV0dG9uICovXG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdFx0fVxuXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfbm13LFxuXHRcdCYuY2stZHJvcGRvd25fX3BhbmVsX3NtdyB7XG5cdFx0XHQvKiBQb3NpdGlvbmluZyBwYW5lbHMgcmVsYXRpdmUgdG8gdGhlIG1pZGRsZS13ZXN0IG9mIHRoZSBidXR0b24gKi9cblx0XHRcdGxlZnQ6IDc1JTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzUlKTtcblx0XHR9XG5cblx0XHQmLmNrLWRyb3Bkb3duX19wYW5lbF9ubWUsXG5cdFx0Ji5jay1kcm9wZG93bl9fcGFuZWxfc21lIHtcblx0XHRcdC8qIFBvc2l0aW9uaW5nIHBhbmVscyByZWxhdGl2ZSB0byB0aGUgbWlkZGxlLWVhc3Qgb2YgdGhlIGJ1dHRvbiAqL1xuXHRcdFx0bGVmdDogMjUlO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNSUpO1xuXHRcdH1cblx0fVxufVxuXG4vKlxuICogVG9vbGJhciBkcm9wZG93biBwYW5lbHMgc2hvdWxkIGJlIGFsd2F5cyBhYm92ZSB0aGUgVUkgKGVnLiBvdGhlciBkcm9wZG93biBwYW5lbHMpIGZyb20gdGhlIGVkaXRvcidzIGNvbnRlbnQuXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNzg3NFxuICovXG4uY2suY2stdG9vbGJhciAuY2stZHJvcGRvd25fX3BhbmVsIHtcblx0ei1pbmRleDogY2FsYyggdmFyKC0tY2stei1wYW5lbCkgKyAxICk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stc3BsaXRidXR0b24ge1xuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0O1xuXG5cdCYgLmNrLXNwbGl0YnV0dG9uX19hY3Rpb246Zm9jdXMge1xuXHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSArIDEpO1xuXHR9XG59XG5cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay10b29sYmFyLWRyb3Bkb3duLW1heC13aWR0aDogNjB2dztcbn1cblxuLmNrLmNrLXRvb2xiYXItZHJvcGRvd24gPiAuY2stZHJvcGRvd25fX3BhbmVsIHtcblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNTU4NiAqL1xuXHR3aWR0aDogbWF4LWNvbnRlbnQ7XG5cdG1heC13aWR0aDogdmFyKC0tY2stdG9vbGJhci1kcm9wZG93bi1tYXgtd2lkdGgpO1xuXG5cdCYgLmNrLWJ1dHRvbiB7XG5cdFx0Jjpmb2N1cyB7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyAxKTtcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1kcm9wZG93bi1tZW51LWxpc3RfX25lc3RlZC1tZW51X19idXR0b24gPiAuY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stZHJvcGRvd24tbWVudV9fbmVzdGVkLW1lbnVfX3BhbmVsIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRtYXgtaGVpZ2h0OiAzMTRweDsgLyogV2l0aCB0aGUgZGVmYXVsdCBzZXR0aW5ncywgdGhpcyBpcyBlcXVhbCB0byAxMCBtZW51IGl0ZW1zLiAqL1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotcGFuZWwpICsgMSk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stZHJvcGRvd24tbWVudS1saXN0X19uZXN0ZWQtbWVudSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWFyaWEtbGl2ZS1hbm5vdW5jZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IC0xMDAwMHB4O1xuXHR0b3A6IC0xMDAwMHB4O1xufVxuXG4uY2suY2stYXJpYS1saXZlLXJlZ2lvbi1saXN0IHtcblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWZvcm1fX2hlYWRlciB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cblx0JiBoMi5jay1mb3JtX19oZWFkZXJfX2xhYmVsIHtcblx0XHRmbGV4LWdyb3c6IDE7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1pY29uIHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1sYWJlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY2suY2stdm9pY2UtbGFiZWwge1xuXHRkaXNwbGF5OiBub25lO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdCYgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXG5cdCYgLmNrLmNrLWxhYmVsIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi9taXhpbnMvX3Vuc2VsZWN0YWJsZS5jc3NcIjtcblxuLmNrLmNrLWxpc3Qge1xuXHRAbWl4aW4gY2stdW5zZWxlY3RhYmxlO1xuXG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cblx0JiAuY2stbGlzdF9faXRlbSxcblx0JiAuY2stbGlzdF9fc2VwYXJhdG9yIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG5cdC8qIE1ha2Ugc3VyZSB0aGF0IHdoYXRldmVyIGNoaWxkIG9mIHRoZSBsaXN0IGl0ZW0gZ2V0cyBmb2N1cywgaXQgcmVtYWlucyBvbiB0aGVcblx0dG9wLiBUaGFua3MgdG8gdGhhdCwgc3R5bGVzIGxpa2UgYm94LXNoYWRvdywgb3V0bGluZSwgZXRjLiBhcmUgbm90IG1hc2tlZCBieVxuXHRhZGphY2VudCBsaXN0IGl0ZW1zLiAqL1xuXHQmIC5jay1saXN0X19pdGVtID4gKjpmb2N1cyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LyogTWFrZSBzdXJlIHRoZSBiYWxsb29uIGFycm93IGRvZXMgbm90IGZsb2F0IG92ZXIgaXRzIGNoaWxkcmVuLiAqL1xuXHQtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpIC0gMyk7XG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsIHtcblx0ZGlzcGxheTogbm9uZTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpO1xuXG5cdCYuY2stYmFsbG9vbi1wYW5lbF93aXRoLWFycm93IHtcblx0XHQmOjpiZWZvcmUsXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0ei1pbmRleDogdmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KTtcblx0XHR9XG5cblx0XHQmOjphZnRlciB7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCkgKyAxKTtcblx0XHR9XG5cdH1cblxuXHQmW2NsYXNzKj1cImFycm93X25cIl0ge1xuXHRcdCY6OmJlZm9yZSB7XG5cdFx0XHR6LWluZGV4OiB2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpO1xuXHRcdH1cblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KSArIDEpO1xuXHRcdH1cblx0fVxuXG5cdCZbY2xhc3MqPVwiYXJyb3dfc1wiXSB7XG5cdFx0Jjo6YmVmb3JlIHtcblx0XHRcdHotaW5kZXg6IHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCk7XG5cdFx0fVxuXG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpICsgMSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5jay1iYWxsb29uLXBhbmVsX3Zpc2libGUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fbmF2aWdhdGlvbiB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiBCdXR0b25zIGluc2lkZSBhIHRvb2xiYXIgc2hvdWxkIGJlIGNlbnRlcmVkIHdoZW4gcm90YXRvciBiYXIgaXMgd2lkZXIuXG4gKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdWkvaXNzdWVzLzQ5NVxuICovXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fY29udGVudCAuY2stdG9vbGJhciB7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay1mYWtlLXBhbmVsIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qIEZha2UgcGFuZWxzIHNob3VsZCBiZSBwbGFjZWQgdW5kZXIgbWFpbiBiYWxsb29uIGNvbnRlbnQuICovXG5cdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1wYW5lbCkgLSAxKTtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDEgKSB7XG5cdHotaW5kZXg6IDI7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAyICkge1xuXHR6LWluZGV4OiAxO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLXN0aWNreS1wYW5lbCB7XG5cdCYgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3kge1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotcGFuZWwpOyAvKiAjMzE1ICovXG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDogMDtcblx0fVxuXG5cdCYgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3lfYm90dG9tLWxpbWl0IHtcblx0XHR0b3A6IGF1dG87XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG4uY2suY2stYXV0b2NvbXBsZXRlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdCYgPiAuY2stc2VhcmNoX19yZXN1bHRzIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1wYW5lbCk7XG5cblx0XHQmLmNrLXNlYXJjaF9fcmVzdWx0c19uIHtcblx0XHRcdGJvdHRvbTogMTAwJTtcblx0XHR9XG5cblx0XHQmLmNrLXNlYXJjaF9fcmVzdWx0c19zIHtcblx0XHRcdHRvcDogMTAwJTtcblx0XHRcdGJvdHRvbTogYXV0bztcblx0XHR9XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCJAY2tlZGl0b3IvY2tlZGl0b3I1LXVpL3RoZW1lL21peGlucy9fZGlyLmNzc1wiO1xuXG4uY2suY2stc2VhcmNoIHtcblx0JiA+IC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdCYgPiAuY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWljb24ge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cblx0XHRcdEBtaXhpbiBjay1kaXIgbHRyIHtcblx0XHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0fVxuXG5cdFx0XHRAbWl4aW4gY2stZGlyIHJ0bCB7XG5cdFx0XHRcdHJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0JiAuY2stc2VhcmNoX19yZXNldCB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0XHR9XG5cdH1cblxuXHQmID4gLmNrLXNlYXJjaF9fcmVzdWx0cyB7XG5cdFx0JiA+IC5jay1zZWFyY2hfX2luZm8ge1xuXHRcdFx0JiA+IHNwYW46Zmlyc3QtY2hpbGQge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblxuXHRcdFx0LyogSGlkZSB0aGUgZmlsdGVyZWQgdmlldyB3aGVuIG5vdGhpbmcgd2FzIGZvdW5kICovXG5cdFx0XHQmOm5vdCguY2staGlkZGVuKSB+ICoge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWhpZ2hsaWdodGVkLXRleHQgbWFyayB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWhpZ2hsaWdodC1iYWNrZ3JvdW5kKTtcblx0dmVydGljYWwtYWxpZ246IGluaXRpYWw7XG5cdGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXHRsaW5lLWhlaWdodDogaW5oZXJpdDtcblx0Zm9udC1zaXplOiBpbmhlcml0O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuQGltcG9ydCBcIi4uLy4uL21peGlucy9fdW5zZWxlY3RhYmxlLmNzc1wiO1xuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay10b29sdGlwIHtcblx0QG1peGluIGNrLXVuc2VsZWN0YWJsZTtcblxuXHR6LWluZGV4OiBjYWxjKCB2YXIoLS1jay16LWRpYWxvZykgKyAxMDAgKTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbjpyb290IHtcblx0LS1jay10b29sYmFyLXNwaW5uZXItc2l6ZTogMThweDtcbn1cblxuLmNrLmNrLXNwaW5uZXItY29udGFpbmVyIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrLmNrLXNwaW5uZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogNTAlO1xuXHRsZWZ0OiAwO1xuXHRyaWdodDogMDtcblx0bWFyZ2luOiAwIGF1dG87XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0ei1pbmRleDogMTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbkBpbXBvcnQgXCIuLi8uLi9taXhpbnMvX3Vuc2VsZWN0YWJsZS5jc3NcIjtcblxuLmNrLmNrLXRvb2xiYXIge1xuXHRAbWl4aW4gY2stdW5zZWxlY3RhYmxlO1xuXG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZmxvdzogcm93IG5vd3JhcDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHQmID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZmxvdzogcm93IHdyYXA7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRmbGV4LWdyb3c6IDE7XG5cblx0fVxuXG5cdCYgLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdFx0Lypcblx0XHQgKiBBIGxlYWRpbmcgb3IgdHJhaWxpbmcgc2VwYXJhdG9yIG1ha2VzIG5vIHNlbnNlIChzZXBhcmF0ZXMgZnJvbSBub3RoaW5nIG9uIG9uZSBzaWRlKS5cblx0XHQgKiBGb3IgaW5zdGFuY2UsIGl0IGNhbiBoYXBwZW4gd2hlbiB0b29sYmFyIGl0ZW1zIChhbHNvIHNlcGFyYXRvcnMpIGFyZSBnZXR0aW5nIGdyb3VwZWQgb25lIGJ5IG9uZSBhbmRcblx0XHQgKiBtb3ZlZCB0byBhbm90aGVyIHRvb2xiYXIgaW4gdGhlIGRyb3Bkb3duLlxuXHRcdCAqL1xuXHRcdCY6Zmlyc3QtY2hpbGQsXG5cdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG5cblx0JiAuY2stdG9vbGJhcl9fbGluZS1icmVhayB7XG5cdFx0ZmxleC1iYXNpczogMTAwJTtcblx0fVxuXG5cdCYuY2stdG9vbGJhcl9ncm91cGluZyA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cblxuXHQmLmNrLXRvb2xiYXJfdmVydGljYWwgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdH1cblxuXHQmLmNrLXRvb2xiYXJfZmxvYXRpbmcgPiAuY2stdG9vbGJhcl9faXRlbXMge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG5cblx0JiA+IC5jay5jay10b29sYmFyX19ncm91cGVkLWRyb3Bkb3duIHtcblx0XHQmID4gLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLWJsb2NrLXRvb2xiYXItYnV0dG9uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiB2YXIoLS1jay16LWRlZmF1bHQpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrLmNrLW1lbnUtYmFyX19tZW51ICB7XG5cdCYgPiAuY2stbWVudS1iYXJfX21lbnVfX2J1dHRvbiA+IC5jay1tZW51LWJhcl9fbWVudV9fYnV0dG9uX19hcnJvdyB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLW1lbnUtYmFyLW1lbnUtbWF4LXdpZHRoOiA3NXZ3O1xuXHQtLWNrLW1lbnUtYmFyLW5lc3RlZC1tZW51LWhvcml6b250YWwtb2Zmc2V0OiA1cHg7XG59XG5cbi5jay5jay1tZW51LWJhcl9fbWVudSA+IC5jay5jay1tZW51LWJhcl9fbWVudV9fcGFuZWwge1xuXHR6LWluZGV4OiB2YXIoLS1jay16LXBhbmVsKTtcblx0bWF4LXdpZHRoOiB2YXIoLS1jay1tZW51LWJhci1tZW51LW1heC13aWR0aCk7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9uZSxcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbncge1xuXHRcdGJvdHRvbTogMTAwJTtcblx0fVxuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3NlLFxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zdyB7XG5cdFx0dG9wOiAxMDAlO1xuXHRcdGJvdHRvbTogYXV0bztcblx0fVxuXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX25lLFxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9zZSB7XG5cdFx0bGVmdDogMHB4O1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fbncsXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX3N3IHtcblx0XHRyaWdodDogMHB4O1xuXHR9XG5cblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fZXMsXG5cdCYuY2stbWVudS1iYXJfX21lbnVfX3BhbmVsX3Bvc2l0aW9uX2VuIHtcblx0XHRsZWZ0OiBjYWxjKCAxMDAlIC0gdmFyKC0tY2stbWVudS1iYXItbmVzdGVkLW1lbnUtaG9yaXpvbnRhbC1vZmZzZXQpICk7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lcyB7XG5cdFx0dG9wOiAwcHg7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl9lbiB7XG5cdFx0Ym90dG9tOiAwcHg7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93cyxcblx0Ji5jay1tZW51LWJhcl9fbWVudV9fcGFuZWxfcG9zaXRpb25fd24ge1xuXHRcdHJpZ2h0OiBjYWxjKCAxMDAlIC0gdmFyKC0tY2stbWVudS1iYXItbmVzdGVkLW1lbnUtaG9yaXpvbnRhbC1vZmZzZXQpICk7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93cyB7XG5cdFx0dG9wOiAwcHg7XG5cdH1cblxuXHQmLmNrLW1lbnUtYmFyX19tZW51X19wYW5lbF9wb3NpdGlvbl93biB7XG5cdFx0Ym90dG9tOiAwcHg7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jay5jay1tZW51LWJhcl9fbWVudSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjUsIENLU291cmNlIEhvbGRpbmcgc3AuIHogby5vLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3ItbGljZW5zaW5nLW9wdGlvbnNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItcmVzaXplcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0LS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtYmFja2dyb3VuZDogaHNsKDAsIDAlLCAxNSUpO1xuXHQtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC10ZXh0OiBoc2woMCwgMCUsIDk1JSk7XG5cblx0LS1jay1yZXNpemVyLWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHQtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQ6IDEwcHg7XG5cdC0tY2stcmVzaXplci10b29sdGlwLWhlaWdodDogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSAqIDIgKyAxMHB4KTtcbn1cblxuLmNrIC5jay13aWRnZXQge1xuXHQvKiBUaGlzIGlzIG5lY2Nlc3NhcnkgZm9yIHR5cGUgYXJvdW5kIFVJIHRvIGJlIHBvc2l0aW9uZWQgcHJvcGVybHkuICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSB7XG5cdC8qIE1ha2UgdGhlIHdpZGdldCB3cmFwcGVyIGEgcmVsYXRpdmUgcG9zaXRpb25pbmcgY29udGFpbmVyIGZvciB0aGUgZHJhZyBoYW5kbGUuICovXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHQmIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHRcdCYgLmNrLWljb24ge1xuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBpY29uIGluIG5vdCBhIHN1YmplY3QgdG8gZm9udC1zaXplIG9yIGxpbmUtaGVpZ2h0IHRvIGF2b2lkXG5cdFx0XHR1bm5lY2Vzc2FyeSBzcGFjaW5nIGFyb3VuZCBpdC4gKi9cblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxuXG5cdC8qIFNob3cgdGhlIHNlbGVjdGlvbiBoYW5kbGUgb24gbW91c2UgaG92ZXIgb3ZlciB0aGUgd2lkZ2V0LCBidXQgbm90IGZvciBuZXN0ZWQgd2lkZ2V0cy4gKi9cblx0Jjpob3ZlciA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdH1cblxuXHQvKiBTaG93IHRoZSBzZWxlY3Rpb24gaGFuZGxlIHdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCwgYnV0IG5vdCBmb3IgbmVzdGVkIHdpZGdldHMuICovXG5cdCYuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0fVxufVxuXG4uY2sgLmNrLXNpemUtdmlldyB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC1iYWNrZ3JvdW5kKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC10ZXh0KTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItcmVzaXplci10b29sdGlwLXRleHQpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1yZXNpemVyLWJvcmRlci1yYWRpdXMpO1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdGhlaWdodDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLWhlaWdodCk7XG5cdGxpbmUtaGVpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtaGVpZ2h0KTtcblxuXHQmLmNrLW9yaWVudGF0aW9uLXRvcC1sZWZ0LFxuXHQmLmNrLW9yaWVudGF0aW9uLXRvcC1yaWdodCxcblx0Ji5jay1vcmllbnRhdGlvbi1ib3R0b20tcmlnaHQsXG5cdCYuY2stb3JpZW50YXRpb24tYm90dG9tLWxlZnQsXG5cdCYuY2stb3JpZW50YXRpb24tYWJvdmUtY2VudGVyIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cblxuXHQmLmNrLW9yaWVudGF0aW9uLXRvcC1sZWZ0IHtcblx0XHR0b3A6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHR9XG5cblx0Ji5jay1vcmllbnRhdGlvbi10b3AtcmlnaHQge1xuXHRcdHRvcDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHR9XG5cblx0Ji5jay1vcmllbnRhdGlvbi1ib3R0b20tcmlnaHQge1xuXHRcdGJvdHRvbTogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHR9XG5cblx0Ji5jay1vcmllbnRhdGlvbi1ib3R0b20tbGVmdCB7XG5cdFx0Ym90dG9tOiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0XHRsZWZ0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0fVxuXG5cdC8qIENsYXNzIGFwcGxpZWQgaWYgdGhlIHdpZGdldCBpcyB0b28gc21hbGwgdG8gY29udGFpbiB0aGUgc2l6ZSBsYWJlbCAqL1xuXHQmLmNrLW9yaWVudGF0aW9uLWFib3ZlLWNlbnRlciB7XG5cdFx0dG9wOiBjYWxjKHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1oZWlnaHQpICogLTEpO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlKTtcblx0fVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDI1LCBDS1NvdXJjZSBIb2xkaW5nIHNwLiB6IG8uby4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLWxpY2Vuc2luZy1vcHRpb25zXG4gKi9cblxuLmNrIC5jay13aWRnZXRfd2l0aC1yZXNpemVyIHtcblx0LyogTWFrZSB0aGUgd2lkZ2V0IHdyYXBwZXIgYSByZWxhdGl2ZSBwb3NpdGlvbmluZyBjb250YWluZXIgZm9yIHRoZSBkcmFnIGhhbmRsZS4gKi9cblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplciB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQvKiBUaGUgd3JhcHBlciBpdHNlbGYgc2hvdWxkIG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUgcG9pbnRlciBkZXZpY2UsIG9ubHkgdGhlIGhhbmRsZXMgc2hvdWxkLiAqL1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG59XG5cbi5jay1mb2N1c2VkIC5jay13aWRnZXRfd2l0aC1yZXNpemVyLmNrLXdpZGdldF9zZWxlY3RlZCB7XG5cdCYgPiAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qIFJlc2l6ZXJzIGFyZSB0aGUgb25seSBVSSBlbGVtZW50cyB0aGF0IHNob3VsZCBpbnRlcmZlcmUgd2l0aCBhIHBvaW50ZXIgZGV2aWNlLiAqL1xuXHRwb2ludGVyLWV2ZW50czogYWxsO1xuXG5cdCYuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtdG9wLWxlZnQsXG5cdCYuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtYm90dG9tLXJpZ2h0IHtcblx0XHRjdXJzb3I6IG53c2UtcmVzaXplO1xuXHR9XG5cblx0Ji5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS10b3AtcmlnaHQsXG5cdCYuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtYm90dG9tLWxlZnQge1xuXHRcdGN1cnNvcjogbmVzdy1yZXNpemU7XG5cdH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyNSwgQ0tTb3VyY2UgSG9sZGluZyBzcC4geiBvLm8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1saWNlbnNpbmctb3B0aW9uc1xuICovXG5cbi5jayAuY2std2lkZ2V0IHtcblx0Lypcblx0ICogU3R5bGVzIG9mIHRoZSB0eXBlIGFyb3VuZCBidXR0b25zXG5cdCAqL1xuXHQmIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cblx0XHQmIHN2ZyB7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDUwJTtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSArIDIpO1xuXHRcdH1cblxuXHRcdCYuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdFx0XHQvKiBQbGFjZSBpdCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBvdXRsaW5lICovXG5cdFx0XHR0b3A6IGNhbGMoLTAuNSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpO1xuXHRcdFx0bGVmdDogbWluKDEwJSwgMzBweCk7XG5cblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblx0XHR9XG5cblx0XHQmLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9hZnRlciB7XG5cdFx0XHQvKiBQbGFjZSBpdCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBvdXRsaW5lICovXG5cdFx0XHRib3R0b206IGNhbGMoLTAuNSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpO1xuXHRcdFx0cmlnaHQ6IG1pbigxMCUsIDMwcHgpO1xuXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBidXR0b25zIHdoZW46XG5cdCAqIC0gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCxcblx0ICogLSBvciB0aGUgYnV0dG9uIGlzIGJlaW5nIGhvdmVyZWQgKHJlZ2FyZGxlc3Mgb2YgdGhlIHdpZGdldCBzdGF0ZSkuXG5cdCAqL1xuXHQmLmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbixcblx0JiA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciB7XG5cdFx0Jjo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAxcHg7XG5cdFx0XHRsZWZ0OiAxcHg7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyAxKTtcblx0XHR9XG5cdH1cblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBob3Jpem9udGFsIFwiZmFrZSBjYXJldFwiIHdoaWNoIGlzIGRpc3BsYXllZCB3aGVuIHRoZSB1c2VyIG5hdmlnYXRlcyB1c2luZyB0aGUga2V5Ym9hcmQuXG5cdCAqL1xuXHQmID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0fVxuXG5cdC8qXG5cdCAqIFdoZW4gdGhlIHdpZGdldCBpcyBob3ZlcmVkIHRoZSBcImZha2UgY2FyZXRcIiB3b3VsZCBub3JtYWxseSBiZSBuYXJyb3dlciB0aGFuIHRoZVxuXHQgKiBleHRyYSBvdXRsaW5lIGRpc3BsYXllZCBhcm91bmQgdGhlIHdpZGdldC4gTGV0J3MgZXh0ZW5kIHRoZSBcImZha2UgY2FyZXRcIiB0byBtYXRjaFxuXHQgKiB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgd2lkZ2V0LlxuXHQgKi9cblx0Jjpob3ZlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdGxlZnQ6IGNhbGMoIC0xICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSApO1xuXHRcdHJpZ2h0OiBjYWxjKCAtMSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgKTtcblx0fVxuXG5cdC8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGhvcml6b250YWwgXCJmYWtlIGNhcmV0XCIgd2hlbiBpdCBzaG91bGQgYmUgZGlzcGxheWVkIGJlZm9yZSB0aGUgd2lkZ2V0IChiYWNrd2FyZCBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0ICovXG5cdCYuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHR0b3A6IGNhbGMoIC0xICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSAtIDFweCApO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0Lypcblx0ICogU3R5bGVzIGZvciB0aGUgaG9yaXpvbnRhbCBcImZha2UgY2FyZXRcIiB3aGVuIGl0IHNob3VsZCBiZSBkaXNwbGF5ZWQgYWZ0ZXIgdGhlIHdpZGdldCAoZm9yd2FyZCBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0ICovXG5cdCYuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdGJvdHRvbTogY2FsYyggLTEgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIC0gMXB4ICk7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLypcbiAqIEludGVncmF0aW9uIHdpdGggdGhlIHJlYWQtb25seSBtb2RlIG9mIHRoZSBlZGl0b3IuXG4gKi9cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJlYWQtb25seSAuY2std2lkZ2V0X190eXBlLWFyb3VuZCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIHRoZSByZXN0cmljdGVkIGVkaXRpbmcgbW9kZSAoZmVhdHVyZSkgb2YgdGhlIGVkaXRvci5cbiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVzdHJpY3RlZC1lZGl0aW5nX21vZGVfcmVzdHJpY3RlZCAuY2std2lkZ2V0X190eXBlLWFyb3VuZCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIHRoZSAjaXNFbmFibGVkIHByb3BlcnR5IG9mIHRoZSBXaWRnZXRUeXBlQXJvdW5kIHBsdWdpbi5cbiAqL1xuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2std2lkZ2V0X190eXBlLWFyb3VuZF9kaXNhYmxlZCAuY2std2lkZ2V0X190eXBlLWFyb3VuZCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1yZWFkLXZpZXctLWRvd24tYXJyb3csXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtcmVhZC12aWV3LS1kb3duLWFycm93LFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXllYXItcmVhZC12aWV3LS1kb3duLWFycm93LCAucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi1pY29uOjpiZWZvcmUge1xuICBib3JkZXItY29sb3I6ICNjY2M7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogM3B4IDNweCAwIDA7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDZweDtcbiAgd2lkdGg6IDlweDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49dG9wXSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGUsIC5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49Ym90dG9tXSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGUge1xuICBtYXJnaW4tbGVmdDogLTRweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49dG9wXSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGU6OmJlZm9yZSwgLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50Xj1ib3R0b21dIC5yZWFjdC1kYXRlcGlja2VyX190cmlhbmdsZTo6YmVmb3JlLCAucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePXRvcF0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlOjphZnRlciwgLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50Xj1ib3R0b21dIC5yZWFjdC1kYXRlcGlja2VyX190cmlhbmdsZTo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXI6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMXB4O1xuICBjb250ZW50OiBcIlwiO1xuICB6LWluZGV4OiAtMTtcbiAgYm9yZGVyLXdpZHRoOiA4cHg7XG4gIGxlZnQ6IC04cHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePXRvcF0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlOjpiZWZvcmUsIC5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49Ym90dG9tXSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGU6OmJlZm9yZSB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNhZWFlYWU7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49Ym90dG9tXSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGUge1xuICB0b3A6IDA7XG4gIG1hcmdpbi10b3A6IC04cHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePWJvdHRvbV0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlOjpiZWZvcmUsIC5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49Ym90dG9tXSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGU6OmFmdGVyIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2YwZjBmMDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49Ym90dG9tXSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGU6OmFmdGVyIHtcbiAgdG9wOiAwO1xufVxuLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50Xj1ib3R0b21dIC5yZWFjdC1kYXRlcGlja2VyX190cmlhbmdsZTo6YmVmb3JlIHtcbiAgdG9wOiAtMXB4O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAjYWVhZWFlO1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePXRvcF0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlIHtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW4tYm90dG9tOiAtOHB4O1xufVxuLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50Xj10b3BdIC5yZWFjdC1kYXRlcGlja2VyX190cmlhbmdsZTo6YmVmb3JlLCAucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePXRvcF0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlOjphZnRlciB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci10b3AtY29sb3I6ICNmZmY7XG59XG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePXRvcF0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlOjphZnRlciB7XG4gIGJvdHRvbTogMDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49dG9wXSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGU6OmJlZm9yZSB7XG4gIGJvdHRvbTogLTFweDtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2FlYWVhZTtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXItd3JhcHBlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlciB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIGhlbHZldGljYSwgYXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBjb2xvcjogIzAwMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2FlYWVhZTtcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXItLXRpbWUtb25seSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGUge1xuICBsZWZ0OiAzNXB4O1xufVxuLnJlYWN0LWRhdGVwaWNrZXItLXRpbWUtb25seSAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1jb250YWluZXIge1xuICBib3JkZXItbGVmdDogMDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyLS10aW1lLW9ubHkgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUsXG4ucmVhY3QtZGF0ZXBpY2tlci0tdGltZS1vbmx5IC5yZWFjdC1kYXRlcGlja2VyX190aW1lLWJveCB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuM3JlbTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuM3JlbTtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MHB4O1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXIge1xuICB6LWluZGV4OiAxO1xufVxuLnJlYWN0LWRhdGVwaWNrZXItcG9wcGVyW2RhdGEtcGxhY2VtZW50Xj1ib3R0b21dIHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnQ9Ym90dG9tLWVuZF0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlLCAucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnQ9dG9wLWVuZF0gLnJlYWN0LWRhdGVwaWNrZXJfX3RyaWFuZ2xlIHtcbiAgbGVmdDogYXV0bztcbiAgcmlnaHQ6IDUwcHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePXRvcF0ge1xuICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49cmlnaHRdIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePXJpZ2h0XSAucmVhY3QtZGF0ZXBpY2tlcl9fdHJpYW5nbGUge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogNDJweDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyLXBvcHBlcltkYXRhLXBsYWNlbWVudF49bGVmdF0ge1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlci1wb3BwZXJbZGF0YS1wbGFjZW1lbnRePWxlZnRdIC5yZWFjdC1kYXRlcGlja2VyX190cmlhbmdsZSB7XG4gIGxlZnQ6IDQycHg7XG4gIHJpZ2h0OiBhdXRvO1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9faGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2FlYWVhZTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4zcmVtO1xuICBwYWRkaW5nOiA4cHggMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2hlYWRlci0tdGltZSB7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIHBhZGRpbmctbGVmdDogNXB4O1xuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9faGVhZGVyLS10aW1lOm5vdCgucmVhY3QtZGF0ZXBpY2tlcl9faGVhZGVyLS10aW1lLS1vbmx5KSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9faGVhZGVyOm5vdCgucmVhY3QtZGF0ZXBpY2tlcl9faGVhZGVyLS1oYXMtdGltZS1zZWxlY3QpIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuM3JlbTtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItZHJvcGRvd24tY29udGFpbmVyLS1zZWxlY3QsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtZHJvcGRvd24tY29udGFpbmVyLS1zZWxlY3QsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgteWVhci1kcm9wZG93bi1jb250YWluZXItLXNlbGVjdCxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLWRyb3Bkb3duLWNvbnRhaW5lci0tc2Nyb2xsLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLWRyb3Bkb3duLWNvbnRhaW5lci0tc2Nyb2xsLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXllYXItZHJvcGRvd24tY29udGFpbmVyLS1zY3JvbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCAxNXB4O1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9fY3VycmVudC1tb250aCxcbi5yZWFjdC1kYXRlcGlja2VyLXRpbWVfX2hlYWRlcixcbi5yZWFjdC1kYXRlcGlja2VyLXllYXItaGVhZGVyIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuOTQ0cmVtO1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlci10aW1lX19oZWFkZXIge1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX25hdmlnYXRpb24ge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAycHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgei1pbmRleDogMTtcbiAgaGVpZ2h0OiAzMnB4O1xuICB3aWR0aDogMzJweDtcbiAgdGV4dC1pbmRlbnQ6IC05OTllbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19uYXZpZ2F0aW9uLS1wcmV2aW91cyB7XG4gIGxlZnQ6IDJweDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19uYXZpZ2F0aW9uLS1uZXh0IHtcbiAgcmlnaHQ6IDJweDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19uYXZpZ2F0aW9uLS1uZXh0LS13aXRoLXRpbWU6bm90KC5yZWFjdC1kYXRlcGlja2VyX19uYXZpZ2F0aW9uLS1uZXh0LS13aXRoLXRvZGF5LWJ1dHRvbikge1xuICByaWdodDogODVweDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19uYXZpZ2F0aW9uLS15ZWFycyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19uYXZpZ2F0aW9uLS15ZWFycy1wcmV2aW91cyB7XG4gIHRvcDogNHB4O1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX25hdmlnYXRpb24tLXllYXJzLXVwY29taW5nIHtcbiAgdG9wOiAtNHB4O1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX25hdmlnYXRpb246aG92ZXIgKjo6YmVmb3JlIHtcbiAgYm9yZGVyLWNvbG9yOiAjYTZhNmE2O1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi1pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xcHg7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgd2lkdGg6IDA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi1pY29uLS1uZXh0IHtcbiAgbGVmdDogLTJweDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19uYXZpZ2F0aW9uLWljb24tLW5leHQ6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgbGVmdDogLTdweDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19uYXZpZ2F0aW9uLWljb24tLXByZXZpb3VzIHtcbiAgcmlnaHQ6IC0ycHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi1pY29uLS1wcmV2aW91czo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKTtcbiAgcmlnaHQ6IC03cHg7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC1jb250YWluZXIge1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXIge1xuICBtYXJnaW46IDAuNHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWF4LXdpZHRoOiAxODBweDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyIC5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA0cmVtO1xuICBtYXJnaW46IDJweDtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoIHtcbiAgbWFyZ2luOiAwLjRyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19tb250aCAucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dCxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aCAucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNHJlbTtcbiAgbWFyZ2luOiAycHg7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX19pbnB1dC10aW1lLWNvbnRhaW5lciB7XG4gIGNsZWFyOiBib3RoO1xuICB3aWR0aDogMTAwJTtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogNXB4IDAgMTBweCAxNXB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2lucHV0LXRpbWUtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyLXRpbWVfX2NhcHRpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9faW5wdXQtdGltZS1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXItdGltZV9faW5wdXQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2lucHV0LXRpbWUtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyLXRpbWVfX2lucHV0LWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlci10aW1lX19pbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9faW5wdXQtdGltZS1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXItdGltZV9faW5wdXQtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyLXRpbWVfX2lucHV0IGlucHV0IHtcbiAgd2lkdGg6IGF1dG87XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9faW5wdXQtdGltZS1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXItdGltZV9faW5wdXQtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyLXRpbWVfX2lucHV0IGlucHV0W3R5cGU9dGltZV06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4ucmVhY3QtZGF0ZXBpY2tlcl9faW5wdXQtdGltZS1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXItdGltZV9faW5wdXQtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyLXRpbWVfX2lucHV0IGlucHV0W3R5cGU9dGltZV06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogMDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19pbnB1dC10aW1lLWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlci10aW1lX19pbnB1dC1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXItdGltZV9faW5wdXQgaW5wdXRbdHlwZT10aW1lXSB7XG4gIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2lucHV0LXRpbWUtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyLXRpbWVfX2lucHV0LWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlci10aW1lX19kZWxpbWl0ZXIge1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX190aW1lLWNvbnRhaW5lciB7XG4gIGZsb2F0OiByaWdodDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjYWVhZWFlO1xuICB3aWR0aDogODVweDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX190aW1lLWNvbnRhaW5lci0td2l0aC10b2RheS1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNhZWFlYWU7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTg3cHg7XG4gIHRvcDogMDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX190aW1lLWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjNyZW07XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtYm94IHtcbiAgd2lkdGg6IDg1cHg7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuM3JlbTtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX190aW1lLWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZSAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1ib3ggdWwucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBoZWlnaHQ6IGNhbGMoMTk1cHggKyAxLjdyZW0gLyAyKTtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX190aW1lLWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZSAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1ib3ggdWwucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1saXN0IGxpLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtbGlzdC1pdGVtIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX190aW1lLWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZSAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1ib3ggdWwucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1saXN0IGxpLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtbGlzdC1pdGVtOmhvdmVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtY29udGFpbmVyIC5yZWFjdC1kYXRlcGlja2VyX190aW1lIC5yZWFjdC1kYXRlcGlja2VyX190aW1lLWJveCB1bC5yZWFjdC1kYXRlcGlja2VyX190aW1lLWxpc3QgbGkucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1saXN0LWl0ZW0tLXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIxNmJhNTtcbiAgY29sb3I6IHdoaXRlO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX190aW1lLWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZSAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1ib3ggdWwucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1saXN0IGxpLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtbGlzdC1pdGVtLS1zZWxlY3RlZDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTZiYTU7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtYm94IHVsLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtbGlzdCBsaS5yZWFjdC1kYXRlcGlja2VyX190aW1lLWxpc3QtaXRlbS0tZGlzYWJsZWQge1xuICBjb2xvcjogI2NjYztcbn1cbi5yZWFjdC1kYXRlcGlja2VyX190aW1lLWNvbnRhaW5lciAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZSAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1ib3ggdWwucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1saXN0IGxpLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtbGlzdC1pdGVtLS1kaXNhYmxlZDpob3ZlciB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX193ZWVrLW51bWJlciB7XG4gIGNvbG9yOiAjY2NjO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxLjdyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjdyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwLjE2NnJlbTtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX193ZWVrLW51bWJlci5yZWFjdC1kYXRlcGlja2VyX193ZWVrLW51bWJlci0tY2xpY2thYmxlIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX3dlZWstbnVtYmVyLnJlYWN0LWRhdGVwaWNrZXJfX3dlZWstbnVtYmVyLS1jbGlja2FibGU6bm90KC5yZWFjdC1kYXRlcGlja2VyX193ZWVrLW51bWJlci0tc2VsZWN0ZWQsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fd2Vlay1udW1iZXItLWtleWJvYXJkLXNlbGVjdGVkKTpob3ZlciB7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX193ZWVrLW51bWJlci0tc2VsZWN0ZWQge1xuICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTZiYTU7XG4gIGNvbG9yOiAjZmZmO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX3dlZWstbnVtYmVyLS1zZWxlY3RlZDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZDVkOTA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fd2Vlay1udW1iZXItLWtleWJvYXJkLXNlbGVjdGVkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmE4N2QwO1xuICBjb2xvcjogI2ZmZjtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX193ZWVrLW51bWJlci0ta2V5Ym9hcmQtc2VsZWN0ZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWQ1ZDkwO1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LW5hbWVzIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWFyZ2luLWJvdHRvbTogLThweDtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX3dlZWsge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LW5hbWUsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LFxuLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtbmFtZSB7XG4gIGNvbG9yOiAjMDAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxLjdyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjdyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAwLjE2NnJlbTtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX2RheSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dCxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5OmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQ6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0OmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dDpob3ZlciB7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19kYXktLXRvZGF5LFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLXRvZGF5LFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0tdG9kYXksXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS10b2RheSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taGlnaGxpZ2h0ZWQsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taGlnaGxpZ2h0ZWQsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1oaWdobGlnaHRlZCxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWhpZ2hsaWdodGVkIHtcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2RjYzRhO1xuICBjb2xvcjogI2ZmZjtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19kYXktLWhpZ2hsaWdodGVkOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWhpZ2hsaWdodGVkOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taGlnaGxpZ2h0ZWQ6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1oaWdobGlnaHRlZDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMmJlM2Y7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1oaWdobGlnaHRlZC1jdXN0b20tMSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1oaWdobGlnaHRlZC1jdXN0b20tMSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWhpZ2hsaWdodGVkLWN1c3RvbS0xLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taGlnaGxpZ2h0ZWQtY3VzdG9tLTEge1xuICBjb2xvcjogbWFnZW50YTtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19kYXktLWhpZ2hsaWdodGVkLWN1c3RvbS0yLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWhpZ2hsaWdodGVkLWN1c3RvbS0yLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taGlnaGxpZ2h0ZWQtY3VzdG9tLTIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1oaWdobGlnaHRlZC1jdXN0b20tMiB7XG4gIGNvbG9yOiBncmVlbjtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19kYXktLWhvbGlkYXlzLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWhvbGlkYXlzLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taG9saWRheXMsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1ob2xpZGF5cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ODAzO1xuICBjb2xvcjogI2ZmZjtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19kYXktLWhvbGlkYXlzIC5ob2xpZGF5LW92ZXJsYXksXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taG9saWRheXMgLmhvbGlkYXktb3ZlcmxheSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWhvbGlkYXlzIC5ob2xpZGF5LW92ZXJsYXksXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1ob2xpZGF5cyAuaG9saWRheS1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwMCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzO1xuICBjb2xvcjogI2ZmZjtcbiAgcGFkZGluZzogNHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcywgb3BhY2l0eSAwLjNzIGVhc2UtaW4tb3V0O1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taG9saWRheXM6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taG9saWRheXM6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1ob2xpZGF5czpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWhvbGlkYXlzOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NmNTMwMDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19kYXktLWhvbGlkYXlzOmhvdmVyIC5ob2xpZGF5LW92ZXJsYXksXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taG9saWRheXM6aG92ZXIgLmhvbGlkYXktb3ZlcmxheSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWhvbGlkYXlzOmhvdmVyIC5ob2xpZGF5LW92ZXJsYXksXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1ob2xpZGF5czpob3ZlciAuaG9saWRheS1vdmVybGF5IHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19kYXktLXNlbGVjdGVkLCAucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1zZWxlY3RpbmctcmFuZ2UsIC5yZWFjdC1kYXRlcGlja2VyX19kYXktLWluLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLXNlbGVjdGVkLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLXNlbGVjdGVkLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taW4tcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1zZWxlY3RlZCxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWluLXJhbmdlIHtcbiAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE2YmE1O1xuICBjb2xvcjogI2ZmZjtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19kYXktLXNlbGVjdGVkOmhvdmVyLCAucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1zZWxlY3RpbmctcmFuZ2U6aG92ZXIsIC5yZWFjdC1kYXRlcGlja2VyX19kYXktLWluLXJhbmdlOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLXNlbGVjdGVkOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZTpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1yYW5nZTpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLXNlbGVjdGVkOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taW4tcmFuZ2U6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1zZWxlY3RlZDpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZTpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWluLXJhbmdlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFkNWQ5MDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19kYXktLWtleWJvYXJkLXNlbGVjdGVkLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWtleWJvYXJkLXNlbGVjdGVkLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0ta2V5Ym9hcmQtc2VsZWN0ZWQsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1rZXlib2FyZC1zZWxlY3RlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JhZDlmMTtcbiAgY29sb3I6IHJnYigwLCAwLCAwKTtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19kYXktLWtleWJvYXJkLXNlbGVjdGVkOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWtleWJvYXJkLXNlbGVjdGVkOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0ta2V5Ym9hcmQtc2VsZWN0ZWQ6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1rZXlib2FyZC1zZWxlY3RlZDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxZDVkOTA7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1zZWxlY3RpbmctcmFuZ2U6bm90KC5yZWFjdC1kYXRlcGlja2VyX19kYXktLWluLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWluLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taW4tcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1pbi1yYW5nZSksXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlOm5vdCgucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taW4tcmFuZ2UpLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlOm5vdCgucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taW4tcmFuZ2UpLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlOm5vdCgucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taW4tcmFuZ2UpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzMywgMTA3LCAxNjUsIDAuNSk7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtLXNlbGVjdGluZy1yYW5nZSAucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1yYW5nZTpub3QoLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSksIC5yZWFjdC1kYXRlcGlja2VyX195ZWFyLS1zZWxlY3RpbmctcmFuZ2UgLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taW4tcmFuZ2U6bm90KC5yZWFjdC1kYXRlcGlja2VyX19kYXktLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UpLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLS1zZWxlY3RpbmctcmFuZ2UgLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWluLXJhbmdlOm5vdCgucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlKSxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLS1zZWxlY3RpbmctcmFuZ2UgLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWluLXJhbmdlOm5vdCgucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlKSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC0tc2VsZWN0aW5nLXJhbmdlIC5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXJhbmdlOm5vdCgucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taW4tc2VsZWN0aW5nLXJhbmdlKSxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLS1zZWxlY3RpbmctcmFuZ2UgLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0taW4tcmFuZ2U6bm90KC5yZWFjdC1kYXRlcGlja2VyX19kYXktLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UpLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLS1zZWxlY3RpbmctcmFuZ2UgLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0taW4tcmFuZ2U6bm90KC5yZWFjdC1kYXRlcGlja2VyX19kYXktLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcXVhcnRlci10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1pbi1zZWxlY3RpbmctcmFuZ2UpLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItLXNlbGVjdGluZy1yYW5nZSAucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1pbi1yYW5nZTpub3QoLnJlYWN0LWRhdGVwaWNrZXJfX2RheS0taW4tc2VsZWN0aW5nLXJhbmdlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSxcbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXRleHQtLWluLXNlbGVjdGluZy1yYW5nZSkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xuICBjb2xvcjogIzAwMDtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19kYXktLWRpc2FibGVkLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXRleHQtLWRpc2FibGVkLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3F1YXJ0ZXItdGV4dC0tZGlzYWJsZWQsXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci10ZXh0LS1kaXNhYmxlZCB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgY29sb3I6ICNjY2M7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LS1kaXNhYmxlZDpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC10ZXh0LS1kaXNhYmxlZDpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19xdWFydGVyLXRleHQtLWRpc2FibGVkOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItdGV4dC0tZGlzYWJsZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX2lucHV0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19pbnB1dC1jb250YWluZXIgLnJlYWN0LWRhdGVwaWNrZXJfX2NhbGVuZGFyLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX192aWV3LWNhbGVuZGFyLWljb24gaW5wdXQge1xuICBwYWRkaW5nOiA2cHggMTBweCA1cHggMjVweDtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItcmVhZC12aWV3LFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXJlYWQtdmlldyxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC15ZWFyLXJlYWQtdmlldyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiAwLjNyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXJlYWQtdmlldzpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC1yZWFkLXZpZXc6aG92ZXIsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgteWVhci1yZWFkLXZpZXc6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1yZWFkLXZpZXc6aG92ZXIgLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItcmVhZC12aWV3LS1kb3duLWFycm93LFxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItcmVhZC12aWV3OmhvdmVyIC5yZWFjdC1kYXRlcGlja2VyX19tb250aC1yZWFkLXZpZXctLWRvd24tYXJyb3csXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtcmVhZC12aWV3OmhvdmVyIC5yZWFjdC1kYXRlcGlja2VyX195ZWFyLXJlYWQtdmlldy0tZG93bi1hcnJvdyxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC1yZWFkLXZpZXc6aG92ZXIgLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXJlYWQtdmlldy0tZG93bi1hcnJvdyxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC15ZWFyLXJlYWQtdmlldzpob3ZlciAucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1yZWFkLXZpZXctLWRvd24tYXJyb3csXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgteWVhci1yZWFkLXZpZXc6aG92ZXIgLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXJlYWQtdmlldy0tZG93bi1hcnJvdyB7XG4gIGJvcmRlci10b3AtY29sb3I6ICNiM2IzYjM7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1yZWFkLXZpZXctLWRvd24tYXJyb3csXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtcmVhZC12aWV3LS1kb3duLWFycm93LFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXllYXItcmVhZC12aWV3LS1kb3duLWFycm93IHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKTtcbiAgcmlnaHQ6IC0xNnB4O1xuICB0b3A6IDA7XG59XG5cbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLWRyb3Bkb3duLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLWRyb3Bkb3duLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXllYXItZHJvcGRvd24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiA1MCU7XG4gIGxlZnQ6IDI1JTtcbiAgdG9wOiAzMHB4O1xuICB6LWluZGV4OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2FlYWVhZTtcbn1cbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLWRyb3Bkb3duOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLWRyb3Bkb3duOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXllYXItZHJvcGRvd246aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1kcm9wZG93bi0tc2Nyb2xsYWJsZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC1kcm9wZG93bi0tc2Nyb2xsYWJsZSxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC15ZWFyLWRyb3Bkb3duLS1zY3JvbGxhYmxlIHtcbiAgaGVpZ2h0OiAxNTBweDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1vcHRpb24sXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtb3B0aW9uLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXllYXItb3B0aW9uIHtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLW9wdGlvbjpmaXJzdC1vZi10eXBlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLW9wdGlvbjpmaXJzdC1vZi10eXBlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXllYXItb3B0aW9uOmZpcnN0LW9mLXR5cGUge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwLjNyZW07XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjNyZW07XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1vcHRpb246bGFzdC1vZi10eXBlLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLW9wdGlvbjpsYXN0LW9mLXR5cGUsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgteWVhci1vcHRpb246bGFzdC1vZi10eXBlIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC4zcmVtO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMC4zcmVtO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItb3B0aW9uOmhvdmVyLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLW9wdGlvbjpob3Zlcixcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC15ZWFyLW9wdGlvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9feWVhci1vcHRpb246aG92ZXIgLnJlYWN0LWRhdGVwaWNrZXJfX25hdmlnYXRpb24tLXllYXJzLXVwY29taW5nLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLW9wdGlvbjpob3ZlciAucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi0teWVhcnMtdXBjb21pbmcsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgteWVhci1vcHRpb246aG92ZXIgLnJlYWN0LWRhdGVwaWNrZXJfX25hdmlnYXRpb24tLXllYXJzLXVwY29taW5nIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogI2IzYjNiMztcbn1cbi5yZWFjdC1kYXRlcGlja2VyX195ZWFyLW9wdGlvbjpob3ZlciAucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi0teWVhcnMtcHJldmlvdXMsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fbW9udGgtb3B0aW9uOmhvdmVyIC5yZWFjdC1kYXRlcGlja2VyX19uYXZpZ2F0aW9uLS15ZWFycy1wcmV2aW91cyxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC15ZWFyLW9wdGlvbjpob3ZlciAucmVhY3QtZGF0ZXBpY2tlcl9fbmF2aWdhdGlvbi0teWVhcnMtcHJldmlvdXMge1xuICBib3JkZXItdG9wLWNvbG9yOiAjYjNiM2IzO1xufVxuLnJlYWN0LWRhdGVwaWNrZXJfX3llYXItb3B0aW9uLS1zZWxlY3RlZCxcbi5yZWFjdC1kYXRlcGlja2VyX19tb250aC1vcHRpb24tLXNlbGVjdGVkLFxuLnJlYWN0LWRhdGVwaWNrZXJfX21vbnRoLXllYXItb3B0aW9uLS1zZWxlY3RlZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTVweDtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX2Nsb3NlLWljb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7XG4gIHBhZGRpbmc6IDAgNnB4IDAgMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fY2xvc2UtaWNvbjo6YWZ0ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMTZiYTU7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGhlaWdodDogMTZweDtcbiAgd2lkdGg6IDE2cHg7XG4gIHBhZGRpbmc6IDJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjb250ZW50OiBcIsOXXCI7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fY2xvc2UtaWNvbi0tZGlzYWJsZWQge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4ucmVhY3QtZGF0ZXBpY2tlcl9fY2xvc2UtaWNvbi0tZGlzYWJsZWQ6OmFmdGVyIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9fdG9kYXktYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNhZWFlYWU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZzogNXB4IDA7XG4gIGNsZWFyOiBsZWZ0O1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcG9ydGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgei1pbmRleDogMjE0NzQ4MzY0Nztcbn1cbi5yZWFjdC1kYXRlcGlja2VyX19wb3J0YWwgLnJlYWN0LWRhdGVwaWNrZXJfX2RheS1uYW1lLFxuLnJlYWN0LWRhdGVwaWNrZXJfX3BvcnRhbCAucmVhY3QtZGF0ZXBpY2tlcl9fZGF5LFxuLnJlYWN0LWRhdGVwaWNrZXJfX3BvcnRhbCAucmVhY3QtZGF0ZXBpY2tlcl9fdGltZS1uYW1lIHtcbiAgd2lkdGg6IDNyZW07XG4gIGxpbmUtaGVpZ2h0OiAzcmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDU1MHB4KSB7XG4gIC5yZWFjdC1kYXRlcGlja2VyX19wb3J0YWwgLnJlYWN0LWRhdGVwaWNrZXJfX2RheS1uYW1lLFxuICAucmVhY3QtZGF0ZXBpY2tlcl9fcG9ydGFsIC5yZWFjdC1kYXRlcGlja2VyX19kYXksXG4gIC5yZWFjdC1kYXRlcGlja2VyX19wb3J0YWwgLnJlYWN0LWRhdGVwaWNrZXJfX3RpbWUtbmFtZSB7XG4gICAgd2lkdGg6IDJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDJyZW07XG4gIH1cbn1cbi5yZWFjdC1kYXRlcGlja2VyX19wb3J0YWwgLnJlYWN0LWRhdGVwaWNrZXJfX2N1cnJlbnQtbW9udGgsXG4ucmVhY3QtZGF0ZXBpY2tlcl9fcG9ydGFsIC5yZWFjdC1kYXRlcGlja2VyLXRpbWVfX2hlYWRlciB7XG4gIGZvbnQtc2l6ZTogMS40NHJlbTtcbn1cblxuLnJlYWN0LWRhdGVwaWNrZXJfX2NoaWxkcmVuLWNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMy44cmVtO1xuICBtYXJnaW46IDAuNHJlbTtcbiAgcGFkZGluZy1yaWdodDogMC4ycmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuMnJlbTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9fYXJpYS1saXZlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjbGlwLXBhdGg6IGNpcmNsZSgwKTtcbiAgYm9yZGVyOiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucmVhY3QtZGF0ZXBpY2tlcl9fY2FsZW5kYXItaWNvbiB7XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4udmpzLW1vZGFsLWRpYWxvZyAudmpzLW1vZGFsLWRpYWxvZy1jb250ZW50LCAudmlkZW8tanMgLnZqcy1tb2RhbC1kaWFsb2csIC52anMtYnV0dG9uID4gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtYmlnLXBsYXktYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnZqcy1idXR0b24gPiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1iaWctcGxheS1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBzcmM6IHVybChkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBQkRrQUFzQUFBQUFHNmdBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkhVMVZDQUFBQkNBQUFBRHNBQUFCVUlJc2xlazlUTHpJQUFBRkVBQUFBUGdBQUFGWlJpVjNoWTIxaGNBQUFBWVFBQUFEYUFBQURQdjc0OS9wbmJIbG1BQUFDWUFBQUMzQUFBQkhRWmc2T2NXaGxZV1FBQUEzUUFBQUFLd0FBQURZWncyNTFhR2hsWVFBQURmd0FBQUFkQUFBQUpBK1JDTEZvYlhSNEFBQU9IQUFBQUJNQUFBQ003NDRBQUd4dlkyRUFBQTR3QUFBQVNBQUFBRWhGNmtxdWJXRjRjQUFBRG5nQUFBQWZBQUFBSUFFMEFJRnVZVzFsQUFBT21BQUFBU1VBQUFJSzFjZjFvSEJ2YzNRQUFBL0FBQUFCSkFBQUFkUEV4WXVOZUp4allHUmdZT0JpTUdDd1kyQnljZk1KWWVETFNTekpZNUJpWUdHQUFKQThNcHN4SnpNOWtZRUR4Z1BLc1lCcERpQm1nNGdDQUNZN0JVZ0FlSnhqWUdTN3dUaUJnWldCZ2FXUTVSa0RBOE12Q00wY3d4RE9lSTZCZ1ltQmxaa0JLd2hJYzAxaGNQakkrRkdKSGNSZHlBNFJaZ1FSQURLM0N4RUFBSGljN2RGWmJzTWdBRVhSUzB5Y3labm5PZUc3eStxQzhwVTFkSHVzSU9YeHVveGFPbHdaWVdRQjBBZWE0cXVJRU40RTlMektiS2p6RGVNNkgvbXVhNkxtYy9wOHloZzBsdmRZeDE1Wkc4dU9MUU9Hak1wM0V6cW16Sml6WU1tS05SdTI3Tmh6NE1pSk14ZXUzTGp6NEVrcW03VDhQNTJHOFBQM2xuVE9WaysrWjZpTjZRWnpOTjFGN3B0dU43ZUdPakRVb2FHT0RIVnN1dlU4TWRUTzlIZDVhcWd6UTUwYjZzSlFsNGE2TXRTMW9XNE1kV3VvTzBQZEcrckJVSStHZWpMVXM2RmVEUFZxcURkRHZSdnF3MUNmaHBxTTlBdDBpRkxhQUFCNG5KMVlEWEJUVlJaKzUvMjJUVWxKOHdlMHBIbEptN1JKZjVPOEYyajZFeW1sU1BrcHhhTDhVMnhwYTNES2owQ0JoYzJJVzRlV0tTb2tJb0xzdU1xc3NNNjRmK2pBNEhTZFdYWFhzY0JxNjdJT3MzRlhaMVpZV1Z5UkZkbzg5OXlYdElCUVo5MGs3NzE3enozdjNIUFBPZmQ4NTRZQ0NqOWNMOWRMMFJRRk9xQ2JHSm5ySGI1RWF5aUtJV044aUEvaFdCYmxvNmhVV204VHRDRHdFODBXTUp1cy9pcnd5eE9keGVCME1EYjE0Vk5KSG5YWW9MTFNsNkZmQ1VZTzluWVBUQThFcGc5MDkwTHByZmJCYloyaFkwVWxKVVhIUXAzL3Z0V2tTNkVCdjgrclBNcTV1OTY5MmYvZE54Sk5pcXdDMXhQRTlUQ1VnQ3NTZFFXZ0UzWFFEMjVsa0c0Q04yeG1UY09YV0JPeXNlcjZSTjZLbkdiS1NibVEzK2QwT0kxbTJXOFF6TExrSTJzeWtyV0FnSkpFdEE4dkdHVy8yUStDbVQzbjh6Uzl3Wnd1MkRDdnR1WktaTjN4a3JMaDM2eUNadVVvbVFTcUdwWTh0LzI1VmZIVmh3OHo0ZWJHQnRmTGIweWE5UENhRGMrOGRHVHZrMmRzaDZ6N1d6dm93bFhLVVNXbzlNSjE1YTNLckVQMmxvT3IyT2podzZpVzZoZjJCRGRFY2NRdlpHcGFBeTdZb3ZTd3E4a3I3SEdsbHhwZDcxcmtTNkcwU2YxMXNsOU92TUsxK2p3UFBPRHhqVXdrT2ltOUNVM2l4MXdOalhEZm1KU0VuNjE4QnM2bHBXd1VwVSs4UENxTE1ZNjUwempxOFZoQ0lQMTdORUtUeDNlYUxMK3M1UGk2eUpXYVdqVEhMUjFqWXpQU1Y5VkYvNk9qZGIvMWtPM01rM3VoSEMweDZnYzFCamxLUStuUUZ4VFlkYUprWjd5U1Z4TEJiaFIxZHNib05YcDF0Q1lLVzJMUmFFenBZY0l4MkJLTnhhTDBaYVVuU3FmRm9pTmhIS1IvR2tYNlBXVVNBYUplbFFhcVpMMUVwb0hOc2FqU0V5UFNvSjlJamhJeFRkakhMbXdadmhSRE9pRlRZL1llUW52clZabWlUUXRHbmNFQ1h0RlRCWkxPVnd3TVJnb1hIQWtYek16UG4xbkFKSjhqWVNiTURhcU4yd2FHTHpOaGloL2JaeW5VQk1wSVdTZzdWWWk3RFJ4Mm04QUxrSWRSQ0p3STZBckp4MkVJOGthRFdlVFFLZUFGazlmamwvMUF2d2t0alExUDdOanlNR1F5ZmQ0dmppcFg2TS9pNTJEN0NxODBrcWxjeEVjR1hSci9GRWNnczB1NXVHZ0I0Vld1TUZmcGRuMlJlNkhpM1Bxem14V0tzejYrYWUyUG45aFhYdy9mcU04NTlVaUdDMG9LWVlJTEpCcUpyc24xWjFFNXFPczlyUUNpVVFSUkVqbTh5SmNiSEY1Y1VKdWZYMXZBSGxlZncwWGdVb2JvUzNFVGZRbFR4QkM0U090dUU4VlBSSlRCU0NRU2paQ3BrN0dxenUrbWFzYVoyeTdaamVoaG80RjNnODJCTkRrQUhwT1JHNCtPQ1MrZjZKVFBtdFJuL1BIMWtjaDZkMDRzcDdBUWIyNWFRL3BxVXlYZVE4dnJlYkc4T1lRZFhPUSs1ODV1MHNkVzlycWFselJVUmlKKzlGNE13ZVJGcktVamwxR1VZaEgxQTI3V09IdzVjVEZTRlBNbzlFZVVJR25RVFpISWFKN0FITGFPS3NPT0RhTkY5amtCallHMlFFc1EyeGpNVUF4MmJCRWJlVEJXTUh3c2tCam5ncTU2Uy95ZmdrQm5XQmE0SzlzcUt0cTJ0MVVJOFM5SGU1WHVCUmJhd0FkYXRyUUVBaTMwQWtzMitMTThXZUNiYWxWWmtXTnlsdkorZHFKbnpWYitPSGxTb0tXOG5QQ1A3UmQrQ2NaMkRkV0FHcUoyQ0JGT3BoZ3l3RkZDRkJOdGZBYkd0TlBCQ3d4dnlnSGVZTVpNWTlaYm9CcXdxL3BWcnNiZ041dGt2MTUyT0RsYk1maXF3R01CZ3hhNEV4ejNRaG92UklVcDZhY3FabVF6UnEweXBEWFMyVFBMVDAyWUlrUUVUbk9FNDQ1b09HeE9tWEFxVUpOTkc3WGd1cE1qUHEydWE5YXNyajV5WS95dUt0ZU8xS3gwWU5KVHVmcmlyTGUxbVpuYXQ3T0w2cm5VZENXZW5wVzZJOG1BbmJzWThLV3MxUHVTb3ZDVzlBL1oyNVBRMjRhN2NOT3FnbVRrTG1CTWdoNFRIZ2M0YjlrMklWdjEvZy9GNW5HbGp3UExmT2dIQXpKemg0NVYvNCtXZW5Uem1NdFI1Wjd1czJUeXM5MDlVSHFyUFk3S2Jja294UnZSSGhtVmMzY0pHRTk3dW1sMFIxUzBqZFVMVmw3RXZadERGVkJGMzVOOWNFZGpwZ21BaU9sRlorRHRvaDkzK0QzenpIcjhSUk5aUWhuQ05NTmJjZWdPdnBFd1pvTCswNmNKUTA3aCt0aDNmWi83UFZiVkM2bmdUQVYvS29MRnVPNisyS0ZjVTY1MWdFYjV1Z1BTSWIxRCtYcDhWNCtrM3NFSUdudzVtWWU0SWY0azFsRllyNlNDem1NMkVROGlXdG13am5CSTlrVHdlMVRsZkFtWGg3SDAyYnk5ZlcyZ3NqS3d0djBhYVVSS2lsNE9kVjdyREwxTVhJRk5yaGR4b2hjWlhZVG5xNDdXaXNyS2l0YU9iYmY1K3l2a0xpNUo2bENOWlorQjZHQzM4Vk5CWkJEaWRTUy8rbVN2aDZzK3NyZ0M4cHlLTXZEdHQrZGUzYzlmVTc2WlBmdU04dWQ0S3YwZnlQL0xxZmVwTVQvM29aeFNxcFphVGExRGFRWUxZOFRGc0hZYldZc1BvUmhSV2ZMNWVTU1FiaFVHZ0dDM1lMYlZNazZQaXRURk5HcEFzTnJDNkQxVk5CS2dCSE1lamFpdVJXRVdHZ3NTREJUSmpxV0lsOGtKTGxzYUxKMnRYRHI2eEdmVDg1Yk0yUTA2YTQ2eDJIVGd2ZG5WOHo1WUR5LzI3SjR6dDZ4MlZ0a3pqb1lwa3EzNmthQnI0ZVFTZzd0eWlWd2VXdWJYWnVndGFkbDU4eWRhcGZiT1JmS3NEVHVaME9CZ3g0Y2ZkakNmNXRiV05JVG5MMTIwZmRPaTFSVjFDM3VLR3pOZHdZTGNNdlozQnhvUHlUT0NEMVh2WFRwN1UxMGdXQ1ZtVFY5YjNyMnowU2tHV292YjJocDlJODlPOGEyc21seWFPOG11TVUrZFJtdHpwNjBJekFvRnBqTHIxbjM4OGJvTHlmMGRSdnhoc0haMHFiV3FEa3dxdnZwa2o0bDBmWTZFSVhSaTVzUVNyQXZzVll3WFJ5NHFKMkVWdEQxQU43YTBIV3RoOXltdkwxeGMzV1RVS0svVEFIQS9iWERWdFZXZk9NZnVHeEdadjRMbi9qVnI5amMzajF5TXYwdG5kbXl0OVZxODhZOWdIMXd0TFgzS1dqb3Q1KytqV0hnQW9aWmtRMTR3R1EyMEZsaTcxVW1LSkF5NHhLTVNUR2JWZHliVzdGRERBdXQ5WHBENUF6V3JZTzd6UThxZmZxRjgrWW5kL2NsckhjZHl4R3kzYS8zK21mTm56Qy9jQnN2ZVRqblR2WGYxbzZ2ek9sWnc3V3RxdGRtUEsvRXJyei82Tk50RDcyem1OT1pmYm1ZZFRHSGZvb2ZxSTc5T2MrUjJuMWxybkw2cE9tMFVwN2t3eGhUVzEyQW1tN1dZa1hSMnFZckYyQW1nbWJBc3haand5MXhwZy9tMUplMnZycDh2L256MnhwbWxCZzRFOWhyTVUzNDF3VnBUT2gvT2ZtR3ZBbnJhOHE2dWN0cjYwWlFIVjNRK1dNUUp5a01qOFpzV24yUUJPbW1ITUIrbTVwRElwVEZvbllpZ2lhS0FoR0VpQUhGN0VsaVZuUWtqb0xWSU1QdEpwQktIWWQzQThHWUg5akp6cld3bUh4NVFqcDd2REFYMHN1R1J5bTF2dG0vOVcxL0h5Ujh2Y3pmTXM2U2s4RFN2ODU1LzVkbFg5b1FxNTJoVDhzeXlwMnJ4NUlkMTdJQXlBTTN3SWpRUE1PSHp5dEVCNjRxNkQ1elQ5MXlOYm54M1YvbnFuZDAxN1M5WTA2MDVrM2l6b1hMcHN4ZGUybjM4eW9PVjlzMUxjand6TmpiZFg2YXNuQlZhQmovNi9Ed0t3UGtwY3FiREc3Qm5zWG9TcVduVUFtb3R0WUY2ak1TZFZ5WVpoM3pWWENqd1Rpd3dISDZzR3VSaUVIUUd6dVJYNndoWmtwMTIzb3kxQldFMm1FZkovdHZJUnRNNFpNNWJEWGlNc1BNYUFLT1R5YzV1TDU3cnF5eWM1eTVKRTVwbTFpMlMyaVVYMENjYVE2bEM2Wm9nN0pxU3FabVlsb3NsMks2cHdOQTg0elJuUVc2U2FBTFlaUUdXNWxoQ3RVL1czNE42bytiS2ZaOGNmMy9DbC8raVRYM3dCenBPWTRtUmtlTmYzcnB0eWNHU3NoUVdnR2JZdDVqRmMyZTArRGdsSXJ3bDZEVldRN0J1d2FKM1hrMUo0Vkw1dXJuTGwvV2YrZ0hVL2hab1pkS055bTZsRytJMzRGYU5lWktjU3BKSW8ySWVDVnZwZHNER2ZLdnpKbkF3bWVEMzdPdzY1Wld3U293cGd3WDVUNjlzL3JCNTVkUDVCY3BnREtGVjhwN3Eyc24vMXVjOTNiVnpUL3c2VXJDcURUV3ZmQ3Evb0NEL3FaWE5vVWo4Qkw1S3A2R1UwMTdmcmZOWGtBdGlpeWYvU09DRWVMcW5kOFIvUWw5R2xDUmZjdFM2azVjaHZJQnVRMXpDQ2pvQ0hMMkRITkhJWHhNSjNrUWVPOGxic1VYT05lU2ZBNUVqY0c2L0UrS2RoTjRiUDA0dkJoZGk4ODMrQkZCelFieEZidlp6UWVZOUxOQlpjMEZOZm41TndmRG42ckNUblR3NlI4bytnZnBmNWhDb20zM2NSdWlUbHNzM0tIbVpqRCtCUE4rNWdYdUEyemlTL1E3M21MeFVrcGJLTi9lcXd6NXVLMFg5RjNoMmQxVjRuR05nWkdCZ0FPSmQ3NzYraXVlMytjckF6YzRBQWplNUJmY2cweHo5WUhFT0JpWVFCUUE4RlFsRkFIaWNZMkJrWUdCbkFBR09QZ2FHLy84NStoa1lHVkNCTWdCR0d3TllBQUFBZUp4allHQmdZQjhFbUtPUGdRRUFRMDRCZmdBQUFBQUFBQTRBYUFCK0FNd0E0QUVDQVVJQmJBR1lBY0lDR0FKWUFyUUM0QU13QTdBRDNnUXdCSllFM0FVa0JXWUZpZ1lnQm1ZR3RBYnFCMWdJRWdoWUNHNEloQWkyQ09oNG5HTmdaR0JnVUdZb1pXQm5BQUVtSU9ZQ1FnYUcvMkErQXdBWUNRRzJBSGljWFpCTmFvTkFHSVpmRTVQUUNLRlEybFVwczJvWEJmT3p6QUVTeURLQlFKZEdSMk5RUjNRU1NFL1FFL1FFUFVVUFVIcXN2c3JYalRNdzgzelB2UE1OQ3VBV1AzRFFEQWVqZG0xR2p6d1M3cE1td2k3NVhuZ0FENC9DUS9vWDRURmU0UXQ3dU1NYk96anVEYzBFbVhDUC9DN2NKMzhJdStSUDRRRWU4Q1U4cFA4V0htT1BYMkVQejg3VFBvMjAyZXkyT2psblFTWFYvNmFyT2pXRm12c3pNV3RkNkNxd09sS0hxNm92eWNMYVdNV1Z5ZFhLRkZabm1WRmxaVTQ2dFA3UjJuSTVuY2JpL2REa2ZEdEZCQTJERFhiWWtoS2MrVjBCcXM1WnQ5Sk0xSFFHQlJUbS9FZXpUbVpOS3RwY0FNczlZdTZBSzljYUY3NnpvTFdJV2NmTUdPU2tWZHV2U1dlY2hxWnN6MDQwSWIyUFkzdXJ4QkpUenJpVDk1bGlweitUTjFmbUFBQUFlSnh0a01sMndqQU1SZk9BaEFCbEttMmg4MEMzK2FqZ0NLS0RZNmNlZ1A1OVRZQnp1a0FMK3oxWnNxOGN0YUpUVEtQcnNVUUxiWFFRSTBFWEtYcm9ZNEFiRERIQ0dCTk1jWXNaN25DUEI4eXh3Q09lOEl3WHZPSU43L2pBSjc2d3hIZlVxV1grT3pndW1XQWpKTVYxN2kwTmRscjZpckxLTytxZnRkVDdpNnk0dUZTVXZDa25heStsRllaSVphUWNtZkgveElGZFluOThicWhyYTFhS1RNLzZsV01ueWFZaXJ4MXJGVVFaRkJrYjJ6SlV0b1hlSkNlZzBXbkx0SGVTRmMzT3Rybm96TndxaTBUa1NwQk1EQjFuU2RlNW9KWFcyM2hUUzIvVDBMaWxnbFhYN2RtRlZ4TG5xNVUwdllBVEhGazN6WDNCT2lzb1FITkRGRGVabnFLRHk5aFJOYXdON1ZoNzI3aEZ6Y0o1YzhUSUxyS1pmSDd0SVB4QUZQMEJwTGVKUEE9PSkgZm9ybWF0KFwid29mZlwiKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXBsYXksIC52aWRlby1qcyAudmpzLXBsYXktY29udHJvbCAudmpzLWljb24tcGxhY2Vob2xkZXIsIC52aWRlby1qcyAudmpzLWJpZy1wbGF5LWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1wbGF5OmJlZm9yZSwgLnZpZGVvLWpzIC52anMtcGxheS1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUsIC52aWRlby1qcyAudmpzLWJpZy1wbGF5LWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMDFcIjtcbn1cblxuLnZqcy1pY29uLXBsYXktY2lyY2xlIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1wbGF5LWNpcmNsZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwMlwiO1xufVxuXG4udmpzLWljb24tcGF1c2UsIC52aWRlby1qcyAudmpzLXBsYXktY29udHJvbC52anMtcGxheWluZyAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXBhdXNlOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtcGxheS1jb250cm9sLnZqcy1wbGF5aW5nIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwM1wiO1xufVxuXG4udmpzLWljb24tdm9sdW1lLW11dGUsIC52aWRlby1qcyAudmpzLW11dGUtY29udHJvbC52anMtdm9sLTAgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi12b2x1bWUtbXV0ZTpiZWZvcmUsIC52aWRlby1qcyAudmpzLW11dGUtY29udHJvbC52anMtdm9sLTAgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA0XCI7XG59XG5cbi52anMtaWNvbi12b2x1bWUtbG93LCAudmlkZW8tanMgLnZqcy1tdXRlLWNvbnRyb2wudmpzLXZvbC0xIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tdm9sdW1lLWxvdzpiZWZvcmUsIC52aWRlby1qcyAudmpzLW11dGUtY29udHJvbC52anMtdm9sLTEgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA1XCI7XG59XG5cbi52anMtaWNvbi12b2x1bWUtbWlkLCAudmlkZW8tanMgLnZqcy1tdXRlLWNvbnRyb2wudmpzLXZvbC0yIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tdm9sdW1lLW1pZDpiZWZvcmUsIC52aWRlby1qcyAudmpzLW11dGUtY29udHJvbC52anMtdm9sLTIgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA2XCI7XG59XG5cbi52anMtaWNvbi12b2x1bWUtaGlnaCwgLnZpZGVvLWpzIC52anMtbXV0ZS1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tdm9sdW1lLWhpZ2g6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1tdXRlLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA3XCI7XG59XG5cbi52anMtaWNvbi1mdWxsc2NyZWVuLWVudGVyLCAudmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1mdWxsc2NyZWVuLWVudGVyOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtZnVsbHNjcmVlbi1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwOFwiO1xufVxuXG4udmpzLWljb24tZnVsbHNjcmVlbi1leGl0LCAudmlkZW8tanMudmpzLWZ1bGxzY3JlZW4gLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1mdWxsc2NyZWVuLWV4aXQ6YmVmb3JlLCAudmlkZW8tanMudmpzLWZ1bGxzY3JlZW4gLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTA5XCI7XG59XG5cbi52anMtaWNvbi1zcXVhcmUge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXNxdWFyZTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwYVwiO1xufVxuXG4udmpzLWljb24tc3Bpbm5lciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tc3Bpbm5lcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwYlwiO1xufVxuXG4udmpzLWljb24tc3VidGl0bGVzLCAudmlkZW8tanMgLnZqcy1zdWJzLWNhcHMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcixcbi52aWRlby1qcy52aWRlby1qczpsYW5nKGVuLUdCKSAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyLFxuLnZpZGVvLWpzLnZpZGVvLWpzOmxhbmcoZW4tSUUpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXIsXG4udmlkZW8tanMudmlkZW8tanM6bGFuZyhlbi1BVSkgLnZqcy1zdWJzLWNhcHMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcixcbi52aWRlby1qcy52aWRlby1qczpsYW5nKGVuLU5aKSAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyLCAudmlkZW8tanMgLnZqcy1zdWJ0aXRsZXMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tc3VidGl0bGVzOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLFxuLnZpZGVvLWpzLnZpZGVvLWpzOmxhbmcoZW4tR0IpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLFxuLnZpZGVvLWpzLnZpZGVvLWpzOmxhbmcoZW4tSUUpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLFxuLnZpZGVvLWpzLnZpZGVvLWpzOmxhbmcoZW4tQVUpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLFxuLnZpZGVvLWpzLnZpZGVvLWpzOmxhbmcoZW4tTlopIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1zdWJ0aXRsZXMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEwY1wiO1xufVxuXG4udmpzLWljb24tY2FwdGlvbnMsIC52aWRlby1qczpsYW5nKGVuKSAudmpzLXN1YnMtY2Fwcy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyLFxuLnZpZGVvLWpzOmxhbmcoZnItQ0EpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXIsIC52aWRlby1qcyAudmpzLWNhcHRpb25zLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLWNhcHRpb25zOmJlZm9yZSwgLnZpZGVvLWpzOmxhbmcoZW4pIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLFxuLnZpZGVvLWpzOmxhbmcoZnItQ0EpIC52anMtc3Vicy1jYXBzLWJ1dHRvbiAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1jYXB0aW9ucy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBkXCI7XG59XG5cbi52anMtaWNvbi1jaGFwdGVycywgLnZpZGVvLWpzIC52anMtY2hhcHRlcnMtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tY2hhcHRlcnM6YmVmb3JlLCAudmlkZW8tanMgLnZqcy1jaGFwdGVycy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTBlXCI7XG59XG5cbi52anMtaWNvbi1zaGFyZSB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tc2hhcmU6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMGZcIjtcbn1cblxuLnZqcy1pY29uLWNvZyB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tY29nOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEwXCI7XG59XG5cbi52anMtaWNvbi1jaXJjbGUsIC52anMtc2Vlay10by1saXZlLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyLCAudmlkZW8tanMgLnZqcy12b2x1bWUtbGV2ZWwsIC52aWRlby1qcyAudmpzLXBsYXktcHJvZ3Jlc3Mge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLWNpcmNsZTpiZWZvcmUsIC52anMtc2Vlay10by1saXZlLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtdm9sdW1lLWxldmVsOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtcGxheS1wcm9ncmVzczpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExMVwiO1xufVxuXG4udmpzLWljb24tY2lyY2xlLW91dGxpbmUge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLWNpcmNsZS1vdXRsaW5lOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEyXCI7XG59XG5cbi52anMtaWNvbi1jaXJjbGUtaW5uZXItY2lyY2xlIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1jaXJjbGUtaW5uZXItY2lyY2xlOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTEzXCI7XG59XG5cbi52anMtaWNvbi1oZCB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24taGQ6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTRcIjtcbn1cblxuLnZqcy1pY29uLWNhbmNlbCwgLnZpZGVvLWpzIC52anMtY29udHJvbC52anMtY2xvc2UtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tY2FuY2VsOmJlZm9yZSwgLnZpZGVvLWpzIC52anMtY29udHJvbC52anMtY2xvc2UtYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExNVwiO1xufVxuXG4udmpzLWljb24tcmVwbGF5LCAudmlkZW8tanMgLnZqcy1wbGF5LWNvbnRyb2wudmpzLWVuZGVkIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tcmVwbGF5OmJlZm9yZSwgLnZpZGVvLWpzIC52anMtcGxheS1jb250cm9sLnZqcy1lbmRlZCAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTZcIjtcbn1cblxuLnZqcy1pY29uLWZhY2Vib29rIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1mYWNlYm9vazpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExN1wiO1xufVxuXG4udmpzLWljb24tZ3BsdXMge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLWdwbHVzOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTE4XCI7XG59XG5cbi52anMtaWNvbi1saW5rZWRpbiB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tbGlua2VkaW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMTlcIjtcbn1cblxuLnZqcy1pY29uLXR3aXR0ZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXR3aXR0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYxMWFcIjtcbn1cblxuLnZqcy1pY29uLXR1bWJsciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tdHVtYmxyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFiXCI7XG59XG5cbi52anMtaWNvbi1waW50ZXJlc3Qge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXBpbnRlcmVzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExY1wiO1xufVxuXG4udmpzLWljb24tYXVkaW8tZGVzY3JpcHRpb24sIC52aWRlby1qcyAudmpzLWRlc2NyaXB0aW9ucy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1hdWRpby1kZXNjcmlwdGlvbjpiZWZvcmUsIC52aWRlby1qcyAudmpzLWRlc2NyaXB0aW9ucy1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFkXCI7XG59XG5cbi52anMtaWNvbi1hdWRpbywgLnZpZGVvLWpzIC52anMtYXVkaW8tYnV0dG9uIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tYXVkaW86YmVmb3JlLCAudmlkZW8tanMgLnZqcy1hdWRpby1idXR0b24gLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTFlXCI7XG59XG5cbi52anMtaWNvbi1uZXh0LWl0ZW0ge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLW5leHQtaXRlbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjExZlwiO1xufVxuXG4udmpzLWljb24tcHJldmlvdXMtaXRlbSB7XG4gIGZvbnQtZmFtaWx5OiBWaWRlb0pTO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4udmpzLWljb24tcHJldmlvdXMtaXRlbTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyMFwiO1xufVxuXG4udmpzLWljb24tcGljdHVyZS1pbi1waWN0dXJlLWVudGVyLCAudmlkZW8tanMgLnZqcy1waWN0dXJlLWluLXBpY3R1cmUtY29udHJvbCAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBmb250LWZhbWlseTogVmlkZW9KUztcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLnZqcy1pY29uLXBpY3R1cmUtaW4tcGljdHVyZS1lbnRlcjpiZWZvcmUsIC52aWRlby1qcyAudmpzLXBpY3R1cmUtaW4tcGljdHVyZS1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZjEyMVwiO1xufVxuXG4udmpzLWljb24tcGljdHVyZS1pbi1waWN0dXJlLWV4aXQsIC52aWRlby1qcy52anMtcGljdHVyZS1pbi1waWN0dXJlIC52anMtcGljdHVyZS1pbi1waWN0dXJlLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi52anMtaWNvbi1waWN0dXJlLWluLXBpY3R1cmUtZXhpdDpiZWZvcmUsIC52aWRlby1qcy52anMtcGljdHVyZS1pbi1waWN0dXJlIC52anMtcGljdHVyZS1pbi1waWN0dXJlLWNvbnRyb2wgLnZqcy1pY29uLXBsYWNlaG9sZGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMTIyXCI7XG59XG5cbi52aWRlby1qcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICB3b3JkLWJyZWFrOiBpbml0aWFsO1xufVxuLnZpZGVvLWpzOi1tb3otZnVsbC1zY3JlZW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4udmlkZW8tanM6LXdlYmtpdC1mdWxsLXNjcmVlbiB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4udmlkZW8tanNbdGFiaW5kZXg9XCItMVwiXSB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi52aWRlby1qcyAqLFxuLnZpZGVvLWpzICo6YmVmb3JlLFxuLnZpZGVvLWpzICo6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG4udmlkZW8tanMgdWwge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLnZpZGVvLWpzLnZqcy1mbHVpZCxcbi52aWRlby1qcy52anMtMTYtOSxcbi52aWRlby1qcy52anMtNC0zLFxuLnZpZGVvLWpzLnZqcy05LTE2LFxuLnZpZGVvLWpzLnZqcy0xLTEge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDA7XG59XG5cbi52aWRlby1qcy52anMtMTYtOSB7XG4gIHBhZGRpbmctdG9wOiA1Ni4yNSU7XG59XG5cbi52aWRlby1qcy52anMtNC0zIHtcbiAgcGFkZGluZy10b3A6IDc1JTtcbn1cblxuLnZpZGVvLWpzLnZqcy05LTE2IHtcbiAgcGFkZGluZy10b3A6IDE3Ny43Nzc3Nzc3Nzc4JTtcbn1cblxuLnZpZGVvLWpzLnZqcy0xLTEge1xuICBwYWRkaW5nLXRvcDogMTAwJTtcbn1cblxuLnZpZGVvLWpzLnZqcy1maWxsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnZpZGVvLWpzIC52anMtdGVjaCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5LnZqcy1mdWxsLXdpbmRvdyB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4udmpzLWZ1bGwtd2luZG93IC52aWRlby1qcy52anMtZnVsbHNjcmVlbiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogMTAwMDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xufVxuXG4udmlkZW8tanMudmpzLWZ1bGxzY3JlZW46bm90KC52anMtaW9zLW5hdGl2ZS1mcykge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLnZpZGVvLWpzLnZqcy1mdWxsc2NyZWVuLnZqcy11c2VyLWluYWN0aXZlIHtcbiAgY3Vyc29yOiBub25lO1xufVxuXG4udmpzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnZqcy1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4udmlkZW8tanMgLnZqcy1vZmZzY3JlZW4ge1xuICBoZWlnaHQ6IDFweDtcbiAgbGVmdDogLTk5OTlweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxcHg7XG59XG5cbi52anMtbG9jay1zaG93aW5nIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLnZqcy1uby1qcyB7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiAxNTBweDtcbiAgbWFyZ2luOiAwcHggYXV0bztcbn1cblxuLnZqcy1uby1qcyBhLFxuLnZqcy1uby1qcyBhOnZpc2l0ZWQge1xuICBjb2xvcjogIzY2QThDQztcbn1cblxuLnZpZGVvLWpzIC52anMtYmlnLXBsYXktYnV0dG9uIHtcbiAgZm9udC1zaXplOiAzZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgaGVpZ2h0OiAxLjYzMzMyZW07XG4gIHdpZHRoOiAzZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgbGVmdDogMTBweDtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAxO1xuICBib3JkZXI6IDAuMDY2NjZlbSBzb2xpZCAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMkIzMzNGO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDQzLCA1MSwgNjMsIDAuNyk7XG4gIGJvcmRlci1yYWRpdXM6IDAuM2VtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cztcbn1cbi52anMtYmlnLXBsYXktY2VudGVyZWQgLnZqcy1iaWctcGxheS1idXR0b24ge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMC44MTY2NmVtO1xuICBtYXJnaW4tbGVmdDogLTEuNWVtO1xufVxuXG4udmlkZW8tanM6aG92ZXIgLnZqcy1iaWctcGxheS1idXR0b24sXG4udmlkZW8tanMgLnZqcy1iaWctcGxheS1idXR0b246Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3Mzg1OWY7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTE1LCAxMzMsIDE1OSwgMC41KTtcbiAgdHJhbnNpdGlvbjogYWxsIDBzO1xufVxuXG4udmpzLWNvbnRyb2xzLWRpc2FibGVkIC52anMtYmlnLXBsYXktYnV0dG9uLFxuLnZqcy1oYXMtc3RhcnRlZCAudmpzLWJpZy1wbGF5LWJ1dHRvbixcbi52anMtdXNpbmctbmF0aXZlLWNvbnRyb2xzIC52anMtYmlnLXBsYXktYnV0dG9uLFxuLnZqcy1lcnJvciAudmpzLWJpZy1wbGF5LWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52anMtaGFzLXN0YXJ0ZWQudmpzLXBhdXNlZC52anMtc2hvdy1iaWctcGxheS1idXR0b24tb24tcGF1c2UgLnZqcy1iaWctcGxheS1idXR0b24ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnZpZGVvLWpzIGJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi52anMtY29udHJvbCAudmpzLWJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi52aWRlby1qcyAudmpzLWNvbnRyb2wudmpzLWNsb3NlLWJ1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgaGVpZ2h0OiAzZW07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMC41ZW07XG4gIHotaW5kZXg6IDI7XG59XG4udmlkZW8tanMgLnZqcy1tb2RhbC1kaWFsb2cge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMCwgMCwgMCwgMC44KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSk7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4udmlkZW8tanMgLnZqcy1tb2RhbC1kaWFsb2cgPiAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnZqcy1tb2RhbC1kaWFsb2cgLnZqcy1tb2RhbC1kaWFsb2ctY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHBhZGRpbmc6IDIwcHggMjRweDtcbiAgei1pbmRleDogMTtcbn1cblxuLnZqcy1tZW51LWJ1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnZqcy1tZW51LWJ1dHRvbi52anMtZGlzYWJsZWQge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi52anMtd29ya2luZ2hvdmVyIC52anMtbWVudS1idXR0b24udmpzLWRpc2FibGVkOmhvdmVyIC52anMtbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52anMtbWVudSAudmpzLW1lbnUtY29udGVudCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLnZqcy1tZW51IC52anMtbWVudS1jb250ZW50ID4gKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi52anMtc2NydWJiaW5nIC52anMtY29udHJvbC52anMtbWVudS1idXR0b246aG92ZXIgLnZqcy1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnZqcy1tZW51IGxpIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwLjJlbSAwO1xuICBsaW5lLWhlaWdodDogMS40ZW07XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbn1cblxuLnZqcy1tZW51IGxpLnZqcy1tZW51LWl0ZW06Zm9jdXMsXG4udmpzLW1lbnUgbGkudmpzLW1lbnUtaXRlbTpob3Zlcixcbi5qcy1mb2N1cy12aXNpYmxlIC52anMtbWVudSBsaS52anMtbWVudS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczODU5ZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMTUsIDEzMywgMTU5LCAwLjUpO1xufVxuXG4udmpzLW1lbnUgbGkudmpzLXNlbGVjdGVkLFxuLnZqcy1tZW51IGxpLnZqcy1zZWxlY3RlZDpmb2N1cyxcbi52anMtbWVudSBsaS52anMtc2VsZWN0ZWQ6aG92ZXIsXG4uanMtZm9jdXMtdmlzaWJsZSAudmpzLW1lbnUgbGkudmpzLXNlbGVjdGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICMyQjMzM0Y7XG59XG5cbi52aWRlby1qcyAudmpzLW1lbnUgKjpub3QoLnZqcy1zZWxlY3RlZCk6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi5qcy1mb2N1cy12aXNpYmxlIC52anMtbWVudSAqOm5vdCgudmpzLXNlbGVjdGVkKTpmb2N1czpub3QoLmZvY3VzLXZpc2libGUpIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cblxuLnZqcy1tZW51IGxpLnZqcy1tZW51LXRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIDAgMC4zZW0gMDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnZqcy1tZW51LWJ1dHRvbi1wb3B1cCAudmpzLW1lbnUge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwZW07XG4gIGxlZnQ6IC0zZW07XG4gIGhlaWdodDogMGVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogcmdiYSg0MywgNTEsIDYzLCAwLjcpO1xufVxuXG4udmpzLW1lbnUtYnV0dG9uLXBvcHVwIC52anMtbWVudSAudmpzLW1lbnUtY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQjMzM0Y7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDUxLCA2MywgMC43KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgYm90dG9tOiAxLjVlbTtcbiAgbWF4LWhlaWdodDogMTVlbTtcbn1cblxuLnZqcy1sYXlvdXQtdGlueSAudmpzLW1lbnUtYnV0dG9uLXBvcHVwIC52anMtbWVudSAudmpzLW1lbnUtY29udGVudCxcbi52anMtbGF5b3V0LXgtc21hbGwgLnZqcy1tZW51LWJ1dHRvbi1wb3B1cCAudmpzLW1lbnUgLnZqcy1tZW51LWNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiA1ZW07XG59XG5cbi52anMtbGF5b3V0LXNtYWxsIC52anMtbWVudS1idXR0b24tcG9wdXAgLnZqcy1tZW51IC52anMtbWVudS1jb250ZW50IHtcbiAgbWF4LWhlaWdodDogMTBlbTtcbn1cblxuLnZqcy1sYXlvdXQtbWVkaXVtIC52anMtbWVudS1idXR0b24tcG9wdXAgLnZqcy1tZW51IC52anMtbWVudS1jb250ZW50IHtcbiAgbWF4LWhlaWdodDogMTRlbTtcbn1cblxuLnZqcy1sYXlvdXQtbGFyZ2UgLnZqcy1tZW51LWJ1dHRvbi1wb3B1cCAudmpzLW1lbnUgLnZqcy1tZW51LWNvbnRlbnQsXG4udmpzLWxheW91dC14LWxhcmdlIC52anMtbWVudS1idXR0b24tcG9wdXAgLnZqcy1tZW51IC52anMtbWVudS1jb250ZW50LFxuLnZqcy1sYXlvdXQtaHVnZSAudmpzLW1lbnUtYnV0dG9uLXBvcHVwIC52anMtbWVudSAudmpzLW1lbnUtY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IDI1ZW07XG59XG5cbi52anMtd29ya2luZ2hvdmVyIC52anMtbWVudS1idXR0b24tcG9wdXAudmpzLWhvdmVyIC52anMtbWVudSxcbi52anMtbWVudS1idXR0b24tcG9wdXAgLnZqcy1tZW51LnZqcy1sb2NrLXNob3dpbmcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnZpZGVvLWpzIC52anMtbWVudS1idXR0b24taW5saW5lIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHM7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi52aWRlby1qcyAudmpzLW1lbnUtYnV0dG9uLWlubGluZTpiZWZvcmUge1xuICB3aWR0aDogMi4yMjIyMjIyMjJlbTtcbn1cblxuLnZpZGVvLWpzIC52anMtbWVudS1idXR0b24taW5saW5lOmhvdmVyLFxuLnZpZGVvLWpzIC52anMtbWVudS1idXR0b24taW5saW5lOmZvY3VzLFxuLnZpZGVvLWpzIC52anMtbWVudS1idXR0b24taW5saW5lLnZqcy1zbGlkZXItYWN0aXZlLFxuLnZpZGVvLWpzLnZqcy1uby1mbGV4IC52anMtbWVudS1idXR0b24taW5saW5lIHtcbiAgd2lkdGg6IDEyZW07XG59XG5cbi52anMtbWVudS1idXR0b24taW5saW5lIC52anMtbWVudSB7XG4gIG9wYWNpdHk6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IGF1dG87XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNGVtO1xuICB0b3A6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHM7XG59XG5cbi52anMtbWVudS1idXR0b24taW5saW5lOmhvdmVyIC52anMtbWVudSxcbi52anMtbWVudS1idXR0b24taW5saW5lOmZvY3VzIC52anMtbWVudSxcbi52anMtbWVudS1idXR0b24taW5saW5lLnZqcy1zbGlkZXItYWN0aXZlIC52anMtbWVudSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvcGFjaXR5OiAxO1xufVxuXG4udmpzLW5vLWZsZXggLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmUgLnZqcy1tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG9wYWNpdHk6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi52anMtbm8tZmxleCAudmpzLW1lbnUtYnV0dG9uLWlubGluZTpob3ZlciAudmpzLW1lbnUsXG4udmpzLW5vLWZsZXggLnZqcy1tZW51LWJ1dHRvbi1pbmxpbmU6Zm9jdXMgLnZqcy1tZW51LFxuLnZqcy1uby1mbGV4IC52anMtbWVudS1idXR0b24taW5saW5lLnZqcy1zbGlkZXItYWN0aXZlIC52anMtbWVudSB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4udmpzLW1lbnUtYnV0dG9uLWlubGluZSAudmpzLW1lbnUtY29udGVudCB7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnZpZGVvLWpzIC52anMtY29udHJvbC1iYXIge1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDNlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzJCMzMzRjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MywgNTEsIDYzLCAwLjcpO1xufVxuXG4udmpzLWhhcy1zdGFydGVkIC52anMtY29udHJvbC1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDAuMXMsIG9wYWNpdHkgMC4xcztcbn1cblxuLnZqcy1oYXMtc3RhcnRlZC52anMtdXNlci1pbmFjdGl2ZS52anMtcGxheWluZyAudmpzLWNvbnRyb2wtYmFyIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAxcywgb3BhY2l0eSAxcztcbn1cblxuLnZqcy1jb250cm9scy1kaXNhYmxlZCAudmpzLWNvbnRyb2wtYmFyLFxuLnZqcy11c2luZy1uYXRpdmUtY29udHJvbHMgLnZqcy1jb250cm9sLWJhcixcbi52anMtZXJyb3IgLnZqcy1jb250cm9sLWJhciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnZqcy1hdWRpby52anMtaGFzLXN0YXJ0ZWQudmpzLXVzZXItaW5hY3RpdmUudmpzLXBsYXlpbmcgLnZqcy1jb250cm9sLWJhciB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi52anMtaGFzLXN0YXJ0ZWQudmpzLW5vLWZsZXggLnZqcy1jb250cm9sLWJhciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4udmlkZW8tanMgLnZqcy1jb250cm9sIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogNGVtO1xuICBmbGV4OiBub25lO1xufVxuXG4udmpzLWJ1dHRvbiA+IC52anMtaWNvbi1wbGFjZWhvbGRlcjpiZWZvcmUge1xuICBmb250LXNpemU6IDEuOGVtO1xuICBsaW5lLWhlaWdodDogMS42Nztcbn1cblxuLnZqcy1idXR0b24gPiAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnZpZGVvLWpzIC52anMtY29udHJvbDpmb2N1czpiZWZvcmUsXG4udmlkZW8tanMgLnZqcy1jb250cm9sOmhvdmVyOmJlZm9yZSxcbi52aWRlby1qcyAudmpzLWNvbnRyb2w6Zm9jdXMge1xuICB0ZXh0LXNoYWRvdzogMGVtIDBlbSAxZW0gd2hpdGU7XG59XG5cbi52aWRlby1qcyAudmpzLWNvbnRyb2wtdGV4dCB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbn1cblxuLnZqcy1uby1mbGV4IC52anMtY29udHJvbCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi52aWRlby1qcyAudmpzLWN1c3RvbS1jb250cm9sLXNwYWNlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWNvbnRyb2wge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXg6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogNGVtO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG59XG5cbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWNvbnRyb2wuZGlzYWJsZWQge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi52anMtbGl2ZSAudmpzLXByb2dyZXNzLWNvbnRyb2wge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmpzLWxpdmV1aSAudmpzLXByb2dyZXNzLWNvbnRyb2wge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udmpzLW5vLWZsZXggLnZqcy1wcm9ncmVzcy1jb250cm9sIHtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWhvbGRlciB7XG4gIGZsZXg6IGF1dG87XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBoZWlnaHQ6IDAuM2VtO1xufVxuXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1jb250cm9sIC52anMtcHJvZ3Jlc3MtaG9sZGVyIHtcbiAgbWFyZ2luOiAwIDEwcHg7XG59XG5cbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWNvbnRyb2w6aG92ZXIgLnZqcy1wcm9ncmVzcy1ob2xkZXIge1xuICBmb250LXNpemU6IDEuNjY2NjY2NjY2N2VtO1xufVxuXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1jb250cm9sOmhvdmVyIC52anMtcHJvZ3Jlc3MtaG9sZGVyLmRpc2FibGVkIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWhvbGRlciAudmpzLXBsYXktcHJvZ3Jlc3MsXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1ob2xkZXIgLnZqcy1sb2FkLXByb2dyZXNzLFxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtaG9sZGVyIC52anMtbG9hZC1wcm9ncmVzcyBkaXYge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDA7XG59XG5cbi52aWRlby1qcyAudmpzLXBsYXktcHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLnZpZGVvLWpzIC52anMtcGxheS1wcm9ncmVzczpiZWZvcmUge1xuICBmb250LXNpemU6IDAuOWVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtMC41ZW07XG4gIHRvcDogLTAuMzMzMzMzMzMzM2VtO1xuICB6LWluZGV4OiAxO1xufVxuXG4udmlkZW8tanMgLnZqcy1sb2FkLXByb2dyZXNzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMTUsIDEzMywgMTU5LCAwLjUpO1xufVxuXG4udmlkZW8tanMgLnZqcy1sb2FkLXByb2dyZXNzIGRpdiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTE1LCAxMzMsIDE1OSwgMC43NSk7XG59XG5cbi52aWRlby1qcyAudmpzLXRpbWUtdG9vbHRpcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgYm9yZGVyLXJhZGl1czogMC4zZW07XG4gIGNvbG9yOiAjMDAwO1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFlbTtcbiAgcGFkZGluZzogNnB4IDhweCA4cHggOHB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zLjRlbTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB6LWluZGV4OiAxO1xufVxuXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1ob2xkZXI6Zm9jdXMgLnZqcy10aW1lLXRvb2x0aXAge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1jb250cm9sOmhvdmVyIC52anMtdGltZS10b29sdGlwLFxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtY29udHJvbDpob3ZlciAudmpzLXByb2dyZXNzLWhvbGRlcjpmb2N1cyAudmpzLXRpbWUtdG9vbHRpcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuNmVtO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4udmlkZW8tanMgLnZqcy1wcm9ncmVzcy1jb250cm9sLmRpc2FibGVkOmhvdmVyIC52anMtdGltZS10b29sdGlwIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi52aWRlby1qcyAudmpzLXByb2dyZXNzLWNvbnRyb2wgLnZqcy1tb3VzZS1kaXNwbGF5IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIHotaW5kZXg6IDE7XG59XG5cbi52anMtbm8tZmxleCAudmpzLXByb2dyZXNzLWNvbnRyb2wgLnZqcy1tb3VzZS1kaXNwbGF5IHtcbiAgei1pbmRleDogMDtcbn1cblxuLnZpZGVvLWpzIC52anMtcHJvZ3Jlc3MtY29udHJvbDpob3ZlciAudmpzLW1vdXNlLWRpc3BsYXkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnZpZGVvLWpzLnZqcy11c2VyLWluYWN0aXZlIC52anMtcHJvZ3Jlc3MtY29udHJvbCAudmpzLW1vdXNlLWRpc3BsYXkge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMXMsIG9wYWNpdHkgMXM7XG59XG5cbi52aWRlby1qcy52anMtdXNlci1pbmFjdGl2ZS52anMtbm8tZmxleCAudmpzLXByb2dyZXNzLWNvbnRyb2wgLnZqcy1tb3VzZS1kaXNwbGF5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnZqcy1tb3VzZS1kaXNwbGF5IC52anMtdGltZS10b29sdGlwIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbn1cblxuLnZpZGVvLWpzIC52anMtc2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMCAwLjQ1ZW0gMCAwLjQ1ZW07XG4gIC8qIGlPUyBTYWZhcmkgKi9cbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAvKiBTYWZhcmkgKi9cbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogS29ucXVlcm9yIEhUTUwgKi9cbiAgLyogRmlyZWZveCAqL1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAvKiBJbnRlcm5ldCBFeHBsb3Jlci9FZGdlICovXG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogTm9uLXByZWZpeGVkIHZlcnNpb24sIGN1cnJlbnRseSBzdXBwb3J0ZWQgYnkgQ2hyb21lIGFuZCBPcGVyYSAqL1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzczODU5ZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMTUsIDEzMywgMTU5LCAwLjUpO1xufVxuXG4udmlkZW8tanMgLnZqcy1zbGlkZXIuZGlzYWJsZWQge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi52aWRlby1qcyAudmpzLXNsaWRlcjpmb2N1cyB7XG4gIHRleHQtc2hhZG93OiAwZW0gMGVtIDFlbSB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMCAwIDFlbSAjZmZmO1xufVxuXG4udmlkZW8tanMgLnZqcy1tdXRlLWNvbnRyb2wge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXg6IG5vbmU7XG59XG4udmlkZW8tanMgLnZqcy12b2x1bWUtY29udHJvbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sLnZqcy12b2x1bWUtaG9yaXpvbnRhbCB7XG4gIHdpZHRoOiA1ZW07XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbCAudmpzLXZvbHVtZS1jb250cm9sIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbi1sZWZ0OiAtMXB4O1xufVxuXG4udmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwge1xuICB0cmFuc2l0aW9uOiB3aWR0aCAxcztcbn1cbi52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbC52anMtaG92ZXIgLnZqcy12b2x1bWUtY29udHJvbCwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsOmFjdGl2ZSAudmpzLXZvbHVtZS1jb250cm9sLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWw6Zm9jdXMgLnZqcy12b2x1bWUtY29udHJvbCwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsIC52anMtdm9sdW1lLWNvbnRyb2w6YWN0aXZlLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwudmpzLWhvdmVyIC52anMtbXV0ZS1jb250cm9sIH4gLnZqcy12b2x1bWUtY29udHJvbCwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsIC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXNsaWRlci1hY3RpdmUge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBvcGFjaXR5OiAxO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMC4xcywgb3BhY2l0eSAwLjFzLCBoZWlnaHQgMC4xcywgd2lkdGggMC4xcywgbGVmdCAwcywgdG9wIDBzO1xufVxuLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsLnZqcy1ob3ZlciAudmpzLXZvbHVtZS1jb250cm9sLnZqcy12b2x1bWUtaG9yaXpvbnRhbCwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsOmFjdGl2ZSAudmpzLXZvbHVtZS1jb250cm9sLnZqcy12b2x1bWUtaG9yaXpvbnRhbCwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsOmZvY3VzIC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXZvbHVtZS1ob3Jpem9udGFsLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwgLnZqcy12b2x1bWUtY29udHJvbDphY3RpdmUudmpzLXZvbHVtZS1ob3Jpem9udGFsLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwudmpzLWhvdmVyIC52anMtbXV0ZS1jb250cm9sIH4gLnZqcy12b2x1bWUtY29udHJvbC52anMtdm9sdW1lLWhvcml6b250YWwsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbCAudmpzLXZvbHVtZS1jb250cm9sLnZqcy1zbGlkZXItYWN0aXZlLnZqcy12b2x1bWUtaG9yaXpvbnRhbCB7XG4gIHdpZHRoOiA1ZW07XG4gIGhlaWdodDogM2VtO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG59XG4udmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwudmpzLWhvdmVyIC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXZvbHVtZS12ZXJ0aWNhbCwgLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsOmFjdGl2ZSAudmpzLXZvbHVtZS1jb250cm9sLnZqcy12b2x1bWUtdmVydGljYWwsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbDpmb2N1cyAudmpzLXZvbHVtZS1jb250cm9sLnZqcy12b2x1bWUtdmVydGljYWwsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbCAudmpzLXZvbHVtZS1jb250cm9sOmFjdGl2ZS52anMtdm9sdW1lLXZlcnRpY2FsLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwudmpzLWhvdmVyIC52anMtbXV0ZS1jb250cm9sIH4gLnZqcy12b2x1bWUtY29udHJvbC52anMtdm9sdW1lLXZlcnRpY2FsLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwgLnZqcy12b2x1bWUtY29udHJvbC52anMtc2xpZGVyLWFjdGl2ZS52anMtdm9sdW1lLXZlcnRpY2FsIHtcbiAgbGVmdDogLTMuNWVtO1xuICB0cmFuc2l0aW9uOiBsZWZ0IDBzO1xufVxuLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsLnZqcy12b2x1bWUtcGFuZWwtaG9yaXpvbnRhbC52anMtaG92ZXIsIC52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWw6YWN0aXZlLCAudmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwudmpzLXZvbHVtZS1wYW5lbC1ob3Jpem9udGFsLnZqcy1zbGlkZXItYWN0aXZlIHtcbiAgd2lkdGg6IDEwZW07XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMXM7XG59XG4udmlkZW8tanMgLnZqcy12b2x1bWUtcGFuZWwudmpzLXZvbHVtZS1wYW5lbC1ob3Jpem9udGFsLnZqcy1tdXRlLXRvZ2dsZS1vbmx5IHtcbiAgd2lkdGg6IDRlbTtcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsIC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXZvbHVtZS12ZXJ0aWNhbCB7XG4gIGhlaWdodDogOGVtO1xuICB3aWR0aDogM2VtO1xuICBsZWZ0OiAtMzAwMGVtO1xuICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDFzLCBvcGFjaXR5IDFzLCBoZWlnaHQgMXMgMXMsIHdpZHRoIDFzIDFzLCBsZWZ0IDFzIDFzLCB0b3AgMXMgMXM7XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1wYW5lbCAudmpzLXZvbHVtZS1jb250cm9sLnZqcy12b2x1bWUtaG9yaXpvbnRhbCB7XG4gIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMXMsIG9wYWNpdHkgMXMsIGhlaWdodCAxcyAxcywgd2lkdGggMXMsIGxlZnQgMXMgMXMsIHRvcCAxcyAxcztcbn1cblxuLnZpZGVvLWpzLnZqcy1uby1mbGV4IC52anMtdm9sdW1lLXBhbmVsIC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXZvbHVtZS1ob3Jpem9udGFsIHtcbiAgd2lkdGg6IDVlbTtcbiAgaGVpZ2h0OiAzZW07XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIG9wYWNpdHk6IDE7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuLnZpZGVvLWpzLnZqcy1uby1mbGV4IC52anMtdm9sdW1lLWNvbnRyb2wudmpzLXZvbHVtZS12ZXJ0aWNhbCxcbi52aWRlby1qcy52anMtbm8tZmxleCAudmpzLXZvbHVtZS1wYW5lbCAudmpzLXZvbHVtZS1jb250cm9sLnZqcy12b2x1bWUtdmVydGljYWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogM2VtO1xuICBsZWZ0OiAwLjVlbTtcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLWJhciB7XG4gIG1hcmdpbjogMS4zNWVtIDAuNDVlbTtcbn1cblxuLnZqcy12b2x1bWUtYmFyLnZqcy1zbGlkZXItaG9yaXpvbnRhbCB7XG4gIHdpZHRoOiA1ZW07XG4gIGhlaWdodDogMC4zZW07XG59XG5cbi52anMtdm9sdW1lLWJhci52anMtc2xpZGVyLXZlcnRpY2FsIHtcbiAgd2lkdGg6IDAuM2VtO1xuICBoZWlnaHQ6IDVlbTtcbiAgbWFyZ2luOiAxLjM1ZW0gYXV0bztcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLWxldmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4udmlkZW8tanMgLnZqcy12b2x1bWUtbGV2ZWw6YmVmb3JlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBmb250LXNpemU6IDAuOWVtO1xuICB6LWluZGV4OiAxO1xufVxuXG4udmpzLXNsaWRlci12ZXJ0aWNhbCAudmpzLXZvbHVtZS1sZXZlbCB7XG4gIHdpZHRoOiAwLjNlbTtcbn1cbi52anMtc2xpZGVyLXZlcnRpY2FsIC52anMtdm9sdW1lLWxldmVsOmJlZm9yZSB7XG4gIHRvcDogLTAuNWVtO1xuICBsZWZ0OiAtMC4zZW07XG4gIHotaW5kZXg6IDE7XG59XG5cbi52anMtc2xpZGVyLWhvcml6b250YWwgLnZqcy12b2x1bWUtbGV2ZWwge1xuICBoZWlnaHQ6IDAuM2VtO1xufVxuLnZqcy1zbGlkZXItaG9yaXpvbnRhbCAudmpzLXZvbHVtZS1sZXZlbDpiZWZvcmUge1xuICB0b3A6IC0wLjNlbTtcbiAgcmlnaHQ6IC0wLjVlbTtcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLXBhbmVsLnZqcy12b2x1bWUtcGFuZWwtdmVydGljYWwge1xuICB3aWR0aDogNGVtO1xufVxuXG4udmpzLXZvbHVtZS1iYXIudmpzLXNsaWRlci12ZXJ0aWNhbCAudmpzLXZvbHVtZS1sZXZlbCB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnZqcy12b2x1bWUtYmFyLnZqcy1zbGlkZXItaG9yaXpvbnRhbCAudmpzLXZvbHVtZS1sZXZlbCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udmlkZW8tanMgLnZqcy12b2x1bWUtdmVydGljYWwge1xuICB3aWR0aDogM2VtO1xuICBoZWlnaHQ6IDhlbTtcbiAgYm90dG9tOiA4ZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQjMzM0Y7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDUxLCA2MywgMC43KTtcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLWhvcml6b250YWwgLnZqcy1tZW51IHtcbiAgbGVmdDogLTJlbTtcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLXRvb2x0aXAge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIGJvcmRlci1yYWRpdXM6IDAuM2VtO1xuICBjb2xvcjogIzAwMDtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxZW07XG4gIHBhZGRpbmc6IDZweCA4cHggOHB4IDhweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMy40ZW07XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgei1pbmRleDogMTtcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLWNvbnRyb2w6aG92ZXIgLnZqcy12b2x1bWUtdG9vbHRpcCxcbi52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sOmhvdmVyIC52anMtcHJvZ3Jlc3MtaG9sZGVyOmZvY3VzIC52anMtdm9sdW1lLXRvb2x0aXAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxZW07XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS12ZXJ0aWNhbDpob3ZlciAudmpzLXZvbHVtZS10b29sdGlwLFxuLnZpZGVvLWpzIC52anMtdm9sdW1lLXZlcnRpY2FsOmhvdmVyIC52anMtcHJvZ3Jlc3MtaG9sZGVyOmZvY3VzIC52anMtdm9sdW1lLXRvb2x0aXAge1xuICBsZWZ0OiAxZW07XG4gIHRvcDogLTEycHg7XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1jb250cm9sLmRpc2FibGVkOmhvdmVyIC52anMtdm9sdW1lLXRvb2x0aXAge1xuICBmb250LXNpemU6IDFlbTtcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLWNvbnRyb2wgLnZqcy1tb3VzZS1kaXNwbGF5IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIHotaW5kZXg6IDE7XG59XG5cbi52aWRlby1qcyAudmpzLXZvbHVtZS1ob3Jpem9udGFsIC52anMtbW91c2UtZGlzcGxheSB7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnZqcy1uby1mbGV4IC52anMtdm9sdW1lLWNvbnRyb2wgLnZqcy1tb3VzZS1kaXNwbGF5IHtcbiAgei1pbmRleDogMDtcbn1cblxuLnZpZGVvLWpzIC52anMtdm9sdW1lLWNvbnRyb2w6aG92ZXIgLnZqcy1tb3VzZS1kaXNwbGF5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi52aWRlby1qcy52anMtdXNlci1pbmFjdGl2ZSAudmpzLXZvbHVtZS1jb250cm9sIC52anMtbW91c2UtZGlzcGxheSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAxcywgb3BhY2l0eSAxcztcbn1cblxuLnZpZGVvLWpzLnZqcy11c2VyLWluYWN0aXZlLnZqcy1uby1mbGV4IC52anMtdm9sdW1lLWNvbnRyb2wgLnZqcy1tb3VzZS1kaXNwbGF5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnZqcy1tb3VzZS1kaXNwbGF5IC52anMtdm9sdW1lLXRvb2x0aXAge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuXG4udmpzLXBvc3RlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnZqcy1oYXMtc3RhcnRlZCAudmpzLXBvc3RlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52anMtYXVkaW8udmpzLWhhcy1zdGFydGVkIC52anMtcG9zdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi52anMtdXNpbmctbmF0aXZlLWNvbnRyb2xzIC52anMtcG9zdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnZpZGVvLWpzIC52anMtbGl2ZS1jb250cm9sIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGZsZXg6IGF1dG87XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogM2VtO1xufVxuXG4udmpzLW5vLWZsZXggLnZqcy1saXZlLWNvbnRyb2wge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB3aWR0aDogYXV0bztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnZpZGVvLWpzOm5vdCgudmpzLWxpdmUpIC52anMtbGl2ZS1jb250cm9sLFxuLnZpZGVvLWpzLnZqcy1saXZldWkgLnZqcy1saXZlLWNvbnRyb2wge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmlkZW8tanMgLnZqcy1zZWVrLXRvLWxpdmUtY29udHJvbCB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleDogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgcGFkZGluZy1yaWdodDogMC41ZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogM2VtO1xuICB3aWR0aDogYXV0bztcbiAgbWluLXdpZHRoOiA0ZW07XG59XG5cbi52anMtbm8tZmxleCAudmpzLXNlZWstdG8tbGl2ZS1jb250cm9sIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgd2lkdGg6IGF1dG87XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi52aWRlby1qcy52anMtbGl2ZTpub3QoLnZqcy1saXZldWkpIC52anMtc2Vlay10by1saXZlLWNvbnRyb2wsXG4udmlkZW8tanM6bm90KC52anMtbGl2ZSkgLnZqcy1zZWVrLXRvLWxpdmUtY29udHJvbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52anMtc2Vlay10by1saXZlLWNvbnRyb2wudmpzLWNvbnRyb2wudmpzLWF0LWxpdmUtZWRnZSB7XG4gIGN1cnNvcjogYXV0bztcbn1cblxuLnZqcy1zZWVrLXRvLWxpdmUtY29udHJvbCAudmpzLWljb24tcGxhY2Vob2xkZXIge1xuICBtYXJnaW4tcmlnaHQ6IDAuNWVtO1xuICBjb2xvcjogIzg4ODtcbn1cblxuLnZqcy1zZWVrLXRvLWxpdmUtY29udHJvbC52anMtY29udHJvbC52anMtYXQtbGl2ZS1lZGdlIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi52aWRlby1qcyAudmpzLXRpbWUtY29udHJvbCB7XG4gIGZsZXg6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogM2VtO1xuICBtaW4td2lkdGg6IDJlbTtcbiAgd2lkdGg6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogMWVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxZW07XG59XG5cbi52anMtbGl2ZSAudmpzLXRpbWUtY29udHJvbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52aWRlby1qcyAudmpzLWN1cnJlbnQtdGltZSxcbi52anMtbm8tZmxleCAudmpzLWN1cnJlbnQtdGltZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52aWRlby1qcyAudmpzLWR1cmF0aW9uLFxuLnZqcy1uby1mbGV4IC52anMtZHVyYXRpb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmpzLXRpbWUtZGl2aWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAzZW07XG59XG5cbi52anMtbGl2ZSAudmpzLXRpbWUtZGl2aWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi52aWRlby1qcyAudmpzLXBsYXktY29udHJvbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnZpZGVvLWpzIC52anMtcGxheS1jb250cm9sIC52anMtaWNvbi1wbGFjZWhvbGRlciB7XG4gIGZsZXg6IG5vbmU7XG59XG5cbi52anMtdGV4dC10cmFjay1kaXNwbGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDNlbTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi52aWRlby1qcy52anMtdXNlci1pbmFjdGl2ZS52anMtcGxheWluZyAudmpzLXRleHQtdHJhY2stZGlzcGxheSB7XG4gIGJvdHRvbTogMWVtO1xufVxuXG4udmlkZW8tanMgLnZqcy10ZXh0LXRyYWNrIHtcbiAgZm9udC1zaXplOiAxLjRlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAwLjFlbTtcbn1cblxuLnZqcy1zdWJ0aXRsZXMge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnZqcy1jYXB0aW9ucyB7XG4gIGNvbG9yOiAjZmM2O1xufVxuXG4udmpzLXR0LWN1ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG52aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNlbSk7XG59XG5cbi52aWRlby1qcy52anMtdXNlci1pbmFjdGl2ZS52anMtcGxheWluZyB2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEuNWVtKTtcbn1cblxuLnZpZGVvLWpzIC52anMtcGljdHVyZS1pbi1waWN0dXJlLWNvbnRyb2wge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXg6IG5vbmU7XG59XG4udmlkZW8tanMgLnZqcy1mdWxsc2NyZWVuLWNvbnRyb2wge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsZXg6IG5vbmU7XG59XG4udmpzLXBsYXliYWNrLXJhdGUgPiAudmpzLW1lbnUtYnV0dG9uLFxuLnZqcy1wbGF5YmFjay1yYXRlIC52anMtcGxheWJhY2stcmF0ZS12YWx1ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4udmpzLXBsYXliYWNrLXJhdGUgLnZqcy1wbGF5YmFjay1yYXRlLXZhbHVlIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi52anMtcGxheWJhY2stcmF0ZSAudmpzLW1lbnUge1xuICB3aWR0aDogNGVtO1xuICBsZWZ0OiAwZW07XG59XG5cbi52anMtZXJyb3IgLnZqcy1lcnJvci1kaXNwbGF5IC52anMtbW9kYWwtZGlhbG9nLWNvbnRlbnQge1xuICBmb250LXNpemU6IDEuNGVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi52anMtZXJyb3IgLnZqcy1lcnJvci1kaXNwbGF5OmJlZm9yZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBjb250ZW50OiBcIlhcIjtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogNGVtO1xuICBsZWZ0OiAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLXRvcDogLTAuNWVtO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRleHQtc2hhZG93OiAwLjA1ZW0gMC4wNWVtIDAuMWVtICMwMDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdG9wOiA1MCU7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udmpzLWxvYWRpbmctc3Bpbm5lciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luOiAtMjVweCAwIDAgLTI1cHg7XG4gIG9wYWNpdHk6IDAuODU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJvcmRlcjogNnB4IHNvbGlkIHJnYmEoNDMsIDUxLCA2MywgMC43KTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4udmpzLXNlZWtpbmcgLnZqcy1sb2FkaW5nLXNwaW5uZXIsXG4udmpzLXdhaXRpbmcgLnZqcy1sb2FkaW5nLXNwaW5uZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgLXdlYmtpdC1hbmltYXRpb246IHZqcy1zcGlubmVyLXNob3cgMHMgbGluZWFyIDAuM3MgZm9yd2FyZHM7XG4gICAgICAgICAgYW5pbWF0aW9uOiB2anMtc3Bpbm5lci1zaG93IDBzIGxpbmVhciAwLjNzIGZvcndhcmRzO1xufVxuXG4udmpzLWxvYWRpbmctc3Bpbm5lcjpiZWZvcmUsXG4udmpzLWxvYWRpbmctc3Bpbm5lcjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAtNnB4O1xuICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB3aWR0aDogaW5oZXJpdDtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICBvcGFjaXR5OiAxO1xuICBib3JkZXI6IGluaGVyaXQ7XG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xufVxuXG4udmpzLXNlZWtpbmcgLnZqcy1sb2FkaW5nLXNwaW5uZXI6YmVmb3JlLFxuLnZqcy1zZWVraW5nIC52anMtbG9hZGluZy1zcGlubmVyOmFmdGVyLFxuLnZqcy13YWl0aW5nIC52anMtbG9hZGluZy1zcGlubmVyOmJlZm9yZSxcbi52anMtd2FpdGluZyAudmpzLWxvYWRpbmctc3Bpbm5lcjphZnRlciB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiB2anMtc3Bpbm5lci1zcGluIDEuMXMgY3ViaWMtYmV6aWVyKDAuNiwgMC4yLCAwLCAwLjgpIGluZmluaXRlLCB2anMtc3Bpbm5lci1mYWRlIDEuMXMgbGluZWFyIGluZmluaXRlO1xuICBhbmltYXRpb246IHZqcy1zcGlubmVyLXNwaW4gMS4xcyBjdWJpYy1iZXppZXIoMC42LCAwLjIsIDAsIDAuOCkgaW5maW5pdGUsIHZqcy1zcGlubmVyLWZhZGUgMS4xcyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi52anMtc2Vla2luZyAudmpzLWxvYWRpbmctc3Bpbm5lcjpiZWZvcmUsXG4udmpzLXdhaXRpbmcgLnZqcy1sb2FkaW5nLXNwaW5uZXI6YmVmb3JlIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XG59XG5cbi52anMtc2Vla2luZyAudmpzLWxvYWRpbmctc3Bpbm5lcjphZnRlcixcbi52anMtd2FpdGluZyAudmpzLWxvYWRpbmctc3Bpbm5lcjphZnRlciB7XG4gIGJvcmRlci10b3AtY29sb3I6IHdoaXRlO1xuICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogMC40NHM7XG4gIGFuaW1hdGlvbi1kZWxheTogMC40NHM7XG59XG5cbkBrZXlmcmFtZXMgdmpzLXNwaW5uZXItc2hvdyB7XG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgdmpzLXNwaW5uZXItc2hvdyB7XG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHZqcy1zcGlubmVyLXNwaW4ge1xuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5ALXdlYmtpdC1rZXlmcmFtZXMgdmpzLXNwaW5uZXItc3BpbiB7XG4gIDEwMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyB2anMtc3Bpbm5lci1mYWRlIHtcbiAgMCUge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICM3Mzg1OWY7XG4gIH1cbiAgMjAlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzM4NTlmO1xuICB9XG4gIDM1JSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XG4gIH1cbiAgNjAlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzM4NTlmO1xuICB9XG4gIDEwMCUge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICM3Mzg1OWY7XG4gIH1cbn1cbkAtd2Via2l0LWtleWZyYW1lcyB2anMtc3Bpbm5lci1mYWRlIHtcbiAgMCUge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICM3Mzg1OWY7XG4gIH1cbiAgMjAlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzM4NTlmO1xuICB9XG4gIDM1JSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XG4gIH1cbiAgNjAlIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjNzM4NTlmO1xuICB9XG4gIDEwMCUge1xuICAgIGJvcmRlci10b3AtY29sb3I6ICM3Mzg1OWY7XG4gIH1cbn1cbi52anMtY2hhcHRlcnMtYnV0dG9uIC52anMtbWVudSB1bCB7XG4gIHdpZHRoOiAyNGVtO1xufVxuXG4udmlkZW8tanMgLnZqcy1zdWJzLWNhcHMtYnV0dG9uICsgLnZqcy1tZW51IC52anMtY2FwdGlvbnMtbWVudS1pdGVtIC52anMtbWVudS1pdGVtLXRleHQgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAtMC4xZW07XG59XG5cbi52aWRlby1qcyAudmpzLXN1YnMtY2Fwcy1idXR0b24gKyAudmpzLW1lbnUgLnZqcy1jYXB0aW9ucy1tZW51LWl0ZW0gLnZqcy1tZW51LWl0ZW0tdGV4dCAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGNvbnRlbnQ6IFwi74SNXCI7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4udmlkZW8tanMgLnZqcy1hdWRpby1idXR0b24gKyAudmpzLW1lbnUgLnZqcy1tYWluLWRlc2MtbWVudS1pdGVtIC52anMtbWVudS1pdGVtLXRleHQgLnZqcy1pY29uLXBsYWNlaG9sZGVyIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAtMC4xZW07XG59XG5cbi52aWRlby1qcyAudmpzLWF1ZGlvLWJ1dHRvbiArIC52anMtbWVudSAudmpzLW1haW4tZGVzYy1tZW51LWl0ZW0gLnZqcy1tZW51LWl0ZW0tdGV4dCAudmpzLWljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IFZpZGVvSlM7XG4gIGNvbnRlbnQ6IFwiIO+EnVwiO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtc21hbGwgLnZqcy1jdXJyZW50LXRpbWUsXG4udmlkZW8tanMudmpzLWxheW91dC1zbWFsbCAudmpzLXRpbWUtZGl2aWRlcixcbi52aWRlby1qcy52anMtbGF5b3V0LXNtYWxsIC52anMtZHVyYXRpb24sXG4udmlkZW8tanMudmpzLWxheW91dC1zbWFsbCAudmpzLXJlbWFpbmluZy10aW1lLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtc21hbGwgLnZqcy1wbGF5YmFjay1yYXRlLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtc21hbGwgLnZqcy1jaGFwdGVycy1idXR0b24sXG4udmlkZW8tanMudmpzLWxheW91dC1zbWFsbCAudmpzLWRlc2NyaXB0aW9ucy1idXR0b24sXG4udmlkZW8tanMudmpzLWxheW91dC1zbWFsbCAudmpzLWNhcHRpb25zLWJ1dHRvbixcbi52aWRlby1qcy52anMtbGF5b3V0LXNtYWxsIC52anMtc3VidGl0bGVzLWJ1dHRvbixcbi52aWRlby1qcy52anMtbGF5b3V0LXNtYWxsIC52anMtYXVkaW8tYnV0dG9uLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtc21hbGwgLnZqcy12b2x1bWUtY29udHJvbCwgLnZpZGVvLWpzLnZqcy1sYXlvdXQteC1zbWFsbCAudmpzLWN1cnJlbnQtdGltZSxcbi52aWRlby1qcy52anMtbGF5b3V0LXgtc21hbGwgLnZqcy10aW1lLWRpdmlkZXIsXG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsIC52anMtZHVyYXRpb24sXG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsIC52anMtcmVtYWluaW5nLXRpbWUsXG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsIC52anMtcGxheWJhY2stcmF0ZSxcbi52aWRlby1qcy52anMtbGF5b3V0LXgtc21hbGwgLnZqcy1jaGFwdGVycy1idXR0b24sXG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsIC52anMtZGVzY3JpcHRpb25zLWJ1dHRvbixcbi52aWRlby1qcy52anMtbGF5b3V0LXgtc21hbGwgLnZqcy1jYXB0aW9ucy1idXR0b24sXG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsIC52anMtc3VidGl0bGVzLWJ1dHRvbixcbi52aWRlby1qcy52anMtbGF5b3V0LXgtc21hbGwgLnZqcy1hdWRpby1idXR0b24sXG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsIC52anMtdm9sdW1lLWNvbnRyb2wsIC52aWRlby1qcy52anMtbGF5b3V0LXRpbnkgLnZqcy1jdXJyZW50LXRpbWUsXG4udmlkZW8tanMudmpzLWxheW91dC10aW55IC52anMtdGltZS1kaXZpZGVyLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLWR1cmF0aW9uLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLXJlbWFpbmluZy10aW1lLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLXBsYXliYWNrLXJhdGUsXG4udmlkZW8tanMudmpzLWxheW91dC10aW55IC52anMtY2hhcHRlcnMtYnV0dG9uLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLWRlc2NyaXB0aW9ucy1idXR0b24sXG4udmlkZW8tanMudmpzLWxheW91dC10aW55IC52anMtY2FwdGlvbnMtYnV0dG9uLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLXN1YnRpdGxlcy1idXR0b24sXG4udmlkZW8tanMudmpzLWxheW91dC10aW55IC52anMtYXVkaW8tYnV0dG9uLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLXZvbHVtZS1jb250cm9sIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtc21hbGwgLnZqcy12b2x1bWUtcGFuZWwudmpzLXZvbHVtZS1wYW5lbC1ob3Jpem9udGFsOmhvdmVyLFxuLnZpZGVvLWpzLnZqcy1sYXlvdXQtc21hbGwgLnZqcy12b2x1bWUtcGFuZWwudmpzLXZvbHVtZS1wYW5lbC1ob3Jpem9udGFsOmFjdGl2ZSxcbi52aWRlby1qcy52anMtbGF5b3V0LXNtYWxsIC52anMtdm9sdW1lLXBhbmVsLnZqcy12b2x1bWUtcGFuZWwtaG9yaXpvbnRhbC52anMtc2xpZGVyLWFjdGl2ZSwgLnZpZGVvLWpzLnZqcy1sYXlvdXQteC1zbWFsbCAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWw6aG92ZXIsXG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsIC52anMtdm9sdW1lLXBhbmVsLnZqcy12b2x1bWUtcGFuZWwtaG9yaXpvbnRhbDphY3RpdmUsXG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsIC52anMtdm9sdW1lLXBhbmVsLnZqcy12b2x1bWUtcGFuZWwtaG9yaXpvbnRhbC52anMtc2xpZGVyLWFjdGl2ZSwgLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLXZvbHVtZS1wYW5lbC52anMtdm9sdW1lLXBhbmVsLWhvcml6b250YWw6aG92ZXIsXG4udmlkZW8tanMudmpzLWxheW91dC10aW55IC52anMtdm9sdW1lLXBhbmVsLnZqcy12b2x1bWUtcGFuZWwtaG9yaXpvbnRhbDphY3RpdmUsXG4udmlkZW8tanMudmpzLWxheW91dC10aW55IC52anMtdm9sdW1lLXBhbmVsLnZqcy12b2x1bWUtcGFuZWwtaG9yaXpvbnRhbC52anMtc2xpZGVyLWFjdGl2ZSB7XG4gIHdpZHRoOiBhdXRvO1xuICB3aWR0aDogaW5pdGlhbDtcbn1cbi52aWRlby1qcy52anMtbGF5b3V0LXgtc21hbGw6bm90KC52anMtbGl2ZXVpKSAudmpzLXN1YnMtY2Fwcy1idXR0b24sIC52aWRlby1qcy52anMtbGF5b3V0LXgtc21hbGw6bm90KC52anMtbGl2ZSkgLnZqcy1zdWJzLWNhcHMtYnV0dG9uLCAudmlkZW8tanMudmpzLWxheW91dC10aW55IC52anMtc3Vicy1jYXBzLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4udmlkZW8tanMudmpzLWxheW91dC14LXNtYWxsLnZqcy1saXZldWkgLnZqcy1jdXN0b20tY29udHJvbC1zcGFjZXIsIC52aWRlby1qcy52anMtbGF5b3V0LXRpbnkgLnZqcy1jdXN0b20tY29udHJvbC1zcGFjZXIge1xuICBmbGV4OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi52aWRlby1qcy52anMtbGF5b3V0LXgtc21hbGwudmpzLWxpdmV1aS52anMtbm8tZmxleCAudmpzLWN1c3RvbS1jb250cm9sLXNwYWNlciwgLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueS52anMtbm8tZmxleCAudmpzLWN1c3RvbS1jb250cm9sLXNwYWNlciB7XG4gIHdpZHRoOiBhdXRvO1xufVxuLnZpZGVvLWpzLnZqcy1sYXlvdXQteC1zbWFsbC52anMtbGl2ZXVpIC52anMtcHJvZ3Jlc3MtY29udHJvbCwgLnZpZGVvLWpzLnZqcy1sYXlvdXQtdGlueSAudmpzLXByb2dyZXNzLWNvbnRyb2wge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udmpzLW1vZGFsLWRpYWxvZy52anMtdGV4dC10cmFjay1zZXR0aW5ncyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyQjMzM0Y7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDMsIDUxLCA2MywgMC43NSk7XG4gIGNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDcwJTtcbn1cblxuLnZqcy10ZXh0LXRyYWNrLXNldHRpbmdzIC52anMtbW9kYWwtZGlhbG9nLWNvbnRlbnQge1xuICBkaXNwbGF5OiB0YWJsZTtcbn1cblxuLnZqcy10ZXh0LXRyYWNrLXNldHRpbmdzIC52anMtdHJhY2stc2V0dGluZ3MtY29sb3JzLFxuLnZqcy10ZXh0LXRyYWNrLXNldHRpbmdzIC52anMtdHJhY2stc2V0dGluZ3MtZm9udCxcbi52anMtdGV4dC10cmFjay1zZXR0aW5ncyAudmpzLXRyYWNrLXNldHRpbmdzLWNvbnRyb2xzIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbn1cblxuLnZqcy10ZXh0LXRyYWNrLXNldHRpbmdzIC52anMtdHJhY2stc2V0dGluZ3MtY29udHJvbHMge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSB7XG4gIC52anMtdGV4dC10cmFjay1zZXR0aW5ncyAudmpzLW1vZGFsLWRpYWxvZy1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmcjtcbiAgICBwYWRkaW5nOiAyMHB4IDI0cHggMHB4IDI0cHg7XG4gIH1cblxuICAudmpzLXRyYWNrLXNldHRpbmdzLWNvbnRyb2xzIC52anMtZGVmYXVsdC1idXR0b24ge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cblxuICAudmpzLXRleHQtdHJhY2stc2V0dGluZ3MgLnZqcy10cmFjay1zZXR0aW5ncy1jb250cm9scyB7XG4gICAgZ3JpZC1jb2x1bW46IDEvLTE7XG4gIH1cblxuICAudmpzLWxheW91dC1zbWFsbCAudmpzLXRleHQtdHJhY2stc2V0dGluZ3MgLnZqcy1tb2RhbC1kaWFsb2ctY29udGVudCxcbi52anMtbGF5b3V0LXgtc21hbGwgLnZqcy10ZXh0LXRyYWNrLXNldHRpbmdzIC52anMtbW9kYWwtZGlhbG9nLWNvbnRlbnQsXG4udmpzLWxheW91dC10aW55IC52anMtdGV4dC10cmFjay1zZXR0aW5ncyAudmpzLW1vZGFsLWRpYWxvZy1jb250ZW50IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxufVxuLnZqcy10cmFjay1zZXR0aW5nID4gc2VsZWN0IHtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNWVtO1xufVxuXG4udmpzLXRleHQtdHJhY2stc2V0dGluZ3MgZmllbGRzZXQge1xuICBtYXJnaW46IDVweDtcbiAgcGFkZGluZzogM3B4O1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi52anMtdGV4dC10cmFjay1zZXR0aW5ncyBmaWVsZHNldCBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4udmpzLXRleHQtdHJhY2stc2V0dGluZ3MgZmllbGRzZXQgc3BhbiA+IHNlbGVjdCB7XG4gIG1heC13aWR0aDogNy4zZW07XG59XG5cbi52anMtdGV4dC10cmFjay1zZXR0aW5ncyBsZWdlbmQge1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luOiAwIDAgNXB4IDA7XG59XG5cbi52anMtdGV4dC10cmFjay1zZXR0aW5ncyAudmpzLWxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBjbGlwOiByZWN0KDFweCAxcHggMXB4IDFweCk7XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMCAwIDVweCAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGhlaWdodDogMXB4O1xuICB3aWR0aDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udmpzLXRyYWNrLXNldHRpbmdzLWNvbnRyb2xzIGJ1dHRvbjpmb2N1cyxcbi52anMtdHJhY2stc2V0dGluZ3MtY29udHJvbHMgYnV0dG9uOmFjdGl2ZSB7XG4gIG91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICBvdXRsaW5lLXdpZHRoOiBtZWRpdW07XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgwZGVnLCAjZmZmIDg4JSwgIzczODU5ZiAxMDAlKTtcbn1cblxuLnZqcy10cmFjay1zZXR0aW5ncy1jb250cm9scyBidXR0b246aG92ZXIge1xuICBjb2xvcjogcmdiYSg0MywgNTEsIDYzLCAwLjc1KTtcbn1cblxuLnZqcy10cmFjay1zZXR0aW5ncy1jb250cm9scyBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoLTE4MGRlZywgI2ZmZiA4OCUsICM3Mzg1OWYgMTAwJSk7XG4gIGNvbG9yOiAjMkIzMzNGO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLnZqcy10cmFjay1zZXR0aW5ncy1jb250cm9scyAudmpzLWRlZmF1bHQtYnV0dG9uIHtcbiAgbWFyZ2luLXJpZ2h0OiAxZW07XG59XG5cbkBtZWRpYSBwcmludCB7XG4gIC52aWRlby1qcyA+ICo6bm90KC52anMtdGVjaCk6bm90KC52anMtcG9zdGVyKSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG59XG4udmpzLXJlc2l6ZS1tYW5hZ2VyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlcjogbm9uZTtcbiAgei1pbmRleDogLTEwMDA7XG59XG5cbi5qcy1mb2N1cy12aXNpYmxlIC52aWRlby1qcyAqOmZvY3VzOm5vdCguZm9jdXMtdmlzaWJsZSkge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4udmlkZW8tanMgKjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbiIsIkBrZXlmcmFtZXMgcmVhY3QtbG9hZGluZy1za2VsZXRvbiB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgfVxufVxuXG4ucmVhY3QtbG9hZGluZy1za2VsZXRvbiB7XG4gIC0tYmFzZS1jb2xvcjogI2ViZWJlYjtcbiAgLS1oaWdobGlnaHQtY29sb3I6ICNmNWY1ZjU7XG4gIC0tYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzO1xuICAtLWFuaW1hdGlvbi1kaXJlY3Rpb246IG5vcm1hbDtcbiAgLS1wc2V1ZG8tZWxlbWVudC1kaXNwbGF5OiBibG9jazsgLyogRW5hYmxlIGFuaW1hdGlvbiAqL1xuXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhc2UtY29sb3IpO1xuXG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnJlYWN0LWxvYWRpbmctc2tlbGV0b246OmFmdGVyIHtcbiAgY29udGVudDogJyAnO1xuICBkaXNwbGF5OiB2YXIoLS1wc2V1ZG8tZWxlbWVudC1kaXNwbGF5KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcihcbiAgICAtLWN1c3RvbS1oaWdobGlnaHQtYmFja2dyb3VuZCxcbiAgICBsaW5lYXItZ3JhZGllbnQoXG4gICAgICA5MGRlZyxcbiAgICAgIHZhcigtLWJhc2UtY29sb3IpIDAlLFxuICAgICAgdmFyKC0taGlnaGxpZ2h0LWNvbG9yKSA1MCUsXG4gICAgICB2YXIoLS1iYXNlLWNvbG9yKSAxMDAlXG4gICAgKVxuICApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuXG4gIGFuaW1hdGlvbi1uYW1lOiByZWFjdC1sb2FkaW5nLXNrZWxldG9uO1xuICBhbmltYXRpb24tZGlyZWN0aW9uOiB2YXIoLS1hbmltYXRpb24tZGlyZWN0aW9uKTtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoLS1hbmltYXRpb24tZHVyYXRpb24pO1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikge1xuICAucmVhY3QtbG9hZGluZy1za2VsZXRvbiB7XG4gICAgLS1wc2V1ZG8tZWxlbWVudC1kaXNwbGF5OiBub25lOyAvKiBEaXNhYmxlIGFuaW1hdGlvbiAqL1xuICB9XG59XG4iLCJAdXNlIFwic2FzczptYXBcIjtcbkBpbXBvcnQgXCIuLi90aGVtZXMvaW9uaWMuZ2xvYmFsc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvbWVudS9tZW51Lmlvcy52YXJzXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50cy9tZW51L21lbnUubWQudmFyc1wiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwudmFyc1wiO1xuXG46cm9vdCB7XG4gIC8qKlxuICAgKiBMb29wIHRocm91Z2ggZWFjaCBjb2xvciBvYmplY3QgZnJvbSB0aGVcbiAgICogYGlvbmljLnRoZW1lLmRlZmF1bHQuc2Nzc2AgZmlsZVxuICAgKiBhbmQgZ2VuZXJhdGUgQ1NTIFZhcmlhYmxlcyBmb3IgZWFjaCBjb2xvci5cbiAgICovXG4gIEBlYWNoICRjb2xvci1uYW1lLCAkdmFsdWUgaW4gJGNvbG9ycyB7XG4gICAgLS1pb24tY29sb3ItI3skY29sb3ItbmFtZX06ICN7bWFwLmdldCgkdmFsdWUsIGJhc2UpfTtcbiAgICAtLWlvbi1jb2xvci0jeyRjb2xvci1uYW1lfS1yZ2I6ICN7Y29sb3ItdG8tcmdiLWxpc3QobWFwLmdldCgkdmFsdWUsIGJhc2UpKX07XG4gICAgLS1pb24tY29sb3ItI3skY29sb3ItbmFtZX0tY29udHJhc3Q6ICN7bWFwLmdldCgkdmFsdWUsIGNvbnRyYXN0KX07XG4gICAgLS1pb24tY29sb3ItI3skY29sb3ItbmFtZX0tY29udHJhc3QtcmdiOiAje2NvbG9yLXRvLXJnYi1saXN0KG1hcC5nZXQoJHZhbHVlLCBjb250cmFzdCkpfTtcbiAgICAtLWlvbi1jb2xvci0jeyRjb2xvci1uYW1lfS1zaGFkZTogI3ttYXAuZ2V0KCR2YWx1ZSwgc2hhZGUpfTtcbiAgICAtLWlvbi1jb2xvci0jeyRjb2xvci1uYW1lfS10aW50OiAje21hcC5nZXQoJHZhbHVlLCB0aW50KX07XG4gIH1cbn1cblxuLy8gSW9uaWMgRm9udCBGYW1pbHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmh0bWwuaW9zIHtcbiAgLS1pb24tZGVmYXVsdC1mb250OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJSb2JvdG9cIiwgc2Fucy1zZXJpZjtcbn1cbmh0bWwubWQge1xuICAtLWlvbi1kZWZhdWx0LWZvbnQ6IFwiUm9ib3RvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuaHRtbCB7XG4gIC0taW9uLWR5bmFtaWMtZm9udDogLWFwcGxlLXN5c3RlbS1ib2R5O1xuICAtLWlvbi1mb250LWZhbWlseTogdmFyKC0taW9uLWRlZmF1bHQtZm9udCk7XG59XG5cbmJvZHkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1pb24tdGV4dC1jb2xvcik7XG59XG5cbmJvZHkuYmFja2Ryb3Atbm8tc2Nyb2xsIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLy8gTW9kYWwgLSBDYXJkIFN0eWxlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLyoqXG4gKiBDYXJkIHN0eWxlIG1vZGFsIG5lZWRzIGFkZGl0aW9uYWwgcGFkZGluZyBvbiB0aGVcbiAqIHRvcCBvZiB0aGUgaGVhZGVyLiBXZSBhY2NvbXBsaXNoIHRoaXMgYnkgdGFyZ2V0aW5nXG4gKiB0aGUgZmlyc3QgdG9vbGJhciBpbiB0aGUgaGVhZGVyLlxuICogRm9vdGVyIGFsc28gbmVlZHMgdGhpcy4gV2UgZG8gbm90IGFkanVzdCB0aGUgYm90dG9tXG4gKiBwYWRkaW5nIHRob3VnaCBiZWNhdXNlIG9mIHRoZSBzYWZlIGFyZWEuXG4gKi9cbmh0bWwuaW9zIGlvbi1tb2RhbC5tb2RhbC1jYXJkIGlvbi1oZWFkZXIgaW9uLXRvb2xiYXI6Zmlyc3Qtb2YtdHlwZSxcbmh0bWwuaW9zIGlvbi1tb2RhbC5tb2RhbC1zaGVldCBpb24taGVhZGVyIGlvbi10b29sYmFyOmZpcnN0LW9mLXR5cGUsXG5odG1sLmlvcyBpb24tbW9kYWwgaW9uLWZvb3RlciBpb24tdG9vbGJhcjpmaXJzdC1vZi10eXBlLFxuaHRtbC5pb3MgaW9uLWZvb3Rlci5tb2RhbC1mb290ZXItbW92aW5nIGlvbi10b29sYmFyOmZpcnN0LW9mLXR5cGUge1xuICBwYWRkaW5nLXRvcDogJG1vZGFsLXNoZWV0LXBhZGRpbmctdG9wO1xufVxuXG4vKipcbiogQ2FyZCBzdHlsZSBtb2RhbCBuZWVkcyBhZGRpdGlvbmFsIHBhZGRpbmcgb24gdGhlXG4qIGJvdHRvbSBvZiB0aGUgaGVhZGVyLiBXZSBhY2NvbXBsaXNoIHRoaXMgYnkgdGFyZ2V0aW5nXG4qIHRoZSBsYXN0IHRvb2xiYXIgaW4gdGhlIGhlYWRlci5cbiovXG5odG1sLmlvcyBpb24tbW9kYWwubW9kYWwtY2FyZCBpb24taGVhZGVyIGlvbi10b29sYmFyOmxhc3Qtb2YtdHlwZSxcbmh0bWwuaW9zIGlvbi1tb2RhbC5tb2RhbC1zaGVldCBpb24taGVhZGVyIGlvbi10b29sYmFyOmxhc3Qtb2YtdHlwZSB7XG4gIHBhZGRpbmctYm90dG9tOiAkbW9kYWwtc2hlZXQtcGFkZGluZy1ib3R0b207XG59XG5cbi8qKlxuKiBBZGQgcGFkZGluZyBvbiB0aGUgbGVmdCBhbmQgcmlnaHRcbiogb2YgdG9vbGJhcnMgd2hpbGUgYWNjb3VudGluZyBmb3Jcbiogc2FmZSBhcmVhIHZhbHVlcyB3aGVuIGluIGxhbmRzY2FwZS5cbiovXG5odG1sLmlvcyBpb24tbW9kYWwgaW9uLXRvb2xiYXIsXG5odG1sLmlvcyAubW9kYWwtZm9vdGVyLW1vdmluZyBpb24tdG9vbGJhciB7XG4gIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0taW9uLXNhZmUtYXJlYS1yaWdodCkgKyA4cHgpO1xuICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0taW9uLXNhZmUtYXJlYS1sZWZ0KSArIDhweCk7XG59XG5cbi8qKlxuICogQ2FyZCBzdHlsZSBtb2RhbCBvbiBpUGFkT1NcbiAqIHNob3VsZCBvbmx5IGhhdmUgYmFja2Ryb3Agb24gZmlyc3QgaW5zdGFuY2UuXG4gKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIGh0bWwuaW9zIGlvbi1tb2RhbC5tb2RhbC1jYXJkOmZpcnN0LW9mLXR5cGUge1xuICAgIC0tYmFja2Ryb3Atb3BhY2l0eTogMC4xODtcbiAgfVxufVxuXG4vKipcbiAqIFN1YnNlcXVlbnQgbW9kYWxzIHNob3VsZCBub3QgaGF2ZSBhIGJhY2tkcm9wL2JveCBzaGFkb3dcbiAqIGFzIGl0IHdpbGwgY2F1c2UgdGhlIHNjcmVlbiB0byBhcHBlYXIgdG8gZ2V0IHByb2dyZXNzaXZlbHlcbiAqIGRhcmtlci4gV2l0aCBJb25pYyA2LCBkZWNsYXJhdGl2ZSBtb2RhbHMgbWFkZSBpdFxuICogcG9zc2libGUgdG8gaGF2ZSBtdWx0aXBsZSBub24tcHJlc2VudGVkIG1vZGFscyBpbiB0aGUgRE9NLFxuICogc28gd2UgY291bGQgbm8gbG9uZ2VyIHJlbHkgb24gaW9uLW1vZGFsOmZpcnN0LW9mLXR5cGUuXG4gKiBIZXJlIHdlIGRpc2FibGUgdGhlIG9wYWNpdHkvYm94LXNoYWRvdyBmb3IgZXZlcnkgbW9kYWxcbiAqIHRoYXQgY29tZXMgYWZ0ZXIgdGhlIGZpcnN0IHByZXNlbnRlZCBtb2RhbC5cbiAqXG4gKiBOb3RlOiBpb24tbW9kYWw6bm90KC5vdmVybGF5LWhpZGRlbik6Zmlyc3Qtb2YtdHlwZVxuICogZG9lcyBub3QgbWF0Y2ggdGhlIGZpcnN0IG1vZGFsIHRvIG5vdCBoYXZlXG4gKiB0aGUgLm92ZXJsYXktaGlkZGVuIGNsYXNzLCBpdCB3aWxsIG1hdGNoIHRoZVxuICogZmlyc3QgbW9kYWwgaW4gZ2VuZXJhbCBvbmx5IGlmIGl0IGRvZXMgbm90XG4gKiBoYXZlIHRoZSAub3ZlcmxheS1oaWRkZW4gY2xhc3MuXG4gKiBUaGUgOm50aC1jaGlsZCgpIHBzZXVkby1jbGFzcyBoYXMgc3VwcG9ydFxuICogZm9yIHNlbGVjdG9ycyB3aGljaCB3b3VsZCBoZWxwIHVzIGhlcmUuIEF0IHRoZVxuICogdGltZSBvZiB3cml0aW5nIGl0IGRvZXMgbm90IGhhdmUgZ3JlYXQgY3Jvc3MgYnJvd3NlclxuICogc3VwcG9ydC5cbiAqXG4gKiBOb3RlIDI6IFRoaXMgc2hvdWxkIG9ubHkgYXBwbHkgdG8gbm9uLWNhcmQgYW5kXG4gKiBub24tc2hlZXQgbW9kYWxzLiBDYXJkIGFuZCBzaGVldCBtb2RhbHMgaGF2ZSB0aGVpclxuICogb3duIGNyaXRlcmlhIGZvciBkaXNwbGF5aW5nIGJhY2tkcm9wcy9ib3ggc2hhZG93cy5cbiAqXG4gKiBEbyBub3QgdXNlIDpub3QoLm92ZXJsYXktaGlkZGVuKSBpbiBwbGFjZSBvZlxuICogLnNob3ctbW9kYWwgYmVjYXVzZSB0aGF0IHRyaWdnZXJzIGEgbWVtb3J5XG4gKiBsZWFrIGluIEJsaW5rOiBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0xNDE4NzY4XG4gKi9cbmlvbi1tb2RhbC5tb2RhbC1kZWZhdWx0LnNob3ctbW9kYWwgfiBpb24tbW9kYWwubW9kYWwtZGVmYXVsdCB7XG4gIC0tYmFja2Ryb3Atb3BhY2l0eTogMDtcbiAgLS1ib3gtc2hhZG93OiBub25lO1xufVxuXG4vKipcbiAqIFRoaXMgd29ya3MgYXJvdW5kIGEgYnVnIGluIFdlYktpdCB3aGVyZSB0aGVcbiAqIGNvbnRlbnQgd2lsbCBvdmVyZmxvdyBvdXRzaWRlIG9mIHRoZSBib3R0b20gYm9yZGVyXG4gKiByYWRpdXMgd2hlbiByZS1wYWludGluZy4gQXMgbG9uZyBhcyBhIHNpbmdsZVxuICogYm9yZGVyIHJhZGl1cyB2YWx1ZSBpcyBzZXQgb24gLmlvbi1wYWdlLCB0aGlzXG4gKiBpc3N1ZSBkb2VzIG5vdCBoYXBwZW4uIFdlIHNldCB0aGUgdG9wIGxlZnQgcmFkaXVzXG4gKiBoZXJlIGJlY2F1c2UgdGhlIHRvcCBsZWZ0IGNvcm5lciB3aWxsIGFsd2F5cyBoYXZlIGFcbiAqIHJhZGl1cyBubyBtYXR0ZXIgdGhlIHBsYXRmb3JtLlxuICogVGhpcyBiZWhhdmlvciBvbmx5IGFwcGxpZXMgdG8gY2FyZCBtb2RhbHMuXG4gKi9cbmh0bWwuaW9zIGlvbi1tb2RhbC5tb2RhbC1jYXJkIC5pb24tcGFnZSB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xufVxuXG4vLyBJb25pYyBDb2xvcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHZW5lcmF0ZXMgdGhlIGNvbG9yIGNsYXNzZXMgYW5kIHZhcmlhYmxlcyBiYXNlZCBvbiB0aGVcbi8vIGNvbG9ycyBtYXBcblxuQG1peGluIGdlbmVyYXRlLWNvbG9yKCRjb2xvci1uYW1lKSB7XG4gICR2YWx1ZTogbWFwLWdldCgkY29sb3JzLCAkY29sb3ItbmFtZSk7XG5cbiAgJGJhc2U6IG1hcC1nZXQoJHZhbHVlLCBiYXNlKTtcbiAgJGNvbnRyYXN0OiBtYXAtZ2V0KCR2YWx1ZSwgY29udHJhc3QpO1xuICAkc2hhZGU6IG1hcC1nZXQoJHZhbHVlLCBzaGFkZSk7XG4gICR0aW50OiBtYXAtZ2V0KCR2YWx1ZSwgdGludCk7XG5cbiAgLS1pb24tY29sb3ItYmFzZTogdmFyKC0taW9uLWNvbG9yLSN7JGNvbG9yLW5hbWV9LCAjeyRiYXNlfSkgIWltcG9ydGFudDtcbiAgLS1pb24tY29sb3ItYmFzZS1yZ2I6IHZhcigtLWlvbi1jb2xvci0jeyRjb2xvci1uYW1lfS1yZ2IsICN7Y29sb3ItdG8tcmdiLWxpc3QoJGJhc2UpfSkgIWltcG9ydGFudDtcbiAgLS1pb24tY29sb3ItY29udHJhc3Q6IHZhcigtLWlvbi1jb2xvci0jeyRjb2xvci1uYW1lfS1jb250cmFzdCwgI3skY29udHJhc3R9KSAhaW1wb3J0YW50O1xuICAtLWlvbi1jb2xvci1jb250cmFzdC1yZ2I6IHZhcigtLWlvbi1jb2xvci0jeyRjb2xvci1uYW1lfS1jb250cmFzdC1yZ2IsICN7Y29sb3ItdG8tcmdiLWxpc3QoJGNvbnRyYXN0KX0pICFpbXBvcnRhbnQ7XG4gIC0taW9uLWNvbG9yLXNoYWRlOiB2YXIoLS1pb24tY29sb3ItI3skY29sb3ItbmFtZX0tc2hhZGUsICN7JHNoYWRlfSkgIWltcG9ydGFudDtcbiAgLS1pb24tY29sb3ItdGludDogdmFyKC0taW9uLWNvbG9yLSN7JGNvbG9yLW5hbWV9LXRpbnQsICN7JHRpbnR9KSAhaW1wb3J0YW50O1xufVxuXG5AZWFjaCAkY29sb3ItbmFtZSwgJHZhbHVlIGluICRjb2xvcnMge1xuICAuaW9uLWNvbG9yLSN7JGNvbG9yLW5hbWV9IHtcbiAgICBAaW5jbHVkZSBnZW5lcmF0ZS1jb2xvcigkY29sb3ItbmFtZSk7XG4gIH1cbn1cblxuXG4vLyBQYWdlIENvbnRhaW5lciBTdHJ1Y3R1cmVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5pb24tcGFnZSB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKDAsIDAsIDAsIDApO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgY29udGFpbjogbGF5b3V0IHNpemUgc3R5bGU7XG4gIHotaW5kZXg6ICR6LWluZGV4LXBhZ2UtY29udGFpbmVyO1xufVxuXG4vKipcbiAqIEFsbG93cyBwb2ludGVyIGV2ZW50cyB0byBwYXNzIHRocm91Z2ggY2hpbGQgcm91dGUgcGFnZSB3cmFwcGVyc1xuICogd2hlbiB0aGV5IG9ubHkgY29udGFpbiBhIHNoZWV0IG1vZGFsIHRoYXQgcGVybWl0cyBiYWNrZ3JvdW5kIGludGVyYWN0aW9uLlxuICogaHR0cHM6Ly9naXRodWIuY29tL2lvbmljLXRlYW0vaW9uaWMtZnJhbWV3b3JrL2lzc3Vlcy8zMDcwMFxuICovXG4uaW9uLXBhZ2UuaW9uLXBhZ2Utb3ZlcmxheS1wYXNzdGhyb3VnaCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKipcbiAqIFdoZW4gbWFraW5nIGN1c3RvbSBkaWFsb2dzLCB1c2luZ1xuICogaW9uLWNvbnRlbnQgaXMgbm90IHJlcXVpcmVkLiBBcyBhIHJlc3VsdCxcbiAqIHNvbWUgZGV2ZWxvcGVycyBtYXkgd2lzaCB0byBoYXZlIGRpYWxvZ3NcbiAqIHRoYXQgYXJlIGF1dG9tYXRpY2FsbHkgc2l6ZWQgYnkgdGhlIGJyb3dzZXIuXG4gKiBUaGVzZSBjaGFuZ2VzIGFsbG93IGNlcnRhaW4gZGltZW5zaW9uIHZhbHVlc1xuICogc3VjaCBhcyBmaXQtY29udGVudCB0byB3b3JrIGNvcnJlY3RseS5cbiAqL1xuaW9uLW1vZGFsID4gLmlvbi1wYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGNvbnRhaW46IGxheW91dCBzdHlsZTtcblxuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5zcGxpdC1wYW5lLXZpc2libGUgPiAuaW9uLXBhZ2Uuc3BsaXQtcGFuZS1tYWluIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5pb24tcm91dGUsXG5pb24tcm91dGUtcmVkaXJlY3QsXG5pb24tcm91dGVyLFxuaW9uLXNlbGVjdC1vcHRpb24sXG5pb24tbmF2LWNvbnRyb2xsZXIsXG5pb24tbWVudS1jb250cm9sbGVyLFxuaW9uLWFjdGlvbi1zaGVldC1jb250cm9sbGVyLFxuaW9uLWFsZXJ0LWNvbnRyb2xsZXIsXG5pb24tbG9hZGluZy1jb250cm9sbGVyLFxuaW9uLW1vZGFsLWNvbnRyb2xsZXIsXG5pb24tcGlja2VyLWNvbnRyb2xsZXIsXG5pb24tcG9wb3Zlci1jb250cm9sbGVyLFxuaW9uLXRvYXN0LWNvbnRyb2xsZXIsXG4uaW9uLXBhZ2UtaGlkZGVuIHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCAqL1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5pb24tcGFnZS1pbnZpc2libGUge1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY2FuLWdvLWJhY2sgPiBpb24taGVhZGVyIGlvbi1iYWNrLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5cbi8vIElvbmljIFNhZmUgTWFyZ2luc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuaHRtbC5wbHQtaW9zLnBsdC1oeWJyaWQsIGh0bWwucGx0LWlvcy5wbHQtcHdhIHtcbiAgLS1pb24tc3RhdHVzYmFyLXBhZGRpbmc6IDIwcHg7XG59XG5cbkBzdXBwb3J0cyAocGFkZGluZy10b3A6IDIwcHgpIHtcbiAgaHRtbCB7XG4gICAgLS1pb24tc2FmZS1hcmVhLXRvcDogdmFyKC0taW9uLXN0YXR1c2Jhci1wYWRkaW5nKTtcbiAgfVxufVxuXG5Ac3VwcG9ydHMgKHBhZGRpbmctdG9wOiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkpIHtcbiAgaHRtbCB7XG4gICAgLy8gYC0tc2FmZS1hcmVhLWluc2V0LSpgIGFyZSBzZXQgYnkgQ2FwYWNpdG9yXG4gICAgLy8gQHNlZSBodHRwczovL2NhcGFjaXRvcmpzLmNvbS9kb2NzL2FwaXMvc3lzdGVtLWJhcnMjYW5kcm9pZC1ub3RlXG4gICAgLS1pb24tc2FmZS1hcmVhLXRvcDogdmFyKC0tc2FmZS1hcmVhLWluc2V0LXRvcCwgZW52KHNhZmUtYXJlYS1pbnNldC10b3ApKTtcbiAgICAtLWlvbi1zYWZlLWFyZWEtYm90dG9tOiB2YXIoLS1zYWZlLWFyZWEtaW5zZXQtYm90dG9tLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO1xuICAgIC0taW9uLXNhZmUtYXJlYS1sZWZ0OiB2YXIoLS1zYWZlLWFyZWEtaW5zZXQtbGVmdCwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgLS1pb24tc2FmZS1hcmVhLXJpZ2h0OiB2YXIoLS1zYWZlLWFyZWEtaW5zZXQtcmlnaHQsIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKTtcbiAgfVxufVxuXG5cbi8vIEdsb2JhbCBDYXJkIFN0eWxlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuaW9uLWNhcmQuaW9uLWNvbG9yIC5pb24taW5oZXJpdC1jb2xvcixcbmlvbi1jYXJkLWhlYWRlci5pb24tY29sb3IgLmlvbi1pbmhlcml0LWNvbG9yIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cblxuLy8gTWVudSBTdHlsZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5tZW51LWNvbnRlbnQge1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlM2QoMCwgMCwgMCkpO1xufVxuXG4ubWVudS1jb250ZW50LW9wZW4ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgY29udGFpbmluZyBlbGVtZW50IGl0c2VsZiBzaG91bGQgYmUgY2xpY2thYmxlIGJ1dFxuICAgKiBldmVyeXRoaW5nIGluc2lkZSBvZiBpdCBzaG91bGQgbm90IGNsaWNrYWJsZSB3aGVuIG1lbnUgaXMgb3BlblxuICAgKlxuICAgKiBTZXR0aW5nIHBvaW50ZXItZXZlbnRzIGFmdGVyIHNjcm9sbGluZyBoYXMgYWxyZWFkeSBzdGFydGVkXG4gICAqIHdpbGwgbm90IGNhbmNlbCBzY3JvbGxpbmcgd2hpY2ggaXMgd2h5IHdlIGFsc28gc2V0XG4gICAqIG92ZXJmbG93LXkgYmVsb3cuXG4gICAqL1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAvKipcbiAgICogVGhpcyBhY2NvdW50cyBmb3Igc2NlbmFyaW9zIHdoZXJlIHRoZSBtYWluIGNvbnRlbnQgaXRzZWxmXG4gICAqIGlzIHNjcm9sbGFibGUuXG4gICAqL1xuICBvdmVyZmxvdy15OiBoaWRkZW47XG59XG5cbi8qKlxuICogU2V0dGluZyBvdmVyZmxvdyBjYW5jZWxzIGFueSBpbi1wcm9ncmVzcyBzY3JvbGxpbmdcbiAqIHdoZW4gdGhlIG1lbnUgb3BlbnMuIFRoaXMgcHJldmVudHMgdXNlcnMgZnJvbSBhY2NpZGVudGFsbHlcbiAqIHNjcm9sbGluZyB0aGUgbWFpbiBjb250ZW50IHdoaWxlIGFsc28gZHJhZ2dpbmcgdGhlIG1lbnUgb3Blbi5cbiAqIFRoZSBjb2RlIGJlbG93IGFjY291bnRzIGZvciBib3RoIGlvbi1jb250ZW50IGFuZCB0aGVuIGN1c3RvbVxuICogc2Nyb2xsIGNvbnRhaW5lcnMgd2l0aGluIGlvbi1jb250ZW50IChzdWNoIGFzIHZpcnR1YWwgc2Nyb2xsKVxuICovXG4ubWVudS1jb250ZW50LW9wZW4gaW9uLWNvbnRlbnQge1xuICAtLW92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tZW51LWNvbnRlbnQtb3BlbiAuaW9uLWNvbnRlbnQtc2Nyb2xsLWhvc3Qge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uaW9zIC5tZW51LWNvbnRlbnQtcmV2ZWFsIHtcbiAgYm94LXNoYWRvdzogJG1lbnUtaW9zLWJveC1zaGFkb3ctcmV2ZWFsO1xufVxuXG5bZGlyPXJ0bF0uaW9zIC5tZW51LWNvbnRlbnQtcmV2ZWFsIHtcbiAgYm94LXNoYWRvdzogJG1lbnUtaW9zLWJveC1zaGFkb3ctcmV2ZWFsLXJ0bDtcbn1cblxuLmlvcyAubWVudS1jb250ZW50LXB1c2gge1xuICBib3gtc2hhZG93OiAkbWVudS1pb3MtYm94LXNoYWRvdy1wdXNoO1xufVxuXG4ubWQgLm1lbnUtY29udGVudC1yZXZlYWwge1xuICBib3gtc2hhZG93OiAkbWVudS1tZC1ib3gtc2hhZG93O1xufVxuXG4ubWQgLm1lbnUtY29udGVudC1wdXNoIHtcbiAgYm94LXNoYWRvdzogJG1lbnUtbWQtYm94LXNoYWRvdztcbn1cblxuLy8gQWNjb3JkaW9uIFN0eWxlc1xuaW9uLWFjY29yZGlvbi1ncm91cC5hY2NvcmRpb24tZ3JvdXAtZXhwYW5kLWluc2V0ID4gaW9uLWFjY29yZGlvbjpmaXJzdC1vZi10eXBlIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogOHB4O1xufVxuaW9uLWFjY29yZGlvbi1ncm91cC5hY2NvcmRpb24tZ3JvdXAtZXhwYW5kLWluc2V0ID4gaW9uLWFjY29yZGlvbjpsYXN0LW9mLXR5cGUge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA4cHg7XG59XG5pb24tYWNjb3JkaW9uLWdyb3VwID4gaW9uLWFjY29yZGlvbjpsYXN0LW9mLXR5cGUgaW9uLWl0ZW1bc2xvdD1cImhlYWRlclwiXSB7XG4gIC0tYm9yZGVyLXdpZHRoOiAwcHg7XG59XG5cbmlvbi1hY2NvcmRpb24uYWNjb3JkaW9uLWFuaW1hdGVkID4gW3Nsb3Q9XCJoZWFkZXJcIl0gLmlvbi1hY2NvcmRpb24tdG9nZ2xlLWljb24ge1xuICB0cmFuc2l0aW9uOiAzMDBtcyB0cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgaW9uLWFjY29yZGlvbiAuaW9uLWFjY29yZGlvbi10b2dnbGUtaWNvbiB7XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG4gICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4vKipcbiAqIFRoZSA+IFtzbG90PVwiaGVhZGVyXCJdIHNlbGVjdG9yIGVuc3VyZXMgdGhhdCB3ZSBkb1xuICogbm90IG1vZGlmeSB0b2dnbGUgaWNvbnMgZm9yIGFueSBuZXN0ZWQgYWNjb3JkaW9ucy4gVGhlIHN0YXRlXG4gKiBvZiBvbmUgYWNjb3JkaW9uIHNob3VsZCBub3QgYWZmZWN0IGFueSBhY2NvcmRpb25zIGluc2lkZVxuICogb2YgYSBuZXN0ZWQgYWNjb3JkaW9uIGdyb3VwLlxuICovXG5pb24tYWNjb3JkaW9uLmFjY29yZGlvbi1leHBhbmRpbmcgPiBbc2xvdD1cImhlYWRlclwiXSAuaW9uLWFjY29yZGlvbi10b2dnbGUtaWNvbixcbmlvbi1hY2NvcmRpb24uYWNjb3JkaW9uLWV4cGFuZGVkID4gW3Nsb3Q9XCJoZWFkZXJcIl0gLmlvbi1hY2NvcmRpb24tdG9nZ2xlLWljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG5pb24tYWNjb3JkaW9uLWdyb3VwLmFjY29yZGlvbi1ncm91cC1leHBhbmQtaW5zZXQubWQgPiBpb24tYWNjb3JkaW9uLmFjY29yZGlvbi1wcmV2aW91cyBpb24taXRlbVtzbG90PVwiaGVhZGVyXCJdIHtcbiAgLS1ib3JkZXItd2lkdGg6IDBweDtcbiAgLS1pbm5lci1ib3JkZXItd2lkdGg6IDBweDtcbn1cblxuaW9uLWFjY29yZGlvbi1ncm91cC5hY2NvcmRpb24tZ3JvdXAtZXhwYW5kLWluc2V0Lm1kID4gaW9uLWFjY29yZGlvbi5hY2NvcmRpb24tZXhwYW5kaW5nOmZpcnN0LW9mLXR5cGUsXG5pb24tYWNjb3JkaW9uLWdyb3VwLmFjY29yZGlvbi1ncm91cC1leHBhbmQtaW5zZXQubWQgPiBpb24tYWNjb3JkaW9uLmFjY29yZGlvbi1leHBhbmRlZDpmaXJzdC1vZi10eXBlIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLy8gU2FmYXJpL2lPUyAxNSBjaGFuZ2VzIHRoZSBhcHBlYXJhbmNlIG9mIGlucHV0W3R5cGU9XCJkYXRlXCJdLlxuLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZyb20gSW9uaWMgNS9TYWZhcmkgMTQgZGVzaWducyxcbi8vIHdlIG92ZXJyaWRlIHRoZSBhcHBlYXJhbmNlIG9ubHkgd2hlbiB1c2luZyB3aXRoaW4gYW4gaW9uLWlucHV0LlxuaW9uLWlucHV0IGlucHV0Ojotd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUge1xuICB0ZXh0LWFsaWduOiBzdGFydDtcbn1cblxuLyoqXG4gKiBUaGUgLmlvbi1kYXRldGltZS1idXR0b24tb3ZlcmxheSBjbGFzcyBjb250YWluc1xuICogc3R5bGVzIHRoYXQgYWxsb3cgYW55IG1vZGFsL3BvcG92ZXIgdG8gYmVcbiAqIHNpemVkIGFjY29yZGluZyB0byB0aGUgZGltZW5zaW9ucyBvZiB0aGUgZGF0ZXRpbWVcbiAqIHdoZW4gdXNlZCB3aXRoIGlvbi1kYXRldGltZS1idXR0b24uXG4gKi9cbi5pb24tZGF0ZXRpbWUtYnV0dG9uLW92ZXJsYXkge1xuICAtLXdpZHRoOiBmaXQtY29udGVudDtcbiAgLS1oZWlnaHQ6IGZpdC1jb250ZW50O1xufVxuXG4vKipcbiAqIFRoZSBncmlkIHZhcmlhbnQgY2FuIHNjYWxlIGRvd24gd2hlbiBpbmxpbmUuXG4gKiBXaGVuIHVzZWQgaW4gYSBgZml0LWNvbnRlbnRgIG92ZXJsYXksIHRoaXMgY2F1c2VzXG4gKiB0aGUgb3ZlcmxheSB0byBzaHJpbmsgd2hlbiB0aGUgbW9udGgveWVhciBwaWNrZXIgaXMgb3Blbi5cbiAqIEV4cGxpY2l0bHkgc2V0dGluZyB0aGUgZGltZW5zaW9ucyBsZXRzIHVzIGhhdmUgYSBjb25zaXN0ZW50bHlcbiAqIHNpemVkIGdyaWQgaW50ZXJmYWNlLlxuICovXG4uaW9uLWRhdGV0aW1lLWJ1dHRvbi1vdmVybGF5IGlvbi1kYXRldGltZS5kYXRldGltZS1ncmlkIHtcbiAgd2lkdGg6IDMyMHB4O1xuICBtaW4taGVpZ2h0OiAzMjBweDtcbn1cblxuLyoqXG4gKiBXaGVuIG1vdmluZyBmb2N1cyBvbiBwYWdlIHRyYW5zaXRpb25zIHdlIGNhbGwgLmZvY3VzKCkgb24gYW4gZWxlbWVudCB3aGljaCBjYW5cbiAqIGFkZCBhbiB1bmRlc2lyZWQgb3V0bGluZSByaW5nLiBUaGlzIENTUyByZW1vdmVzIHRoZSBvdXRsaW5lIHJpbmcuXG4gKiBXZSBhbHNvIHJlbW92ZSB0aGUgb3V0bGluZSByaW5nIGZyb20gZWxlbWVudHMgdGhhdCBhcmUgYWN0aXZlbHkgYmVpbmcgZm9jdXNlZFxuICogYnkgdGhlIGZvY3VzIG1hbmFnZXIuIFdlIGFyZSBpbnRlbnRpb25hbGx5IHNlbGVjdGl2ZSBhYm91dCB3aGljaCBlbGVtZW50cyB0aGlzXG4gKiBhcHBsaWVzIHRvIHNvIHdlIGRvIG5vdCBhY2NpZGVudGFsbHkgb3ZlcnJpZGUgb3V0bGluZXMgc2V0IGJ5IHRoZSBkZXZlbG9wZXIuXG4gKi9cbltpb24tbGFzdC1mb2N1c10sXG5oZWFkZXJbdGFiaW5kZXg9XCItMVwiXTpmb2N1cyxcbltyb2xlPVwiYmFubmVyXCJdW3RhYmluZGV4PVwiLTFcIl06Zm9jdXMsXG5tYWluW3RhYmluZGV4PVwiLTFcIl06Zm9jdXMsXG5bcm9sZT1cIm1haW5cIl1bdGFiaW5kZXg9XCItMVwiXTpmb2N1cyxcbmgxW3RhYmluZGV4PVwiLTFcIl06Zm9jdXMsXG5bcm9sZT1cImhlYWRpbmdcIl1bYXJpYS1sZXZlbD1cIjFcIl1bdGFiaW5kZXg9XCItMVwiXTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi8qXG4gKiBJZiBhIHBvcG92ZXIgaGFzIGEgY2hpbGQgaW9uLWNvbnRlbnQgKG9yIGNsYXNzIGVxdWl2YWxlbnQpIHRoZW4gdGhlIC5wb3BvdmVyLXZpZXdwb3J0IGVsZW1lbnRcbiAqIHNob3VsZCBub3QgYmUgc2Nyb2xsYWJsZSB0byBlbnN1cmUgdGhlIGlubmVyIGNvbnRlbnQgZG9lcyBzY3JvbGwuIEhvd2V2ZXIsIGlmIHRoZSBwb3BvdmVyXG4gKiBkb2VzIG5vdCBoYXZlIGEgY2hpbGQgaW9uLWNvbnRlbnQgKG9yIGNsYXNzIGVxdWl2YWxlbnQpIHRoZW4gdGhlIC5wb3BvdmVyLXZpZXdwb3J0IGVsZW1lbnRcbiAqIHNob3VsZCByZW1haW4gc2Nyb2xsYWJsZS4gVGhpcyBjb2RlIGV4aXN0cyBnbG9iYWxseSBiZWNhdXNlIHBvcG92ZXIgdGFyZ2V0c1xuICogLnBvcG92ZXItdmlld3BvcnQgdXNpbmcgOjpzbG90dGVkIHdoaWNoIG9ubHkgc3VwcG9ydHMgc2ltcGxlIHNlbGVjdG9ycy5cbiAqXG4gKiBOb3RlIHRoYXQgd2UgZG8gbm90IG5lZWQgdG8gYWNjb3VudCBmb3IgLmlvbi1jb250ZW50LXNjcm9sbC1ob3N0IGhlcmUgYmVjYXVzZSB0aGF0XG4gKiBjbGFzcyBzaG91bGQgYWx3YXlzIGJlIHBsYWNlZCB3aXRoaW4gaW9uLWNvbnRlbnQgZXZlbiBpZiBpb24tY29udGVudCBpcyBub3Qgc2Nyb2xsYWJsZS5cbiAqL1xuLnBvcG92ZXItdmlld3BvcnQ6aGFzKD4gaW9uLWNvbnRlbnQpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyoqXG4gKiA6aGFzIGhhcyBjcm9zcy1icm93c2VyIHN1cHBvcnQsIGJ1dCBpdCBpcyBzdGlsbCByZWxhdGl2ZWx5IG5ldy4gQXMgYSByZXN1bHQsXG4gKiB3ZSBzaG91bGQgZmFsbGJhY2sgdG8gdGhlIG9sZCBiZWhhdmlvciBmb3IgZW52aXJvbm1lbnRzIHRoYXQgZG8gbm90IHN1cHBvcnQgOmhhcy5cbiAqIERldmVsb3BlcnMgY2FuIGV4cGxpY2l0bHkgZW5hYmxlIHRoaXMgYmVoYXZpb3IgYnkgc2V0dGluZyBvdmVyZmxvdzogdmlzaWJsZVxuICogb24gLnBvcG92ZXItdmlld3BvcnQgaWYgdGhleSBrbm93IHRoZXkgYXJlIG5vdCBnb2luZyB0byB1c2UgYW4gaW9uLWNvbnRlbnQuXG4gKiBUT0RPIEZXLTYxMDYgUmVtb3ZlIHRoaXNcbiAqL1xuQHN1cHBvcnRzIG5vdCBzZWxlY3Rvcig6aGFzKD4gaW9uLWNvbnRlbnQpKSB7XG4gIC5wb3BvdmVyLXZpZXdwb3J0IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vLi4vdGhlbWVzL2lvbmljLmdsb2JhbHNcIjtcblxuLy8gTW9kYWxzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLy8gQHByb3AgLSBNaW4gd2lkdGggb2YgdGhlIG1vZGFsIGluc2V0XG4kbW9kYWwtaW5zZXQtbWluLXdpZHRoOiAgICAgICAgIDc2OHB4O1xuXG4vLy8gQHByb3AgLSBNaW5pbXVtIGhlaWdodCBvZiB0aGUgc21hbGwgbW9kYWwgaW5zZXRcbiRtb2RhbC1pbnNldC1taW4taGVpZ2h0LXNtYWxsOiAgNjAwcHg7XG5cbi8vLyBAcHJvcCAtIE1pbmltdW0gaGVpZ2h0IG9mIHRoZSBsYXJnZSBtb2RhbCBpbnNldFxuJG1vZGFsLWluc2V0LW1pbi1oZWlnaHQtbGFyZ2U6ICA3NjhweDtcblxuLy8vIEBwcm9wIC0gV2lkdGggb2YgdGhlIGxhcmdlIG1vZGFsIGluc2V0XG4kbW9kYWwtaW5zZXQtd2lkdGg6ICAgICAgICAgICAgIDYwMHB4O1xuXG4vLy8gQHByb3AgLSBIZWlnaHQgb2YgdGhlIHNtYWxsIG1vZGFsIGluc2V0XG4kbW9kYWwtaW5zZXQtaGVpZ2h0LXNtYWxsOiAgICAgIDUwMHB4O1xuXG4vLy8gQHByb3AgLSBIZWlnaHQgb2YgdGhlIGxhcmdlIG1vZGFsIGluc2V0XG4kbW9kYWwtaW5zZXQtaGVpZ2h0LWxhcmdlOiAgICAgIDYwMHB4O1xuXG4vLy8gQHByb3AgLSBUZXh0IGNvbG9yIG9mIHRoZSBtb2RhbCBjb250ZW50XG4kbW9kYWwtdGV4dC1jb2xvcjogICAgICAgICAgICAgICR0ZXh0LWNvbG9yO1xuXG4vLy8gQHByb3AgLSBQYWRkaW5nIHRvcCBvZiB0aGUgc2hlZXQgbW9kYWxcbiRtb2RhbC1zaGVldC1wYWRkaW5nLXRvcDogICAgICAgIDZweDtcblxuLy8vIEBwcm9wIC0gUGFkZGluZyBib3R0b20gb2YgdGhlIHNoZWV0IG1vZGFsXG4kbW9kYWwtc2hlZXQtcGFkZGluZy1ib3R0b206ICAgICA2cHg7XG4iLCJcbi8qKlxuICogQSBoZXVyaXN0aWMgdGhhdCBhcHBsaWVzIENTUyB0byB0YWJsZXRcbiAqIHZpZXdwb3J0cy5cbiAqXG4gKiBVc2FnZTpcbiAqIEBpbmNsdWRlIHRhYmxldC12aWV3cG9ydCgpIHtcbiAqICAgOmhvc3Qge1xuICogICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuO1xuICogICB9XG4gKiB9XG4gKi9cbkBtaXhpbiB0YWJsZXQtdmlld3BvcnQoKSB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGhldXJpc3RpYyB0aGF0IGFwcGxpZXMgQ1NTIHRvIG1vYmlsZVxuICogdmlld3BvcnRzIChpLmUuIHBob25lcywgbm90IHRhYmxldHMpLlxuICpcbiAqIFVzYWdlOlxuICogQGluY2x1ZGUgbW9iaWxlLXZpZXdwb3J0KCkge1xuICogICA6aG9zdCB7XG4gKiAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTtcbiAqICAgfVxuICogfVxuICovXG5AbWl4aW4gbW9iaWxlLXZpZXdwb3J0KCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBpbnB1dC1jb3ZlcigpIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24oMCwgbnVsbCwgbnVsbCwgMCk7XG4gIEBpbmNsdWRlIG1hcmdpbigwKTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcblxuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcblxuICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuQG1peGluIHZpc3VhbGx5LWhpZGRlbigpIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuXG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcblxuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuXG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG5cbiAgb3BhY2l0eTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuQG1peGluIHRleHQtaW5oZXJpdCgpIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC1zdHlsZTogaW5oZXJpdDtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGxldHRlci1zcGFjaW5nOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gIHRleHQtaW5kZW50OiBpbmhlcml0O1xuICB0ZXh0LW92ZXJmbG93OiBpbmhlcml0O1xuICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDtcbiAgd2hpdGUtc3BhY2U6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5AbWl4aW4gYnV0dG9uLXN0YXRlKCkge1xuICBAaW5jbHVkZSBwb3NpdGlvbigwLCAwLCAwLCAwKTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgY29udGVudDogXCJcIjtcblxuICBvcGFjaXR5OiAwO1xufVxuXG4vLyBGb250IHNtb290aGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGZvbnQtc21vb3RoaW5nKCkge1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuLy8gR2V0IHRoZSBrZXkgZnJvbSBhIG1hcCBiYXNlZCBvbiB0aGUgaW5kZXhcbkBmdW5jdGlvbiBpbmRleC10by1rZXkoJG1hcCwgJGluZGV4KSB7XG4gICRrZXlzOiBtYXAta2V5cygkbWFwKTtcblxuICBAcmV0dXJuIG50aCgka2V5cywgJGluZGV4KTtcbn1cblxuXG4vLyBCcmVha3BvaW50IE1peGluc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkc2NyZWVuLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJHNjcmVlbi1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuXG4gIEByZXR1cm4gaWYoJG5hbWUgIT0gaW5kZXgtdG8ta2V5KCRicmVha3BvaW50cywgMSksICRtaW4sIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgXCItc21cIlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJHNjcmVlbi1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJHNjcmVlbi1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkc2NyZWVuLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIHJlZHVjZWQgYnkgMC4wMnB4IHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZlxuLy8gYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy9cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cdC8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXHQvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KG1kLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkc2NyZWVuLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1heCBhbmQgJG1heCA+IDAsICRtYXggLSAuMDIsIG51bGwpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJHNjcmVlbi1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cblxuLy8gVGV4dCBEaXJlY3Rpb24gLSBsdHIgLyBydGxcbi8vXG4vLyBDU1MgZGVmYXVsdHMgdG8gdXNlIHRoZSBsdHIgY3NzLCBhbmQgYWRkcyBbZGlyPXJ0bF0gc2VsZWN0b3JzXG4vLyB0byBvdmVycmlkZSBsdHIgZGVmYXVsdHMuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBtdWx0aS1kaXIoKSB7XG4gIEBjb250ZW50O1xuXG4gIC8vICRyb290OiAjeyZ9O1xuICAvLyBAYXQtcm9vdCBbZGlyXSB7XG4gIC8vICAgI3skcm9vdH0ge1xuICAvLyAgICAgQGNvbnRlbnQ7XG4gIC8vICAgfVxuICAvLyB9XG59XG5cbkBtaXhpbiBydGwoKSB7XG4gICRyb290OiAjeyZ9O1xuXG4gICRyb290U3BsaXQ6IHN0ci1zcGxpdCgkcm9vdCwgXCIsXCIpO1xuICAkc2VsZWN0b3JzOiAje2FkZC1yb290LXNlbGVjdG9yKCRyb290LCBcIltkaXI9cnRsXVwiKX07XG4gICRzZWxlY3RvcnNTcGxpdDogc3RyLXNwbGl0KCRzZWxlY3RvcnMsIFwiLFwiKTtcblxuICAkaG9zdENvbnRleHRTZWxlY3RvcnM6ICgpO1xuICAkcmVzdFNlbGVjdG9yczogKCk7XG4gICRkaXJTZWxlY3RvcnM6ICgpO1xuXG4gIC8vIFNlbGVjdG9ycyBtdXN0IGJlIHNwbGl0IGludG8gaW5kaXZpZHVhbCBzZWxlY3RvcnMgaW4gY2FzZSB0aGUgYnJvd3NlclxuICAvLyBkb2Vzbid0IHN1cHBvcnQgYSBzcGVjaWZpYyBzZWxlY3Rvci5cbiAgLy8gRm9yIGV4YW1wbGUsIEZpcmVmb3ggYW5kIFNhZmFyaSBkb2Vzbid0IHN1cHBvcnQgYDpob3N0LWNvbnRleHQoKWAuXG4gIC8vIElmIGFuIGludmFsaWQgc2VsZWN0b3IgaXMgdXNlZCwgdGhlbiB0aGUgZW50aXJlIGdyb3VwIG9mIHNlbGVjdG9yc1xuICAvLyB3aWxsIGJlIGlnbm9yZWQuXG4gIC8vIEBsaW5rIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9zZWxlY3RvcnMtMy8jZ3JvdXBpbmdcbiAgQGVhY2ggJHNlbGVjdG9yIGluICRzZWxlY3RvcnNTcGxpdCB7XG4gICAgLy8gR3JvdXAgdGhlIHNlbGVjdG9ycyBiYWNrIGludG8gYSBzaW5nbGUgc2VsZWN0b3IgdG8gb3B0aW1pemUgdGhlIG91dHB1dC5cbiAgICBAaWYgc3RyLWluZGV4KCRzZWxlY3RvciwgXCI6aG9zdC1jb250ZXh0XCIpIHtcbiAgICAgICRob3N0Q29udGV4dFNlbGVjdG9yczogYXBwZW5kKCRob3N0Q29udGV4dFNlbGVjdG9ycywgJHNlbGVjdG9yLCBjb21tYSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAvLyBHcm91cCB0aGUgc2VsZWN0b3JzIGJhY2sgaW50byBhIHNpbmdsZSBzZWxlY3RvciB0byBvcHRpbWl6ZSB0aGUgb3V0cHV0LlxuICAgICAgJHJlc3RTZWxlY3RvcnM6IGFwcGVuZCgkcmVzdFNlbGVjdG9ycywgJHNlbGVjdG9yLCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgLy8gU3VwcG9ydGVkIGJ5IENocm9tZS5cbiAgQGlmIGxlbmd0aCgkaG9zdENvbnRleHRTZWxlY3RvcnMpID4gMCB7XG4gICAgQGF0LXJvb3QgI3skaG9zdENvbnRleHRTZWxlY3RvcnN9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFN1cHBvcnRlZCBieSBhbGwgYnJvd3NlcnMuXG4gIEBpZiBsZW5ndGgoJHJlc3RTZWxlY3RvcnMpID4gMCB7XG4gICAgQGF0LXJvb3QgI3skcmVzdFNlbGVjdG9yc30ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgYnJvd3NlciBjYW4gc3VwcG9ydCBgOmRpcigpYCwgdGhlbiBhZGQgdGhlIGA6ZGlyKClgIHNlbGVjdG9ycy5cbiAgQHN1cHBvcnRzIHNlbGVjdG9yKDpkaXIocnRsKSkge1xuICAgIC8vIEFkZGluZyA6ZGlyKCkgaW4gY2FzZSB0aGUgYnJvd3NlciBkb2Vzbid0IHN1cHBvcnQgYDpob3N0LWNvbnRleHQoKWAgYW5kIGRvZXMgc3VwcG9ydCBgOmRpcigpYC5cbiAgICAvLyBgOmhvc3QtY29udGV4dCgpYCBpcyBhZGRlZDpcbiAgICAvLyAtIHRocm91Z2ggdGhlIGBhZGQtcm9vdC1zZWxlY3RvcigpYCBmdW5jdGlvbi5cbiAgICAvLyAtIGZpcnN0IHNvIHRoYXQgaXQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGA6ZGlyKClgLlxuICAgIC8vIEZvciBleGFtcGxlLFxuICAgIC8vIC0gRmlyZWZveCBkb2Vzbid0IHN1cHBvcnQgYDpob3N0LWNvbnRleHQoKWAsIGJ1dCBkb2VzIHN1cHBvcnQgYDpkaXIoKWAuXG4gICAgLy8gLSBTYWZhcmkgZG9lc24ndCBzdXBwb3J0IGA6aG9zdC1jb250ZXh0KClgLCBidXQgU2FmYXJpIDE2LjQrIHN1cHBvcnRzIGA6ZGlyKClgXG4gICAgLy8gQGxpbmsgaHR0cHM6Ly93ZWJraXQub3JnL2Jsb2cvMTM5NjYvd2Via2l0LWZlYXR1cmVzLWluLXNhZmFyaS0xNi00L1xuICAgIC8vIC0tIEhvd2V2ZXIsIHRoZXJlIGlzIGEgV2Via2l0IGJ1ZyBvbiB2MTYgdGhhdCBwcmV2ZW50cyBgOmRpcigpYCBmcm9tIHdvcmtpbmcgd2hlblxuICAgIC8vIC0tIHRoZSBhcHAgZGlyZWN0aW9uIGlzIGNoYW5nZWQgZHluYW1pY2FsbHkuIHYxNysgd29ya3MgZmluZS5cbiAgICAvLyAtLSBAbGluayBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU3MTMzXG5cbiAgICAvLyBTdXBwb3J0ZWQgYnkgRmlyZWZveC5cbiAgICBAYXQtcm9vdCAje2FkZC1yb290LXNlbGVjdG9yKCRyb290LCBcIjpkaXIocnRsKVwiLCBmYWxzZSl9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbHRyKCkge1xuICBAY29udGVudDtcbn1cblxuXG4vLyBTVkcgQmFja2dyb3VuZCBJbWFnZSBNaXhpblxuLy8gQHBhcmFtIHtzdHJpbmd9ICRzdmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBzdmctYmFja2dyb3VuZC1pbWFnZSgkc3ZnLCAkZmxpcC1ydGw6IGZhbHNlKSB7XG4gICR1cmw6IHVybC1lbmNvZGUoJHN2Zyk7XG4gICR2aWV3Qm94OiBzdHItc3BsaXQoc3RyLWV4dHJhY3QoJHN2ZywgXCJ2aWV3Qm94PSdcIiwgXCInXCIpLCBcIiBcIik7XG5cbiAgQGlmICRmbGlwLXJ0bCAhPSB0cnVlIG9yICR2aWV3Qm94ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG11bHRpLWRpcigpIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCN7JHVybH1cIik7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAkdHJhbnNmb3JtOiBcInRyYW5zZm9ybT0ndHJhbnNsYXRlKCN7bnRoKCR2aWV3Qm94LCAzKX0sIDApIHNjYWxlKC0xLCAxKSdcIjtcbiAgICAkZmxpcHBlZC11cmw6ICRzdmc7XG4gICAgJGZsaXBwZWQtdXJsOiBzdHItcmVwbGFjZSgkZmxpcHBlZC11cmwsIFwiPHBhdGhcIiwgXCI8cGF0aCAjeyR0cmFuc2Zvcm19XCIpO1xuICAgICRmbGlwcGVkLXVybDogc3RyLXJlcGxhY2UoJGZsaXBwZWQtdXJsLCBcIjxsaW5lXCIsIFwiPGxpbmUgI3skdHJhbnNmb3JtfVwiKTtcbiAgICAkZmxpcHBlZC11cmw6IHN0ci1yZXBsYWNlKCRmbGlwcGVkLXVybCwgXCI8cG9seWdvblwiLCBcIjxwb2x5Z29uICN7JHRyYW5zZm9ybX1cIik7XG4gICAgJGZsaXBwZWQtdXJsOiB1cmwtZW5jb2RlKCRmbGlwcGVkLXVybCk7XG5cbiAgICBAaW5jbHVkZSBsdHIgKCkge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsI3skdXJsfVwiKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgcnRsKCkge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsI3skZmxpcHBlZC11cmx9XCIpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBBZGQgcHJvcGVydHkgaG9yaXpvbnRhbFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRzdGFydFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRlbmRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBwcm9wZXJ0eS1ob3Jpem9udGFsKCRwcm9wLCAkc3RhcnQsICRlbmQ6ICRzdGFydCkge1xuICBAaWYgJHN0YXJ0ID09IDAgYW5kICRlbmQgPT0gMCB7XG4gICAgI3skcHJvcH0tbGVmdDogJHN0YXJ0O1xuICAgICN7JHByb3B9LXJpZ2h0OiAkZW5kO1xuXG4gIH0gQGVsc2Uge1xuICAgIC13ZWJraXQtI3skcHJvcH0tc3RhcnQ6ICRzdGFydDtcbiAgICAjeyRwcm9wfS1pbmxpbmUtc3RhcnQ6ICRzdGFydDtcbiAgICAtd2Via2l0LSN7JHByb3B9LWVuZDogJGVuZDtcbiAgICAjeyRwcm9wfS1pbmxpbmUtZW5kOiAkZW5kO1xuICB9XG59XG5cbi8vIEFkZCBwcm9wZXJ0eSBmb3IgYWxsIGRpcmVjdGlvbnNcbi8vIEBwYXJhbSB7c3RyaW5nfSAkcHJvcFxuLy8gQHBhcmFtIHtzdHJpbmd9ICR0b3Bcbi8vIEBwYXJhbSB7c3RyaW5nfSAkZW5kXG4vLyBAcGFyYW0ge3N0cmluZ30gJGJvdHRvbVxuLy8gQHBhcmFtIHtzdHJpbmd9ICRzdGFydFxuLy8gQHBhcmFtIHtib29sZWFufSAkY29udGVudCBpbmNsdWRlIGNvbnRlbnQgb3IgdXNlIGRlZmF1bHRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBwcm9wZXJ0eSgkcHJvcCwgJHRvcCwgJGVuZDogJHRvcCwgJGJvdHRvbTogJHRvcCwgJHN0YXJ0OiAkZW5kKSB7XG4gIEBpbmNsdWRlIHByb3BlcnR5LWhvcml6b250YWwoJHByb3AsICRzdGFydCwgJGVuZCk7XG4gICN7JHByb3B9LXRvcDogJHRvcDtcbiAgI3skcHJvcH0tYm90dG9tOiAkYm90dG9tO1xufVxuXG4vLyBBZGQgcGFkZGluZyBob3Jpem9udGFsXG4vLyBAcGFyYW0ge3N0cmluZ30gJHN0YXJ0XG4vLyBAcGFyYW0ge3N0cmluZ30gJGVuZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHBhZGRpbmctaG9yaXpvbnRhbCgkc3RhcnQsICRlbmQ6ICRzdGFydCkge1xuICBAaW5jbHVkZSBwcm9wZXJ0eS1ob3Jpem9udGFsKHBhZGRpbmcsICRzdGFydCwgJGVuZCk7XG59XG5cbi8vIEFkZCBwYWRkaW5nIGZvciBhbGwgZGlyZWN0aW9uc1xuLy8gQHBhcmFtIHtzdHJpbmd9ICR0b3Bcbi8vIEBwYXJhbSB7c3RyaW5nfSAkZW5kXG4vLyBAcGFyYW0ge3N0cmluZ30gJGJvdHRvbVxuLy8gQHBhcmFtIHtzdHJpbmd9ICRzdGFydFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHBhZGRpbmcoJHRvcCwgJGVuZDogJHRvcCwgJGJvdHRvbTogJHRvcCwgJHN0YXJ0OiAkZW5kKSB7XG4gIEBpbmNsdWRlIHByb3BlcnR5KHBhZGRpbmcsICR0b3AsICRlbmQsICRib3R0b20sICRzdGFydCk7XG59XG5cbi8vIEFkZCBtYXJnaW4gaG9yaXpvbnRhbFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRzdGFydFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRlbmRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBtYXJnaW4taG9yaXpvbnRhbCgkc3RhcnQsICRlbmQ6ICRzdGFydCkge1xuICBAaW5jbHVkZSBwcm9wZXJ0eS1ob3Jpem9udGFsKG1hcmdpbiwgJHN0YXJ0LCAkZW5kKTtcbn1cblxuLy8gQWRkIG1hcmdpbiBmb3IgYWxsIGRpcmVjdGlvbnNcbi8vIEBwYXJhbSB7c3RyaW5nfSAkdG9wXG4vLyBAcGFyYW0ge3N0cmluZ30gJGVuZFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRib3R0b21cbi8vIEBwYXJhbSB7c3RyaW5nfSAkc3RhcnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBtYXJnaW4oJHRvcCwgJGVuZDogJHRvcCwgJGJvdHRvbTogJHRvcCwgJHN0YXJ0OiAkZW5kKSB7XG4gIEBpbmNsdWRlIHByb3BlcnR5KG1hcmdpbiwgJHRvcCwgJGVuZCwgJGJvdHRvbSwgJHN0YXJ0KTtcbn1cblxuLy8gQWRkIHBvc2l0aW9uIGhvcml6b250YWxcbi8vIEBwYXJhbSB7c3RyaW5nfSAkc3RhcnQgLSBhbW91bnQgdG8gcG9zaXRpb24gc3RhcnRcbi8vIEBwYXJhbSB7c3RyaW5nfSAkZW5kIC0gYW1vdW50IHRvIGxlZnQ6IDA7IGVuZFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIHBvc2l0aW9uLWhvcml6b250YWwoJHN0YXJ0OiBudWxsLCAkZW5kOiBudWxsKSB7XG4gIEBpZiAkc3RhcnQgPT0gJGVuZCB7XG4gICAgQGluY2x1ZGUgbXVsdGktZGlyKCkge1xuICAgICAgbGVmdDogJHN0YXJ0O1xuICAgICAgcmlnaHQ6ICRlbmQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICAmIHtcbiAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAkc3RhcnQ7XG4gICAgICAgIGluc2V0LWlubGluZS1lbmQ6ICRlbmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEFkZCBwb3NpdGlvbiBmb3IgYWxsIGRpcmVjdGlvbnNcbi8vIEBwYXJhbSB7c3RyaW5nfSAkdG9wXG4vLyBAcGFyYW0ge3N0cmluZ30gJGVuZFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRib3R0b21cbi8vIEBwYXJhbSB7c3RyaW5nfSAkc3RhcnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBwb3NpdGlvbigkdG9wOiBudWxsLCAkZW5kOiBudWxsLCAkYm90dG9tOiBudWxsLCAkc3RhcnQ6IG51bGwpIHtcbiAgQGluY2x1ZGUgcG9zaXRpb24taG9yaXpvbnRhbCgkc3RhcnQsICRlbmQpO1xuICB0b3A6ICR0b3A7XG4gIGJvdHRvbTogJGJvdHRvbTtcbn1cblxuLy8gQWRkIGJvcmRlciBmb3IgYWxsIGRpcmVjdGlvbnNcbi8vIEBwYXJhbSB7c3RyaW5nfSAkdG9wXG4vLyBAcGFyYW0ge3N0cmluZ30gJGVuZFxuLy8gQHBhcmFtIHtzdHJpbmd9ICRib3R0b21cbi8vIEBwYXJhbSB7c3RyaW5nfSAkc3RhcnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbkBtaXhpbiBib3JkZXIoJHRvcCwgJGVuZDogJHRvcCwgJGJvdHRvbTogJHRvcCwgJHN0YXJ0OiAkZW5kKSB7XG4gIEBpbmNsdWRlIHByb3BlcnR5KGJvcmRlciwgJHRvcCwgJGVuZCwgJGJvdHRvbSwgJHN0YXJ0KTtcbn1cblxuLy8gQWRkIGJvcmRlciByYWRpdXMgZm9yIGFsbCBkaXJlY3Rpb25zXG4vLyBAcGFyYW0ge3N0cmluZ30gJHRvcC1zdGFydFxuLy8gQHBhcmFtIHtzdHJpbmd9ICR0b3AtZW5kXG4vLyBAcGFyYW0ge3N0cmluZ30gJGJvdHRvbS1lbmRcbi8vIEBwYXJhbSB7c3RyaW5nfSAkYm90dG9tLXN0YXJ0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkdG9wLXN0YXJ0LCAkdG9wLWVuZDogJHRvcC1zdGFydCwgJGJvdHRvbS1lbmQ6ICR0b3Atc3RhcnQsICRib3R0b20tc3RhcnQ6ICR0b3AtZW5kKSB7XG4gIEBpZiAkdG9wLXN0YXJ0ID09ICR0b3AtZW5kIGFuZCAkdG9wLXN0YXJ0ID09ICRib3R0b20tZW5kIGFuZCAkdG9wLXN0YXJ0ID09ICRib3R0b20tc3RhcnQge1xuICAgIGJvcmRlci1yYWRpdXM6ICR0b3Atc3RhcnQ7XG4gIH0gQGVsc2Uge1xuICAgIGJvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6ICR0b3Atc3RhcnQ7XG4gICAgYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6ICR0b3AtZW5kO1xuICAgIGJvcmRlci1lbmQtZW5kLXJhZGl1czogJGJvdHRvbS1lbmQ7XG4gICAgYm9yZGVyLWVuZC1zdGFydC1yYWRpdXM6ICRib3R0b20tc3RhcnQ7XG4gIH1cbn1cblxuLy8gQWRkIGRpcmVjdGlvbiBmb3IgYWxsIGRpcmVjdGlvbnNcbi8vIEBwYXJhbSB7c3RyaW5nfSAkZGlyIC0gRGlyZWN0aW9uIG9uIExUUlxuQG1peGluIGRpcmVjdGlvbigkZGlyKSB7XG4gICRvdGhlci1kaXI6IG51bGw7XG5cbiAgQGlmICRkaXIgPT0gbHRyIHtcbiAgICAkb3RoZXItZGlyOiBydGw7XG4gIH0gQGVsc2Uge1xuICAgICRvdGhlci1kaXI6IGx0cjtcbiAgfVxuXG4gIEBpbmNsdWRlIGx0cigpIHtcbiAgICBkaXJlY3Rpb246ICRkaXI7XG4gIH1cbiAgQGluY2x1ZGUgcnRsKCkge1xuICAgIGRpcmVjdGlvbjogJG90aGVyLWRpcjtcbiAgfVxufVxuXG4vLyBBZGQgZmxvYXQgZm9yIGFsbCBkaXJlY3Rpb25zXG4vLyBAcGFyYW0ge3N0cmluZ30gJHNpZGVcbi8vIEBwYXJhbSB7c3RyaW5nfSAkZGVjb3JhdG9yIC0gIWltcG9ydGFudFxuQG1peGluIGZsb2F0KCRzaWRlLCAkZGVjb3JhdG9yOiBudWxsKSB7XG4gIEBpZiAkc2lkZSA9PSBzdGFydCB7XG4gICAgQGluY2x1ZGUgbHRyKCkge1xuICAgICAgZmxvYXQ6IGxlZnQgJGRlY29yYXRvcjtcbiAgICB9XG4gICAgQGluY2x1ZGUgcnRsKCkge1xuICAgICAgZmxvYXQ6IHJpZ2h0ICRkZWNvcmF0b3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICRzaWRlID09IGVuZCB7XG4gICAgQGluY2x1ZGUgbHRyKCkge1xuICAgICAgZmxvYXQ6IHJpZ2h0ICRkZWNvcmF0b3I7XG4gICAgfVxuICAgIEBpbmNsdWRlIHJ0bCgpIHtcbiAgICAgIGZsb2F0OiBsZWZ0ICRkZWNvcmF0b3I7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBtdWx0aS1kaXIoKSB7XG4gICAgICBmbG9hdDogJHNpZGUgJGRlY29yYXRvcjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJhY2tncm91bmQtcG9zaXRpb24oJGhvcml6b250YWwsICRob3Jpem9udGFsLWFtb3VudDogbnVsbCwgJHZlcnRpY2FsOiBudWxsLCAkdmVydGljYWwtYW1vdW50OiBudWxsKSB7XG4gIEBpZiAkaG9yaXpvbnRhbCA9PSBzdGFydCBvciAkaG9yaXpvbnRhbCA9PSBlbmQge1xuICAgICRob3Jpem9udGFsLWx0cjogbnVsbDtcbiAgICAkaG9yaXpvbnRhbC1ydGw6IG51bGw7XG4gICAgQGlmICRob3Jpem9udGFsID09IHN0YXJ0IHtcbiAgICAgICRob3Jpem9udGFsLWx0cjogbGVmdDtcbiAgICAgICRob3Jpem9udGFsLXJ0bDogcmlnaHQ7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkaG9yaXpvbnRhbC1sdHI6IHJpZ2h0O1xuICAgICAgJGhvcml6b250YWwtcnRsOiBsZWZ0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGx0cigpIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRob3Jpem9udGFsLWx0ciAkaG9yaXpvbnRhbC1hbW91bnQgJHZlcnRpY2FsICR2ZXJ0aWNhbC1hbW91bnQ7XG4gICAgfVxuICAgIEBpbmNsdWRlIHJ0bCgpIHtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRob3Jpem9udGFsLXJ0bCAkaG9yaXpvbnRhbC1hbW91bnQgJHZlcnRpY2FsICR2ZXJ0aWNhbC1hbW91bnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBtdWx0aS1kaXIoKSB7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkaG9yaXpvbnRhbCAkaG9yaXpvbnRhbC1hbW91bnQgJHZlcnRpY2FsICR2ZXJ0aWNhbC1hbW91bnQ7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCR4LWF4aXMsICR5LWF4aXM6IG51bGwpIHtcbiAgQGlmICR4LWF4aXMgPT0gc3RhcnQge1xuICAgIEBpbmNsdWRlIGx0cigpIHtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgJHktYXhpcztcbiAgICB9XG4gICAgQGluY2x1ZGUgcnRsKCkge1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgJHktYXhpcztcbiAgICB9XG4gIH0gQGVsc2UgaWYgJHgtYXhpcyA9PSBlbmQge1xuICAgIEBpbmNsdWRlIGx0cigpIHtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0ICR5LWF4aXM7XG4gICAgfVxuICAgIEBpbmNsdWRlIHJ0bCgpIHtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgJHktYXhpcztcbiAgICB9XG4gIH0gQGVsc2UgaWYgJHgtYXhpcyA9PSBsZWZ0IG9yICR4LWF4aXMgPT0gcmlnaHQge1xuICAgIEBpbmNsdWRlIG11bHRpLWRpcigpIHtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46ICR4LWF4aXMgJHktYXhpcztcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIGx0cigpIHtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46ICR4LWF4aXMgJHktYXhpcztcbiAgICB9XG4gICAgQGluY2x1ZGUgcnRsKCkge1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2FsYygxMDAlIC0gI3skeC1heGlzfSkgJHktYXhpcztcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkIHRyYW5zZm9ybSBmb3IgYWxsIGRpcmVjdGlvbnNcbi8vIEBwYXJhbSB7c3RyaW5nfSAkdHJhbnNmb3JtcyAtIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHRyYW5zZm9ybXNcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMuLi4pIHtcbiAgJGV4dHJhOiBudWxsO1xuXG4gICR4OiBudWxsO1xuICAkbHRyLXRyYW5zbGF0ZTogbnVsbDtcbiAgJHJ0bC10cmFuc2xhdGU6IG51bGw7XG5cbiAgQGVhY2ggJHRyYW5zZm9ybSBpbiAkdHJhbnNmb3JtcyB7XG4gICAgQGlmIChzdHItaW5kZXgoJHRyYW5zZm9ybSwgdHJhbnNsYXRlM2QpKSB7XG4gICAgICAkdHJhbnNmb3JtOiBzdHItcmVwbGFjZSgkdHJhbnNmb3JtLCAndHJhbnNsYXRlM2QoJyk7XG4gICAgICAkdHJhbnNmb3JtOiBzdHItcmVwbGFjZSgkdHJhbnNmb3JtLCAnKScpO1xuXG4gICAgICAkY29vcmRpbmF0ZXM6IHN0ci1zcGxpdCgkdHJhbnNmb3JtLCAnLCcpO1xuXG4gICAgICAkeDogbnRoKCRjb29yZGluYXRlcywgMSk7XG4gICAgICAkeTogbnRoKCRjb29yZGluYXRlcywgMik7XG4gICAgICAkejogbnRoKCRjb29yZGluYXRlcywgMyk7XG5cbiAgICAgICRsdHItdHJhbnNsYXRlOiB0cmFuc2xhdGUzZCgkeCwgJHksICR6KTtcbiAgICAgICRydGwtdHJhbnNsYXRlOiB0cmFuc2xhdGUzZChjYWxjKC0xICogI3skeH0pLCAkeSwgJHopO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICRleHRyYSA9PSBudWxsIHtcbiAgICAgICAgJGV4dHJhOiAkdHJhbnNmb3JtO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRleHRyYTogJGV4dHJhICR0cmFuc2Zvcm07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICR4ID09ICcwJyBvciAkeCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtdWx0aS1kaXIoKSB7XG4gICAgICB0cmFuc2Zvcm06ICRsdHItdHJhbnNsYXRlICRleHRyYTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIGx0cigpIHtcbiAgICAgIHRyYW5zZm9ybTogJGx0ci10cmFuc2xhdGUgJGV4dHJhO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHJ0bCgpIHtcbiAgICAgIHRyYW5zZm9ybTogJHJ0bC10cmFuc2xhdGUgJGV4dHJhO1xuICAgIH1cbiAgfVxufVxuIiwiXG4vLyBHbG9iYWwgVXRpbGl0eSBGdW5jdGlvbnNcbkBpbXBvcnQgXCIuL2lvbmljLmZ1bmN0aW9ucy5zdHJpbmdcIjtcblxuLy8gR2xvYmFsIENvbG9yIEZ1bmN0aW9uc1xuQGltcG9ydCBcIi4vaW9uaWMuZnVuY3Rpb25zLmNvbG9yXCI7XG5cbi8vIEdsb2JhbCBGb250IEZ1bmN0aW9uc1xuQGltcG9ydCBcIi4vaW9uaWMuZnVuY3Rpb25zLmZvbnRcIjtcblxuLy8gR2xvYmFsIE1peGluc1xuQGltcG9ydCBcIi4vaW9uaWMubWl4aW5zXCI7XG5cbi8vIERlZmF1bHQgVGhlbWVcbkBpbXBvcnQgXCIuL2lvbmljLnRoZW1lLmRlZmF1bHRcIjtcblxuXG4vLyBEZWZhdWx0IEdlbmVyYWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kZm9udC1mYW1pbHktYmFzZTogICAgICAgICAgICAgICAgICB2YXIoLS1pb24tZm9udC1mYW1pbHksIGluaGVyaXQpO1xuXG4vLyBIYWlybGluZXMgd2lkdGhcbiRoYWlybGluZXMtd2lkdGg6IC41NXB4O1xuXG4vLyBUaGUgbWluaW11bSBkaW1lbnNpb25zIGF0IHdoaWNoIHlvdXIgbGF5b3V0IHdpbGwgY2hhbmdlLFxuLy8gYWRhcHRpbmcgdG8gZGlmZmVyZW50IHNjcmVlbiBzaXplcywgZm9yIHVzZSBpbiBtZWRpYSBxdWVyaWVzXG4kc2NyZWVuLWJyZWFrcG9pbnRzOiAoXG4gIHhzOiAwLFxuICBzbTogNTc2cHgsXG4gIG1kOiA3NjhweCxcbiAgbGc6IDk5MnB4LFxuICB4bDogMTIwMHB4XG4pO1xuXG4vLyBJbnB1dCBwbGFjZWhvbGRlciBvcGFjaXR5XG4vLyBFbnN1cmVzIHRoYXQgdGhlIHBsYWNlaG9sZGVyIGhhcyB0aGVcbi8vIGNvcnJlY3QgY29sb3IgY29udHJhc3QgYWdhaW5zdCB0aGUgYmFja2dyb3VuZC5cbiRwbGFjZWhvbGRlci1vcGFjaXR5OiB2YXIoLS1pb24tcGxhY2Vob2xkZXItb3BhY2l0eSwgMC42KTtcblxuJGZvcm0tY29udHJvbC1sYWJlbC1tYXJnaW46IDE2cHg7XG5cbi8vIEhvdyBtdWNoIHRoZSBzdGFja2VkIGxhYmVscyBzaG91bGQgYmUgc2NhbGVkIGJ5XG4vLy8gVGhlIHZhbHVlIDAuNzUgaXMgdXNlZCB0byBtYXRjaCB0aGUgTUQgc3BlYy5cbi8vLyBpT1MgZG9lcyBub3QgaGF2ZSBhIGZsb2F0aW5nIGxhYmVsIGRlc2lnbiBzcGVjLCBzbyB3ZSBzdGFuZGFyZGl6ZSBvbiAwLjc1LlxuJGZvcm0tY29udHJvbC1sYWJlbC1zdGFja2VkLXNjYWxlOiAwLjc1O1xuXG5cbi8vIFotSW5kZXhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBHcm91cGVkIGJ5IGVsZW1lbnRzIHdoaWNoIHdvdWxkIGJlIHNpYmxpbmdzXG5cbiR6LWluZGV4LW1lbnUtb3ZlcmxheTogICAgICAgICAgIDEwMDA7XG4kei1pbmRleC1vdmVybGF5OiAgICAgICAgICAgICAgICAxMDAxO1xuXG4kei1pbmRleC1maXhlZC1jb250ZW50OiAgICAgICAgICA5OTk7XG4kei1pbmRleC1yZWZyZXNoZXI6ICAgICAgICAgICAgICAtMTtcblxuJHotaW5kZXgtcGFnZS1jb250YWluZXI6ICAgICAgICAgMDtcbiR6LWluZGV4LXRvb2xiYXI6ICAgICAgICAgICAgICAgIDEwO1xuJHotaW5kZXgtdG9vbGJhci1iYWNrZ3JvdW5kOiAgICAgLTE7XG4kei1pbmRleC10b29sYmFyLWJ1dHRvbnM6ICAgICAgICA5OTtcblxuJHotaW5kZXgtYmFja2Ryb3A6ICAgICAgICAgICAgICAgMjtcbiR6LWluZGV4LW92ZXJsYXktd3JhcHBlcjogICAgICAgIDEwO1xuXG4kei1pbmRleC1pdGVtLW9wdGlvbnM6ICAgICAgICAgICAxO1xuJHotaW5kZXgtaXRlbS1pbnB1dDogICAgICAgICAgICAgMjtcbiR6LWluZGV4LWl0ZW0tZGl2aWRlcjogICAgICAgICAgIDEwMDtcblxuJHotaW5kZXgtcmVvcmRlci1zZWxlY3RlZDogICAgICAgMTAwO1xuIiwiQGltcG9ydCBcIi4uLy4uL3RoZW1lcy9pb25pYy5nbG9iYWxzLmlvc1wiO1xuXG4vLyBpT1MgTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vIEBwcm9wIC0gQm94IHNoYWRvdyBjb2xvciBvZiB0aGUgbWVudVxuJG1lbnUtaW9zLWJveC1zaGFkb3ctY29sb3I6ICAgICAgcmdiYSgwLCAwLCAwLCAuMDgpO1xuXG4vLy8gQHByb3AgLSBCb3ggc2hhZG93IG9mIHRoZSBtZW51XG4kbWVudS1pb3MtYm94LXNoYWRvdzogICAgICAgICAgICAtOHB4IDAgNDJweCAkbWVudS1pb3MtYm94LXNoYWRvdy1jb2xvcjtcblxuLy8vIEBwcm9wIC0gQm94IHNoYWRvdyBvZiB0aGUgbWVudSBpbiBydGwgbW9kZVxuJG1lbnUtaW9zLWJveC1zaGFkb3ctcnRsOiAgICAgICAgOHB4IDAgNDJweCAkbWVudS1pb3MtYm94LXNoYWRvdy1jb2xvcjtcblxuLy8vIEBwcm9wIC0gQm94IHNoYWRvdyBvZiB0aGUgcmV2ZWFsIG1lbnVcbiRtZW51LWlvcy1ib3gtc2hhZG93LXJldmVhbDogICAgICRtZW51LWlvcy1ib3gtc2hhZG93O1xuXG4vLy8gQHByb3AgLSBCb3ggc2hhZG93IG9mIHRoZSByZXZlYWwgbWVudVxuJG1lbnUtaW9zLWJveC1zaGFkb3ctcmV2ZWFsLXJ0bDogJG1lbnUtaW9zLWJveC1zaGFkb3ctcnRsO1xuXG4vLy8gQHByb3AgLSBCb3ggc2hhZG93IG9mIHRoZSBwdXNoIG1lbnVcbiRtZW51LWlvcy1ib3gtc2hhZG93LXB1c2g6ICAgICAgIG51bGw7XG5cbi8vLyBAcHJvcCAtIEJveCBzaGFkb3cgb2YgdGhlIG92ZXJsYXkgbWVudVxuJG1lbnUtaW9zLWJveC1zaGFkb3ctb3ZlcmxheTogICAgbnVsbDtcbiIsIkBpbXBvcnQgXCIuLi8uLi90aGVtZXMvaW9uaWMuZ2xvYmFscy5tZFwiO1xuXG4vLyBNYXRlcmlhbCBEZXNpZ24gTWVudVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8vIEBwcm9wIC0gQm94IHNoYWRvdyBvZiB0aGUgbWVudVxuJG1lbnUtbWQtYm94LXNoYWRvdzogICAgICAgICAgICA0cHggMHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbiIsIi8vICEgbm9ybWFsaXplLmNzcyB2My4wLjIgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzXG5cblxuLy8gSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gMS4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuYXVkaW8sXG5jYW52YXMsXG5wcm9ncmVzcyxcbnZpZGVvIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvLyAxXG59XG5cbi8vIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4vLyBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBoZWlnaHQ6IDA7XG59XG5cblxuLy8gVGV4dC1sZXZlbCBzZW1hbnRpY3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEFkZHJlc3Mgc3R5bGUgc2V0IHRvIGBib2xkZXJgIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLy8gRW1iZWRkZWQgY29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gTWFrZXMgaXQgc28gdGhlIGltZyBkb2VzIG5vdCBmbG93IG91dHNpZGUgY29udGFpbmVyXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8vIEdyb3VwaW5nIGNvbnRlbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmhyIHtcbiAgaGVpZ2h0OiAxcHg7XG5cbiAgYm9yZGVyLXdpZHRoOiAwO1xuXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4vLyBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbnByZSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vLyBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cblxuLy8gRm9ybXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4vLyBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG5cbi8vIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cbi8vICAgIEtub3duIGlzc3VlOiBhZmZlY3RzIGNvbG9yIG9mIGRpc2FibGVkIGVsZW1lbnRzLlxuLy8gMi4gQ29ycmVjdCBmb250IHByb3BlcnRpZXMgbm90IGJlaW5nIGluaGVyaXRlZC5cbi8vIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxuLy9cblxubGFiZWwsXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgaGVpZ2h0OiBhdXRvO1xuXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBwYWRkaW5nLWxlZnQ6IDJweDtcbn1cblxuZm9ybSxcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3Qge1xuICBtYXJnaW46IDA7IC8vIDNcblxuICBmb250OiBpbmhlcml0OyAvLyAyXG4gIGNvbG9yOiBpbmhlcml0OyAvLyAxXG59XG5cbi8vIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4vLyAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cbi8vIDIuIENvcnJlY3QgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSBgaW5wdXRgIHR5cGVzIGluIGlPUy5cbi8vIDMuIEltcHJvdmUgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4vLyAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8vIDFcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7IC8vIDNcblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMlxufVxuXG4vLyByZW1vdmUgMzAwbXMgZGVsYXlcbmEsXG5hIGRpdixcbmEgc3BhbixcbmEgaW9uLWljb24sXG5hIGlvbi1sYWJlbCxcbmJ1dHRvbixcbmJ1dHRvbiBkaXYsXG5idXR0b24gc3BhbixcbmJ1dHRvbiBpb24taWNvbixcbmJ1dHRvbiBpb24tbGFiZWwsXG4uaW9uLXRhcHBhYmxlLFxuW3RhcHBhYmxlXSxcblt0YXBwYWJsZV0gZGl2LFxuW3RhcHBhYmxlXSBzcGFuLFxuW3RhcHBhYmxlXSBpb24taWNvbixcblt0YXBwYWJsZV0gaW9uLWxhYmVsLFxuaW5wdXQsXG50ZXh0YXJlYSB7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG5hIGlvbi1sYWJlbCxcbmJ1dHRvbiBpb24tbGFiZWwge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zdHlsZTogaW5oZXJpdDtcbiAgZm9udC12YXJpYW50OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuW3RhcHBhYmxlXSB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLy8gUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cbmFbZGlzYWJsZWRdLFxuYnV0dG9uW2Rpc2FibGVkXSxcbmh0bWwgaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLyBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggNCsuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIHBhZGRpbmc6IDA7XG5cbiAgYm9yZGVyOiAwO1xufVxuXG4vLyBGaXggdGhlIGN1cnNvciBzdHlsZSBmb3IgQ2hyb21lJ3MgaW5jcmVtZW50L2RlY3JlbWVudCBidXR0b25zLiBGb3IgY2VydGFpblxuLy8gYGZvbnQtc2l6ZWAgdmFsdWVzIG9mIHRoZSBgaW5wdXRgLCBpdCBjYXVzZXMgdGhlIGN1cnNvciBzdHlsZSBvZiB0aGVcbi8vIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vLyBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cbi8vIFNhZmFyaSAoYnV0IG5vdCBDaHJvbWUpIGNsaXBzIHRoZSBjYW5jZWwgYnV0dG9uIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBoYXNcbi8vIHBhZGRpbmcgKGFuZCBgdGV4dGZpZWxkYCBhcHBlYXJhbmNlKS5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG5cbi8vIFRhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0vL1xuXG4vLyBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuXG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbiIsIkBpbXBvcnQgXCIuLi90aGVtZXMvaW9uaWMuZ2xvYmFsc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lcy9pb25pYy5taXhpbnNcIjtcblxuXG4vLyBTdHJ1Y3R1cmVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBZGRzIHN0cnVjdHVyYWwgY3NzIHRvIHRoZSBuYXRpdmUgaHRtbCBlbGVtZW50c1xuXG4qIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbn1cblxuaHRtbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcblxuICB0ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuXG5odG1sLmlvbi1jZSBib2R5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmh0bWwucGx0LXB3YSB7XG4gIGhlaWdodDogMTAwdmg7XG59XG5cbmJvZHkge1xuICBAaW5jbHVkZSBmb250LXNtb290aGluZygpO1xuICBAaW5jbHVkZSBtYXJnaW4oMCk7XG4gIEBpbmNsdWRlIHBhZGRpbmcoMCk7XG5cbiAgcG9zaXRpb246IGZpeGVkO1xuXG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcblxuICAvKipcbiAgICogQmVjYXVzZSBib2R5IGhhcyBwb3NpdGlvbjogZml4ZWQsXG4gICAqIGl0IHNob3VsZCBiZSBwcm9tb3RlZCB0byBpdHMgb3duXG4gICAqIGxheWVyLlxuICAgKlxuICAgKiBXZWJLaXQgZG9lcyBub3QgYWx3YXlzIHByb21vdGVcbiAgICogdGhlIGJvZHkgdG8gaXRzIG93biBsYXllciBvbiBwYWdlXG4gICAqIGxvYWQgaW4gSW9uaWMgYXBwcy4gT25jZSBzY3JvbGxpbmcgb25cbiAgICogaW9uLWNvbnRlbnQgc3RhcnRzLCBXZWJLaXQgd2lsbCBwcm9tb3RlXG4gICAqIGJvZHkuIFVuZm9ydHVuYXRlbHksIHRoaXMgY2F1c2VzIGEgcmUtcGFpbnRcbiAgICogd2hpY2ggcmVzdWx0cyBpbiBzY3JvbGxpbmcgYmVpbmcgaGFsdGVkXG4gICAqIHVudGlsIHRoZSBuZXh0IHVzZXIgZ2VzdHVyZS5cbiAgICpcbiAgICogVGhpcyBpbXBhY3RzIHRoZSBDdXN0b20gRWxlbWVudHMgYnVpbGQuXG4gICAqIFRoZSBsYXp5IGxvYWRlZCBidWlsZCBjYXVzZXMgdGhlIGJyb3dzZXIgdG9cbiAgICogcmUtcGFpbnQgZHVyaW5nIGh5ZHJhdGlvbiB3aGljaCBjYXVzZXMgV2ViS2l0XG4gICAqIHRvIHByb21vdGUgYm9keSB0byBpdHMgb3duIGxheWVyLlxuICAgKiBJbiB0aGUgQ0UgQnVpbGQsIHRoaXMgaHlkcmF0aW9uIGRvZXMgbm90XG4gICAqIGhhcHBlbiwgc28gdGhlIGFkZGl0aW9uYWwgcmUtcGFpbnQgZG9lcyBub3Qgb2NjdXIuXG4gICAqL1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG5cbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcblxuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xuXG4gIC1tcy1jb250ZW50LXpvb21pbmc6IG5vbmU7XG5cbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuXG4gIG92ZXJzY3JvbGwtYmVoYXZpb3IteTogbm9uZTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBub25lO1xuXG4gIHRleHQtc2l6ZS1hZGp1c3Q6IG5vbmU7XG59XG4iLCJAaW1wb3J0IFwiLi4vdGhlbWVzL2lvbmljLmdsb2JhbHNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZXMvaW9uaWMubWl4aW5zXCI7XG5cbi8vIFR5cG9ncmFwaHlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vLyBAcHJvcCAtIEZvbnQgd2VpZ2h0IG9mIGFsbCBoZWFkaW5nc1xuJGhlYWRpbmdzLWZvbnQtd2VpZ2h0OiAgICAgICAgIDUwMDtcblxuLy8vIEBwcm9wIC0gTGluZSBoZWlnaHQgb2YgYWxsIGhlYWRpbmdzXG4kaGVhZGluZ3MtbGluZS1oZWlnaHQ6ICAgICAgICAgMS4yO1xuXG4vLy8gQHByb3AgLSBGb250IHNpemUgb2YgaGVhZGluZyBsZXZlbCAxXG4kaDEtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgZHluYW1pYy1mb250KDI2cHgpO1xuXG4vLy8gQHByb3AgLSBGb250IHNpemUgb2YgaGVhZGluZyBsZXZlbCAyXG4kaDItZm9udC1zaXplOiAgICAgICAgICAgICAgICAgZHluYW1pYy1mb250KDI0cHgpO1xuXG4vLy8gQHByb3AgLSBGb250IHNpemUgb2YgaGVhZGluZyBsZXZlbCAzXG4kaDMtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgZHluYW1pYy1mb250KDIycHgpO1xuXG4vLy8gQHByb3AgLSBGb250IHNpemUgb2YgaGVhZGluZyBsZXZlbCA0XG4kaDQtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgZHluYW1pYy1mb250KDIwcHgpO1xuXG4vLy8gQHByb3AgLSBGb250IHNpemUgb2YgaGVhZGluZyBsZXZlbCA1XG4kaDUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgZHluYW1pYy1mb250KDE4cHgpO1xuXG4vLy8gQHByb3AgLSBGb250IHNpemUgb2YgaGVhZGluZyBsZXZlbCA2XG4kaDYtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgZHluYW1pYy1mb250KDE2cHgpO1xuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWlvbi1mb250LWZhbWlseSk7XG59XG5cbi8qKlxuICogRHluYW1pYyBUeXBlIGlzIGFuIGlPUy1vbmx5IGZlYXR1cmUsIHNvXG4gKiB0aGlzIHNob3VsZCBvbmx5IGJlIGVuYWJsZWQgb24gaU9TIGRldmljZXMuXG4gKi9cbkBzdXBwb3J0cyAoLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lKSB7XG4gIGh0bWwge1xuICAgIC8qKlxuICAgICAqIEluY2x1ZGVzIGZhbGxiYWNrIGlmIER5bmFtaWMgVHlwZSBpcyBub3QgZW5hYmxlZC5cbiAgICAgKi9cbiAgICBmb250OiB2YXIoLS1pb24tZHluYW1pYy1mb250LCAxNnB4IHZhcigtLWlvbi1mb250LWZhbWlseSkpO1xuICB9XG59XG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGlvbi1jb2xvcihwcmltYXJ5LCBiYXNlKTtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgQGluY2x1ZGUgbWFyZ2luKDE2cHgsIG51bGwsIDEwcHgsIG51bGwpO1xuXG4gIGZvbnQtd2VpZ2h0OiAkaGVhZGluZ3MtZm9udC13ZWlnaHQ7XG5cbiAgbGluZS1oZWlnaHQ6ICRoZWFkaW5ncy1saW5lLWhlaWdodDtcbn1cblxuaDEge1xuICBAaW5jbHVkZSBtYXJnaW4oMjBweCwgbnVsbCwgbnVsbCwgbnVsbCk7XG5cbiAgZm9udC1zaXplOiAkaDEtZm9udC1zaXplO1xufVxuXG5oMiB7XG4gIEBpbmNsdWRlIG1hcmdpbigxOHB4LCBudWxsLCBudWxsLCBudWxsKTtcblxuICBmb250LXNpemU6ICRoMi1mb250LXNpemU7XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAkaDMtZm9udC1zaXplO1xufVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogJGg0LWZvbnQtc2l6ZTtcbn1cblxuaDUge1xuICBmb250LXNpemU6ICRoNS1mb250LXNpemU7XG59XG5cbmg2IHtcbiAgZm9udC1zaXplOiAkaDYtZm9udC1zaXplO1xufVxuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xufVxuXG5zdWIsXG5zdXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgZm9udC1zaXplOiA3NSU7XG5cbiAgbGluZS1oZWlnaHQ6IDA7XG5cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0uNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0uMjVlbTtcbn1cbiIsIkBpbXBvcnQgXCIuLi90aGVtZXMvaW9uaWMuZ2xvYmFsc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lcy9pb25pYy5taXhpbnNcIjtcblxuXG4vLyBFbGVtZW50IFNwYWNlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ3JlYXRlcyBwYWRkaW5nIGFuZCBtYXJnaW4gYXR0cmlidXRlcyB0byBiZSB1c2VkIG9uXG4vLyBhbnkgZWxlbWVudFxuXG4kcGFkZGluZzogdmFyKC0taW9uLXBhZGRpbmcsIDE2cHgpO1xuJG1hcmdpbjogdmFyKC0taW9uLW1hcmdpbiwgMTZweCk7XG5cbi8vIFBhZGRpbmdcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi5pb24tbm8tcGFkZGluZyB7XG4gIC0tcGFkZGluZy1zdGFydDogMDtcbiAgLS1wYWRkaW5nLWVuZDogMDtcbiAgLS1wYWRkaW5nLXRvcDogMDtcbiAgLS1wYWRkaW5nLWJvdHRvbTogMDtcblxuICBAaW5jbHVkZSBwYWRkaW5nKDApO1xufVxuXG4uaW9uLXBhZGRpbmcge1xuICAtLXBhZGRpbmctc3RhcnQ6ICN7JHBhZGRpbmd9O1xuICAtLXBhZGRpbmctZW5kOiAjeyRwYWRkaW5nfTtcbiAgLS1wYWRkaW5nLXRvcDogI3skcGFkZGluZ307XG4gIC0tcGFkZGluZy1ib3R0b206ICN7JHBhZGRpbmd9O1xuXG4gIEBpbmNsdWRlIHBhZGRpbmcoJHBhZGRpbmcpO1xufVxuXG4uaW9uLXBhZGRpbmctdG9wIHtcbiAgLS1wYWRkaW5nLXRvcDogI3skcGFkZGluZ307XG5cbiAgQGluY2x1ZGUgcGFkZGluZygkcGFkZGluZywgbnVsbCwgbnVsbCwgbnVsbCk7XG59XG5cbi5pb24tcGFkZGluZy1zdGFydCB7XG4gIC0tcGFkZGluZy1zdGFydDogI3skcGFkZGluZ307XG5cbiAgQGluY2x1ZGUgcGFkZGluZy1ob3Jpem9udGFsKCRwYWRkaW5nLCBudWxsKTtcbn1cblxuLmlvbi1wYWRkaW5nLWVuZCB7XG4gIC0tcGFkZGluZy1lbmQ6ICN7JHBhZGRpbmd9O1xuXG4gIEBpbmNsdWRlIHBhZGRpbmctaG9yaXpvbnRhbChudWxsLCAkcGFkZGluZyk7XG59XG5cbi5pb24tcGFkZGluZy1ib3R0b20ge1xuICAtLXBhZGRpbmctYm90dG9tOiAjeyRwYWRkaW5nfTtcblxuICBAaW5jbHVkZSBwYWRkaW5nKG51bGwsIG51bGwsICRwYWRkaW5nLCBudWxsKTtcbn1cblxuLmlvbi1wYWRkaW5nLXZlcnRpY2FsIHtcbiAgLS1wYWRkaW5nLXRvcDogI3skcGFkZGluZ307XG4gIC0tcGFkZGluZy1ib3R0b206ICN7JHBhZGRpbmd9O1xuXG4gIEBpbmNsdWRlIHBhZGRpbmcoJHBhZGRpbmcsIG51bGwsICRwYWRkaW5nLCBudWxsKTtcbn1cblxuLmlvbi1wYWRkaW5nLWhvcml6b250YWwge1xuICAtLXBhZGRpbmctc3RhcnQ6ICN7JHBhZGRpbmd9O1xuICAtLXBhZGRpbmctZW5kOiAjeyRwYWRkaW5nfTtcblxuICBAaW5jbHVkZSBwYWRkaW5nLWhvcml6b250YWwoJHBhZGRpbmcpO1xufVxuXG5cbi8vIE1hcmdpblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLmlvbi1uby1tYXJnaW4ge1xuICAtLW1hcmdpbi1zdGFydDogMDtcbiAgLS1tYXJnaW4tZW5kOiAwO1xuICAtLW1hcmdpbi10b3A6IDA7XG4gIC0tbWFyZ2luLWJvdHRvbTogMDtcblxuICBAaW5jbHVkZSBtYXJnaW4oMCk7XG59XG5cbi5pb24tbWFyZ2luIHtcbiAgLS1tYXJnaW4tc3RhcnQ6ICN7JG1hcmdpbn07XG4gIC0tbWFyZ2luLWVuZDogI3skbWFyZ2lufTtcbiAgLS1tYXJnaW4tdG9wOiAjeyRtYXJnaW59O1xuICAtLW1hcmdpbi1ib3R0b206ICN7JG1hcmdpbn07XG5cbiAgQGluY2x1ZGUgbWFyZ2luKCRtYXJnaW4pO1xufVxuXG4uaW9uLW1hcmdpbi10b3Age1xuICAtLW1hcmdpbi10b3A6ICN7JG1hcmdpbn07XG5cbiAgQGluY2x1ZGUgbWFyZ2luKCRtYXJnaW4sIG51bGwsIG51bGwsIG51bGwpO1xufVxuXG4uaW9uLW1hcmdpbi1zdGFydCB7XG4gIC0tbWFyZ2luLXN0YXJ0OiAjeyRtYXJnaW59O1xuXG4gIEBpbmNsdWRlIG1hcmdpbi1ob3Jpem9udGFsKCRtYXJnaW4sIG51bGwpO1xufVxuXG4uaW9uLW1hcmdpbi1lbmQge1xuICAtLW1hcmdpbi1lbmQ6ICN7JG1hcmdpbn07XG5cbiAgQGluY2x1ZGUgbWFyZ2luLWhvcml6b250YWwobnVsbCwgJG1hcmdpbik7XG59XG5cbi5pb24tbWFyZ2luLWJvdHRvbSB7XG4gIC0tbWFyZ2luLWJvdHRvbTogI3skbWFyZ2lufTtcblxuICBAaW5jbHVkZSBtYXJnaW4obnVsbCwgbnVsbCwgJG1hcmdpbiwgbnVsbCk7XG59XG5cbi5pb24tbWFyZ2luLXZlcnRpY2FsIHtcbiAgLS1tYXJnaW4tdG9wOiAjeyRtYXJnaW59O1xuICAtLW1hcmdpbi1ib3R0b206ICN7JG1hcmdpbn07XG5cbiAgQGluY2x1ZGUgbWFyZ2luKCRtYXJnaW4sIG51bGwsICRtYXJnaW4sIG51bGwpO1xufVxuXG4uaW9uLW1hcmdpbi1ob3Jpem9udGFsIHtcbiAgLS1tYXJnaW4tc3RhcnQ6ICN7JG1hcmdpbn07XG4gIC0tbWFyZ2luLWVuZDogI3skbWFyZ2lufTtcblxuICBAaW5jbHVkZSBtYXJnaW4taG9yaXpvbnRhbCgkbWFyZ2luKTtcbn1cbiIsIkBpbXBvcnQgXCIuLi90aGVtZXMvaW9uaWMuZ2xvYmFsc1wiO1xuQGltcG9ydCBcIi4uL3RoZW1lcy9pb25pYy5taXhpbnNcIjtcblxuLy8gRmxvYXQgRWxlbWVudHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDcmVhdGVzIGZsb2F0IGNsYXNzZXMgYmFzZWQgb24gc2NyZWVuIHNpemVcblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJHNjcmVlbi1icmVha3BvaW50cykge1xuICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRzY3JlZW4tYnJlYWtwb2ludHMpO1xuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgICAvLyBQcm92aWRlIGAuaW9uLWZsb2F0LXticH0te3NpZGV9YCBjbGFzc2VzIGZvciBmbG9hdGluZyB0aGUgZWxlbWVudCBiYXNlZFxuICAgIC8vIG9uIHRoZSBicmVha3BvaW50IGFuZCBzaWRlXG4gICAgLmlvbi1mbG9hdCN7JGluZml4fS1sZWZ0IHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0KGxlZnQsICFpbXBvcnRhbnQpO1xuICAgIH1cblxuICAgIC5pb24tZmxvYXQjeyRpbmZpeH0tcmlnaHQge1xuICAgICAgQGluY2x1ZGUgZmxvYXQocmlnaHQsICFpbXBvcnRhbnQpO1xuICAgIH1cblxuICAgIC5pb24tZmxvYXQjeyRpbmZpeH0tc3RhcnQge1xuICAgICAgQGluY2x1ZGUgZmxvYXQoc3RhcnQsICFpbXBvcnRhbnQpO1xuICAgIH1cblxuICAgIC5pb24tZmxvYXQjeyRpbmZpeH0tZW5kIHtcbiAgICAgIEBpbmNsdWRlIGZsb2F0KGVuZCwgIWltcG9ydGFudCk7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vdGhlbWVzL2lvbmljLmdsb2JhbHNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZXMvaW9uaWMubWl4aW5zXCI7XG5cbi8vIFRleHQgQWxpZ25tZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQ3JlYXRlcyB0ZXh0IGFsaWdubWVudCBhdHRyaWJ1dGVzIGJhc2VkIG9uIHNjcmVlbiBzaXplXG5cbkBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkc2NyZWVuLWJyZWFrcG9pbnRzKTtcblxuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkc2NyZWVuLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gUHJvdmlkZSBgLmlvbi10ZXh0LXticH1gIGNsYXNzZXMgZm9yIGFsaWduaW5nIHRoZSB0ZXh0IGJhc2VkXG4gICAgLy8gb24gdGhlIGJyZWFrcG9pbnRcbiAgICAuaW9uLXRleHQjeyRpbmZpeH0tY2VudGVyIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pb24tdGV4dCN7JGluZml4fS1qdXN0aWZ5IHtcbiAgICAgIHRleHQtYWxpZ246IGp1c3RpZnkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuaW9uLXRleHQjeyRpbmZpeH0tc3RhcnQge1xuICAgICAgdGV4dC1hbGlnbjogc3RhcnQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuaW9uLXRleHQjeyRpbmZpeH0tZW5kIHtcbiAgICAgIHRleHQtYWxpZ246IGVuZCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pb24tdGV4dCN7JGluZml4fS1sZWZ0IHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuaW9uLXRleHQjeyRpbmZpeH0tcmlnaHQge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuaW9uLXRleHQjeyRpbmZpeH0tbm93cmFwIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuaW9uLXRleHQjeyRpbmZpeH0td3JhcCB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vdGhlbWVzL2lvbmljLmdsb2JhbHNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZXMvaW9uaWMubWl4aW5zXCI7XG5cbi8vIFRleHQgVHJhbnNmb3JtYXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDcmVhdGVzIHRleHQgdHJhbnNmb3JtIGF0dHJpYnV0ZXMgYmFzZWQgb24gc2NyZWVuIHNpemVcblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJHNjcmVlbi1icmVha3BvaW50cykge1xuICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRzY3JlZW4tYnJlYWtwb2ludHMpO1xuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgICAvLyBQcm92aWRlIGAuaW9uLXRleHQte2JwfWAgY2xhc3NlcyBmb3IgdHJhbnNmb3JtaW5nIHRoZSB0ZXh0IGJhc2VkXG4gICAgLy8gb24gdGhlIGJyZWFrcG9pbnRcbiAgICAuaW9uLXRleHQjeyRpbmZpeH0tdXBwZXJjYXNlIHtcbiAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuaW9uLXRleHQjeyRpbmZpeH0tbG93ZXJjYXNlIHtcbiAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQgKi9cbiAgICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2UgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuaW9uLXRleHQjeyRpbmZpeH0tY2FwaXRhbGl6ZSB7XG4gICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcIi4uL3RoZW1lcy9pb25pYy5nbG9iYWxzXCI7XG5AaW1wb3J0IFwiLi4vdGhlbWVzL2lvbmljLm1peGluc1wiO1xuXG4vLyBGbGV4IFV0aWxpdGllc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBQcm92aWRlcyB1dGlsaXR5IGNsYXNzZXMgdG8gY29udHJvbCBmbGV4Ym94IGxheW91dCwgYWxpZ25tZW50LFxuLy8gYW5kIHNpemluZyBvZiBlbGVtZW50cy4gSW5jbHVkZXMgcmVzcG9uc2l2ZSB2YXJpYW50cyBmb3IgbWFuYWdpbmdcbi8vIGZsZXggZGlyZWN0aW9uLCBhbGlnbm1lbnQsIGp1c3RpZmljYXRpb24sIHdyYXBwaW5nLCBncm93dGgsXG4vLyBzaHJpbmtpbmcsIGFuZCBvcmRlcmluZyBhdCBkaWZmZXJlbnQgYnJlYWtwb2ludHMuXG5cbi8vIEFsaWduIENvbnRlbnRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kYWxpZ24tY29udGVudC12YWx1ZXM6IChcbiAgc3RhcnQ6IGZsZXgtc3RhcnQsXG4gIGVuZDogZmxleC1lbmQsXG4gIGNlbnRlcjogY2VudGVyLFxuICBiZXR3ZWVuOiBzcGFjZS1iZXR3ZWVuLFxuICBhcm91bmQ6IHNwYWNlLWFyb3VuZCxcbiAgc3RyZXRjaDogc3RyZXRjaFxuKTtcblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJHNjcmVlbi1icmVha3BvaW50cykge1xuICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRzY3JlZW4tYnJlYWtwb2ludHMpO1xuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkc2NyZWVuLWJyZWFrcG9pbnRzKSB7XG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRhbGlnbi1jb250ZW50LXZhbHVlcyB7XG4gICAgICAuaW9uLWFsaWduLWNvbnRlbnQjeyRpbmZpeH0tI3ska2V5fSB7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6ICN7JHZhbHVlfSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBBbGlnbiBJdGVtc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRhbGlnbi1pdGVtcy12YWx1ZXM6IChcbiAgc3RhcnQsXG4gIGVuZCxcbiAgY2VudGVyLFxuICBzdHJldGNoLFxuICBiYXNlbGluZVxuKTtcblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJHNjcmVlbi1icmVha3BvaW50cykge1xuICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRzY3JlZW4tYnJlYWtwb2ludHMpO1xuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkc2NyZWVuLWJyZWFrcG9pbnRzKSB7XG4gICAgQGVhY2ggJHZhbHVlIGluICRhbGlnbi1pdGVtcy12YWx1ZXMge1xuICAgICAgLmlvbi1hbGlnbi1pdGVtcyN7JGluZml4fS0jeyR2YWx1ZX0ge1xuICAgICAgICBhbGlnbi1pdGVtczogI3skdmFsdWV9ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEFsaWduIFNlbGZcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kYWxpZ24tc2VsZi12YWx1ZXM6IChcbiAgc3RhcnQsXG4gIGVuZCxcbiAgY2VudGVyLFxuICBzdHJldGNoLFxuICBiYXNlbGluZSxcbiAgYXV0b1xuKTtcblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJHNjcmVlbi1icmVha3BvaW50cykge1xuICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRzY3JlZW4tYnJlYWtwb2ludHMpO1xuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkc2NyZWVuLWJyZWFrcG9pbnRzKSB7XG4gICAgQGVhY2ggJHZhbHVlIGluICRhbGlnbi1zZWxmLXZhbHVlcyB7XG4gICAgICAuaW9uLWFsaWduLXNlbGYjeyRpbmZpeH0tI3skdmFsdWV9IHtcbiAgICAgICAgYWxpZ24tc2VsZjogI3skdmFsdWV9ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEp1c3RpZnkgQ29udGVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiRqdXN0aWZ5LWNvbnRlbnQtdmFsdWVzOiAoXG4gIHN0YXJ0OiBmbGV4LXN0YXJ0LFxuICBlbmQ6IGZsZXgtZW5kLFxuICBjZW50ZXI6IGNlbnRlcixcbiAgYmV0d2Vlbjogc3BhY2UtYmV0d2VlbixcbiAgYXJvdW5kOiBzcGFjZS1hcm91bmQsXG4gIGV2ZW5seTogc3BhY2UtZXZlbmx5XG4pO1xuXG5AZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkc2NyZWVuLWJyZWFrcG9pbnRzKSB7XG4gICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJHNjcmVlbi1icmVha3BvaW50cyk7XG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJGp1c3RpZnktY29udGVudC12YWx1ZXMge1xuICAgICAgLmlvbi1qdXN0aWZ5LWNvbnRlbnQjeyRpbmZpeH0tI3ska2V5fSB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogI3skdmFsdWV9ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEZsZXggRGlyZWN0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJGZsZXgtZGlyZWN0aW9uLXZhbHVlczogKFxuICByb3csXG4gIHJvdy1yZXZlcnNlLFxuICBjb2x1bW4sXG4gIGNvbHVtbi1yZXZlcnNlXG4pO1xuXG5AZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkc2NyZWVuLWJyZWFrcG9pbnRzKSB7XG4gICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJHNjcmVlbi1icmVha3BvaW50cyk7XG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgICBAZWFjaCAkdmFsdWUgaW4gJGZsZXgtZGlyZWN0aW9uLXZhbHVlcyB7XG4gICAgICAuaW9uLWZsZXgjeyRpbmZpeH0tI3skdmFsdWV9IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246ICN7JHZhbHVlfSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBGbGV4IFdyYXBcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kZmxleC13cmFwLXZhbHVlczogKFxuICB3cmFwLFxuICBub3dyYXAsXG4gIHdyYXAtcmV2ZXJzZVxuKTtcblxuQGVhY2ggJHZhbHVlIGluICRmbGV4LXdyYXAtdmFsdWVzIHtcbiAgLy8gVE9ETyhGVy02Njk3KTogcmVtb3ZlIGlvbi13cmFwLCBpb24tbm93cmFwLCBpb24td3JhcC1yZXZlcnNlXG4gIC8vIGluIGZhdm9yIG9mIHRoZSBuZXcgaW9uLWZsZXgtd3JhcCwgaW9uLWZsZXgtbm93cmFwLCBhbmRcbiAgLy8gaW9uLWZsZXgtd3JhcC1yZXZlcnNlIGNsYXNzZXNcbiAgLmlvbi0jeyR2YWx1ZX0ge1xuICAgIGZsZXgtd3JhcDogI3skdmFsdWV9ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJHNjcmVlbi1icmVha3BvaW50cykge1xuICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRzY3JlZW4tYnJlYWtwb2ludHMpO1xuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkc2NyZWVuLWJyZWFrcG9pbnRzKSB7XG4gICAgQGVhY2ggJHZhbHVlIGluICRmbGV4LXdyYXAtdmFsdWVzIHtcbiAgICAgIC5pb24tZmxleCN7JGluZml4fS0jeyR2YWx1ZX0ge1xuICAgICAgICBmbGV4LXdyYXA6ICN7JHZhbHVlfSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBGbGV4IEZpbGxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kZmxleC1maWxsLXZhbHVlczogKFxuICAxLFxuICBhdXRvLFxuICBpbml0aWFsLFxuICBub25lXG4pO1xuXG5AZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkc2NyZWVuLWJyZWFrcG9pbnRzKSB7XG4gICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJHNjcmVlbi1icmVha3BvaW50cyk7XG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgICBAZWFjaCAkdmFsdWUgaW4gJGZsZXgtZmlsbC12YWx1ZXMge1xuICAgICAgLmlvbi1mbGV4I3skaW5maXh9LSN7JHZhbHVlfSB7XG4gICAgICAgIGZsZXg6ICN7JHZhbHVlfSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBGbGV4IEdyb3cgYW5kIFNocmlua1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkc2NyZWVuLWJyZWFrcG9pbnRzKTtcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJHNjcmVlbi1icmVha3BvaW50cykge1xuICAgIC5pb24tZmxleCN7JGluZml4fS1ncm93LTAge1xuICAgICAgZmxleC1ncm93OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmlvbi1mbGV4I3skaW5maXh9LWdyb3ctMSB7XG4gICAgICBmbGV4LWdyb3c6IDEgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuaW9uLWZsZXgjeyRpbmZpeH0tc2hyaW5rLTAge1xuICAgICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuaW9uLWZsZXgjeyRpbmZpeH0tc2hyaW5rLTEge1xuICAgICAgZmxleC1zaHJpbms6IDEgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gRmxleCBPcmRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkc2NyZWVuLWJyZWFrcG9pbnRzKTtcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJHNjcmVlbi1icmVha3BvaW50cykge1xuICAgIC5pb24tb3JkZXIjeyRpbmZpeH0tZmlyc3QgeyBvcmRlcjogLTEgIWltcG9ydGFudDsgfVxuXG4gICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAxMiB7XG4gICAgICAuaW9uLW9yZGVyI3skaW5maXh9LSN7JGl9IHsgb3JkZXI6ICN7JGl9ICFpbXBvcnRhbnQ7IH1cbiAgICB9XG5cbiAgICAuaW9uLW9yZGVyI3skaW5maXh9LWxhc3QgeyBvcmRlcjogMTMgIWltcG9ydGFudDsgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwiLi4vdGhlbWVzL2lvbmljLmdsb2JhbHNcIjtcbkBpbXBvcnQgXCIuLi90aGVtZXMvaW9uaWMubWl4aW5zXCI7XG5cbi8vIERpc3BsYXlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUHJvdmlkZXMgdXRpbGl0eSBjbGFzc2VzIHRvIGNvbnRyb2wgdGhlIENTUyBkaXNwbGF5IHByb3BlcnR5XG4vLyBvZiBlbGVtZW50cy4gSW5jbHVkZXMgcmVzcG9uc2l2ZSB2YXJpYW50cyBmb3IgdG9nZ2xpbmcgYmV0d2VlblxuLy8gYmxvY2ssIGlubGluZSwgZmxleCwgZ3JpZCwgYW5kIG90aGVyIGRpc3BsYXkgdmFsdWVzIGF0IGRpZmZlcmVudFxuLy8gYnJlYWtwb2ludHMuXG5cbi8vIFRPRE8oRlctNjY5Nyk6IHJlbW92ZSBpb24taGlkZS0qIGNsYXNzZXMgaW4gZmF2b3Igb2YgdGhlIG5ld1xuLy8gaW9uLWRpc3BsYXktKiBjbGFzc2VzXG4uaW9uLWhpZGUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8vIEFkZHMgaGlkZGVuIGNsYXNzZXNcbkBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRzY3JlZW4tYnJlYWtwb2ludHMpIHtcbiAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkc2NyZWVuLWJyZWFrcG9pbnRzKTtcblxuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkc2NyZWVuLWJyZWFrcG9pbnRzKSB7XG4gICAgLy8gUHJvdmlkZSBgaW9uLWhpZGUte2JwfS11cGAgY2xhc3NlcyBmb3IgaGlkaW5nIHRoZSBlbGVtZW50IGJhc2VkXG4gICAgLy8gb24gdGhlIGJyZWFrcG9pbnRcbiAgICAuaW9uLWhpZGUjeyRpbmZpeH0tdXAge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkYnJlYWtwb2ludCwgJHNjcmVlbi1icmVha3BvaW50cykge1xuICAgIC8vIFByb3ZpZGUgYGlvbi1oaWRlLXticH0tZG93bmAgY2xhc3NlcyBmb3IgaGlkaW5nIHRoZSBlbGVtZW50IGJhc2VkXG4gICAgLy8gb24gdGhlIGJyZWFrcG9pbnRcbiAgICAuaW9uLWhpZGUjeyRpbmZpeH0tZG93biB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cbiRkaXNwbGF5LXZhbHVlczogKFxuICBub25lLFxuICBpbmxpbmUsXG4gIGlubGluZS1ibG9jayxcbiAgYmxvY2ssXG4gIGZsZXgsXG4gIGlubGluZS1mbGV4LFxuICBncmlkLFxuICBpbmxpbmUtZ3JpZCxcbiAgdGFibGUsXG4gIHRhYmxlLWNlbGwsXG4gIHRhYmxlLXJvd1xuKTtcblxuQGVhY2ggJGRpc3BsYXkgaW4gJGRpc3BsYXktdmFsdWVzIHtcbiAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJHNjcmVlbi1icmVha3BvaW50cykge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJHNjcmVlbi1icmVha3BvaW50cyk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkc2NyZWVuLWJyZWFrcG9pbnRzKSB7XG4gICAgICAuaW9uLWRpc3BsYXkjeyRpbmZpeH0tI3skZGlzcGxheX0ge1xuICAgICAgICBkaXNwbGF5OiAjeyRkaXNwbGF5fSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/