/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\globals\globals.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * 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-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-reset,
.ck.ck-reset_all,
.ck.ck-reset_all * {
	box-sizing: border-box;
	width: auto;
	height: auto;
	position: static;
}

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-z-default: 1;
	--ck-z-modal: calc( var(--ck-z-default) + 999 );
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\globals\globals.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-color-base-foreground: 								hsl(0, 0%, 98%);
	--ck-color-base-background: 								hsl(0, 0%, 100%);
	--ck-color-base-border: 									hsl(0, 0%, 77%);
	--ck-color-base-action: 									hsl(104, 44%, 48%);
	--ck-color-base-focus: 										hsl(209, 92%, 70%);
	--ck-color-base-text: 										hsl(0, 0%, 20%);
	--ck-color-base-active: 									hsl(208, 88%, 52%);
	--ck-color-base-active-focus:								hsl(208, 88%, 47%);
	--ck-color-base-error:										hsl(15, 100%, 43%);

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

	--ck-color-focus-border: 									hsl(208, 90%, 62%);
	--ck-color-focus-shadow:									hsla(209, 90%, 72%,.5);
	--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%, 90%);
	--ck-color-button-default-active-background: 				hsl(0, 0%, 85%);
	--ck-color-button-default-active-shadow: 					hsl(0, 0%, 75%);
	--ck-color-button-default-disabled-background: 				transparent;

	--ck-color-button-on-background: 							hsl(0, 0%, 87%);
	--ck-color-button-on-hover-background: 						hsl(0, 0%, 77%);
	--ck-color-button-on-active-background: 					hsl(0, 0%, 73%);
	--ck-color-button-on-active-shadow: 						hsl(0, 0%, 63%);
	--ck-color-button-on-disabled-background: 					hsl(0, 0%, 87%);

	--ck-color-button-action-background: 						var(--ck-color-base-action);
	--ck-color-button-action-hover-background: 					hsl(104, 44%, 43%);
	--ck-color-button-action-active-background: 				hsl(104, 44%, 41%);
	--ck-color-button-action-active-shadow: 					hsl(104, 44%, 36%);
	--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%, 69%);
	--ck-color-switch-button-off-hover-background:				hsl(0, 0%, 64%);
	--ck-color-switch-button-on-background:						var(--ck-color-button-action-background);
	--ck-color-switch-button-on-hover-background:				hsl(104, 44%, 43%);
	--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);

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

	--ck-color-input-background: 								var(--ck-color-base-background);
	--ck-color-input-border: 									hsl(0, 0%, 78%);
	--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: 							hsl(0, 0%, 78%);
	--ck-color-input-disabled-text: 							hsl(0, 0%, 36%);

	/* -- 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-base-active);
	--ck-color-list-button-on-background-focus: 				var(--ck-color-base-active-focus);
	--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-foreground);
	--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);
}

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	/**
	 * An opacity value of disabled UI item.
	 */
	--ck-disabled-opacity: .5;
}

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

: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-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-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

: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-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

: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.ck-reset_all * {
	/* 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.ck-reset_all * {
	/* These are rule inherited by all children elements. */
	border-collapse: collapse;
	font: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);
	color: var(--ck-color-text);
	text-align: left;
	white-space: nowrap;
	cursor: auto;
	float: none;
}

.ck.ck-reset_all .ck-rtl * {
		text-align: right;
	}

.ck.ck-reset_all iframe {
		/* For IE */
		vertical-align: inherit;
	}

.ck.ck-reset_all textarea {
		white-space: pre-wrap;
	}

.ck.ck-reset_all textarea,
	.ck.ck-reset_all input[type="text"],
	.ck.ck-reset_all input[type="password"] {
		cursor: text;
	}

.ck.ck-reset_all textarea[disabled],
	.ck.ck-reset_all input[type="text"][disabled],
	.ck.ck-reset_all input[type="password"][disabled] {
		cursor: default;
	}

.ck.ck-reset_all fieldset {
		padding: 10px;
		border: 2px groove hsl(255, 7%, 88%);
	}

.ck.ck-reset_all button::-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-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Default border-radius value.
 */

:root{
	--ck-border-radius: 2px;
}

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

: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-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

: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);
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\icon\icon.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-icon {
	vertical-align: middle;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\icon\icon.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));
}

.ck.ck-icon {
	width: var(--ck-icon-size);
	height: var(--ck-icon-size);

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

	color: inherit;

	/* Inherit cursor style (#5). */
	cursor: inherit;

	/* This will prevent blurry icons on Firefox. See #340. */
	will-change: transform
}

.ck.ck-icon * {
		/* Inherit cursor style (#5). */
		cursor: inherit;

		/* Allows dynamic coloring of the icons. */
		color: inherit
	}

.ck.ck-icon *:not([fill]) {
				/* Needed by FF. */
				fill: currentColor;
		}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-widget\theme\widget.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-color-resizer: var(--ck-color-focus-border);
	--ck-resizer-size: 10px;
	--ck-resizer-border-width: 1px;
	--ck-resizer-border-radius: 2px;

	/* Set resizer with 50% offset. */
	--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);

	--ck-resizer-tooltip-offset: 10px;
	--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);
	--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);
}

.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 pointer device, only the handles. */
	pointer-events: none;

	left: 0;
	top: 0;

	outline: 1px solid var(--ck-color-resizer);
}

.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 pointer device. */
	pointer-events: all;

	width: var(--ck-resizer-size);
	height: var(--ck-resizer-size);
	background: var(--ck-color-focus-border);
	border: var(--ck-resizer-border-width) solid #fff;
	border-radius: var(--ck-resizer-border-radius)
}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left {
		top: var( --ck-resizer-offset );
		left: var( --ck-resizer-offset );
		cursor: nwse-resize;
	}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right {
		top: var( --ck-resizer-offset );
		right: var( --ck-resizer-offset );
		cursor: nesw-resize;
	}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right {
		bottom: var( --ck-resizer-offset );
		right: var( --ck-resizer-offset );
		cursor: nwse-resize;
	}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left {
		bottom: var( --ck-resizer-offset );
		left: var( --ck-resizer-offset );
		cursor: nesw-resize;
	}

.ck .ck-widget.ck-widget_with-selection-handler {
	/* Make the widget wrapper a relative positioning container for the drag handler. */
	position: relative

	/* Show the selection handler on mouse hover over the widget. */
}

.ck .ck-widget.ck-widget_with-selection-handler:hover .ck-widget__selection-handler {
			visibility: visible;
		}

.ck .ck-widget.ck-widget_with-selection-handler .ck-widget__selection-handler {
		position: absolute
	}

.ck .ck-widget.ck-widget_with-selection-handler .ck-widget__selection-handler .ck-icon {
			/* Make sure the icon in not a subject to font-size/line-height to avoid
			unnecessary spacing around it. */
			display: block;
		}

.ck .ck-widget.ck-widget_with-selection-handler {

	/* Show the selection handler when the widget is selected. */
}

.ck .ck-widget.ck-widget_with-selection-handler.ck-widget_selected .ck-widget__selection-handler {
		visibility: visible;
	}

.ck .ck-size-view {
	background: var(--ck-color-resizer-tooltip-background);
	color: var(--ck-color-resizer-tooltip-text);
	border: 1px solid var(--ck-color-resizer-tooltip-text);
	border-radius: var(--ck-resizer-border-radius);
	font-size: var(--ck-font-size-tiny);
	display: block;
	padding: var(--ck-spacing-small)
}

.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 {
		position: absolute;
	}

.ck .ck-size-view.ck-orientation-top-left {
		top: var( --ck-resizer-tooltip-offset );
		left: var( --ck-resizer-tooltip-offset );
	}

.ck .ck-size-view.ck-orientation-top-right {
		top: var( --ck-resizer-tooltip-offset );
		right: var( --ck-resizer-tooltip-offset );
	}

.ck .ck-size-view.ck-orientation-bottom-right {
		bottom: var( --ck-resizer-tooltip-offset );
		right: var( --ck-resizer-tooltip-offset );
	}

.ck .ck-size-view.ck-orientation-bottom-left {
		bottom: var( --ck-resizer-tooltip-offset );
		left: var( --ck-resizer-tooltip-offset );
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-widget\widget.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A visual style of focused element's border.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

: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: var(--ck-widget-outline-thickness);
	outline-style: solid;
	outline-color: transparent;
	transition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)
}

.ck .ck-widget.ck-widget_selected,
	.ck .ck-widget.ck-widget_selected:hover {
		outline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);
	}

.ck .ck-widget:hover {
		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 {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-inner-shadow), 0 0;

		background-color: var(--ck-color-widget-editable-focus-background);
	}

.ck-editor__editable > .ck-widget.ck-widget_with-selection-handler:first-child,
.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handler: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 + var(--ck-widget-handler-icon-size));
}

.ck .ck-widget.ck-widget_with-selection-handler .ck-widget__selection-handler {
		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 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: var(--ck-border-radius) var(--ck-border-radius) 0 0;

		/* Place the drag handler outside the widget wrapper. */
		transform: translateY(-100%);
		left: calc(0px - var(--ck-widget-outline-thickness))

		/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */
	}

.ck .ck-widget.ck-widget_with-selection-handler .ck-widget__selection-handler:hover .ck-icon .ck-icon__selected-indicator {
			opacity: 1;
		}

.ck .ck-widget.ck-widget_with-selection-handler .ck-widget__selection-handler .ck-icon {
			/* Make sure the dimensions of the icon are independent of the fon-size of the content. */
			width: var(--ck-widget-handler-icon-size);
			height: var(--ck-widget-handler-icon-size);
			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-handler .ck-widget__selection-handler .ck-icon .ck-icon__selected-indicator {
				opacity: 0;

				/* Note: The animation is longer on purpose. Simply feels better. */
				transition: opacity 300ms var(--ck-widget-handler-animation-curve);
			}

.ck .ck-widget.ck-widget_with-selection-handler {

	/* Show the selection handler when the widget is selected. */
}

.ck .ck-widget.ck-widget_with-selection-handler.ck-widget_selected .ck-widget__selection-handler, .ck .ck-widget.ck-widget_with-selection-handler.ck-widget_selected:hover .ck-widget__selection-handler {
			opacity: 1;
			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-handler.ck-widget_selected .ck-widget__selection-handler .ck-icon .ck-icon__selected-indicator, .ck .ck-widget.ck-widget_with-selection-handler.ck-widget_selected:hover .ck-widget__selection-handler .ck-icon .ck-icon__selected-indicator {
				opacity: 1;
			}

.ck .ck-widget.ck-widget_with-selection-handler {

	/* Show the selection handler on mouse hover over the widget. */
}

.ck .ck-widget.ck-widget_with-selection-handler:hover .ck-widget__selection-handler {
		opacity: 1;
		background-color: var(--ck-color-widget-hover-border);
	}

/* In a RTL environment, align the selection handler to the right side of the widget */

.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handler .ck-widget__selection-handler {
	left: auto;
	right: calc(0px - var(--ck-widget-outline-thickness));
}

/* Style the widget when it's selected but the editable it belongs to lost focus. */

.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,
	.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover {
		outline-color: var(--ck-color-widget-blurred-border)
	}

.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected .ck-widget__selection-handler,
		.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected .ck-widget__selection-handler:hover,
		.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover .ck-widget__selection-handler,
		.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover .ck-widget__selection-handler:hover {
			background: var(--ck-color-widget-blurred-border);
		}

.ck-editor__editable.ck-read-only .ck-widget {
	/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.
	See: https://github.com/ckeditor/ckeditor5/issues/1261 */
	--ck-widget-outline-thickness: 0;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\tooltip\tooltip.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-tooltip,
.ck.ck-tooltip .ck-tooltip__text::after {
	position: absolute;

	/* Without this, hovering the tooltip could keep it visible. */
	pointer-events: none;

	/* This is to get rid of flickering when transitioning opacity in Chrome.
	It's weird but it works. */
	-webkit-backface-visibility: hidden;
}

.ck-tooltip {
	/* Tooltip is hidden by default. */
	visibility: hidden;
	opacity: 0;
	display: none;
	z-index: var(--ck-z-modal)
}

.ck-tooltip .ck-tooltip__text {
		display: inline-block
	}

.ck-tooltip .ck-tooltip__text::after {
			content: "";
			width: 0;
			height: 0;
		}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\tooltip\tooltip.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

:root {
	--ck-tooltip-arrow-size: 5px;
}

.ck.ck-tooltip {
	left: 50%;

	/*
	 * Prevent blurry tooltips in LoDPI environments.
	 * See https://github.com/ckeditor/ckeditor5/issues/1802.
	 */
	top: 0

	/**
	 * A class once applied displays the tooltip south of the element.
	 *
	 *       [element]
	 *           ^
	 *     +-----------+
	 *     |  Tooltip  |
	 *     +-----------+
	 */
}

.ck.ck-tooltip.ck-tooltip_s {
		bottom: calc(-1 * var(--ck-tooltip-arrow-size));
		transform: translateY( 100% )
	}

.ck.ck-tooltip.ck-tooltip_s .ck-tooltip__text::after {
			top: calc(-1 * var(--ck-tooltip-arrow-size));
			transform: translateX( -50% );
			border-color: transparent transparent var(--ck-color-tooltip-background) transparent;
			border-width: 0 var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size);
		}

.ck.ck-tooltip {

	/**
	 * A class once applied displays the tooltip north of the element.
	 *
	 *     +-----------+
	 *     |  Tooltip  |
	 *     +-----------+
	 *           V
	 *       [element]
	 */
}

.ck.ck-tooltip.ck-tooltip_n {
		top: calc(-1 * var(--ck-tooltip-arrow-size));
		transform: translateY( -100% )
	}

.ck.ck-tooltip.ck-tooltip_n .ck-tooltip__text::after {
			bottom: calc(-1 * var(--ck-tooltip-arrow-size));
			transform: translateX( -50% );
			border-color: var(--ck-color-tooltip-background) transparent transparent transparent;
			border-width: var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) 0 var(--ck-tooltip-arrow-size);
		}

.ck.ck-tooltip .ck-tooltip__text {
		border-radius: 0
	}

.ck-rounded-corners .ck.ck-tooltip .ck-tooltip__text, .ck.ck-tooltip .ck-tooltip__text.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
	}

.ck.ck-tooltip .ck-tooltip__text {

		font-size: .9em;
		line-height: 1.5;
		color: var(--ck-color-tooltip-text);
		padding: var(--ck-spacing-small) var(--ck-spacing-medium);
		background: var(--ck-color-tooltip-background);
		position: relative;
		left: -50%
	}

.ck.ck-tooltip .ck-tooltip__text::after {
			border-style: solid;
			left: 50%;
		}

.ck.ck-tooltip,
.ck.ck-tooltip .ck-tooltip__text::after {
	/* For the transition to work, the tooltip must be controlled
	using visibility+opacity. A delay prevents a "tooltip avalanche"
	i.e. when scanning the toolbar with mouse cursor. */
	transition: opacity .2s ease-in-out .2s;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\button\button.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Makes element unselectable.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Enables the tooltip, which is the tooltip is in DOM but
 * not yet displayed.
 */

/**
 * Disables the tooltip making it disappear from DOM.
 */

/**
 * Shows the tooltip, which is already in DOM.
 * Requires `ck-tooltip_enabled` first.
 */

.ck.ck-button,
a.ck.ck-button {
	-webkit-user-select: none;
	user-select: none
}

.ck.ck-button .ck-tooltip, a.ck.ck-button .ck-tooltip {
		display: block

		/*
		 * Don't display tooltips in devices which don't support :hover.
		 * In fact, it's all about iOS, which forces user to click UI elements twice to execute
		 * the primary action, when tooltips are enabled.
		 *
		 * Q: OK, but why not the following query?
		 *
		 *   @media (hover) {
		 *       display: block;
		 *   }
		 *
		 * A: Because FF does not support it and it would completely disable tooltips
		 * in that browser.
		 *
		 * More in https://github.com/ckeditor/ckeditor5/issues/920.
		 */
	}

@media (hover:none) {

.ck.ck-button .ck-tooltip, a.ck.ck-button .ck-tooltip {
			display: none
	}
		}

.ck.ck-button,
a.ck.ck-button {

	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: left
}

.ck.ck-button.ck-button_with-text .ck-button__label, a.ck.ck-button.ck-button_with-text .ck-button__label {
			display: inline-block;
		}

.ck.ck-button,
a.ck.ck-button {

	/* 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;
	}

.ck.ck-button:hover .ck-tooltip, a.ck.ck-button:hover .ck-tooltip {
		visibility: visible;
		opacity: 1;
	}

.ck.ck-button,
a.ck.ck-button {

	/* Get rid of the native focus outline around the tooltip when focused (but not :hover). */
}

.ck.ck-button:focus:not(:hover) .ck-tooltip, a.ck.ck-button:focus:not(:hover) .ck-tooltip {
		display: none;
	}

.ck.ck-button .ck-button__label, a.ck.ck-button .ck-button__label {
		display: none;
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\button\button.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A visual style of focused element's border.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A class which indicates that an element holding it is disabled.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * 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-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-button,
a.ck.ck-button {
	background: var(--ck-color-button-default-background)
}

.ck.ck-button:not(.ck-disabled):hover, a.ck.ck-button:not(.ck-disabled):hover {
			background: var(--ck-color-button-default-hover-background);
		}

.ck.ck-button:not(.ck-disabled):active, a.ck.ck-button:not(.ck-disabled):active {
			background: var(--ck-color-button-default-active-background);
			box-shadow: inset 0 2px 2px var(--ck-color-button-default-active-shadow);
		}

.ck.ck-button,
a.ck.ck-button {
	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
}

.ck.ck-button.ck-disabled, a.ck.ck-button.ck-disabled {
		background: var(--ck-color-button-default-disabled-background);
	}

.ck.ck-button,
a.ck.ck-button {
	border-radius: 0
}

.ck-rounded-corners .ck.ck-button,
.ck.ck-button.ck-rounded-corners,
.ck-rounded-corners a.ck.ck-button,
a.ck.ck-button.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
}

.ck.ck-button,
a.ck.ck-button {

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

	/* A very important piece of styling. Go to variable declaration to learn more. */
	min-width: var(--ck-ui-component-min-height);
	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. */
	transition: box-shadow 200ms ease-in-out;

	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */
	-webkit-appearance: none
}

.ck.ck-button:active,
	.ck.ck-button:focus,
	a.ck.ck-button:active,
	a.ck.ck-button:focus {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-focus-outer-shadow), 0 0;

		/* Disable border part of the focus ring for the buttons. It is too much. */
		border-color: transparent;
	}

.ck.ck-button,
a.ck.ck-button {

	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */
}

.ck.ck-button.ck-disabled:active,
		.ck.ck-button.ck-disabled:focus,
		a.ck.ck-button.ck-disabled:active,
		a.ck.ck-button.ck-disabled:focus {
			/* The disabled button should have a slightly less visible shadow when focused. */
			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: var(--ck-disabled-opacity);
		}

.ck.ck-button.ck-disabled, a.ck.ck-button.ck-disabled {

		/* 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: var(--ck-disabled-opacity);
		}

.ck.ck-button.ck-button_with-text, a.ck.ck-button.ck-button_with-text {
		padding: var(--ck-spacing-tiny) var(--ck-spacing-standard)
	}

[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-left: calc(-1 * var(--ck-spacing-small));
				margin-right: var(--ck-spacing-small)
		}

[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-right: calc(-1 * var(--ck-spacing-small));
				margin-left: var(--ck-spacing-small)
		}

.ck.ck-button,
a.ck.ck-button {

	/* 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: var(--ck-color-button-on-background);
	}

.ck.ck-button.ck-on:not(.ck-disabled):hover, a.ck.ck-button.ck-on:not(.ck-disabled):hover {
			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: var(--ck-color-button-on-active-background);
			box-shadow: inset 0 2px 2px var(--ck-color-button-on-active-shadow);
		}

.ck.ck-button.ck-on, a.ck.ck-button.ck-on {
		/* 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: var(--ck-color-button-on-disabled-background);
	}

.ck.ck-button.ck-button-save, a.ck.ck-button.ck-button-save {
		color: var(--ck-color-button-save);
	}

.ck.ck-button.ck-button-cancel, a.ck.ck-button.ck-button-cancel {
		color: var(--ck-color-button-cancel);
	}

.ck.ck-button,
a.ck.ck-button {

	/* Allow icon coloring using the text "color" property. */
}

.ck.ck-button .ck-button__icon use,
		.ck.ck-button .ck-button__icon use *,
		a.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
	}

/* A style of the button which handles the primary action. */

.ck.ck-button-action,
a.ck.ck-button-action {
	background: var(--ck-color-button-action-background);
}

.ck.ck-button-action:not(.ck-disabled):hover, a.ck.ck-button-action:not(.ck-disabled):hover {
			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: var(--ck-color-button-action-active-background);
			box-shadow: inset 0 2px 2px var(--ck-color-button-action-active-shadow);
		}

.ck.ck-button-action,
a.ck.ck-button-action {
	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
}

.ck.ck-button-action.ck-disabled, a.ck.ck-button-action.ck-disabled {
		background: var(--ck-color-button-action-disabled-background);
	}

.ck.ck-button-action,
a.ck.ck-button-action {

	color: var(--ck-color-button-action-text);
}

.ck.ck-button-bold,
a.ck.ck-button-bold {
	font-weight: bold;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\dropdown\dropdown.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Enables the tooltip, which is the tooltip is in DOM but
 * not yet displayed.
 */

/**
 * Disables the tooltip making it disappear from DOM.
 */

/**
 * Shows the tooltip, which is already in DOM.
 * Requires `ck-tooltip_enabled` first.
 */

.ck.ck-dropdown {
	display: inline-block;
	position: relative
}

.ck.ck-dropdown .ck-dropdown__arrow {
		pointer-events: none;
		z-index: var(--ck-z-default);
	}

.ck.ck-dropdown {

	/* Dropdown button should span horizontally, e.g. in vertical toolbars */
}

.ck.ck-dropdown .ck-button.ck-dropdown__button {
		width: 100%

		/* Disable main button's tooltip when the dropdown is open. Otherwise the panel may
		partially cover the tooltip */
	}

.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on .ck-tooltip {
		display: none;
	}

.ck.ck-dropdown .ck-dropdown__panel {
		/* This is to get rid of flickering when the tooltip is shown under the panel,
		which looks like the panel moves vertically a pixel down and up. */
		-webkit-backface-visibility: hidden;

		display: none;
		z-index: var(--ck-z-modal);

		position: absolute
	}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible {
			display: inline-block;

			/* This will prevent blurry icons in dropdown on Firefox. See #340. */
			will-change: transform;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw {
			bottom: 100%;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw {
			transform: translate3d( 0, 100%, 0 );
		}

.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;
		}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\dropdown\dropdown.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A class which indicates that an element holding it is disabled.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

: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: var(--ck-dropdown-arrow-size);
	}

[dir="ltr"] .ck.ck-dropdown .ck-dropdown__arrow {
			right: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-left: var(--ck-spacing-small);
		}

[dir="rtl"] .ck.ck-dropdown .ck-dropdown__arrow {
			left: var(--ck-spacing-standard);

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

.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow {
		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: 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: var(--ck-spacing-small);
			}

.ck.ck-dropdown .ck-button.ck-dropdown__button {

		/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */
	}

.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label {
			opacity: var(--ck-disabled-opacity);
		}

.ck.ck-dropdown .ck-button.ck-dropdown__button {

		/* 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 {

		/* #23 */
	}

.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label {
			width: 7em;
			overflow: hidden;
			text-overflow: ellipsis;
		}

.ck.ck-dropdown__panel {
	border-radius: 0;
}

.ck-rounded-corners .ck.ck-dropdown__panel, .ck.ck-dropdown__panel.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
}

.ck.ck-dropdown__panel {
	box-shadow: var(--ck-drop-shadow), 0 0;

	/* 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__panel, .ck.ck-dropdown__panel.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
		border-top-left-radius: 0;
}

.ck.ck-dropdown__panel {

	background: var(--ck-color-dropdown-panel-background);
	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%;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\toolbar\toolbar.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Makes element unselectable.
 */

.ck.ck-toolbar {
	-webkit-user-select: none;
	user-select: none;

	display: flex;
	flex-flow: row wrap;
	align-items: center
}

.ck.ck-toolbar.ck-toolbar_vertical {
		flex-direction: column;
	}

.ck.ck-toolbar.ck-toolbar_floating {
		flex-wrap: nowrap;
	}

.ck.ck-toolbar__separator {
	display: inline-block;
}

.ck.ck-toolbar__newline {
	display: block;
	width: 100%;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\toolbar\toolbar.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-toolbar {
	border-radius: 0
}

.ck-rounded-corners .ck.ck-toolbar, .ck.ck-toolbar.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
}

.ck.ck-toolbar {

	background: var(--ck-color-toolbar-background);
	padding: 0 var(--ck-spacing-small);
	border: 1px solid var(--ck-color-toolbar-border)
}

.ck.ck-toolbar > * {
		/* Make sure items wrapped to the next line have v-spacing */
		margin-top: var(--ck-spacing-small);
		margin-bottom: var(--ck-spacing-small);
	}

.ck.ck-toolbar > * {
		/* (#11) Separate toolbar items. */
		margin-right: var(--ck-spacing-small);
	}

[dir="rtl"] .ck.ck-toolbar > * {
			/* (#11) Separate toolbar items. */
			margin-left: var(--ck-spacing-small);
			margin-right: 0;
		}

.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 {
			/* 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;

			/* Items in a vertical toolbar span the entire width so any border is pointless. */
			border: 0;
		}

[dir="ltr"] .ck.ck-toolbar > *:last-child {
			margin-right: 0;
		}

[dir="rtl"] .ck.ck-toolbar > *:last-child {
			margin-left: 0;
		}

.ck-toolbar-container .ck.ck-toolbar {
		border: 0
}

.ck.ck-toolbar__separator {
	align-self: stretch;
	width: 1px;
	margin-top: 0;
	margin-bottom: 0;
	background: var(--ck-color-toolbar-border);
}

.ck.ck-toolbar__newline {
	margin: 0;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\list\list.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Makes element unselectable.
 */

.ck.ck-list {
	-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;
	}

.ck.ck-list {

	/* 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: var(--ck-z-default);
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\list\list.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A class which indicates that an element holding it is disabled.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

.ck.ck-list {
	border-radius: 0;
}

.ck-rounded-corners .ck.ck-list, .ck.ck-list.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
}

.ck.ck-list {

	list-style-type: none;
	background: var(--ck-color-list-background);
}

.ck.ck-list__item {
	cursor: default;
	min-width: 12em
}

.ck.ck-list__item .ck-button {
		min-height: unset;
		width: 100%;
		text-align: left;
		border-radius: 0;
		border: 0;

		/* List items should have the same height. Use absolute units to make sure it is so
		   because e.g. different heading styles may have different height
		   https://github.com/ckeditor/ckeditor5-heading/issues/63 */
		padding:
			calc(.2*var(--ck-line-height-base)*var(--ck-font-size-base))
			calc(.4*var(--ck-line-height-base)*var(--ck-font-size-base))
	}

.ck.ck-list__item .ck-button .ck-button__label {
			/* https://github.com/ckeditor/ckeditor5-heading/issues/63 */
			line-height: calc(1.2*var(--ck-line-height-base)*var(--ck-font-size-base));
		}

.ck.ck-list__item .ck-button:active {
			box-shadow: none;
		}

.ck.ck-list__item .ck-button.ck-on {
			background: var(--ck-color-list-button-on-background);
			color: var(--ck-color-list-button-on-text)
		}

.ck.ck-list__item .ck-button.ck-on:hover:not(ck-disabled) {
				background: var(--ck-color-list-button-on-background-focus);
			}

.ck.ck-list__item .ck-button.ck-on:active {
				box-shadow: none;
			}

.ck.ck-list__item .ck-button:hover:not(.ck-disabled) {
			background: var(--ck-color-list-button-hover-background);
		}

.ck.ck-list__item {

	/* 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-switchbutton.ck-on {
			background: var(--ck-color-list-background);
			color: inherit
		}

.ck.ck-list__item .ck-switchbutton.ck-on:hover:not(ck-disabled) {
				background: var(--ck-color-list-button-hover-background);
				color: inherit;
			}

.ck.ck-list__separator {
	height: 1px;
	width: 100%;
	background: var(--ck-color-base-border);
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\button\switchbutton.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-button.ck-switchbutton .ck-button__toggle {
		display: block
	}

.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {
			display: block;
		}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\button\switchbutton.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A class which indicates that an element holding it is disabled.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/* 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: 1.0769230769em;
	--ck-switch-button-toggle-spacing: 1px;
	--ck-switch-button-translation: 1.3846153847em;
}

[dir="ltr"] .ck.ck-button.ck-switchbutton .ck-button__label {
			/* Separate the label from the switch */
			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*var(--ck-spacing-large))
	}

.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle {
		opacity: var(--ck-disabled-opacity);
	}

.ck.ck-button.ck-switchbutton .ck-button__toggle {
		border-radius: 0
	}

.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle, .ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners {
		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 {

		/* Gently animate the background color of the toggle switch */
		transition: background 400ms ease;

		width: var(--ck-switch-button-toggle-width);
		background: var(--ck-color-switch-button-off-background)
	}

.ck.ck-button.ck-switchbutton .ck-button__toggle:hover {
			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 var(--ck-color-switch-button-inner-shadow);
			}

.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {
			border-radius: 0;
		}

.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: var(--ck-border-radius);
				border-radius: calc(.5*var(--ck-border-radius));
		}

.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {

			/* Leave some tiny bit of space around the inner part of the switch */
			margin: var(--ck-switch-button-toggle-spacing);
			width: var(--ck-switch-button-toggle-inner-size);
			height: var(--ck-switch-button-toggle-inner-size);
			background: var(--ck-color-switch-button-inner-background);

			/* Gently animate the inner part of the toggle switch */
			transition: all 300ms ease;
		}

.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle {
		background: var(--ck-color-switch-button-on-background)
	}

.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover {
			background: var(--ck-color-switch-button-on-hover-background);
		}

.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner {
			/*
			 * Move the toggle switch to the right. It will be animated.
			 *
			 * Edge is not supporting calc() in the transitions and animations, we need to hardcode this value (see ckeditor5-ui#433).
			 * It boils down to:
			 *
			 * 	calc(
			 * 		var(--ck-switch-button-toggle-width) -
			 * 		var(--ck-switch-button-toggle-inner-size) -
			 * 		2*var(--ck-switch-button-toggle-spacing) )
			 * 	)
			 */
		}

[dir="ltr"] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner {
				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 * var( --ck-switch-button-translation ) ) )
		}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\dropdown\toolbardropdown.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-toolbar-dropdown .ck-toolbar {
		flex-wrap: nowrap;
	}

.ck.ck-toolbar-dropdown .ck-dropdown__panel .ck-button:focus {
			z-index: calc(var(--ck-z-default) + 1);
		}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\dropdown\toolbardropdown.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-toolbar-dropdown .ck-toolbar {
	border: 0;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\dropdown\listdropdown.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * 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.
 */

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\dropdown\listdropdown.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * 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: var(--ck-border-radius);
		border-top-left-radius: 0
}

.ck.ck-dropdown .ck-dropdown__panel .ck-list {

	/* 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: 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: var(--ck-border-radius);
				border-top-left-radius: 0;
				border-top-right-radius: 0
		}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-engine\theme\placeholder.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/* See ckeditor/ckeditor5#936. */

.ck.ck-placeholder::before, .ck .ck-placeholder::before {
		content: attr(data-placeholder);

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

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-engine\placeholder.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/* See ckeditor/ckeditor5#936. */

.ck.ck-placeholder::before, .ck .ck-placeholder::before {
		cursor: text;
		color: var(--ck-color-engine-placeholder-text);
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\editorui\editorui.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * 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.
 */

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\editorui\editorui.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A class which indicates that an element holding it is disabled.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A visual style of focused element's border.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */

.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:not(.ck-editor__nested-editable).ck-rounded-corners {
		border-radius: var(--ck-border-radius)
}

.ck.ck-editor__editable:not(.ck-editor__nested-editable).ck-focused {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-inner-shadow), 0 0;
	}

.ck.ck-editor__editable_inline {
	overflow: auto;
	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;
	}

.ck.ck-editor__editable_inline {

	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */
}

.ck.ck-editor__editable_inline > *:first-child {
		margin-top: var(--ck-spacing-large);
	}

.ck.ck-editor__editable_inline {

	/* https://github.com/ckeditor/ckeditor5/issues/847 */
}

.ck.ck-editor__editable_inline > *:last-child {
		margin-bottom: var(--ck-spacing-large);
	}

/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */

.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_n"]::after {
		border-bottom-color: var(--ck-color-base-foreground);
	}

.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_s"]::after {
		border-top-color: var(--ck-color-base-foreground);
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\label\label.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-label {
	display: block;
}

.ck.ck-voice-label {
	display: none;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\label\label.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-label {
	font-weight: bold;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\panel\stickypanel.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-sticky-panel .ck-sticky-panel__content_sticky {
		z-index: var(--ck-z-modal); /* #315 */
		position: fixed;
		top: 0;
	}

.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit {
		top: auto;
		position: absolute;
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\panel\stickypanel.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * 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: var(--ck-drop-shadow), 0 0;

		border-width: 0 1px 1px;
		border-top-left-radius: 0;
		border-top-right-radius: 0;
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-editor-classic\theme\classiceditor.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.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: var(--ck-z-modal);
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-editor-classic\classiceditor.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

.ck.ck-editor__top .ck-sticky-panel .ck-toolbar {
			border-radius: 0;
		}

.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-toolbar, .ck.ck-editor__top .ck-sticky-panel .ck-toolbar.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-bottom-left-radius: 0;
				border-bottom-right-radius: 0;
		}

.ck.ck-editor__top .ck-sticky-panel .ck-toolbar {

			border-bottom-width: 0;
		}

.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar {
			border-bottom-width: 1px;

			border-radius: 0
		}

.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar, .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-radius: 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: 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: 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: var(--ck-color-base-border);
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-heading\theme\heading.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

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

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

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

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

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-heading\heading.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/* 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;
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-link\theme\link.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * 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.
 */

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-link\link.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/* Class added to span element surrounding currently selected link. */

.ck .ck-link_selected {
	background: var(--ck-color-link-selected-background);
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\panel\balloonpanel.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

: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: var(--ck-z-modal)
}

.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: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::after {
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel[class*="arrow_n"]::before {
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel[class*="arrow_n"]::after {
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::before {
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::after {
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel.ck-balloon-panel_visible {
		display: block;
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\panel\balloonpanel.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

:root {
	--ck-balloon-arrow-offset: 2px;
	--ck-balloon-arrow-height: 10px;
	--ck-balloon-arrow-half-width: 8px;
}

.ck.ck-balloon-panel {
	border-radius: 0
}

.ck-rounded-corners .ck.ck-balloon-panel, .ck.ck-balloon-panel.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
}

.ck.ck-balloon-panel {
	box-shadow: var(--ck-drop-shadow), 0 0;

	min-height: 15px;

	background: var(--ck-color-panel-background);
	border: 1px solid var(--ck-color-panel-border)
}

.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 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 var(--ck-color-panel-border) transparent;
		}

.ck.ck-balloon-panel[class*="arrow_n"]::after {
			border-color: transparent transparent var(--ck-color-panel-background) transparent;
			margin-top: var(--ck-balloon-arrow-offset);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::before,
		.ck.ck-balloon-panel[class*="arrow_s"]::after {
			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: var(--ck-color-panel-border) transparent  transparent;
		}

.ck.ck-balloon-panel[class*="arrow_s"]::after {
			border-color: var(--ck-color-panel-background) transparent transparent transparent;
			margin-bottom: var(--ck-balloon-arrow-offset);
		}

.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 * var(--ck-balloon-arrow-half-width));
			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 * var(--ck-balloon-arrow-half-width));
			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 * var(--ck-balloon-arrow-half-width));
			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 * var(--ck-balloon-arrow-half-width));
			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 * var(--ck-balloon-arrow-half-width));
			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 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\panel\balloonrotator.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.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;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\panel\balloonrotator.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck .ck-balloon-rotator__navigation {
	background: var(--ck-color-toolbar-background);
	border-bottom: 1px solid var(--ck-color-toolbar-border);
	padding: 0 var(--ck-spacing-small)

	/* Let's keep similar appearance to `ck-toolbar`. */
}

.ck .ck-balloon-rotator__navigation > * {
		margin-right: var(--ck-spacing-small);
		margin-top: var(--ck-spacing-small);
		margin-bottom: var(--ck-spacing-small);
	}

.ck .ck-balloon-rotator__navigation {

	/* Gives counter more breath than buttons. */
}

.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter {
		margin-right: var(--ck-spacing-standard);

		/* We need to use smaller margin because of previous button's right margin. */
		margin-left: var(--ck-spacing-small);
	}

.ck .ck-balloon-rotator__content {

	/* Disable default annotation shadow inside rotator with fake panels. */
}

.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper {
		box-shadow: none;
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\panel\fakepanel.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck .ck-fake-panel {
	position: absolute;

	/* Fake panels should be placed under main balloon content. */
	z-index: calc(var(--ck-z-modal) - 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;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\panel\fakepanel.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * 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: var(--ck-drop-shadow), 0 0;

	min-height: 15px;

	background: var(--ck-color-panel-background);
	border: 1px solid var(--ck-color-panel-border);
	border-radius: var(--ck-border-radius);

	width: 100%;
	height: 100%;
}

.ck .ck-fake-panel div:nth-child( 1 ) {
	margin-left: var(--ck-balloon-fake-panel-offset-horizontal);
	margin-top: var(--ck-balloon-fake-panel-offset-vertical);
}

.ck .ck-fake-panel div:nth-child( 2 ) {
	margin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);
	margin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);
}

.ck .ck-fake-panel div:nth-child( 3 ) {
	margin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 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;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\labeledinput\labeledinput.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * 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.
 */

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\labeledinput\labeledinput.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-labeled-input .ck-labeled-input__status {
	font-size: var(--ck-font-size-small);
	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: var(--ck-color-base-error);
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\inputtext\inputtext.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * 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.
 */

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\inputtext\inputtext.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A visual style of focused element's border.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

:root {
	--ck-input-text-width: 18em;
}

.ck.ck-input-text {
	border-radius: 0
}

.ck-rounded-corners .ck.ck-input-text, .ck.ck-input-text.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
}

.ck.ck-input-text {
	box-shadow: var(--ck-inner-shadow), 0 0;

	background: var(--ck-color-input-background);
	border: 1px solid var(--ck-color-input-border);
	padding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);
	min-width: var(--ck-input-text-width);

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

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

.ck.ck-input-text:focus {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-focus-outer-shadow), var(--ck-inner-shadow);
	}

.ck.ck-input-text[readonly] {
		border: 1px solid var(--ck-color-input-disabled-border);
		background: var(--ck-color-input-disabled-background);
		color: var(--ck-color-input-disabled-text)
	}

.ck.ck-input-text[readonly]:focus {
			/* The read-only input should have a slightly less visible shadow when focused. */
			box-shadow: var(--ck-focus-disabled-outer-shadow), var(--ck-inner-shadow);
		}

.ck.ck-input-text.ck-error {
		border-color: var(--ck-color-input-error-border);
		animation: ck-text-input-shake .3s ease both
	}

.ck.ck-input-text.ck-error:focus {
			box-shadow: var(--ck-focus-error-outer-shadow), var(--ck-inner-shadow);
		}

@keyframes ck-text-input-shake {
	20% {
		transform: translateX(-2px);
	}

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

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

	80% {
		transform: translateX(1px);
	}
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-link\theme\linkform.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-link-form {
	display: flex
}

.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-input {
			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;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-link\linkform.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-link-form {
	padding: var(--ck-spacing-standard)
}

.ck.ck-link-form:focus {
		/* https://github.com/ckeditor/ckeditor5-link/issues/90 */
		outline: none;
	}

[dir="ltr"] .ck.ck-link-form > :not(:first-child) {
			margin-left: var(--ck-spacing-standard);
		}

[dir="rtl"] .ck.ck-link-form > :not(:last-child) {
			margin-left: var(--ck-spacing-standard);
		}

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

.ck.ck-link-form {
		padding: 0;
		width: calc(.8 * var(--ck-input-text-width))
}

		.ck.ck-link-form .ck-labeled-input {
			margin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0
		}

			.ck.ck-link-form .ck-labeled-input .ck-input-text {
				min-width: 0;
				width: 100%;
			}

		.ck.ck-link-form .ck-button {
			padding: var(--ck-spacing-standard);
			margin-top: var(--ck-spacing-standard);

			border-radius: 0;
			border: 0;
			border-top: 1px solid var(--ck-color-base-border)
		}

		[dir="ltr"] .ck.ck-link-form .ck-button {
				margin-left: 0
		}

				[dir="ltr"] .ck.ck-link-form .ck-button:first-of-type {
					border-right: 1px solid var(--ck-color-base-border);
				}

		[dir="rtl"] .ck.ck-link-form .ck-button {
				margin-left: 0
		}

				[dir="rtl"] .ck.ck-link-form .ck-button:last-of-type {
					border-right: 1px solid var(--ck-color-base-border);
				}
	}

/*
 * 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: var(--ck-input-text-width)
}

.ck.ck-link-form_layout-vertical .ck-labeled-input {
		margin: var(--ck-spacing-standard) var(--ck-spacing-standard) var(--ck-spacing-small)
	}

.ck.ck-link-form_layout-vertical .ck-labeled-input .ck-input-text {
			min-width: 0;
			width: 100%;
		}

.ck.ck-link-form_layout-vertical .ck-button {
		padding: var(--ck-spacing-standard);
		margin: 0;
		border-radius: 0;
		border: 0;
		border-top: 1px solid var(--ck-color-base-border);
		width: 50%
	}

[dir="ltr"] .ck.ck-link-form_layout-vertical .ck-button {
			margin-left: 0
	}

[dir="ltr"] .ck.ck-link-form_layout-vertical .ck-button:first-of-type {
				border-right: 1px solid var(--ck-color-base-border);
			}

[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 var(--ck-color-base-border);
			}

.ck.ck-link-form_layout-vertical {

	/* 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-left: 0
	}

.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton {
			border: 0;
			width: 100%
		}

.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton:hover {
				background: none;
			}


/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-link\theme\linkactions.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.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%;
		}
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-link\linkactions.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Enables the tooltip, which is the tooltip is in DOM but
 * not yet displayed.
 */

/**
 * Disables the tooltip making it disappear from DOM.
 */

/**
 * Shows the tooltip, which is already in DOM.
 * Requires `ck-tooltip_enabled` first.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Makes element unselectable.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A visual style of focused element's border.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-link-actions {
	padding: var(--ck-spacing-standard)
}

.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.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;
			}

.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label {
			padding: 0 var(--ck-spacing-medium);
			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: var(--ck-input-text-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:focus {
		/* https://github.com/ckeditor/ckeditor5-link/issues/90 */
		outline: none;
	}

[dir="ltr"] .ck.ck-link-actions .ck-button:not(:first-child) {
			margin-left: var(--ck-spacing-standard);
		}

[dir="rtl"] .ck.ck-link-actions .ck-button:not(:last-child) {
			margin-left: var(--ck-spacing-standard);
		}

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

.ck.ck-link-actions {
		padding: 0;
		width: calc(.8 * var(--ck-input-text-width))
}

		.ck.ck-link-actions .ck-button.ck-link-actions__preview {
			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%;
			}

		.ck.ck-link-actions .ck-button:not(.ck-link-actions__preview) {
			padding: var(--ck-spacing-standard);
			margin-top: var(--ck-spacing-standard);

			border-radius: 0;
			border: 0;
			border-top: 1px solid var(--ck-color-base-border)
		}

		[dir="ltr"] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview) {
				margin-left: 0
		}

				[dir="ltr"] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview):first-of-type {
					border-right: 1px solid var(--ck-color-base-border);
				}

		[dir="rtl"] .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):last-of-type {
					border-right: 1px solid var(--ck-color-base-border);
				}
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-image\theme\textalternativeform.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

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

.ck.ck-text-alternative-form .ck-labeled-input {
		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-input {
			flex-basis: 100%;
		}

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

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-image\textalternativeform.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-text-alternative-form {
	padding: var(--ck-spacing-standard)
}

.ck.ck-text-alternative-form:focus {
		/* https://github.com/ckeditor/ckeditor5-link/issues/90 */
		outline: none;
	}

[dir="ltr"] .ck.ck-text-alternative-form > :not(:first-child) {
			margin-left: var(--ck-spacing-standard);
		}

[dir="rtl"] .ck.ck-text-alternative-form > :not(:last-child) {
			margin-left: var(--ck-spacing-standard);
		}

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

.ck.ck-text-alternative-form {
		padding: 0;
		width: calc(.8 * var(--ck-input-text-width))
}

		.ck.ck-text-alternative-form .ck-labeled-input {
			margin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0
		}

			.ck.ck-text-alternative-form .ck-labeled-input .ck-input-text {
				min-width: 0;
				width: 100%;
			}

		.ck.ck-text-alternative-form .ck-button {
			padding: var(--ck-spacing-standard);
			margin-top: var(--ck-spacing-standard);

			border-radius: 0;
			border: 0;
			border-top: 1px solid var(--ck-color-base-border)
		}

		[dir="ltr"] .ck.ck-text-alternative-form .ck-button {
				margin-left: 0
		}

				[dir="ltr"] .ck.ck-text-alternative-form .ck-button:first-of-type {
					border-right: 1px solid var(--ck-color-base-border);
				}

		[dir="rtl"] .ck.ck-text-alternative-form .ck-button {
				margin-left: 0
		}

				[dir="rtl"] .ck.ck-text-alternative-form .ck-button:last-of-type {
					border-right: 1px solid var(--ck-color-base-border);
				}
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-image\theme\image.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.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. */
	margin: 1em auto
}

.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 caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */
		min-width: 50px;
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-image\theme\imagecaption.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

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

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-image\theme\imagestyle.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-image-style-spacing: 1.5em;
}

.ck-content .image-style-side:not(.image_resized), .ck-content .image-style-align-left:not(.image_resized), .ck-content .image-style-align-center:not(.image_resized), .ck-content .image-style-align-right:not(.image_resized) {
			max-width: 50%;
		}

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

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

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

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

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-image\theme\imageresize.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck-content .image.image_resized {
	max-width: 100%;
	/*
	The figure element for resized images must not use `display:table` as browsers doesn't 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 width, there's no risk that the image will look bad.
	*/
	display: block;
	box-sizing: border-box
}

.ck-content .image.image_resized img {
		/* For resized images it's the figure that determines the image's width. */
		width: 100%;
	}

.ck-content .image.image_resized > figcaption {
		/* Figure uses display block, so figcaption also has to. */
		display: block;
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-image\theme\imageuploadprogress.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

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

/* Upload progress bar. */

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

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-image\imageuploadprogress.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-editor__editable .image {
	/* Showing animation. */
}

.ck.ck-editor__editable .image.ck-appear {
		animation: fadeIn 700ms;
	}

/* Upload progress bar. */

.ck.ck-editor__editable .image .ck-progress-bar {
	height: 2px;
	width: 0;
	background: var(--ck-color-upload-bar-background);
	transition: width 100ms;
}

@keyframes fadeIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-image\theme\imageuploadicon.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck-image-upload-complete-icon {
	display: block;
	position: absolute;
	top: 10px;
	right: 10px;
	border-radius: 50%
}

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

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-image\imageuploadicon.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-color-image-upload-icon: hsl(0, 0%, 100%);
	--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);

	--ck-image-upload-icon-size: 20px;
	--ck-image-upload-icon-width: 2px;
}

.ck-image-upload-complete-icon {
	width: var(--ck-image-upload-icon-size);
	height: var(--ck-image-upload-icon-size);
	opacity: 0;
	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: var(--ck-image-upload-icon-size);

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

	/* 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: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);
		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;
	}

@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;
	}
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-image\theme\imageuploadloader.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.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;
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-image\imageuploadloader.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);
	--ck-upload-placeholder-loader-size: 32px;
}

.ck .ck-image-upload-placeholder {
	/* We need to control the full width of the SVG gray background. */
	width: 100%;
	margin: 0;
}

.ck .ck-upload-placeholder-loader {
	width: 100%;
	height: 100%
}

.ck .ck-upload-placeholder-loader::before {
		width: var(--ck-upload-placeholder-loader-size);
		height: var(--ck-upload-placeholder-loader-size);
		border-radius: 50%;
		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 );
	}
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-media-embed\theme\mediaembedediting.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Enables the tooltip, which is the tooltip is in DOM but
 * not yet displayed.
 */

/**
 * Disables the tooltip making it disappear from DOM.
 */

/**
 * Shows the tooltip, which is already in DOM.
 * Requires `ck-tooltip_enabled` first.
 */

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

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-tooltip {
		display: block

		/*
		 * Don't display tooltips in devices which don't support :hover.
		 * In fact, it's all about iOS, which forces user to click UI elements twice to execute
		 * the primary action, when tooltips are enabled.
		 *
		 * Q: OK, but why not the following query?
		 *
		 *   @media (hover) {
		 *       display: block;
		 *   }
		 *
		 * A: Because FF does not support it and it would completely disable tooltips
		 * in that browser.
		 *
		 * More in https://github.com/ckeditor/ckeditor5/issues/920.
		 */
	}

@media (hover:none) {

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-tooltip {
			display: none
	}
		}

.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:hover .ck-tooltip {
		visibility: visible;
		opacity: 1;
	}

.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*="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;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-media-embed\mediaembedediting.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

: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 * var(--ck-spacing-standard) );
		background: var(--ck-color-base-foreground)
	}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon {
			min-width: var(--ck-media-embed-placeholder-icon-size);
			height: var(--ck-media-embed-placeholder-icon-size);
			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 .ck-media__placeholder__url__text {
				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 .ck-media__placeholder__url__text:hover {
					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*="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%);
				}

.ck-media__wrapper[data-oembed-url*="google.com/maps"] .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,#1400c8,#b900b4,#f50000)
		}

.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=);
			}

.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%);
				}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-media-embed\theme\mediaform.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

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

.ck.ck-media-form .ck-labeled-input {
		display: inline-block;
	}

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

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

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

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

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

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-media-embed\mediaform.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-media-form {
	padding: var(--ck-spacing-standard)
}

.ck.ck-media-form:focus {
		outline: none;
	}

[dir="ltr"] .ck.ck-media-form > :not(:first-child) {
			margin-left: var(--ck-spacing-standard);
		}

[dir="rtl"] .ck.ck-media-form > :not(:last-child) {
			margin-left: var(--ck-spacing-standard);
		}

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

.ck.ck-media-form {
		padding: 0;
		width: calc(.8 * var(--ck-input-text-width))
}

		.ck.ck-media-form .ck-labeled-input {
			margin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0
		}

			.ck.ck-media-form .ck-labeled-input .ck-input-text {
				min-width: 0;
				width: 100%;
			}

		.ck.ck-media-form .ck-labeled-input {

			/* Let the long error messages wrap in the narrow form. */
		}
			.ck.ck-media-form .ck-labeled-input .ck-labeled-input__error {
				white-space: normal;
			}

		.ck.ck-media-form .ck-button {
			padding: var(--ck-spacing-standard);
			margin-top: var(--ck-spacing-standard);

			border-radius: 0;
			border: 0;
			border-top: 1px solid var(--ck-color-base-border)
		}

		[dir="ltr"] .ck.ck-media-form .ck-button {
				margin-left: 0
		}

				[dir="ltr"] .ck.ck-media-form .ck-button:first-of-type {
					border-right: 1px solid var(--ck-color-base-border);
				}

		[dir="rtl"] .ck.ck-media-form .ck-button {
				margin-left: 0
		}

				[dir="rtl"] .ck.ck-media-form .ck-button:last-of-type {
					border-right: 1px solid var(--ck-color-base-border);
				}
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-media-embed\theme\mediaembed.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.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. */
	margin: 1em 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;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-table\theme\tableediting.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * 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.
 */

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-table\tableediting.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-color-table-focused-cell-background: hsl(208, 90%, 98%);
}

.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 {
			/* A very slight background to highlight the focused cell */
			background: var(--ck-color-table-focused-cell-background);

			/* Fixes the problem where surrounding cells cover the focused cell's border.
			It does not fix the problem in all places but the UX is improved.
			See https://github.com/ckeditor/ckeditor5-table/issues/29. */
			border-style: none;
			outline: 1px solid var(--ck-color-focus-border);
			outline-offset: -1px; /* progressive enhancement - no IE support */
		}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-table\theme\inserttable.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

: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-insert-table-dropdown-box-border-color: hsl(0, 0%, 75%);
	--ck-insert-table-dropdown-box-border-active-color: hsl(208, 73%, 61%);
	--ck-insert-table-dropdown-box-active-background: hsl(208, 100%, 89%);
}

.ck .ck-insert-table-dropdown__grid {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */
	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: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;
}

.ck .ck-insert-table-dropdown__label {
	text-align: center;
}

.ck .ck-insert-table-dropdown-grid-box {
	width: var(--ck-insert-table-dropdown-box-width);
	height: var(--ck-insert-table-dropdown-box-height);
	margin: var(--ck-insert-table-dropdown-box-margin);
	border: 1px solid var(--ck-insert-table-dropdown-box-border-color);
	border-radius: 1px
}

.ck .ck-insert-table-dropdown-grid-box.ck-on {
		border-color: var(--ck-insert-table-dropdown-box-border-active-color);
		background: var(--ck-insert-table-dropdown-box-active-background);
	}


/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-table\theme\table.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck-content .table {
	/* Give the table widget some air and center it horizontally */
	margin: 1em auto;
	display: table
}

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

		/* 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;
			border-color: hsl(0, 0%, 85%);
		}

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

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-block-quote\theme\blockquote.css */

/**
 * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.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%);
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-ui\theme\components\colorgrid\colorgrid.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-color-grid {
	display: grid;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\colorgrid\colorgrid.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

:root {
	--ck-color-grid-tile-size: 20px;
}

.ck.ck-color-grid {
	grid-gap: calc( var(--ck-spacing-standard) / 2 );
	padding: var(--ck-spacing-standard);
}

.ck.ck-color-grid__tile {
	border-radius: 0
}

.ck-rounded-corners .ck.ck-color-grid__tile, .ck.ck-color-grid__tile.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
}

.ck.ck-color-grid__tile {

	width: var(--ck-color-grid-tile-size);
	height: var(--ck-color-grid-tile-size);
	min-width: var(--ck-color-grid-tile-size);
	min-height: var(--ck-color-grid-tile-size);
	padding: 0;
	transition: 200ms ease box-shadow;
	border: 0
}

.ck.ck-color-grid__tile.ck-disabled {
		cursor: unset;
		transition: unset;
	}

.ck.ck-color-grid__tile.ck-color-table__color-tile_bordered {
		box-shadow: 0 0 0 1px var(--ck-color-base-border);
	}

.ck.ck-color-grid__tile .ck.ck-icon {
		display: none;
	}

.ck.ck-color-grid__tile.ck-on {
		box-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text)
	}

.ck.ck-color-grid__tile.ck-on .ck.ck-icon {
			display: block;
		}

.ck.ck-color-grid__tile:hover:not( .ck-disabled ) {
		box-shadow: 0 0 0 2px var(--ck-color-focus-border);
	}

.ck.ck-color-grid__label {
	padding: 0 var(--ck-spacing-standard);
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-font\theme\fontcolor.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck .ck-button.ck-color-table__remove-color {
	display: flex;
	align-items: center;
	width: 100%;
}

label.ck.ck-color-grid__label {
	font-weight: unset;
}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-font\fontcolor.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck .ck-button.ck-color-table__remove-color {
	border-bottom: 1px solid var(--ck-color-base-border);
	padding: calc(var(--ck-spacing-standard) / 2 ) var(--ck-spacing-standard);
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0
}

[dir="ltr"] .ck .ck-button.ck-color-table__remove-color .ck.ck-icon {
			margin-right: var(--ck-spacing-standard)
	}

[dir="rtl"] .ck .ck-button.ck-color-table__remove-color .ck.ck-icon {
			margin-left: var(--ck-spacing-standard)
	}

/* C:\git\my.a1credit\node_modules\@ckeditor\ckeditor5-font\theme\fontsize.css */

/*
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.text-tiny {
	font-size: .7em;
}

.text-small {
	font-size: .85em;
}

.text-big {
	font-size: 1.4em;
}

.text-huge {
	font-size: 1.8em;
}

/*! Pickr 1.9.1 MIT | https://github.com/Simonwep/pickr */
.pickr{position:relative;overflow:visible;transform:translateY(0)}.pickr *{box-sizing:border-box;outline:none;border:none;-webkit-appearance:none}.pickr .pcr-button{position:relative;height:2em;width:2em;padding:.5em;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;border-radius:.15em;background:url("data:image/svg+xml;utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" stroke=\"%2342445A\" stroke-width=\"5px\" stroke-linecap=\"round\"><path d=\"M45,45L5,5\"></path><path d=\"M45,5L5,45\"></path></svg>") no-repeat center;background-size:0;transition:all .3s}.pickr .pcr-button::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url("data:image/svg+xml;utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 2 2\"><path fill=\"white\" d=\"M1,0H2V1H1V0ZM0,1H1V2H0V1Z\"/><path fill=\"gray\" d=\"M0,0H1V1H0V0ZM1,1H2V2H1V1Z\"/></svg>");background-size:.5em;border-radius:.15em;z-index:-1}.pickr .pcr-button::before{z-index:initial}.pickr .pcr-button::after{position:absolute;content:"";top:0;left:0;height:100%;width:100%;transition:background .3s;background:var(--pcr-color);border-radius:.15em}.pickr .pcr-button.clear{background-size:70%}.pickr .pcr-button.clear::before{opacity:0}.pickr .pcr-button.clear:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-button.disabled{cursor:not-allowed}.pickr *,.pcr-app *{box-sizing:border-box;outline:none;border:none;-webkit-appearance:none}.pickr input:focus,.pickr input.pcr-active,.pickr button:focus,.pickr button.pcr-active,.pcr-app input:focus,.pcr-app input.pcr-active,.pcr-app button:focus,.pcr-app button.pcr-active{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-palette,.pickr .pcr-slider,.pcr-app .pcr-palette,.pcr-app .pcr-slider{transition:box-shadow .3s}.pickr .pcr-palette:focus,.pickr .pcr-slider:focus,.pcr-app .pcr-palette:focus,.pcr-app .pcr-slider:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(0,0,0,.25)}.pcr-app{position:fixed;display:flex;flex-direction:column;z-index:10000;border-radius:.1em;background:#fff;opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;box-shadow:0 .15em 1.5em 0 rgba(0,0,0,.1),0 0 1em 0 rgba(0,0,0,.03);left:0;top:0}.pcr-app.visible{transition:opacity .3s;visibility:visible;opacity:1}.pcr-app .pcr-swatches{display:flex;flex-wrap:wrap;margin-top:.75em}.pcr-app .pcr-swatches.pcr-last{margin:0}@supports(display: grid){.pcr-app .pcr-swatches{display:grid;align-items:center;grid-template-columns:repeat(auto-fit, 1.75em)}}.pcr-app .pcr-swatches>button{font-size:1em;position:relative;width:calc(1.75em - 5px);height:calc(1.75em - 5px);border-radius:.15em;cursor:pointer;margin:2.5px;flex-shrink:0;justify-self:center;transition:all .15s;overflow:hidden;background:rgba(0,0,0,0);z-index:1}.pcr-app .pcr-swatches>button::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url("data:image/svg+xml;utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 2 2\"><path fill=\"white\" d=\"M1,0H2V1H1V0ZM0,1H1V2H0V1Z\"/><path fill=\"gray\" d=\"M0,0H1V1H0V0ZM1,1H2V2H1V1Z\"/></svg>");background-size:6px;border-radius:.15em;z-index:-1}.pcr-app .pcr-swatches>button::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--pcr-color);border:1px solid rgba(0,0,0,.05);border-radius:.15em;box-sizing:border-box}.pcr-app .pcr-swatches>button:hover{filter:brightness(1.05)}.pcr-app .pcr-swatches>button:not(.pcr-active){box-shadow:none}.pcr-app .pcr-interaction{display:flex;flex-wrap:wrap;align-items:center;margin:0 -0.2em 0 -0.2em}.pcr-app .pcr-interaction>*{margin:0 .2em}.pcr-app .pcr-interaction input{letter-spacing:.07em;font-size:.75em;text-align:center;cursor:pointer;color:#75797e;background:#f1f3f4;border-radius:.15em;transition:all .15s;padding:.45em .5em;margin-top:.75em}.pcr-app .pcr-interaction input:hover{filter:brightness(0.975)}.pcr-app .pcr-interaction input:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(66,133,244,.75)}.pcr-app .pcr-interaction .pcr-result{color:#75797e;text-align:left;flex:1 1 8em;min-width:8em;transition:all .2s;border-radius:.15em;background:#f1f3f4;cursor:text}.pcr-app .pcr-interaction .pcr-result::selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-type.active{color:#fff;background:#4285f4}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff;width:auto}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff}.pcr-app .pcr-interaction .pcr-save:hover,.pcr-app .pcr-interaction .pcr-cancel:hover,.pcr-app .pcr-interaction .pcr-clear:hover{filter:brightness(0.925)}.pcr-app .pcr-interaction .pcr-save{background:#4285f4}.pcr-app .pcr-interaction .pcr-clear,.pcr-app .pcr-interaction .pcr-cancel{background:#f44250}.pcr-app .pcr-interaction .pcr-clear:focus,.pcr-app .pcr-interaction .pcr-cancel:focus{box-shadow:0 0 0 1px rgba(255,255,255,.85),0 0 0 3px rgba(244,66,80,.75)}.pcr-app .pcr-selection .pcr-picker{position:absolute;height:18px;width:18px;border:2px solid #fff;border-radius:100%;-webkit-user-select:none;user-select:none}.pcr-app .pcr-selection .pcr-color-palette,.pcr-app .pcr-selection .pcr-color-chooser,.pcr-app .pcr-selection .pcr-color-opacity{position:relative;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;cursor:grab;cursor:-webkit-grab}.pcr-app .pcr-selection .pcr-color-palette:active,.pcr-app .pcr-selection .pcr-color-chooser:active,.pcr-app .pcr-selection .pcr-color-opacity:active{cursor:grabbing;cursor:-webkit-grabbing}.pcr-app[data-theme=classic]{width:28.5em;max-width:95vw;padding:.8em}.pcr-app[data-theme=classic] .pcr-selection{display:flex;justify-content:space-between;flex-grow:1}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-preview{position:relative;z-index:1;width:2em;display:flex;flex-direction:column;justify-content:space-between;margin-right:.75em}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-preview::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url("data:image/svg+xml;utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 2 2\"><path fill=\"white\" d=\"M1,0H2V1H1V0ZM0,1H1V2H0V1Z\"/><path fill=\"gray\" d=\"M0,0H1V1H0V0ZM1,1H2V2H1V1Z\"/></svg>");background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-preview .pcr-last-color{cursor:pointer;border-radius:.15em .15em 0 0;z-index:2}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-preview .pcr-current-color{border-radius:0 0 .15em .15em}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-preview .pcr-last-color,.pcr-app[data-theme=classic] .pcr-selection .pcr-color-preview .pcr-current-color{background:var(--pcr-color);width:100%;height:50%}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-palette{width:100%;height:8em;z-index:1}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-palette .pcr-palette{flex-grow:1;border-radius:.15em}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-palette .pcr-palette::before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;background:url("data:image/svg+xml;utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 2 2\"><path fill=\"white\" d=\"M1,0H2V1H1V0ZM0,1H1V2H0V1Z\"/><path fill=\"gray\" d=\"M0,0H1V1H0V0ZM1,1H2V2H1V1Z\"/></svg>");background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-chooser,.pcr-app[data-theme=classic] .pcr-selection .pcr-color-opacity{margin-left:.75em}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-chooser .pcr-picker,.pcr-app[data-theme=classic] .pcr-selection .pcr-color-opacity .pcr-picker{left:50%;transform:translateX(-50%)}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-chooser .pcr-slider,.pcr-app[data-theme=classic] .pcr-selection .pcr-color-opacity .pcr-slider{width:8px;flex-grow:1;border-radius:50em}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-chooser .pcr-slider{background:linear-gradient(to bottom, hsl(0, 100%, 50%), hsl(60, 100%, 50%), hsl(120, 100%, 50%), hsl(180, 100%, 50%), hsl(240, 100%, 50%), hsl(300, 100%, 50%), hsl(0, 100%, 50%))}.pcr-app[data-theme=classic] .pcr-selection .pcr-color-opacity .pcr-slider{background:linear-gradient(to bottom, transparent, black),url("data:image/svg+xml;utf8, <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 2 2\"><path fill=\"white\" d=\"M1,0H2V1H1V0ZM0,1H1V2H0V1Z\"/><path fill=\"gray\" d=\"M0,0H1V1H0V0ZM1,1H2V2H1V1Z\"/></svg>");background-size:100%,50%}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZ2xvYmFscy5jc3MiLCJ3ZWJwYWNrOi8vL2ljb24uY3NzIiwid2VicGFjazovLy93aWRnZXQuY3NzIiwid2VicGFjazovLy90b29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vYnV0dG9uLmNzcyIsIndlYnBhY2s6Ly8vZHJvcGRvd24uY3NzIiwid2VicGFjazovLy90b29sYmFyLmNzcyIsIndlYnBhY2s6Ly8vbGlzdC5jc3MiLCJ3ZWJwYWNrOi8vL3N3aXRjaGJ1dHRvbi5jc3MiLCJ3ZWJwYWNrOi8vL3Rvb2xiYXJkcm9wZG93bi5jc3MiLCJ3ZWJwYWNrOi8vL2xpc3Rkcm9wZG93bi5jc3MiLCJ3ZWJwYWNrOi8vL3BsYWNlaG9sZGVyLmNzcyIsIndlYnBhY2s6Ly8vZWRpdG9ydWkuY3NzIiwid2VicGFjazovLy9sYWJlbC5jc3MiLCJ3ZWJwYWNrOi8vL3N0aWNreXBhbmVsLmNzcyIsIndlYnBhY2s6Ly8vY2xhc3NpY2VkaXRvci5jc3MiLCJ3ZWJwYWNrOi8vL2hlYWRpbmcuY3NzIiwid2VicGFjazovLy9saW5rLmNzcyIsIndlYnBhY2s6Ly8vYmFsbG9vbnBhbmVsLmNzcyIsIndlYnBhY2s6Ly8vYmFsbG9vbnJvdGF0b3IuY3NzIiwid2VicGFjazovLy9mYWtlcGFuZWwuY3NzIiwid2VicGFjazovLy9sYWJlbGVkaW5wdXQuY3NzIiwid2VicGFjazovLy9pbnB1dHRleHQuY3NzIiwid2VicGFjazovLy9saW5rZm9ybS5jc3MiLCJ3ZWJwYWNrOi8vL2xpbmthY3Rpb25zLmNzcyIsIndlYnBhY2s6Ly8vdGV4dGFsdGVybmF0aXZlZm9ybS5jc3MiLCJ3ZWJwYWNrOi8vL2ltYWdlLmNzcyIsIndlYnBhY2s6Ly8vaW1hZ2VjYXB0aW9uLmNzcyIsIndlYnBhY2s6Ly8vaW1hZ2VzdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vL2ltYWdlcmVzaXplLmNzcyIsIndlYnBhY2s6Ly8vaW1hZ2V1cGxvYWRwcm9ncmVzcy5jc3MiLCJ3ZWJwYWNrOi8vL2ltYWdldXBsb2FkaWNvbi5jc3MiLCJ3ZWJwYWNrOi8vL2ltYWdldXBsb2FkbG9hZGVyLmNzcyIsIndlYnBhY2s6Ly8vbWVkaWFlbWJlZGVkaXRpbmcuY3NzIiwid2VicGFjazovLy9tZWRpYWZvcm0uY3NzIiwid2VicGFjazovLy9tZWRpYWVtYmVkLmNzcyIsIndlYnBhY2s6Ly8vdGFibGVlZGl0aW5nLmNzcyIsIndlYnBhY2s6Ly8vaW5zZXJ0dGFibGUuY3NzIiwid2VicGFjazovLy90YWJsZS5jc3MiLCJ3ZWJwYWNrOi8vL2Jsb2NrcXVvdGUuY3NzIiwid2VicGFjazovLy9jb2xvcmdyaWQuY3NzIiwid2VicGFjazovLy9mb250Y29sb3IuY3NzIiwid2VicGFjazovLy9mb250c2l6ZS5jc3MiLCJ3ZWJwYWNrOi8vL2NsYXNzaWMubWluLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxRkFBcUY7O0FBRXJGOzs7RUFHRTs7QUFFRjs7O0VBR0U7O0FBRUY7O0VBRUU7O0FBRUY7Q0FDQzt1RUFDc0U7Q0FDdEUsd0JBQXdCO0FBQ3pCOztBQUVBOzs7RUFHRTs7QUFFRjs7O0NBR0Msc0JBQXNCO0NBQ3RCLFdBQVc7Q0FDWCxZQUFZO0NBQ1osZ0JBQWdCO0FBQ2pCOztBQUVBOzs7RUFHRTs7QUFFRjtDQUNDLGlCQUFpQjtDQUNqQiwrQ0FBK0M7QUFDaEQ7O0FBRUEsMEdBQTBHOztBQUUxRzs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGO0NBQ0MsbURBQW1EO0NBQ25ELG9EQUFvRDtDQUNwRCxnREFBZ0Q7Q0FDaEQsbURBQW1EO0NBQ25ELG1EQUFtRDtDQUNuRCwrQ0FBK0M7Q0FDL0MsbURBQW1EO0NBQ25ELHVEQUF1RDtDQUN2RCxrREFBa0Q7O0NBRWxELCtGQUErRjs7Q0FFL0Ysb0RBQW9EO0NBQ3BELHVEQUF1RDtDQUN2RCw4REFBOEQ7Q0FDOUQseURBQXlEO0NBQ3pELHFEQUFxRDtDQUNyRCxzREFBc0Q7Q0FDdEQsMERBQTBEO0NBQzFELHNEQUFzRDs7Q0FFdEQsK0ZBQStGOztDQUUvRix1REFBdUQ7Q0FDdkQsK0RBQStEO0NBQy9ELGdFQUFnRTtDQUNoRSw2REFBNkQ7Q0FDN0QsOERBQThEOztDQUU5RCx1REFBdUQ7Q0FDdkQsNERBQTREO0NBQzVELDREQUE0RDtDQUM1RCx5REFBeUQ7Q0FDekQsOERBQThEOztDQUU5RCxzRUFBc0U7Q0FDdEUsa0VBQWtFO0NBQ2xFLGtFQUFrRTtDQUNsRSwrREFBK0Q7Q0FDL0Qsb0VBQW9FO0NBQ3BFLHNFQUFzRTs7Q0FFdEUsb0RBQW9EO0NBQ3BELHFEQUFxRDs7Q0FFckQsNERBQTREO0NBQzVELGlFQUFpRTtDQUNqRSxxRkFBcUY7Q0FDckYsbUVBQW1FO0NBQ25FLDhFQUE4RTtDQUM5RSxnRUFBZ0U7O0NBRWhFLCtGQUErRjs7Q0FFL0YsMkVBQTJFO0NBQzNFLG9FQUFvRTs7Q0FFcEUsK0ZBQStGOztDQUUvRixvRUFBb0U7Q0FDcEUsaURBQWlEO0NBQ2pELGdFQUFnRTtDQUNoRSwwREFBMEQ7Q0FDMUQsMkRBQTJEO0NBQzNELHdEQUF3RDtDQUN4RCxzREFBc0Q7O0NBRXRELCtGQUErRjs7Q0FFL0YsbUVBQW1FO0NBQ25FLDZGQUE2RjtDQUM3Rix1RUFBdUU7Q0FDdkUsaUZBQWlGO0NBQ2pGLHNFQUFzRTs7Q0FFdEUsK0ZBQStGOztDQUUvRixvRUFBb0U7Q0FDcEUsNkRBQTZEOztDQUU3RCwrRkFBK0Y7O0NBRS9GLHNFQUFzRTtDQUN0RSwrREFBK0Q7O0NBRS9ELCtGQUErRjs7Q0FFL0YsZ0VBQWdFO0NBQ2hFLGlFQUFpRTs7Q0FFakUsK0ZBQStGOztDQUUvRix5REFBeUQ7O0NBRXpELCtGQUErRjs7Q0FFL0YsMkRBQTJEOztDQUUzRCw2RkFBNkY7O0NBRTdGLG9EQUFvRDtDQUNwRCxvRUFBb0U7QUFDckU7O0FBRUE7OztFQUdFOztBQUVGO0NBQ0M7O0dBRUU7Q0FDRix5QkFBeUI7QUFDMUI7O0FBRUE7OztFQUdFOztBQUVGO0NBQ0M7O0dBRUU7Q0FDRiwyQ0FBMkM7O0NBRTNDOztHQUVFO0NBQ0YsMkZBQTJGOztDQUUzRjs7R0FFRTtDQUNGLDZHQUE2Rzs7Q0FFN0c7O0dBRUU7Q0FDRix1R0FBdUc7O0NBRXZHOztHQUVFO0NBQ0YsdURBQXVEO0FBQ3hEOztBQUVBOzs7RUFHRTs7QUFFRjtDQUNDLHlCQUF5QjtDQUN6Qiw4QkFBOEI7Q0FDOUIsNkRBQTZEOztDQUU3RCwwQkFBMEI7Q0FDMUIsNEJBQTRCO0NBQzVCLDBCQUEwQjtDQUMxQix5QkFBeUI7Q0FDekIsMkJBQTJCO0FBQzVCOztBQUVBOzs7RUFHRTs7QUFFRjtDQUNDOzs7Z0JBR2U7Q0FDZixtQ0FBbUM7QUFDcEM7O0FBRUE7O0VBRUU7O0FBRUY7OztDQUdDLDJDQUEyQztDQUMzQyxTQUFTO0NBQ1QsVUFBVTtDQUNWLFNBQVM7Q0FDVCx1QkFBdUI7Q0FDdkIscUJBQXFCO0NBQ3JCLHNCQUFzQjtDQUN0QixnQkFBZ0I7O0NBRWhCLGdFQUFnRTtDQUNoRSxxQkFBcUI7QUFDdEI7O0FBRUE7O0VBRUU7O0FBRUY7O0NBRUMsdURBQXVEO0NBQ3ZELHlCQUF5QjtDQUN6QixrR0FBa0c7Q0FDbEcsMkJBQTJCO0NBQzNCLGdCQUFnQjtDQUNoQixtQkFBbUI7Q0FDbkIsWUFBWTtDQUNaLFdBQVc7QUFDWjs7QUFFQTtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLFdBQVc7RUFDWCx1QkFBdUI7Q0FDeEI7O0FBRUQ7RUFDRSxxQkFBcUI7Q0FDdEI7O0FBRUQ7OztFQUdFLFlBQVk7Q0FDYjs7QUFFRDs7O0VBR0UsZUFBZTtDQUNoQjs7QUFFRDtFQUNFLGFBQWE7RUFDYixvQ0FBb0M7Q0FDckM7O0FBRUQ7RUFDRSxrR0FBa0c7RUFDbEcsVUFBVTtFQUNWO0NBQ0Q7O0FBRUQ7O0VBRUU7O0FBRUY7O0NBRUMsaUJBQWlCO0FBQ2xCOztBQUVBOzs7RUFHRTs7QUFFRjs7RUFFRTs7QUFFRjtDQUNDLHVCQUF1QjtBQUN4Qjs7QUFFQTs7O0VBR0U7O0FBRUY7Q0FDQzs7R0FFRTtDQUNGLGlFQUFpRTs7Q0FFakU7O0dBRUU7Q0FDRiwyREFBMkQ7O0NBRTNEOztHQUVFO0NBQ0YseUVBQXlFO0FBQzFFOztBQUVBOzs7RUFHRTs7QUFFRjtDQUNDLDhCQUE4QjtDQUM5QiwyREFBMkQ7Q0FDM0Qsa0RBQWtEO0NBQ2xELDREQUE0RDtDQUM1RCwyREFBMkQ7Q0FDM0QsMkRBQTJEO0NBQzNELGdFQUFnRTtBQUNqRTs7QUM5V0EsMEZBQTBGOztBQUUxRjs7O0VBR0U7O0FBRUY7Q0FDQyxzQkFBc0I7QUFDdkI7O0FBRUEsK0dBQStHOztBQUUvRzs7O0VBR0U7O0FBRUY7Q0FDQyw2RUFBNkU7QUFDOUU7O0FBRUE7Q0FDQywwQkFBMEI7Q0FDMUIsMkJBQTJCOztDQUUzQix1RkFBdUY7Q0FDdkYsd0JBQXdCOztDQUV4QixjQUFjOztDQUVkLCtCQUErQjtDQUMvQixlQUFlOztDQUVmLHlEQUF5RDtDQUN6RDtBQUNEOztBQUVBO0VBQ0UsK0JBQStCO0VBQy9CLGVBQWU7O0VBRWYsMENBQTBDO0VBQzFDO0NBQ0Q7O0FBRUQ7SUFDSSxrQkFBa0I7SUFDbEIsa0JBQWtCO0VBQ3BCOztBQ2pERixnRkFBZ0Y7O0FBRWhGOzs7RUFHRTs7QUFFRjtDQUNDLGdEQUFnRDtDQUNoRCx1QkFBdUI7Q0FDdkIsOEJBQThCO0NBQzlCLCtCQUErQjs7Q0FFL0IsaUNBQWlDO0NBQ2pDLGlFQUFpRTs7Q0FFakUsaUNBQWlDO0NBQ2pDLHNEQUFzRDtDQUN0RCxnREFBZ0Q7QUFDakQ7O0FBRUE7Q0FDQyxrRkFBa0Y7Q0FDbEYsa0JBQWtCO0FBQ25COztBQUVBO0NBQ0MsYUFBYTtDQUNiLGtCQUFrQjs7Q0FFbEIsbUZBQW1GO0NBQ25GLG9CQUFvQjs7Q0FFcEIsT0FBTztDQUNQLE1BQU07O0NBRU4sMENBQTBDO0FBQzNDOztBQUVBO0VBQ0UsY0FBYztDQUNmOztBQUVEO0NBQ0Msa0JBQWtCOztDQUVsQixpRkFBaUY7Q0FDakYsbUJBQW1COztDQUVuQiw2QkFBNkI7Q0FDN0IsOEJBQThCO0NBQzlCLHdDQUF3QztDQUN4QyxpREFBaUQ7Q0FDakQ7QUFDRDs7QUFFQTtFQUNFLCtCQUErQjtFQUMvQixnQ0FBZ0M7RUFDaEMsbUJBQW1CO0NBQ3BCOztBQUVEO0VBQ0UsK0JBQStCO0VBQy9CLGlDQUFpQztFQUNqQyxtQkFBbUI7Q0FDcEI7O0FBRUQ7RUFDRSxrQ0FBa0M7RUFDbEMsaUNBQWlDO0VBQ2pDLG1CQUFtQjtDQUNwQjs7QUFFRDtFQUNFLGtDQUFrQztFQUNsQyxnQ0FBZ0M7RUFDaEMsbUJBQW1CO0NBQ3BCOztBQUVEO0NBQ0MsbUZBQW1GO0NBQ25GLGlCQUFpQjs7Q0FFakIsK0RBQStEO0FBQ2hFOztBQUVBO0dBQ0csbUJBQW1CO0VBQ3BCOztBQUVGO0VBQ0U7Q0FDRDs7QUFFRDtHQUNHO21DQUNnQztHQUNoQyxjQUFjO0VBQ2Y7O0FBRUY7O0NBRUMsNERBQTREO0FBQzdEOztBQUVBO0VBQ0UsbUJBQW1CO0NBQ3BCOztBQUVEO0NBQ0Msc0RBQXNEO0NBQ3RELDJDQUEyQztDQUMzQyxzREFBc0Q7Q0FDdEQsOENBQThDO0NBQzlDLG1DQUFtQztDQUNuQyxjQUFjO0NBQ2Q7QUFDRDs7QUFFQTs7OztFQUlFLGtCQUFrQjtDQUNuQjs7QUFFRDtFQUNFLHVDQUF1QztFQUN2Qyx3Q0FBd0M7Q0FDekM7O0FBRUQ7RUFDRSx1Q0FBdUM7RUFDdkMseUNBQXlDO0NBQzFDOztBQUVEO0VBQ0UsMENBQTBDO0VBQzFDLHlDQUF5QztDQUMxQzs7QUFFRDtFQUNFLDBDQUEwQztFQUMxQyx3Q0FBd0M7Q0FDekM7O0FBRUQscUdBQXFHOztBQUVyRzs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGOztFQUVFOztBQUVGOzs7RUFHRTs7QUFFRjs7RUFFRTs7QUFFRjs7RUFFRTs7QUFFRjtDQUNDLGtDQUFrQztDQUNsQyxtQ0FBbUM7Q0FDbkMsNkNBQTZDO0NBQzdDLHlDQUF5Qzs7Q0FFekMsaURBQWlEO0NBQ2pELGtEQUFrRDtDQUNsRCw0RUFBNEU7Q0FDNUUsMEVBQTBFO0FBQzNFOztBQUVBO0NBQ0MsaURBQWlEO0NBQ2pELG9CQUFvQjtDQUNwQiwwQkFBMEI7Q0FDMUI7QUFDRDs7QUFFQTs7RUFFRSw4RUFBOEU7Q0FDL0U7O0FBRUQ7RUFDRSxrREFBa0Q7Q0FDbkQ7O0FBRUQ7Q0FDQyw0QkFBNEI7O0NBRTVCOzRHQUMyRztBQUM1Rzs7QUFFQTs7RUFFRSw0QkFBNEI7RUFDNUIsYUFBYTtFQUNiLDRCQUE0QjtFQUM1Qix1Q0FBdUM7O0VBRXZDLGtFQUFrRTtDQUNuRTs7QUFFRDs7Q0FFQzs7Ozt5REFJd0Q7Q0FDeEQsMERBQTBEO0FBQzNEOztBQUVBO0VBQ0UsWUFBWTtFQUNaLHNCQUFzQjs7RUFFdEIsaUdBQWlHO0VBQ2pHLDZCQUE2QjtFQUM3QixVQUFVOztFQUVWOzs7NkVBRzJFO0VBQzNFOzs7K0ZBRzZGOztFQUU3RixpQ0FBaUM7RUFDakMsa0VBQWtFOztFQUVsRSx1REFBdUQ7RUFDdkQsNEJBQTRCO0VBQzVCLG1EQUFtRDs7RUFFbkQscUdBQXFHO0NBQ3RHOztBQUVEO0dBQ0csVUFBVTtFQUNYOztBQUVGO0dBQ0cseUZBQXlGO0dBQ3pGLHlDQUF5QztHQUN6QywwQ0FBMEM7R0FDMUMsb0RBQW9EOztHQUVwRCw0REFBNEQ7RUFDN0Q7O0FBRUY7SUFDSSxVQUFVOztJQUVWLG1FQUFtRTtJQUNuRSxrRUFBa0U7R0FDbkU7O0FBRUg7O0NBRUMsNERBQTREO0FBQzdEOztBQUVBO0dBQ0csVUFBVTtHQUNWLDZDQUE2Qzs7R0FFN0Msb0ZBQW9GO0VBQ3JGOztBQUVGO0lBQ0ksVUFBVTtHQUNYOztBQUVIOztDQUVDLCtEQUErRDtBQUNoRTs7QUFFQTtFQUNFLFVBQVU7RUFDVixxREFBcUQ7Q0FDdEQ7O0FBRUQsc0ZBQXNGOztBQUV0RjtDQUNDLFVBQVU7Q0FDVixxREFBcUQ7QUFDdEQ7O0FBRUEsbUZBQW1GOztBQUVuRjs7RUFFRTtDQUNEOztBQUVEOzs7O0dBSUcsaURBQWlEO0VBQ2xEOztBQUVGO0NBQ0M7eURBQ3dEO0NBQ3hELGdDQUFnQztBQUNqQzs7QUN6VUEsZ0dBQWdHOztBQUVoRzs7O0VBR0U7O0FBRUY7O0NBRUMsa0JBQWtCOztDQUVsQiw4REFBOEQ7Q0FDOUQsb0JBQW9COztDQUVwQjsyQkFDMEI7Q0FDMUIsbUNBQW1DO0FBQ3BDOztBQUVBO0NBQ0Msa0NBQWtDO0NBQ2xDLGtCQUFrQjtDQUNsQixVQUFVO0NBQ1YsYUFBYTtDQUNiO0FBQ0Q7O0FBRUE7RUFDRTtDQUNEOztBQUVEO0dBQ0csV0FBVztHQUNYLFFBQVE7R0FDUixTQUFTO0VBQ1Y7O0FBRUYscUhBQXFIOztBQUVySDs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGOzs7O0VBSUU7O0FBRUY7Q0FDQyw0QkFBNEI7QUFDN0I7O0FBRUE7Q0FDQyxTQUFTOztDQUVUOzs7R0FHRTtDQUNGLEtBQUs7O0NBRUw7Ozs7Ozs7O0dBUUU7QUFDSDs7QUFFQTtFQUNFLCtDQUErQztFQUMvQztDQUNEOztBQUVEO0dBQ0csNENBQTRDO0dBQzVDLDZCQUE2QjtHQUM3QixvRkFBb0Y7R0FDcEYsc0dBQXNHO0VBQ3ZHOztBQUVGOztDQUVDOzs7Ozs7OztHQVFFO0FBQ0g7O0FBRUE7RUFDRSw0Q0FBNEM7RUFDNUM7Q0FDRDs7QUFFRDtHQUNHLCtDQUErQztHQUMvQyw2QkFBNkI7R0FDN0Isb0ZBQW9GO0dBQ3BGLHNHQUFzRztFQUN2Rzs7QUFFRjtFQUNFO0NBQ0Q7O0FBRUQ7RUFDRTtDQUNEOztBQUVEOztFQUVFLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsbUNBQW1DO0VBQ25DLHlEQUF5RDtFQUN6RCw4Q0FBOEM7RUFDOUMsa0JBQWtCO0VBQ2xCO0NBQ0Q7O0FBRUQ7R0FDRyxtQkFBbUI7R0FDbkIsU0FBUztFQUNWOztBQUVGOztDQUVDOztvREFFbUQ7Q0FDbkQsdUNBQXVDO0FBQ3hDOztBQ2xKQSw4RkFBOEY7O0FBRTlGOzs7RUFHRTs7QUFFRjs7O0VBR0U7O0FBRUY7O0VBRUU7O0FBRUY7OztFQUdFOztBQUVGOzs7RUFHRTs7QUFFRjs7RUFFRTs7QUFFRjs7O0VBR0U7O0FBRUY7O0NBR0MseUJBQXlCO0NBRXpCO0FBQ0Q7O0FBRUE7RUFDRSxhQUFhOztFQUViOzs7Ozs7Ozs7Ozs7Ozs7SUFlRTtDQUNIOztBQUVEOztBQUVBO0dBQ0c7Q0FDRjtFQUNDOztBQUVGOzs7Q0FHQyxrQkFBa0I7Q0FDbEIsb0JBQW9CO0NBQ3BCLG1CQUFtQjtDQUNuQjtBQUNEOztBQUVBO0dBQ0cscUJBQXFCO0VBQ3RCOztBQUVGOzs7Q0FHQywyREFBMkQ7QUFDNUQ7O0FBRUE7RUFDRSx1QkFBdUI7Q0FDeEI7O0FBRUQ7RUFDRSxtQkFBbUI7RUFDbkIsVUFBVTtDQUNYOztBQUVEOzs7Q0FHQywwRkFBMEY7QUFDM0Y7O0FBRUE7RUFDRSxhQUFhO0NBQ2Q7O0FBRUQ7RUFDRSxhQUFhO0NBQ2Q7O0FBRUQsbUhBQW1IOztBQUVuSDs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGOztFQUVFOztBQUVGOzs7RUFHRTs7QUFFRjs7RUFFRTs7QUFFRjs7RUFFRTs7QUFFRjs7O0VBR0U7O0FBRUY7O0VBRUU7O0FBRUY7OztFQUdFOztBQUVGOzs7O0VBSUU7O0FBRUY7OztFQUdFOztBQUVGOzs7OztFQUtFOztBQUVGOzs7RUFHRTs7QUFFRjs7Q0FFQztBQUNEOztBQUVBO0dBQ0csMkRBQTJEO0VBQzVEOztBQUVGO0dBQ0csNERBQTREO0dBQzVELHdFQUF3RTtFQUN6RTs7QUFFRjs7Q0FFQywrREFBK0Q7QUFDaEU7O0FBRUE7RUFDRSw4REFBOEQ7Q0FDL0Q7O0FBRUQ7O0NBRUM7QUFDRDs7QUFFQTs7OztFQUlFO0FBQ0Y7O0FBRUE7OztDQUdDLG1CQUFtQjtDQUNuQixlQUFlO0NBQ2Ysc0JBQXNCO0NBQ3RCLCtCQUErQjtDQUMvQixrQkFBa0I7O0NBRWxCLGlGQUFpRjtDQUNqRiw0Q0FBNEM7Q0FDNUMsNkNBQTZDOztDQUU3QztpREFDZ0Q7Q0FDaEQsY0FBYzs7Q0FFZCxpRUFBaUU7Q0FDakUsa0JBQWtCOztDQUVsQixxREFBcUQ7Q0FDckQsNkJBQTZCOztDQUU3QixvREFBb0Q7Q0FDcEQsd0NBQXdDOztDQUV4QyxnRUFBZ0U7Q0FDaEU7QUFDRDs7QUFFQTs7OztFQUlFLDRCQUE0QjtFQUM1QixhQUFhO0VBQ2IsNEJBQTRCO0VBQzVCLDZDQUE2Qzs7RUFFN0MsMkVBQTJFO0VBQzNFLHlCQUF5QjtDQUMxQjs7QUFFRDs7O0NBR0MsK0RBQStEO0FBQ2hFOztBQUVBOzs7O0dBSUcsaUZBQWlGO0dBQ2pGLHNEQUFzRDtFQUN2RDs7QUFFRjtHQUNHLG1DQUFtQztFQUNwQzs7QUFFRjs7RUFFRSwrREFBK0Q7Q0FDaEU7O0FBRUQ7R0FDRyxtQ0FBbUM7RUFDcEM7O0FBRUY7RUFDRTtDQUNEOztBQUVEO0lBQ0ksK0NBQStDO0lBQy9DO0VBQ0Y7O0FBRUY7SUFDSSxnREFBZ0Q7SUFDaEQ7RUFDRjs7QUFFRjs7O0NBR0MsNkVBQTZFO0FBQzlFOztBQUVBO0VBQ0UsZ0RBQWdEO0NBQ2pEOztBQUVEO0dBQ0csc0RBQXNEO0VBQ3ZEOztBQUVGO0dBQ0csdURBQXVEO0dBQ3ZELG1FQUFtRTtFQUNwRTs7QUFFRjtFQUNFLCtEQUErRDtDQUNoRTs7QUFFRDtFQUNFLHlEQUF5RDtDQUMxRDs7QUFFRDtFQUNFLGtDQUFrQztDQUNuQzs7QUFFRDtFQUNFLG9DQUFvQztDQUNyQzs7QUFFRDs7O0NBR0MseURBQXlEO0FBQzFEOztBQUVBOzs7O0dBSUcsY0FBYztFQUNmOztBQUVGO0VBQ0UsaUVBQWlFO0VBQ2pFLGtCQUFrQjtFQUNsQixvQkFBb0I7RUFDcEIsY0FBYztFQUNkLGVBQWU7O0VBRWY7a0VBQ2dFO0VBQ2hFO0NBQ0Q7O0FBRUQ7R0FDRztDQUNGOztBQUVEO0dBQ0c7Q0FDRjs7QUFFRCw0REFBNEQ7O0FBRTVEOztDQUVDLG9EQUFvRDtBQUNyRDs7QUFFQTtHQUNHLDBEQUEwRDtFQUMzRDs7QUFFRjtHQUNHLDJEQUEyRDtHQUMzRCx1RUFBdUU7RUFDeEU7O0FBRUY7O0NBRUMsK0RBQStEO0FBQ2hFOztBQUVBO0VBQ0UsNkRBQTZEO0NBQzlEOztBQUVEOzs7Q0FHQyx5Q0FBeUM7QUFDMUM7O0FBRUE7O0NBRUMsaUJBQWlCO0FBQ2xCOztBQ2haQSxrR0FBa0c7O0FBRWxHOzs7RUFHRTs7QUFFRjs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGOztFQUVFOztBQUVGOzs7RUFHRTs7QUFFRjtDQUNDLHFCQUFxQjtDQUNyQjtBQUNEOztBQUVBO0VBQ0Usb0JBQW9CO0VBQ3BCLDRCQUE0QjtDQUM3Qjs7QUFFRDs7Q0FFQyx3RUFBd0U7QUFDekU7O0FBRUE7RUFDRSxVQUFVOztFQUVWOytCQUM2QjtDQUM5Qjs7QUFFRDtFQUNFLGFBQWE7Q0FDZDs7QUFFRDtFQUNFO29FQUNrRTtFQUNsRSxtQ0FBbUM7O0VBRW5DLGFBQWE7RUFDYiwwQkFBMEI7O0VBRTFCO0NBQ0Q7O0FBRUQ7R0FDRyxxQkFBcUI7O0dBRXJCLHFFQUFxRTtHQUNyRSxzQkFBc0I7RUFDdkI7O0FBRUY7O0dBRUcsWUFBWTtFQUNiOztBQUVGOztHQUVHLG9DQUFvQztFQUNyQzs7QUFFRjs7R0FFRyxTQUFTO0VBQ1Y7O0FBRUY7O0dBRUcsVUFBVTtFQUNYOztBQUVGLHVIQUF1SDs7QUFFdkg7OztFQUdFOztBQUVGOzs7RUFHRTs7QUFFRjs7OztFQUlFOztBQUVGOzs7RUFHRTs7QUFFRjs7RUFFRTs7QUFFRjs7O0VBR0U7O0FBRUY7O0VBRUU7O0FBRUY7O0VBRUU7O0FBRUY7OztFQUdFOztBQUVGO0NBQ0MseURBQXlEO0FBQzFEOztBQUVBO0NBQ0MsaUVBQWlFO0NBQ2pFO0FBQ0Q7O0FBRUE7RUFDRSxvQ0FBb0M7Q0FDckM7O0FBRUQ7R0FDRyxpQ0FBaUM7O0dBRWpDLHlDQUF5QztHQUN6QyxvQ0FBb0M7RUFDckM7O0FBRUY7R0FDRyxnQ0FBZ0M7O0dBRWhDLHlDQUF5QztHQUN6QyxxQ0FBcUM7RUFDdEM7O0FBRUY7RUFDRSxtQ0FBbUM7Q0FDcEM7O0FBRUQ7SUFDSSx1RUFBdUU7SUFDdkUscUNBQXFDO0dBQ3RDOztBQUVIO0lBQ0ksdUVBQXVFO0lBQ3ZFLHNDQUFzQztHQUN2Qzs7QUFFSDs7RUFFRSwrREFBK0Q7Q0FDaEU7O0FBRUQ7R0FDRyxtQ0FBbUM7RUFDcEM7O0FBRUY7O0VBRUUscURBQXFEO0NBQ3REOztBQUVEO0dBQ0csNEJBQTRCO0dBQzVCLDZCQUE2QjtFQUM5Qjs7QUFFRjs7RUFFRSxRQUFRO0NBQ1Q7O0FBRUQ7R0FDRyxVQUFVO0dBQ1YsZ0JBQWdCO0dBQ2hCLHVCQUF1QjtFQUN4Qjs7QUFFRjtDQUNDLGdCQUFnQjtBQUNqQjs7QUFFQTtFQUNFLHNDQUFzQztBQUN4Qzs7QUFFQTtDQUNDLHNDQUFzQzs7Q0FFdEM7bURBQ2tEO0NBQ2xELGdCQUFnQjtBQUNqQjs7QUFFQTtFQUNFLHNDQUFzQztFQUN0Qyx5QkFBeUI7QUFDM0I7O0FBRUE7O0NBRUMscURBQXFEO0NBQ3JELHVEQUF1RDtDQUN2RCxTQUFTOztDQUVULHVFQUF1RTtDQUN2RSxlQUFlO0FBQ2hCOztBQzNPQSxnR0FBZ0c7O0FBRWhHOzs7RUFHRTs7QUFFRjs7O0VBR0U7O0FBRUY7O0VBRUU7O0FBRUY7Q0FFQyx5QkFBeUI7Q0FFekIsaUJBQWlCOztDQUVqQixhQUFhO0NBQ2IsbUJBQW1CO0NBQ25CO0FBQ0Q7O0FBRUE7RUFDRSxzQkFBc0I7Q0FDdkI7O0FBRUQ7RUFDRSxpQkFBaUI7Q0FDbEI7O0FBRUQ7Q0FDQyxxQkFBcUI7QUFDdEI7O0FBRUE7Q0FDQyxjQUFjO0NBQ2QsV0FBVztBQUNaOztBQUVBLHFIQUFxSDs7QUFFckg7OztFQUdFOztBQUVGOzs7RUFHRTs7QUFFRjs7OztFQUlFOztBQUVGOzs7RUFHRTs7QUFFRjtDQUNDO0FBQ0Q7O0FBRUE7RUFDRTtBQUNGOztBQUVBOztDQUVDLDhDQUE4QztDQUM5QyxrQ0FBa0M7Q0FDbEM7QUFDRDs7QUFFQTtFQUNFLDREQUE0RDtFQUM1RCxtQ0FBbUM7RUFDbkMsc0NBQXNDO0NBQ3ZDOztBQUVEO0VBQ0Usa0NBQWtDO0VBQ2xDLHFDQUFxQztDQUN0Qzs7QUFFRDtHQUNHLGtDQUFrQztHQUNsQyxvQ0FBb0M7R0FDcEMsZUFBZTtFQUNoQjs7QUFFRjtFQUNFLHVEQUF1RDtFQUN2RCxTQUFTOztFQUVULCtGQUErRjtDQUNoRzs7QUFFRDtHQUNHLGtFQUFrRTtHQUNsRSxXQUFXOztHQUVYLHVEQUF1RDtHQUN2RCxTQUFTOztHQUVULHdGQUF3RjtHQUN4RixnQkFBZ0I7O0dBRWhCLGtGQUFrRjtHQUNsRixTQUFTO0VBQ1Y7O0FBRUY7R0FDRyxlQUFlO0VBQ2hCOztBQUVGO0dBQ0csY0FBYztFQUNmOztBQUVGO0VBQ0U7QUFDRjs7QUFFQTtDQUNDLG1CQUFtQjtDQUNuQixVQUFVO0NBQ1YsYUFBYTtDQUNiLGdCQUFnQjtDQUNoQiwwQ0FBMEM7QUFDM0M7O0FBRUE7Q0FDQyxTQUFTO0FBQ1Y7O0FDOUlBLDBGQUEwRjs7QUFFMUY7OztFQUdFOztBQUVGOzs7RUFHRTs7QUFFRjs7RUFFRTs7QUFFRjtDQUVDLHlCQUF5QjtDQUV6QixpQkFBaUI7O0NBRWpCLGFBQWE7Q0FDYjtBQUNEOztBQUVBOztFQUVFLGNBQWM7Q0FDZjs7QUFFRDs7Q0FFQzs7dUJBRXNCO0FBQ3ZCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLDRCQUE0QjtDQUM3Qjs7QUFFRCwrR0FBK0c7O0FBRS9HOzs7RUFHRTs7QUFFRjs7O0VBR0U7O0FBRUY7O0VBRUU7O0FBRUY7OztFQUdFOztBQUVGOzs7O0VBSUU7O0FBRUY7OztFQUdFOztBQUVGOztFQUVFOztBQUVGOztFQUVFOztBQUVGO0NBQ0MsZ0JBQWdCO0FBQ2pCOztBQUVBO0VBQ0Usc0NBQXNDO0FBQ3hDOztBQUVBOztDQUVDLHFCQUFxQjtDQUNyQiwyQ0FBMkM7QUFDNUM7O0FBRUE7Q0FDQyxlQUFlO0NBQ2Y7QUFDRDs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixTQUFTOztFQUVUOzs4REFFNEQ7RUFDNUQ7OztDQUdEOztBQUVEO0dBQ0csNERBQTREO0dBQzVELDBFQUEwRTtFQUMzRTs7QUFFRjtHQUNHLGdCQUFnQjtFQUNqQjs7QUFFRjtHQUNHLHFEQUFxRDtHQUNyRDtFQUNEOztBQUVGO0lBQ0ksMkRBQTJEO0dBQzVEOztBQUVIO0lBQ0ksZ0JBQWdCO0dBQ2pCOztBQUVIO0dBQ0csd0RBQXdEO0VBQ3pEOztBQUVGOztDQUVDOzZDQUM0QztBQUM3Qzs7QUFFQTtHQUNHLDJDQUEyQztHQUMzQztFQUNEOztBQUVGO0lBQ0ksd0RBQXdEO0lBQ3hELGNBQWM7R0FDZjs7QUFFSDtDQUNDLFdBQVc7Q0FDWCxXQUFXO0NBQ1gsdUNBQXVDO0FBQ3hDOztBQ25LQSxvR0FBb0c7O0FBRXBHOzs7RUFHRTs7QUFFRjtFQUNFO0NBQ0Q7O0FBRUQ7R0FDRyxjQUFjO0VBQ2Y7O0FBRUYseUhBQXlIOztBQUV6SDs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGOzs7O0VBSUU7O0FBRUY7OztFQUdFOztBQUVGOztFQUVFOztBQUVGOzs7RUFHRTs7QUFFRjs7NERBRTREOztBQUU1RDtDQUNDLDJCQUEyQjtDQUMzQiwrQ0FBK0M7Q0FDL0MsMkJBQTJCO0NBQzNCLG9EQUFvRDtDQUNwRCxzQ0FBc0M7Q0FDdEMsOENBQThDO0FBQy9DOztBQUVBO0dBQ0csdUNBQXVDO0dBQ3ZDO0NBQ0Y7O0FBRUQ7R0FDRyx1Q0FBdUM7R0FDdkM7Q0FDRjs7QUFFRDtFQUNFLG1DQUFtQztDQUNwQzs7QUFFRDtFQUNFO0NBQ0Q7O0FBRUQ7RUFDRTtDQUNEOztBQUVEO0dBQ0csb0VBQW9FO0dBQ3BFO0NBQ0Y7O0FBRUQ7R0FDRyxtRUFBbUU7R0FDbkU7Q0FDRjs7QUFFRDs7RUFFRSw2REFBNkQ7RUFDN0QsaUNBQWlDOztFQUVqQywyQ0FBMkM7RUFDM0M7Q0FDRDs7QUFFRDtHQUNHO0VBQ0Q7O0FBRUY7SUFDSSxnRUFBZ0U7R0FDakU7O0FBRUg7R0FDRyxnQkFBZ0I7RUFDakI7O0FBRUY7RUFDRSxzQ0FBc0M7SUFDcEMsK0NBQStDO0VBQ2pEOztBQUVGOztHQUVHLHFFQUFxRTtHQUNyRSw4Q0FBOEM7R0FDOUMsZ0RBQWdEO0dBQ2hELGlEQUFpRDtHQUNqRCwwREFBMEQ7O0dBRTFELHVEQUF1RDtHQUN2RCwwQkFBMEI7RUFDM0I7O0FBRUY7RUFDRTtDQUNEOztBQUVEO0dBQ0csNkRBQTZEO0VBQzlEOztBQUVGO0dBQ0c7Ozs7Ozs7Ozs7O0tBV0U7RUFDSDs7QUFFRjtJQUNJO0VBQ0Y7O0FBRUY7SUFDSTtFQUNGOztBQy9KRix5R0FBeUc7O0FBRXpHOzs7RUFHRTs7QUFFRjtFQUNFLGlCQUFpQjtDQUNsQjs7QUFFRDtHQUNHLHNDQUFzQztFQUN2Qzs7QUFFRiw4SEFBOEg7O0FBRTlIOzs7RUFHRTs7QUFFRjtDQUNDLFNBQVM7QUFDVjs7QUN4QkEsc0dBQXNHOztBQUV0Rzs7O0VBR0U7O0FBRUY7Ozs7RUFJRTs7QUFFRiwySEFBMkg7O0FBRTNIOzs7RUFHRTs7QUFFRjs7O0VBR0U7O0FBRUY7Ozs7RUFJRTs7QUFFRjtDQUNDO21EQUNrRDtDQUNsRDtBQUNEOztBQUVBO0VBQ0Usc0NBQXNDO0VBQ3RDO0FBQ0Y7O0FBRUE7O0NBRUM7cUNBQ29DO0FBQ3JDOztBQUVBO0dBQ0c7RUFDRDs7QUFFRjtFQUNFLHNDQUFzQztJQUNwQyx5QkFBeUI7SUFDekIsNEJBQTRCO0lBQzVCO0VBQ0Y7O0FBRUY7R0FDRztFQUNEOztBQUVGO0VBQ0Usc0NBQXNDO0lBQ3BDLHlCQUF5QjtJQUN6QjtFQUNGOztBQ25FRixxRkFBcUY7O0FBRXJGOzs7RUFHRTs7QUFFRixnQ0FBZ0M7O0FBRWhDO0VBQ0UsK0JBQStCOztFQUUvQixnQ0FBZ0M7RUFDaEMsb0JBQW9CO0NBQ3JCOztBQUVELDBHQUEwRzs7QUFFMUc7OztFQUdFOztBQUVGLGdDQUFnQzs7QUFFaEM7RUFDRSxZQUFZO0VBQ1osOENBQThDO0NBQy9DOztBQzVCRCxrR0FBa0c7O0FBRWxHOzs7RUFHRTs7QUFFRjs7OztFQUlFOztBQUVGLHVIQUF1SDs7QUFFdkg7OztFQUdFOztBQUVGOzs7RUFHRTs7QUFFRjs7OztFQUlFOztBQUVGOzs7RUFHRTs7QUFFRjs7RUFFRTs7QUFFRjs7O0VBR0U7O0FBRUY7O0VBRUU7O0FBRUY7O0VBRUU7O0FBRUY7OztFQUdFOztBQUVGOztFQUVFOztBQUVGOzs7RUFHRTs7QUFFRjs7Ozs7RUFLRTs7QUFFRjtDQUNDO0FBQ0Q7O0FBRUE7RUFDRTtBQUNGOztBQUVBO0VBQ0UsNEJBQTRCO0VBQzVCLGFBQWE7RUFDYiw0QkFBNEI7RUFDNUIsdUNBQXVDO0NBQ3hDOztBQUVEO0NBQ0MsY0FBYztDQUNkLHFDQUFxQztDQUNyQztBQUNEOztBQUVBO0VBQ0UsZ0JBQWdCO0NBQ2pCOztBQUVEO0VBQ0UsaUJBQWlCO0NBQ2xCOztBQUVEOztDQUVDLGdFQUFnRTtBQUNqRTs7QUFFQTtFQUNFLG1DQUFtQztDQUNwQzs7QUFFRDs7Q0FFQyxxREFBcUQ7QUFDdEQ7O0FBRUE7RUFDRSxzQ0FBc0M7Q0FDdkM7O0FBRUQsZ0VBQWdFOztBQUVoRTtFQUNFLG9EQUFvRDtDQUNyRDs7QUFFRDtFQUNFLGlEQUFpRDtDQUNsRDs7QUNqSUQsNEZBQTRGOztBQUU1Rjs7O0VBR0U7O0FBRUY7Q0FDQyxjQUFjO0FBQ2Y7O0FBRUE7Q0FDQyxhQUFhO0FBQ2Q7O0FBRUEsaUhBQWlIOztBQUVqSDs7O0VBR0U7O0FBRUY7Q0FDQyxpQkFBaUI7QUFDbEI7O0FDeEJBLGtHQUFrRzs7QUFFbEc7OztFQUdFOztBQUVGO0VBQ0UsMEJBQTBCLEVBQUUsU0FBUztFQUNyQyxlQUFlO0VBQ2YsTUFBTTtDQUNQOztBQUVEO0VBQ0UsU0FBUztFQUNULGtCQUFrQjtDQUNuQjs7QUFFRCx1SEFBdUg7O0FBRXZIOzs7RUFHRTs7QUFFRjs7O0VBR0U7O0FBRUY7O0VBRUU7O0FBRUY7O0VBRUU7O0FBRUY7RUFDRSxzQ0FBc0M7O0VBRXRDLHVCQUF1QjtFQUN2Qix5QkFBeUI7RUFDekIsMEJBQTBCO0NBQzNCOztBQzVDRCwrRkFBK0Y7O0FBRS9GOzs7RUFHRTs7QUFFRjtDQUNDOztvREFFbUQ7Q0FDbkQ7QUFDRDs7QUFFQTtFQUNFLG1FQUFtRTtFQUNuRSwwQkFBMEI7Q0FDM0I7O0FBRUQsb0hBQW9IOztBQUVwSDs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGOzs7O0VBSUU7O0FBRUY7R0FDRyxnQkFBZ0I7RUFDakI7O0FBRUY7RUFDRSxzQ0FBc0M7SUFDcEMsNEJBQTRCO0lBQzVCLDZCQUE2QjtFQUMvQjs7QUFFRjs7R0FFRyxzQkFBc0I7RUFDdkI7O0FBRUY7R0FDRyx3QkFBd0I7O0dBRXhCO0VBQ0Q7O0FBRUY7RUFDRSxzQ0FBc0M7SUFDcEM7RUFDRjs7QUFFRiwwRkFBMEY7O0FBRTFGO0NBQ0MsZ0VBQWdFO0NBQ2hFLDJDQUEyQzs7Q0FFM0M7QUFDRDs7QUFFQTtFQUNFLHNDQUFzQztFQUN0Qyx5QkFBeUI7RUFDekI7QUFDRjs7QUFFQTtFQUNFLHlDQUF5QztDQUMxQzs7QUNoRkQsa0ZBQWtGOztBQUVsRjs7O0VBR0U7O0FBRUY7Q0FDQyxlQUFlO0FBQ2hCOztBQUVBO0NBQ0MsZUFBZTtBQUNoQjs7QUFFQTtDQUNDLGVBQWU7QUFDaEI7O0FBRUE7Q0FDQyxpQkFBaUI7QUFDbEI7O0FBRUEsdUdBQXVHOztBQUV2Rzs7O0VBR0U7O0FBRUYsb0NBQW9DOztBQUVwQztFQUNFLFVBQVU7Q0FDWDs7QUFFRDtFQUNFLGVBQWU7Q0FDaEI7O0FDdENELDRFQUE0RTs7QUFFNUU7OztFQUdFOztBQUVGOzs7O0VBSUU7O0FBRUYsaUdBQWlHOztBQUVqRzs7O0VBR0U7O0FBRUYscUVBQXFFOztBQUVyRTtDQUNDLG9EQUFvRDtBQUNyRDs7QUN4QkEsbUdBQW1HOztBQUVuRzs7O0VBR0U7O0FBRUY7Q0FDQyxrRUFBa0U7Q0FDbEUsK0RBQStEO0FBQ2hFOztBQUVBO0NBQ0MsYUFBYTtDQUNiLGtCQUFrQjs7Q0FFbEI7QUFDRDs7QUFFQTs7R0FFRyxXQUFXO0dBQ1gsa0JBQWtCO0VBQ25COztBQUVGO0dBQ0csOENBQThDO0VBQy9DOztBQUVGO0dBQ0csd0RBQXdEO0VBQ3pEOztBQUVGO0dBQ0csOENBQThDO0VBQy9DOztBQUVGO0dBQ0csd0RBQXdEO0VBQ3pEOztBQUVGO0dBQ0csOENBQThDO0VBQy9DOztBQUVGO0dBQ0csd0RBQXdEO0VBQ3pEOztBQUVGO0VBQ0UsY0FBYztDQUNmOztBQUVELHdIQUF3SDs7QUFFeEg7OztFQUdFOztBQUVGOzs7RUFHRTs7QUFFRjs7OztFQUlFOztBQUVGOzs7RUFHRTs7QUFFRjs7RUFFRTs7QUFFRjs7RUFFRTs7QUFFRjtDQUNDLDhCQUE4QjtDQUM5QiwrQkFBK0I7Q0FDL0Isa0NBQWtDO0FBQ25DOztBQUVBO0NBQ0M7QUFDRDs7QUFFQTtFQUNFO0FBQ0Y7O0FBRUE7Q0FDQyxzQ0FBc0M7O0NBRXRDLGdCQUFnQjs7Q0FFaEIsNENBQTRDO0NBQzVDO0FBQ0Q7O0FBRUE7O0dBRUcsUUFBUTtHQUNSLFNBQVM7R0FDVCxtQkFBbUI7RUFDcEI7O0FBRUY7O0dBRUcsb0hBQW9IO0VBQ3JIOztBQUVGO0dBQ0csOEVBQThFO0VBQy9FOztBQUVGO0dBQ0csa0ZBQWtGO0dBQ2xGLDBDQUEwQztFQUMzQzs7QUFFRjs7R0FFRyxvSEFBb0g7RUFDckg7O0FBRUY7R0FDRyxtRUFBbUU7RUFDcEU7O0FBRUY7R0FDRyxrRkFBa0Y7R0FDbEYsNkNBQTZDO0VBQzlDOztBQUVGOztHQUVHLFNBQVM7R0FDVCwwREFBMEQ7R0FDMUQsOENBQThDO0VBQy9DOztBQUVGOztHQUVHLGtEQUFrRDtHQUNsRCw4Q0FBOEM7RUFDL0M7O0FBRUY7O0dBRUcsbURBQW1EO0dBQ25ELDhDQUE4QztFQUMvQzs7QUFFRjs7R0FFRyxTQUFTO0dBQ1QsMERBQTBEO0dBQzFELGlEQUFpRDtFQUNsRDs7QUFFRjs7R0FFRyxrREFBa0Q7R0FDbEQsaURBQWlEO0VBQ2xEOztBQUVGOztHQUVHLG1EQUFtRDtHQUNuRCxpREFBaUQ7RUFDbEQ7O0FDbExGLHFHQUFxRzs7QUFFckc7OztFQUdFOztBQUVGO0NBQ0MsYUFBYTtDQUNiLG1CQUFtQjtDQUNuQix1QkFBdUI7QUFDeEI7O0FBRUE7O0VBRUU7O0FBRUY7Q0FDQyx1QkFBdUI7QUFDeEI7O0FBRUEsMEhBQTBIOztBQUUxSDs7O0VBR0U7O0FBRUY7Q0FDQyw4Q0FBOEM7Q0FDOUMsdURBQXVEO0NBQ3ZELGlDQUFpQzs7Q0FFakMsbURBQW1EO0FBQ3BEOztBQUVBO0VBQ0UscUNBQXFDO0VBQ3JDLG1DQUFtQztFQUNuQyxzQ0FBc0M7Q0FDdkM7O0FBRUQ7O0NBRUMsNENBQTRDO0FBQzdDOztBQUVBO0VBQ0Usd0NBQXdDOztFQUV4Qyw2RUFBNkU7RUFDN0Usb0NBQW9DO0NBQ3JDOztBQUVEOztDQUVDLHVFQUF1RTtBQUN4RTs7QUFFQTtFQUNFLGdCQUFnQjtDQUNqQjs7QUM3REQsZ0dBQWdHOztBQUVoRzs7O0VBR0U7O0FBRUY7Q0FDQyxrQkFBa0I7O0NBRWxCLDZEQUE2RDtDQUM3RCxvQ0FBb0M7QUFDckM7O0FBRUE7Q0FDQyxrQkFBa0I7QUFDbkI7O0FBRUE7Q0FDQyxVQUFVO0FBQ1g7O0FBRUE7Q0FDQyxVQUFVO0FBQ1g7O0FBRUEscUhBQXFIOztBQUVySDs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGOztFQUVFOztBQUVGOztFQUVFOztBQUVGO0NBQ0MsOENBQThDO0NBQzlDLDRDQUE0QztBQUM3Qzs7QUFFQSxxRUFBcUU7O0FBRXJFO0NBQ0Msc0NBQXNDOztDQUV0QyxnQkFBZ0I7O0NBRWhCLDRDQUE0QztDQUM1Qyw4Q0FBOEM7Q0FDOUMsc0NBQXNDOztDQUV0QyxXQUFXO0NBQ1gsWUFBWTtBQUNiOztBQUVBO0NBQ0MsMkRBQTJEO0NBQzNELHdEQUF3RDtBQUN6RDs7QUFFQTtDQUNDLHFFQUFxRTtDQUNyRSxrRUFBa0U7QUFDbkU7O0FBRUE7Q0FDQyxxRUFBcUU7Q0FDckUsa0VBQWtFO0FBQ25FOztBQUVBLG1GQUFtRjs7QUFFbkY7OztDQUdDLDZDQUE2QztBQUM5Qzs7QUN2RkEsMEdBQTBHOztBQUUxRzs7O0VBR0U7O0FBRUY7Ozs7RUFJRTs7QUFFRiwrSEFBK0g7O0FBRS9IOzs7RUFHRTs7QUFFRjtDQUNDLG9DQUFvQztDQUNwQyxtQ0FBbUM7O0NBRW5DO2lDQUNnQztDQUNoQyxtQkFBbUI7QUFDcEI7O0FBRUE7Q0FDQyxpQ0FBaUM7QUFDbEM7O0FDL0JBLG9HQUFvRzs7QUFFcEc7OztFQUdFOztBQUVGOzs7O0VBSUU7O0FBRUYseUhBQXlIOztBQUV6SDs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGOzs7O0VBSUU7O0FBRUY7OztFQUdFOztBQUVGOztFQUVFOztBQUVGOzs7RUFHRTs7QUFFRjs7RUFFRTs7QUFFRjs7RUFFRTs7QUFFRjtDQUNDLDJCQUEyQjtBQUM1Qjs7QUFFQTtDQUNDO0FBQ0Q7O0FBRUE7RUFDRTtBQUNGOztBQUVBO0NBQ0MsdUNBQXVDOztDQUV2Qyw0Q0FBNEM7Q0FDNUMsOENBQThDO0NBQzlDLDhEQUE4RDtDQUM5RCxxQ0FBcUM7O0NBRXJDLHdFQUF3RTtDQUN4RSw2Q0FBNkM7O0NBRTdDLCtEQUErRDtDQUMvRCx1Q0FBdUM7Q0FDdkM7QUFDRDs7QUFFQTtFQUNFLDRCQUE0QjtFQUM1QixhQUFhO0VBQ2IsNEJBQTRCO0VBQzVCLGdFQUFnRTtDQUNqRTs7QUFFRDtFQUNFLHVEQUF1RDtFQUN2RCxxREFBcUQ7RUFDckQ7Q0FDRDs7QUFFRDtHQUNHLGlGQUFpRjtHQUNqRix5RUFBeUU7RUFDMUU7O0FBRUY7RUFDRSxnREFBZ0Q7RUFDaEQ7Q0FDRDs7QUFFRDtHQUNHLHNFQUFzRTtFQUN2RTs7QUFFRjtDQUNDO0VBQ0MsMkJBQTJCO0NBQzVCOztDQUVBO0VBQ0MsMEJBQTBCO0NBQzNCOztDQUVBO0VBQ0MsMkJBQTJCO0NBQzVCOztDQUVBO0VBQ0MsMEJBQTBCO0NBQzNCO0FBQ0Q7O0FDNUhBLGdGQUFnRjs7QUFFaEY7OztFQUdFOztBQUVGOzs7RUFHRTs7QUFFRjtDQUNDO0FBQ0Q7O0FBRUE7RUFDRSxhQUFhO0NBQ2Q7O0FBRUQ7O0FBRUE7RUFDRTtBQUNGOztFQUVFO0dBQ0MsZ0JBQWdCO0VBQ2pCOztFQUVBO0dBQ0MsZUFBZTtFQUNoQjtDQUNEOztBQUVEOzs7RUFHRTs7QUFFRjtDQUNDLGNBQWM7QUFDZjs7QUFFQSxxR0FBcUc7O0FBRXJHOzs7RUFHRTs7QUFFRjs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGO0NBQ0M7QUFDRDs7QUFFQTtFQUNFLHlEQUF5RDtFQUN6RCxhQUFhO0NBQ2Q7O0FBRUQ7R0FDRyx1Q0FBdUM7RUFDeEM7O0FBRUY7R0FDRyx1Q0FBdUM7RUFDeEM7O0FBRUY7O0FBRUE7RUFDRSxVQUFVO0VBQ1Y7QUFDRjs7RUFFRTtHQUNDO0VBQ0Q7O0dBRUM7SUFDQyxZQUFZO0lBQ1osV0FBVztHQUNaOztFQUVEO0dBQ0MsbUNBQW1DO0dBQ25DLHNDQUFzQzs7R0FFdEMsZ0JBQWdCO0dBQ2hCLFNBQVM7R0FDVDtFQUNEOztFQUVBO0lBQ0U7RUFDRjs7SUFFRTtLQUNDLG1EQUFtRDtJQUNwRDs7RUFFRjtJQUNFO0VBQ0Y7O0lBRUU7S0FDQyxtREFBbUQ7SUFDcEQ7Q0FDSDs7QUFFRDs7O0VBR0U7O0FBRUY7Q0FDQyxVQUFVO0NBQ1Y7QUFDRDs7QUFFQTtFQUNFO0NBQ0Q7O0FBRUQ7R0FDRyxZQUFZO0dBQ1osV0FBVztFQUNaOztBQUVGO0VBQ0UsbUNBQW1DO0VBQ25DLFNBQVM7RUFDVCxnQkFBZ0I7RUFDaEIsU0FBUztFQUNULGlEQUFpRDtFQUNqRDtDQUNEOztBQUVEO0dBQ0c7Q0FDRjs7QUFFRDtJQUNJLG1EQUFtRDtHQUNwRDs7QUFFSDtHQUNHO0NBQ0Y7O0FBRUQ7SUFDSSxtREFBbUQ7R0FDcEQ7O0FBRUg7O0NBRUMsNEdBQTRHO0FBQzdHOztBQUVBO0VBQ0U7Q0FDRDs7QUFFRDtHQUNHLFNBQVM7R0FDVDtFQUNEOztBQUVGO0lBQ0ksZ0JBQWdCO0dBQ2pCOzs7QUNwTEgsbUZBQW1GOztBQUVuRjs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGO0NBQ0MsYUFBYTtDQUNiLG1CQUFtQjtDQUNuQjtBQUNEOztBQUVBO0VBQ0U7Q0FDRDs7QUFFRDtHQUNHLGdCQUFnQjtFQUNqQjs7QUFFRjs7QUFFQTtFQUNFO0FBQ0Y7O0VBRUU7R0FDQyxnQkFBZ0I7RUFDakI7O0VBRUE7R0FDQyxlQUFlO0VBQ2hCO0NBQ0Q7O0FBRUQsd0dBQXdHOztBQUV4Rzs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGOzs7RUFHRTs7QUFFRjs7RUFFRTs7QUFFRjs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGOztFQUVFOztBQUVGOzs7RUFHRTs7QUFFRjs7O0VBR0U7O0FBRUY7O0VBRUU7O0FBRUY7OztFQUdFOztBQUVGOztFQUVFOztBQUVGOztFQUVFOztBQUVGOzs7RUFHRTs7QUFFRjtDQUNDO0FBQ0Q7O0FBRUE7RUFDRSxlQUFlO0VBQ2Y7Q0FDRDs7QUFFRDs7OztHQUlHLGdCQUFnQjtFQUNqQjs7QUFFRjtHQUNHLGdCQUFnQjtFQUNqQjs7QUFFRjtJQUNJLDBCQUEwQjtHQUMzQjs7QUFFSDtHQUNHLG1DQUFtQztHQUNuQyxtQ0FBbUM7R0FDbkMsdUJBQXVCO0dBQ3ZCLGVBQWU7O0dBRWY7b0VBQ2lFO0dBQ2pFLHFDQUFxQztHQUNyQyxjQUFjO0dBQ2Q7RUFDRDs7QUFFRjtJQUNJLDBCQUEwQjtHQUMzQjs7QUFFSDtFQUNFLHlEQUF5RDtFQUN6RCxhQUFhO0NBQ2Q7O0FBRUQ7R0FDRyx1Q0FBdUM7RUFDeEM7O0FBRUY7R0FDRyx1Q0FBdUM7RUFDeEM7O0FBRUY7O0FBRUE7RUFDRSxVQUFVO0VBQ1Y7QUFDRjs7RUFFRTtHQUNDO0VBQ0Q7O0dBRUM7SUFDQyxZQUFZO0lBQ1osZUFBZTtHQUNoQjs7RUFFRDtHQUNDLG1DQUFtQztHQUNuQyxzQ0FBc0M7O0dBRXRDLGdCQUFnQjtHQUNoQixTQUFTO0dBQ1Q7RUFDRDs7RUFFQTtJQUNFO0VBQ0Y7O0lBRUU7S0FDQyxtREFBbUQ7SUFDcEQ7O0VBRUY7SUFDRTtFQUNGOztJQUVFO0tBQ0MsbURBQW1EO0lBQ3BEO0NBQ0g7O0FDMU1ELDRGQUE0Rjs7QUFFNUY7OztFQUdFOztBQUVGOzs7RUFHRTs7QUFFRjtDQUNDLGFBQWE7Q0FDYixtQkFBbUI7Q0FDbkI7QUFDRDs7QUFFQTtFQUNFLHFCQUFxQjtDQUN0Qjs7QUFFRDtFQUNFLGFBQWE7Q0FDZDs7QUFFRDs7QUFFQTtFQUNFO0FBQ0Y7O0VBRUU7R0FDQyxnQkFBZ0I7RUFDakI7O0VBRUE7R0FDQyxlQUFlO0VBQ2hCO0NBQ0Q7O0FBRUQsaUhBQWlIOztBQUVqSDs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGOzs7RUFHRTs7QUFFRjtDQUNDO0FBQ0Q7O0FBRUE7RUFDRSx5REFBeUQ7RUFDekQsYUFBYTtDQUNkOztBQUVEO0dBQ0csdUNBQXVDO0VBQ3hDOztBQUVGO0dBQ0csdUNBQXVDO0VBQ3hDOztBQUVGOztBQUVBO0VBQ0UsVUFBVTtFQUNWO0FBQ0Y7O0VBRUU7R0FDQztFQUNEOztHQUVDO0lBQ0MsWUFBWTtJQUNaLFdBQVc7R0FDWjs7RUFFRDtHQUNDLG1DQUFtQztHQUNuQyxzQ0FBc0M7O0dBRXRDLGdCQUFnQjtHQUNoQixTQUFTO0dBQ1Q7RUFDRDs7RUFFQTtJQUNFO0VBQ0Y7O0lBRUU7S0FDQyxtREFBbUQ7SUFDcEQ7O0VBRUY7SUFDRTtFQUNGOztJQUVFO0tBQ0MsbURBQW1EO0lBQ3BEO0NBQ0g7O0FDbkhELDhFQUE4RTs7QUFFOUU7OztFQUdFOztBQUVGO0NBQ0MsY0FBYztDQUNkLFdBQVc7Q0FDWCxrQkFBa0I7O0NBRWxCLDhGQUE4RjtDQUM5RjtBQUNEOztBQUVBO0VBQ0UsaUVBQWlFO0VBQ2pFLGNBQWM7O0VBRWQsdUVBQXVFO0VBQ3ZFLGNBQWM7O0VBRWQsbUdBQW1HO0VBQ25HLGVBQWU7O0VBRWYsK0dBQStHO0VBQy9HLGVBQWU7Q0FDaEI7O0FDNUJELHFGQUFxRjs7QUFFckY7OztFQUdFOztBQUVGO0NBQ0Msc0JBQXNCO0NBQ3RCLG9CQUFvQjtDQUNwQixzQkFBc0I7Q0FDdEIsc0JBQXNCO0NBQ3RCLGlDQUFpQztDQUNqQyxhQUFhO0NBQ2IsZ0JBQWdCO0NBQ2hCLG9CQUFvQjtBQUNyQjs7QUNoQkEsbUZBQW1GOztBQUVuRjs7O0VBR0U7O0FBRUY7Q0FDQywrQkFBK0I7QUFDaEM7O0FBRUE7R0FDRyxjQUFjO0VBQ2Y7O0FBRUY7RUFDRSxZQUFZO0VBQ1osMENBQTBDO0NBQzNDOztBQUVEO0VBQ0UsV0FBVztFQUNYLDJDQUEyQztDQUM1Qzs7QUFFRDtFQUNFLGlCQUFpQjtFQUNqQixrQkFBa0I7Q0FDbkI7O0FBRUQ7RUFDRSxZQUFZO0VBQ1osMENBQTBDO0NBQzNDOztBQ2pDRCxvRkFBb0Y7O0FBRXBGOzs7RUFHRTs7QUFFRjtDQUNDLGVBQWU7Q0FDZjs7OztFQUlDO0NBQ0QsY0FBYztDQUNkO0FBQ0Q7O0FBRUE7RUFDRSwwRUFBMEU7RUFDMUUsV0FBVztDQUNaOztBQUVEO0VBQ0UsMERBQTBEO0VBQzFELGNBQWM7Q0FDZjs7QUMxQkQsNEZBQTRGOztBQUU1Rjs7O0VBR0U7O0FBRUY7Q0FDQyxrQkFBa0I7QUFDbkI7O0FBRUEseUJBQXlCOztBQUV6QjtDQUNDLGtCQUFrQjtDQUNsQixNQUFNO0NBQ04sT0FBTztBQUNSOztBQUVBLGlIQUFpSDs7QUFFakg7OztFQUdFOztBQUVGO0NBQ0MsdUJBQXVCO0FBQ3hCOztBQUVBO0VBQ0UsdUJBQXVCO0NBQ3hCOztBQUVELHlCQUF5Qjs7QUFFekI7Q0FDQyxXQUFXO0NBQ1gsUUFBUTtDQUNSLGlEQUFpRDtDQUNqRCx1QkFBdUI7QUFDeEI7O0FBRUE7Q0FDQyxPQUFPLFVBQVUsRUFBRTtDQUNuQixPQUFPLFVBQVUsRUFBRTtBQUNwQjs7QUM5Q0Esd0ZBQXdGOztBQUV4Rjs7O0VBR0U7O0FBRUY7Q0FDQyxjQUFjO0NBQ2Qsa0JBQWtCO0NBQ2xCLFNBQVM7Q0FDVCxXQUFXO0NBQ1g7QUFDRDs7QUFFQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7Q0FDbkI7O0FBRUQsNkdBQTZHOztBQUU3Rzs7O0VBR0U7O0FBRUY7Q0FDQyw4Q0FBOEM7Q0FDOUMsNERBQTREOztDQUU1RCxpQ0FBaUM7Q0FDakMsaUNBQWlDO0FBQ2xDOztBQUVBO0NBQ0MsdUNBQXVDO0NBQ3ZDLHdDQUF3QztDQUN4QyxVQUFVO0NBQ1Ysd0RBQXdEO0NBQ3hELDBFQUEwRTtDQUMxRSx1Q0FBdUM7Q0FDdkMsZ0NBQWdDOztDQUVoQyxnQ0FBZ0M7Q0FDaEMsMkNBQTJDOztDQUUzQyxnREFBZ0Q7Q0FDaEQsMkJBQTJCOztDQUUzQiw2RUFBNkU7QUFDOUU7O0FBRUE7RUFDRSwyRUFBMkU7RUFDM0UsU0FBUzs7RUFFVCxRQUFRO0VBQ1IsVUFBVTtFQUNWLFNBQVM7RUFDVCxRQUFROztFQUVSLG9DQUFvQztFQUNwQywwQkFBMEI7RUFDMUIscUZBQXFGO0VBQ3JGLHVGQUF1Rjs7RUFFdkYsNkNBQTZDO0VBQzdDLHlCQUF5QjtFQUN6QixzQkFBc0I7RUFDdEIsNkJBQTZCOztFQUU3QixvR0FBb0c7RUFDcEcsc0JBQXNCO0NBQ3ZCOztBQUVEO0NBQ0M7RUFDQyxVQUFVO0NBQ1g7O0NBRUE7RUFDQyxVQUFVO0NBQ1g7QUFDRDs7QUFFQTtDQUNDO0VBQ0MsVUFBVTtDQUNYOztDQUVBO0VBQ0MsVUFBVTtDQUNYO0FBQ0Q7O0FBRUE7Q0FDQztFQUNDLFVBQVU7RUFDVixRQUFRO0VBQ1IsU0FBUztDQUNWO0NBQ0E7RUFDQyxZQUFZO0VBQ1osU0FBUztDQUNWO0NBQ0E7RUFDQyxVQUFVO0VBQ1YsWUFBWTtFQUNaLGNBQWM7Q0FDZjtBQUNEOztBQy9HQSwwRkFBMEY7O0FBRTFGOzs7RUFHRTs7QUFFRjtDQUNDLGtCQUFrQjtDQUNsQixhQUFhO0NBQ2IsbUJBQW1CO0NBQ25CLHVCQUF1QjtDQUN2QixNQUFNO0NBQ047QUFDRDs7QUFFQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7Q0FDbkI7O0FBRUQsK0dBQStHOztBQUUvRzs7O0VBR0U7O0FBRUY7Q0FDQyxxREFBcUQ7Q0FDckQseUNBQXlDO0FBQzFDOztBQUVBO0NBQ0Msa0VBQWtFO0NBQ2xFLFdBQVc7Q0FDWCxTQUFTO0FBQ1Y7O0FBRUE7Q0FDQyxXQUFXO0NBQ1g7QUFDRDs7QUFFQTtFQUNFLCtDQUErQztFQUMvQyxnREFBZ0Q7RUFDaEQsa0JBQWtCO0VBQ2xCLCtEQUErRDtFQUMvRCxtQ0FBbUM7RUFDbkMsMERBQTBEO0NBQzNEOztBQUVEO0NBQ0M7RUFDQywyQkFBMkI7Q0FDNUI7QUFDRDs7QUN6REEsZ0dBQWdHOztBQUVoRzs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGOzs7RUFHRTs7QUFFRjs7RUFFRTs7QUFFRjs7O0VBR0U7O0FBRUY7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCO0NBQ0Q7O0FBRUQ7RUFDRSxhQUFhOztFQUViOzs7Ozs7Ozs7Ozs7Ozs7SUFlRTtDQUNIOztBQUVEOztBQUVBO0dBQ0c7Q0FDRjtFQUNDOztBQUVGOztHQUVHLHFFQUFxRTtHQUNyRSxlQUFlOztHQUVmO0VBQ0Q7O0FBRUY7RUFDRSxtQkFBbUI7RUFDbkIsVUFBVTtDQUNYOztBQUVEO0lBQ0ksZ0JBQWdCO0lBQ2hCLGNBQWM7R0FDZjs7QUFFSDtHQUNHLGFBQWE7RUFDZDs7QUFFRjtnRUFDZ0U7O0FBRWhFO0NBQ0Msb0JBQW9CO0FBQ3JCOztBQUVBO2dFQUNnRTs7QUFFaEU7Q0FDQyxvQkFBb0I7QUFDckI7O0FBRUEscUhBQXFIOztBQUVySDs7O0VBR0U7O0FBRUY7Q0FDQywyQ0FBMkM7O0NBRTNDLDREQUE0RDtDQUM1RCw0RUFBNEU7QUFDN0U7O0FBRUE7Q0FDQztBQUNEOztBQUVBO0VBQ0UsK0NBQStDO0VBQy9DO0NBQ0Q7O0FBRUQ7R0FDRyxzREFBc0Q7R0FDdEQsbURBQW1EO0dBQ25ELHNDQUFzQztHQUN0QywyQkFBMkI7R0FDM0I7RUFDRDs7QUFFRjtJQUNJLFdBQVc7SUFDWCxZQUFZO0dBQ2I7O0FBRUg7SUFDSSx1REFBdUQ7SUFDdkQsbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEI7R0FDRDs7QUFFSDtLQUNLLDZEQUE2RDtLQUM3RCxlQUFlO0tBQ2YsMEJBQTBCO0lBQzNCOztBQUVKO0VBQ0UsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtDQUNsQjs7QUFFRDtHQUNHLHNGQUFzRjtHQUN0RjtFQUNEOztBQUVGO0lBQ0ksNnpDQUE2ekM7R0FDOXpDOztBQUVIO0lBQ0k7R0FDRDs7QUFFSDtLQUNLLHVCQUF1QjtJQUN4Qjs7QUFFSjtHQUNHLGl3R0FBaXdHO0VBQ2x3Rzs7QUFFRjtHQUNHO0VBQ0Q7O0FBRUY7SUFDSSx5d0NBQXl3QztHQUMxd0M7O0FBRUg7SUFDSTtHQUNEOztBQUVIO0tBQ0ssdUJBQXVCO0lBQ3hCOztBQUVKO0dBQ0c7RUFDRDs7QUFFRjtJQUNJLHkySkFBeTJKO0dBQzEySjs7QUFFSDtJQUNJO0dBQ0Q7O0FBRUg7S0FDSyx1QkFBdUI7SUFDeEI7O0FDMU1KLHdGQUF3Rjs7QUFFeEY7OztFQUdFOztBQUVGOzs7RUFHRTs7QUFFRjtDQUNDLGFBQWE7Q0FDYix1QkFBdUI7Q0FDdkIsbUJBQW1CO0NBQ25CO0FBQ0Q7O0FBRUE7RUFDRSxxQkFBcUI7Q0FDdEI7O0FBRUQ7RUFDRSxhQUFhO0NBQ2Q7O0FBRUQ7O0FBRUE7RUFDRTtBQUNGOztFQUVFO0dBQ0MsZ0JBQWdCO0VBQ2pCOztFQUVBO0dBQ0MsZUFBZTtFQUNoQjtDQUNEOztBQUVELDZHQUE2Rzs7QUFFN0c7OztFQUdFOztBQUVGOzs7RUFHRTs7QUFFRjs7O0VBR0U7O0FBRUY7Q0FDQztBQUNEOztBQUVBO0VBQ0UsYUFBYTtDQUNkOztBQUVEO0dBQ0csdUNBQXVDO0VBQ3hDOztBQUVGO0dBQ0csdUNBQXVDO0VBQ3hDOztBQUVGOztBQUVBO0VBQ0UsVUFBVTtFQUNWO0FBQ0Y7O0VBRUU7R0FDQztFQUNEOztHQUVDO0lBQ0MsWUFBWTtJQUNaLFdBQVc7R0FDWjs7RUFFRDs7R0FFQyx5REFBeUQ7RUFDMUQ7R0FDQztJQUNDLG1CQUFtQjtHQUNwQjs7RUFFRDtHQUNDLG1DQUFtQztHQUNuQyxzQ0FBc0M7O0dBRXRDLGdCQUFnQjtHQUNoQixTQUFTO0dBQ1Q7RUFDRDs7RUFFQTtJQUNFO0VBQ0Y7O0lBRUU7S0FDQyxtREFBbUQ7SUFDcEQ7O0VBRUY7SUFDRTtFQUNGOztJQUVFO0tBQ0MsbURBQW1EO0lBQ3BEO0NBQ0g7O0FDM0hELHlGQUF5Rjs7QUFFekY7OztFQUdFOztBQUVGO0NBQ0M7OERBQzZEO0NBQzdELFdBQVc7O0NBRVgscUVBQXFFO0NBQ3JFLGFBQWE7O0NBRWI7MERBQ3lEO0NBQ3pELGNBQWM7O0NBRWQ7bUVBQ2tFO0NBQ2xFLGVBQWU7QUFDaEI7O0FDdEJBLHFGQUFxRjs7QUFFckY7OztFQUdFOztBQUVGOzs7O0VBSUU7O0FBRUYsMEdBQTBHOztBQUUxRzs7O0VBR0U7O0FBRUY7Q0FDQyw0REFBNEQ7QUFDN0Q7O0FBRUE7R0FDRywyREFBMkQ7R0FDM0QseURBQXlEOztHQUV6RDs7K0RBRTREO0dBQzVELGtCQUFrQjtHQUNsQiwrQ0FBK0M7R0FDL0Msb0JBQW9CLEVBQUUsNENBQTRDO0VBQ25FOztBQ2xDRixvRkFBb0Y7O0FBRXBGOzs7RUFHRTs7QUFFRjtDQUNDLHdDQUF3QztDQUN4QywyQ0FBMkM7Q0FDM0MsMENBQTBDO0NBQzFDLDBDQUEwQztDQUMxQyw0REFBNEQ7Q0FDNUQsc0VBQXNFO0NBQ3RFLHFFQUFxRTtBQUN0RTs7QUFFQTtDQUNDLGFBQWE7Q0FDYixtQkFBbUI7Q0FDbkIsZUFBZTtDQUNmLDJGQUEyRjtDQUMzRiwySkFBMko7Q0FDM0osMEZBQTBGO0FBQzNGOztBQUVBO0NBQ0Msa0JBQWtCO0FBQ25COztBQUVBO0NBQ0MsZ0RBQWdEO0NBQ2hELGtEQUFrRDtDQUNsRCxrREFBa0Q7Q0FDbEQsa0VBQWtFO0NBQ2xFO0FBQ0Q7O0FBRUE7RUFDRSxxRUFBcUU7RUFDckUsaUVBQWlFO0NBQ2xFOzs7QUN6Q0QsOEVBQThFOztBQUU5RTs7O0VBR0U7O0FBRUY7Q0FDQyw4REFBOEQ7Q0FDOUQsZ0JBQWdCO0NBQ2hCO0FBQ0Q7O0FBRUE7RUFDRSwrQ0FBK0M7RUFDL0MseUJBQXlCO0VBQ3pCLGlCQUFpQjs7RUFFakI7bUVBQ2lFO0VBQ2pFO0NBQ0Q7O0FBRUQ7O0dBRUcsY0FBYztHQUNkLGFBQWE7R0FDYiw2QkFBNkI7RUFDOUI7O0FBRUY7R0FDRyxpQkFBaUI7R0FDakIsMkJBQTJCO0VBQzVCOztBQ2pDRix5RkFBeUY7O0FBRXpGOzs7RUFHRTs7QUFFRjtDQUNDLFlBQVk7Q0FDWixnQkFBZ0I7O0NBRWhCLGdFQUFnRTtDQUNoRSxvQkFBb0I7Q0FDcEIsbUJBQW1COztDQUVuQixjQUFjO0NBQ2QsZUFBZTtDQUNmLGtCQUFrQjtDQUNsQixzQ0FBc0M7QUFDdkM7O0FBRUE7Q0FDQyxjQUFjO0NBQ2QsdUNBQXVDO0FBQ3hDOztBQ3hCQSxvR0FBb0c7O0FBRXBHOzs7RUFHRTs7QUFFRjtDQUNDLGFBQWE7QUFDZDs7QUFFQSx5SEFBeUg7O0FBRXpIOzs7RUFHRTs7QUFFRjs7O0VBR0U7O0FBRUY7Ozs7RUFJRTs7QUFFRjtDQUNDLCtCQUErQjtBQUNoQzs7QUFFQTtDQUNDLGdEQUFnRDtDQUNoRCxtQ0FBbUM7QUFDcEM7O0FBRUE7Q0FDQztBQUNEOztBQUVBO0VBQ0U7QUFDRjs7QUFFQTs7Q0FFQyxxQ0FBcUM7Q0FDckMsc0NBQXNDO0NBQ3RDLHlDQUF5QztDQUN6QywwQ0FBMEM7Q0FDMUMsVUFBVTtDQUNWLGlDQUFpQztDQUNqQztBQUNEOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGlCQUFpQjtDQUNsQjs7QUFFRDtFQUNFLGlEQUFpRDtDQUNsRDs7QUFFRDtFQUNFLGFBQWE7Q0FDZDs7QUFFRDtFQUNFO0NBQ0Q7O0FBRUQ7R0FDRyxjQUFjO0VBQ2Y7O0FBRUY7RUFDRSxrREFBa0Q7Q0FDbkQ7O0FBRUQ7Q0FDQyxxQ0FBcUM7QUFDdEM7O0FDcEZBLGlGQUFpRjs7QUFFakY7OztFQUdFOztBQUVGO0NBQ0MsYUFBYTtDQUNiLG1CQUFtQjtDQUNuQixXQUFXO0FBQ1o7O0FBRUE7Q0FDQyxrQkFBa0I7QUFDbkI7O0FBRUEsc0dBQXNHOztBQUV0Rzs7O0VBR0U7O0FBRUY7OztFQUdFOztBQUVGO0NBQ0Msb0RBQW9EO0NBQ3BELHlFQUF5RTtDQUN6RSw0QkFBNEI7Q0FDNUI7QUFDRDs7QUFFQTtHQUNHO0NBQ0Y7O0FBRUQ7R0FDRztDQUNGOztBQzFDRCxnRkFBZ0Y7O0FBRWhGOzs7RUFHRTs7QUFFRjtDQUNDLGVBQWU7QUFDaEI7O0FBRUE7Q0FDQyxnQkFBZ0I7QUFDakI7O0FBRUE7Q0FDQyxnQkFBZ0I7QUFDakI7O0FBRUE7Q0FDQyxnQkFBZ0I7QUFDakI7O0FDckJBLHlEQUF5RDtBQUN6RCxPQUFPLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLFNBQVMscUJBQXFCLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLGtHQUFrRyxDQUFDLG1CQUFtQixDQUFDLGlRQUFpUSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLDJCQUEyQixpQkFBaUIsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLDROQUE0TixDQUFDLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQywyQkFBMkIsZUFBZSxDQUFDLDBCQUEwQixpQkFBaUIsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDLDJCQUEyQixDQUFDLG1CQUFtQixDQUFDLHlCQUF5QixtQkFBbUIsQ0FBQyxpQ0FBaUMsU0FBUyxDQUFDLCtCQUErQixxRUFBcUUsQ0FBQyw0QkFBNEIsa0JBQWtCLENBQUMsb0JBQW9CLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsd0xBQXdMLHFFQUFxRSxDQUFDLGtGQUFrRix5QkFBeUIsQ0FBQywwR0FBMEcsb0VBQW9FLENBQUMsU0FBUyxjQUFjLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLHdDQUF3QyxDQUFDLGtHQUFrRyxDQUFDLG1FQUFtRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsWUFBWSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxnQ0FBZ0MsUUFBUSxDQUFDLHlCQUF5Qix1QkFBdUIsWUFBWSxDQUFDLGtCQUFrQixDQUFDLDhDQUE4QyxDQUFDLENBQUMsOEJBQThCLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBQyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLHNDQUFzQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLDROQUE0TixDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxxQ0FBcUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxnQ0FBZ0MsQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FBQyxvQ0FBb0MsdUJBQXVCLENBQUMsK0NBQStDLGVBQWUsQ0FBQywwQkFBMEIsWUFBWSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQyw0QkFBNEIsYUFBYSxDQUFDLGdDQUFnQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxzQ0FBc0Msd0JBQXdCLENBQUMsc0NBQXNDLHlFQUF5RSxDQUFDLHNDQUFzQyxhQUFhLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFxRixpREFBaUQsa0JBQWtCLENBQUMsVUFBVSxDQUFDLDJDQUEyQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsK0dBQStHLFVBQVUsQ0FBQyxVQUFVLENBQUMsK0dBQStHLFVBQVUsQ0FBQyxpSUFBaUksd0JBQXdCLENBQUMsb0NBQW9DLGtCQUFrQixDQUFDLDJFQUEyRSxrQkFBa0IsQ0FBQyx1RkFBdUYsd0VBQXdFLENBQUMsb0NBQW9DLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsd0JBQXdCLENBQXVCLGdCQUFnQixDQUFDLGlJQUFpSSxpQkFBaUIsQ0FBQyx3QkFBd0IsQ0FBdUIsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxzSkFBc0osZUFBZSxDQUFDLHVCQUF1QixDQUFDLDZCQUE2QixZQUFZLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyw0Q0FBNEMsWUFBWSxDQUFDLDZCQUE2QixDQUFDLFdBQVcsQ0FBQywrREFBK0QsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsNkJBQTZCLENBQUMsa0JBQWtCLENBQUMsdUVBQXVFLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsNE5BQTROLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLCtFQUErRSxjQUFjLENBQUMsNkJBQTZCLENBQUMsU0FBUyxDQUFDLGtGQUFrRiw2QkFBNkIsQ0FBQyxpS0FBaUssMkJBQTJCLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQywrREFBK0QsVUFBVSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsNEVBQTRFLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxvRkFBb0YsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyw0TkFBNE4sQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsOEhBQThILGlCQUFpQixDQUFDLHNKQUFzSixRQUFRLENBQUMsMEJBQTBCLENBQUMsc0pBQXNKLFNBQVMsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsMkVBQTJFLG1MQUFtTCxDQUFDLDJFQUEyRSwyUUFBMlEsQ0FBQyx3QkFBd0IiLCJmaWxlIjoidmVuZG9yc35hcHB+YXBwbGljYXRpb25+Z3Vlc3R+cGF5bWVudH5wcm9maWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcZ2xvYmFsc1xcZ2xvYmFscy5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSBjbGFzcyB3aGljaCBoaWRlcyBhbiBlbGVtZW50IGluIERPTS5cbiAqL1xuXG4uY2staGlkZGVuIHtcblx0LyogT3ZlcnJpZGUgc2VsZWN0b3Igc3BlY2lmaWNpdHkuIE90aGVyd2lzZSwgYWxsIGVsZW1lbnRzIHdpdGggc29tZSBkaXNwbGF5XG5cdHN0eWxlIGRlZmluZWQgd2lsbCBvdmVycmlkZSB0aGlzIG9uZSwgd2hpY2ggaXMgbm90IGEgZGVzaXJlZCByZXN1bHQuICovXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2suY2stcmVzZXQsXG4uY2suY2stcmVzZXRfYWxsLFxuLmNrLmNrLXJlc2V0X2FsbCAqIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0d2lkdGg6IGF1dG87XG5cdGhlaWdodDogYXV0bztcblx0cG9zaXRpb246IHN0YXRpYztcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stei1kZWZhdWx0OiAxO1xuXHQtLWNrLXotbW9kYWw6IGNhbGMoIHZhcigtLWNrLXotZGVmYXVsdCkgKyA5OTkgKTtcbn1cblxuLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS11aVxcZ2xvYmFsc1xcZ2xvYmFscy5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDk4JSk7XG5cdC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCAxMDAlKTtcblx0LS1jay1jb2xvci1iYXNlLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA3NyUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYWN0aW9uOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTA0LCA0NCUsIDQ4JSk7XG5cdC0tY2stY29sb3ItYmFzZS1mb2N1czogXHRcdFx0XHRcdFx0XHRcdFx0XHRoc2woMjA5LCA5MiUsIDcwJSk7XG5cdC0tY2stY29sb3ItYmFzZS10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgMjAlKTtcblx0LS1jay1jb2xvci1iYXNlLWFjdGl2ZTogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIwOCwgODglLCA1MiUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYWN0aXZlLWZvY3VzOlx0XHRcdFx0XHRcdFx0XHRoc2woMjA4LCA4OCUsIDQ3JSk7XG5cdC0tY2stY29sb3ItYmFzZS1lcnJvcjpcdFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgxNSwgMTAwJSwgNDMlKTtcblxuXHQvKiAtLSBHZW5lcmljIGNvbG9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIwOCwgOTAlLCA2MiUpO1xuXHQtLWNrLWNvbG9yLWZvY3VzLXNoYWRvdzpcdFx0XHRcdFx0XHRcdFx0XHRoc2xhKDIwOSwgOTAlLCA3MiUsLjUpO1xuXHQtLWNrLWNvbG9yLWZvY3VzLWRpc2FibGVkLXNoYWRvdzpcdFx0XHRcdFx0XHRcdGhzbGEoMjA5LCA5MCUsIDcyJSwuMyk7XG5cdC0tY2stY29sb3ItZm9jdXMtZXJyb3Itc2hhZG93Olx0XHRcdFx0XHRcdFx0XHRoc2xhKDksMTAwJSw1NiUsLjMpO1xuXHQtLWNrLWNvbG9yLXRleHQ6IFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHQtLWNrLWNvbG9yLXNoYWRvdy1kcm9wOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2xhKDAsIDAlLCAwJSwgMC4xNSk7XG5cdC0tY2stY29sb3Itc2hhZG93LWRyb3AtYWN0aXZlOlx0XHRcdFx0XHRcdFx0XHRoc2xhKDAsIDAlLCAwJSwgMC4yKTtcblx0LS1jay1jb2xvci1zaGFkb3ctaW5uZXI6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjEpO1xuXG5cdC8qIC0tIEJ1dHRvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0dHJhbnNwYXJlbnQ7XG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtaG92ZXItYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMCwgMCUsIDkwJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWJhY2tncm91bmQ6IFx0XHRcdFx0aHNsKDAsIDAlLCA4NSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1zaGFkb3c6IFx0XHRcdFx0XHRoc2woMCwgMCUsIDc1JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtZGlzYWJsZWQtYmFja2dyb3VuZDogXHRcdFx0XHR0cmFuc3BhcmVudDtcblxuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgODclKTtcblx0LS1jay1jb2xvci1idXR0b24tb24taG92ZXItYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA3NyUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1hY3RpdmUtYmFja2dyb3VuZDogXHRcdFx0XHRcdGhzbCgwLCAwJSwgNzMlKTtcblx0LS1jay1jb2xvci1idXR0b24tb24tYWN0aXZlLXNoYWRvdzogXHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA2MyUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0aHNsKDAsIDAlLCA4NyUpO1xuXG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWFjdGlvbik7XG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0aHNsKDEwNCwgNDQlLCA0MyUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYWN0aXZlLWJhY2tncm91bmQ6IFx0XHRcdFx0aHNsKDEwNCwgNDQlLCA0MSUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYWN0aXZlLXNoYWRvdzogXHRcdFx0XHRcdGhzbCgxMDQsIDQ0JSwgMzYlKTtcblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLWRpc2FibGVkLWJhY2tncm91bmQ6IFx0XHRcdFx0aHNsKDEwNCwgNDQlLCA1OCUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tdGV4dDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0LS1jay1jb2xvci1idXR0b24tc2F2ZTogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDEyMCwgMTAwJSwgMjclKTtcblx0LS1jay1jb2xvci1idXR0b24tY2FuY2VsOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTUsIDEwMCUsIDQzJSk7XG5cblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1iYWNrZ3JvdW5kOlx0XHRcdFx0XHRoc2woMCwgMCUsIDY5JSk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vZmYtaG92ZXItYmFja2dyb3VuZDpcdFx0XHRcdGhzbCgwLCAwJSwgNjQlKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9uLWJhY2tncm91bmQ6XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9uLWhvdmVyLWJhY2tncm91bmQ6XHRcdFx0XHRoc2woMTA0LCA0NCUsIDQzJSk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1iYWNrZ3JvdW5kOlx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24taW5uZXItc2hhZG93Olx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjEpO1xuXG5cdC8qIC0tIERyb3Bkb3duIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIC0tIElucHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItaW5wdXQtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItaW5wdXQtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDc4JSk7XG5cdC0tY2stY29sb3ItaW5wdXQtZXJyb3ItYm9yZGVyOlx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcblx0LS1jay1jb2xvci1pbnB1dC10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA5NSUpO1xuXHQtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDc4JSk7XG5cdC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtdGV4dDogXHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDM2JSk7XG5cblx0LyogLS0gTGlzdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1saXN0LWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQ6IFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWFjdGl2ZSk7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZC1mb2N1czogXHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWFjdGl2ZS1mb2N1cyk7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tdGV4dDpcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHQvKiAtLSBQYW5lbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIC0tIFRvb2xiYXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItdG9vbGJhci1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kKTtcblx0LS1jay1jb2xvci10b29sYmFyLWJvcmRlcjogXHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXG5cdC8qIC0tIFRvb2x0aXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItdG9vbHRpcC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0LS1jay1jb2xvci10b29sdGlwLXRleHQ6IFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cblx0LyogLS0gRW5naW5lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1lbmdpbmUtcGxhY2Vob2xkZXItdGV4dDogXHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA0NCUpO1xuXG5cdC8qIC0tIFVwbG9hZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItdXBsb2FkLWJhci1iYWNrZ3JvdW5kOlx0XHQgXHRcdFx0XHRcdGhzbCgyMDksIDkyJSwgNzAlKTtcblxuXHQvKiAtLSBMaW5rIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1saW5rLWRlZmF1bHQ6XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDI0MCwgMTAwJSwgNDclKTtcblx0LS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdGhzbGEoMjAxLCAxMDAlLCA1NiUsIDAuMSk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQvKipcblx0ICogQW4gb3BhY2l0eSB2YWx1ZSBvZiBkaXNhYmxlZCBVSSBpdGVtLlxuXHQgKi9cblx0LS1jay1kaXNhYmxlZC1vcGFjaXR5OiAuNTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG46cm9vdCB7XG5cdC8qKlxuXHQgKiBUaGUgZ2VvbWV0cnkgb2YgdGhlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdy5cblx0ICovXG5cdC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5OiAwIDAgMCAzcHg7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdy5cblx0ICovXG5cdC0tY2stZm9jdXMtb3V0ZXItc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnkpIHZhcigtLWNrLWNvbG9yLWZvY3VzLXNoYWRvdyk7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdyAod2hlbiBkaXNhYmxlZCkuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLWRpc2FibGVkLW91dGVyLXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5KSB2YXIoLS1jay1jb2xvci1mb2N1cy1kaXNhYmxlZC1zaGFkb3cpO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBvdXRlciBzaGFkb3cgKHdoZW4gaGFzIGVycm9ycykuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLWVycm9yLW91dGVyLXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5KSB2YXIoLS1jay1jb2xvci1mb2N1cy1lcnJvci1zaGFkb3cpO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIgb3Igb3V0bGluZS5cblx0ICovXG5cdC0tY2stZm9jdXMtcmluZzogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWZvbnQtc2l6ZS1iYXNlOiAxM3B4O1xuXHQtLWNrLWxpbmUtaGVpZ2h0LWJhc2U6IDEuODQ2MTU7XG5cdC0tY2stZm9udC1mYWNlOiBIZWx2ZXRpY2EsIEFyaWFsLCBUYWhvbWEsIFZlcmRhbmEsIFNhbnMtU2VyaWY7XG5cblx0LS1jay1mb250LXNpemUtdGlueTogMC43ZW07XG5cdC0tY2stZm9udC1zaXplLXNtYWxsOiAwLjc1ZW07XG5cdC0tY2stZm9udC1zaXplLW5vcm1hbDogMWVtO1xuXHQtLWNrLWZvbnQtc2l6ZS1iaWc6IDEuNGVtO1xuXHQtLWNrLWZvbnQtc2l6ZS1sYXJnZTogMS44ZW07XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQvKiBUaGlzIGlzIHN1cGVyLWltcG9ydGFudC4gVGhpcyBpcyAqKm1hbnVhbGx5KiogYWRqdXN0ZWQgc28gYSBidXR0b24gd2l0aG91dCBhbiBpY29uXG5cdGlzIG5ldmVyIHNtYWxsZXIgdGhhbiBhIGJ1dHRvbiB3aXRoIGljb24sIGFkZGl0aW9uYWxseSBtYWtpbmcgc3VyZSB0aGF0IHRleHQtbGVzcyBidXR0b25zXG5cdGFyZSBwZXJmZWN0IHNxdWFyZXMuIFRoZSB2YWx1ZSBpcyBhbHNvIHNoYXJlZCBieSBvdGhlciBjb21wb25lbnRzIHdoaWNoIHNob3VsZCBzdGF5IFwiaW4tbGluZVwiXG5cdHdpdGggYnV0dG9ucy4gKi9cblx0LS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodDogMi4zZW07XG59XG5cbi8qKlxuICogUmVzZXRzIGFuIGVsZW1lbnQsIGlnbm9yaW5nIGl0cyBjaGlsZHJlbi5cbiAqL1xuXG4uY2suY2stcmVzZXQsXG4uY2suY2stcmVzZXRfYWxsLFxuLmNrLmNrLXJlc2V0X2FsbCAqIHtcblx0LyogRG8gbm90IGluY2x1ZGUgaW5oZXJpdGFibGUgcnVsZXMgaGVyZS4gKi9cblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IDA7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHRyYW5zaXRpb246IG5vbmU7XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xMDUgKi9cblx0d29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4vKipcbiAqIFJlc2V0cyBhbiBlbGVtZW50IEFORCBpdHMgY2hpbGRyZW4uXG4gKi9cblxuLmNrLmNrLXJlc2V0X2FsbCxcbi5jay5jay1yZXNldF9hbGwgKiB7XG5cdC8qIFRoZXNlIGFyZSBydWxlIGluaGVyaXRlZCBieSBhbGwgY2hpbGRyZW4gZWxlbWVudHMuICovXG5cdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKS92YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKSB2YXIoLS1jay1mb250LWZhY2UpO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdGN1cnNvcjogYXV0bztcblx0ZmxvYXQ6IG5vbmU7XG59XG5cbi5jay5jay1yZXNldF9hbGwgLmNrLXJ0bCAqIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuXG4uY2suY2stcmVzZXRfYWxsIGlmcmFtZSB7XG5cdFx0LyogRm9yIElFICovXG5cdFx0dmVydGljYWwtYWxpZ246IGluaGVyaXQ7XG5cdH1cblxuLmNrLmNrLXJlc2V0X2FsbCB0ZXh0YXJlYSB7XG5cdFx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xuXHR9XG5cbi5jay5jay1yZXNldF9hbGwgdGV4dGFyZWEsXG5cdC5jay5jay1yZXNldF9hbGwgaW5wdXRbdHlwZT1cInRleHRcIl0sXG5cdC5jay5jay1yZXNldF9hbGwgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdH1cblxuLmNrLmNrLXJlc2V0X2FsbCB0ZXh0YXJlYVtkaXNhYmxlZF0sXG5cdC5jay5jay1yZXNldF9hbGwgaW5wdXRbdHlwZT1cInRleHRcIl1bZGlzYWJsZWRdLFxuXHQuY2suY2stcmVzZXRfYWxsIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXVtkaXNhYmxlZF0ge1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0fVxuXG4uY2suY2stcmVzZXRfYWxsIGZpZWxkc2V0IHtcblx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdGJvcmRlcjogMnB4IGdyb292ZSBoc2woMjU1LCA3JSwgODglKTtcblx0fVxuXG4uY2suY2stcmVzZXRfYWxsIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG5cdFx0LyogU2VlIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTUxNzc0NC9yZW1vdmUtZXh0cmEtYnV0dG9uLXNwYWNpbmctcGFkZGluZy1pbi1maXJlZm94ICovXG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDBcblx0fVxuXG4vKipcbiAqIERlZmF1bHQgVUkgcnVsZXMgZm9yIFJUTCBsYW5ndWFnZXMuXG4gKi9cblxuLmNrW2Rpcj1cInJ0bFwiXSxcbi5ja1tkaXI9XCJydGxcIl0gLmNrIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBEZWZhdWx0IGJvcmRlci1yYWRpdXMgdmFsdWUuXG4gKi9cblxuOnJvb3R7XG5cdC0tY2stYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbjpyb290IHtcblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGVsZW1lbnQncyBpbm5lciBzaGFkb3cgKGkuZS4gaW5wdXQpLlxuXHQgKi9cblx0LS1jay1pbm5lci1zaGFkb3c6IDJweCAycHggM3B4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1pbm5lcikgaW5zZXQ7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGVsZW1lbnQncyBkcm9wIHNoYWRvdyAoaS5lLiBwYW5lbCkuXG5cdCAqL1xuXHQtLWNrLWRyb3Atc2hhZG93OiAwIDFweCAycHggMXB4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1kcm9wKTtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZWxlbWVudCdzIGFjdGl2ZSBzaGFkb3cgKGkuZS4gY29tbWVudCBvciBzdWdnZXN0aW9uKS5cblx0ICovXG5cdC0tY2stZHJvcC1zaGFkb3ctYWN0aXZlOiAwIDNweCA2cHggMXB4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1kcm9wLWFjdGl2ZSk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXNwYWNpbmctdW5pdDogXHRcdFx0XHRcdFx0MC42ZW07XG5cdC0tY2stc3BhY2luZy1sYXJnZTogXHRcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDEuNSk7XG5cdC0tY2stc3BhY2luZy1zdGFuZGFyZDogXHRcdFx0XHRcdHZhcigtLWNrLXNwYWNpbmctdW5pdCk7XG5cdC0tY2stc3BhY2luZy1tZWRpdW06IFx0XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjgpO1xuXHQtLWNrLXNwYWNpbmctc21hbGw6IFx0XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjUpO1xuXHQtLWNrLXNwYWNpbmctdGlueTogXHRcdFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC4zKTtcblx0LS1jay1zcGFjaW5nLWV4dHJhLXRpbnk6IFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC4xNik7XG59XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXGljb25cXGljb24uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLWljb24ge1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFxpY29uXFxpY29uLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbjpyb290IHtcblx0LS1jay1pY29uLXNpemU6IGNhbGModmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSkgKiB2YXIoLS1jay1mb250LXNpemUtbm9ybWFsKSk7XG59XG5cbi5jay5jay1pY29uIHtcblx0d2lkdGg6IHZhcigtLWNrLWljb24tc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2staWNvbi1zaXplKTtcblxuXHQvKiBNdWx0aXBsaWVkIGJ5IHRoZSBoZWlnaHQgb2YgdGhlIGxpbmUgaW4gXCJweFwiIHNob3VsZCBnaXZlIFNWRyBcInZpZXdwb3J0XCIgZGltZW5zaW9ucyAqL1xuXHRmb250LXNpemU6IC44MzMzMzUwNjk0ZW07XG5cblx0Y29sb3I6IGluaGVyaXQ7XG5cblx0LyogSW5oZXJpdCBjdXJzb3Igc3R5bGUgKCM1KS4gKi9cblx0Y3Vyc29yOiBpbmhlcml0O1xuXG5cdC8qIFRoaXMgd2lsbCBwcmV2ZW50IGJsdXJyeSBpY29ucyBvbiBGaXJlZm94LiBTZWUgIzM0MC4gKi9cblx0d2lsbC1jaGFuZ2U6IHRyYW5zZm9ybVxufVxuXG4uY2suY2staWNvbiAqIHtcblx0XHQvKiBJbmhlcml0IGN1cnNvciBzdHlsZSAoIzUpLiAqL1xuXHRcdGN1cnNvcjogaW5oZXJpdDtcblxuXHRcdC8qIEFsbG93cyBkeW5hbWljIGNvbG9yaW5nIG9mIHRoZSBpY29ucy4gKi9cblx0XHRjb2xvcjogaW5oZXJpdFxuXHR9XG5cbi5jay5jay1pY29uICo6bm90KFtmaWxsXSkge1xuXHRcdFx0XHQvKiBOZWVkZWQgYnkgRkYuICovXG5cdFx0XHRcdGZpbGw6IGN1cnJlbnRDb2xvcjtcblx0XHR9XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS13aWRnZXRcXHRoZW1lXFx3aWRnZXQuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXJlc2l6ZXI6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdC0tY2stcmVzaXplci1zaXplOiAxMHB4O1xuXHQtLWNrLXJlc2l6ZXItYm9yZGVyLXdpZHRoOiAxcHg7XG5cdC0tY2stcmVzaXplci1ib3JkZXItcmFkaXVzOiAycHg7XG5cblx0LyogU2V0IHJlc2l6ZXIgd2l0aCA1MCUgb2Zmc2V0LiAqL1xuXHQtLWNrLXJlc2l6ZXItb2Zmc2V0OiBjYWxjKCAoIHZhcigtLWNrLXJlc2l6ZXItc2l6ZSkgLyAtMiApIC0gMnB4KTtcblxuXHQtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQ6IDEwcHg7XG5cdC0tY2stY29sb3ItcmVzaXplci10b29sdGlwLWJhY2tncm91bmQ6IGhzbCgwLCAwJSwgMTUlKTtcblx0LS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtdGV4dDogaHNsKDAsIDAlLCA5NSUpO1xufVxuXG4uY2sgLmNrLXdpZGdldF93aXRoLXJlc2l6ZXIge1xuXHQvKiBNYWtlIHRoZSB3aWRnZXQgd3JhcHBlciBhIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGNvbnRhaW5lciBmb3IgdGhlIGRyYWcgaGFuZGxlLiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jayAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0ZGlzcGxheTogbm9uZTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qIFRoZSB3cmFwcGVyIGl0c2VsZiBzaG91bGQgbm90IGludGVyZmVyZSB3aXRoIHBvaW50ZXIgZGV2aWNlLCBvbmx5IHRoZSBoYW5kbGVzLiAqL1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblxuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cblx0b3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXJlc2l6ZXIpO1xufVxuXG4uY2stZm9jdXNlZCAuY2std2lkZ2V0X3dpdGgtcmVzaXplci5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qIFJlc2l6ZXJzIGFyZSB0aGUgb25seSBVSSBlbGVtZW50cyB0aGF0IHNob3VsZCBpbnRlcmZlcmUgd2l0aCBwb2ludGVyIGRldmljZS4gKi9cblx0cG9pbnRlci1ldmVudHM6IGFsbDtcblxuXHR3aWR0aDogdmFyKC0tY2stcmVzaXplci1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXNpemUpO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHRib3JkZXI6IHZhcigtLWNrLXJlc2l6ZXItYm9yZGVyLXdpZHRoKSBzb2xpZCAjZmZmO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1yZXNpemVyLWJvcmRlci1yYWRpdXMpXG59XG5cbi5jayAuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUuY2std2lkZ2V0X19yZXNpemVyX19oYW5kbGUtdG9wLWxlZnQge1xuXHRcdHRvcDogdmFyKCAtLWNrLXJlc2l6ZXItb2Zmc2V0ICk7XG5cdFx0bGVmdDogdmFyKCAtLWNrLXJlc2l6ZXItb2Zmc2V0ICk7XG5cdFx0Y3Vyc29yOiBud3NlLXJlc2l6ZTtcblx0fVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1yaWdodCB7XG5cdFx0dG9wOiB2YXIoIC0tY2stcmVzaXplci1vZmZzZXQgKTtcblx0XHRyaWdodDogdmFyKCAtLWNrLXJlc2l6ZXItb2Zmc2V0ICk7XG5cdFx0Y3Vyc29yOiBuZXN3LXJlc2l6ZTtcblx0fVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLWJvdHRvbS1yaWdodCB7XG5cdFx0Ym90dG9tOiB2YXIoIC0tY2stcmVzaXplci1vZmZzZXQgKTtcblx0XHRyaWdodDogdmFyKCAtLWNrLXJlc2l6ZXItb2Zmc2V0ICk7XG5cdFx0Y3Vyc29yOiBud3NlLXJlc2l6ZTtcblx0fVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLWJvdHRvbS1sZWZ0IHtcblx0XHRib3R0b206IHZhciggLS1jay1yZXNpemVyLW9mZnNldCApO1xuXHRcdGxlZnQ6IHZhciggLS1jay1yZXNpemVyLW9mZnNldCApO1xuXHRcdGN1cnNvcjogbmVzdy1yZXNpemU7XG5cdH1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZXIge1xuXHQvKiBNYWtlIHRoZSB3aWRnZXQgd3JhcHBlciBhIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGNvbnRhaW5lciBmb3IgdGhlIGRyYWcgaGFuZGxlci4gKi9cblx0cG9zaXRpb246IHJlbGF0aXZlXG5cblx0LyogU2hvdyB0aGUgc2VsZWN0aW9uIGhhbmRsZXIgb24gbW91c2UgaG92ZXIgb3ZlciB0aGUgd2lkZ2V0LiAqL1xufVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlcjpob3ZlciAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlciB7XG5cdFx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRcdH1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZXIgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZXIge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZVxuXHR9XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGVyIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGVyIC5jay1pY29uIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgaWNvbiBpbiBub3QgYSBzdWJqZWN0IHRvIGZvbnQtc2l6ZS9saW5lLWhlaWdodCB0byBhdm9pZFxuXHRcdFx0dW5uZWNlc3Nhcnkgc3BhY2luZyBhcm91bmQgaXQuICovXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGVyIHtcblxuXHQvKiBTaG93IHRoZSBzZWxlY3Rpb24gaGFuZGxlciB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQuICovXG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGVyLmNrLXdpZGdldF9zZWxlY3RlZCAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlciB7XG5cdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0fVxuXG4uY2sgLmNrLXNpemUtdmlldyB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC1iYWNrZ3JvdW5kKTtcblx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC10ZXh0KTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItcmVzaXplci10b29sdGlwLXRleHQpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1yZXNpemVyLWJvcmRlci1yYWRpdXMpO1xuXHRmb250LXNpemU6IHZhcigtLWNrLWZvbnQtc2l6ZS10aW55KTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpXG59XG5cbi5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLXRvcC1sZWZ0LFxuXHQuY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi10b3AtcmlnaHQsXG5cdC5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLWJvdHRvbS1yaWdodCxcblx0LmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tYm90dG9tLWxlZnQge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxuXG4uY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi10b3AtbGVmdCB7XG5cdFx0dG9wOiB2YXIoIC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCApO1xuXHRcdGxlZnQ6IHZhciggLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0ICk7XG5cdH1cblxuLmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tdG9wLXJpZ2h0IHtcblx0XHR0b3A6IHZhciggLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0ICk7XG5cdFx0cmlnaHQ6IHZhciggLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0ICk7XG5cdH1cblxuLmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tYm90dG9tLXJpZ2h0IHtcblx0XHRib3R0b206IHZhciggLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0ICk7XG5cdFx0cmlnaHQ6IHZhciggLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0ICk7XG5cdH1cblxuLmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tYm90dG9tLWxlZnQge1xuXHRcdGJvdHRvbTogdmFyKCAtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQgKTtcblx0XHRsZWZ0OiB2YXIoIC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCApO1xuXHR9XG5cbi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtd2lkZ2V0XFx3aWRnZXQuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlci5cbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG5cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuXG46cm9vdCB7XG5cdC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzOiAzcHg7XG5cdC0tY2std2lkZ2V0LWhhbmRsZXItaWNvbi1zaXplOiAxNnB4O1xuXHQtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbjogMjAwbXM7XG5cdC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlOiBlYXNlO1xuXG5cdC0tY2stY29sb3Itd2lkZ2V0LWJsdXJyZWQtYm9yZGVyOiBoc2woMCwgMCUsIDg3JSk7XG5cdC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcjogaHNsKDQzLCAxMDAlLCA2MiUpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC1lZGl0YWJsZS1mb2N1cy1iYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC1kcmFnLWhhbmRsZXItaWNvbi1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcbn1cblxuLmNrIC5jay13aWRnZXQge1xuXHRvdXRsaW5lLXdpZHRoOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpO1xuXHRvdXRsaW5lLXN0eWxlOiBzb2xpZDtcblx0b3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdHRyYW5zaXRpb246IG91dGxpbmUtY29sb3IgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpXG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCxcblx0LmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyIHtcblx0XHRvdXRsaW5lOiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpIHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdH1cblxuLmNrIC5jay13aWRnZXQ6aG92ZXIge1xuXHRcdG91dGxpbmUtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ob3Zlci1ib3JkZXIpO1xuXHR9XG5cbi5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUge1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudFxuXG5cdC8qIFRoZSA6Zm9jdXMgc3R5bGUgaXMgYXBwbGllZCBiZWZvcmUgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlX2ZvY3VzZWQgY2xhc3MgaXMgcmVuZGVyZWQgaW4gdGhlIHZpZXcuXG5cdFRoZXNlIHN0eWxlcyBzaG93IGEgZGlmZmVyZW50IGJvcmRlciBmb3IgYSBibGluayBvZiBhbiBleWUsIHNvIGA6Zm9jdXNgIG5lZWQgdG8gaGF2ZSBzYW1lIHN0eWxlcyBhcHBsaWVkLiAqL1xufVxuXG4uY2sgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlX2ZvY3VzZWQsXG5cdC5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGU6Zm9jdXMge1xuXHRcdC8qIERpc2FibGUgbmF0aXZlIG91dGxpbmUuICovXG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWlubmVyLXNoYWRvdyksIDAgMDtcblxuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1lZGl0YWJsZS1mb2N1cy1iYWNrZ3JvdW5kKTtcblx0fVxuXG4uY2stZWRpdG9yX19lZGl0YWJsZSA+IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZXI6Zmlyc3QtY2hpbGQsXG4uY2stZWRpdG9yX19lZGl0YWJsZSBibG9ja3F1b3RlID4gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlcjpmaXJzdC1jaGlsZCB7XG5cdC8qIERvIG5vdCBjcm9wIHNlbGVjdGlvbiBoYW5kbGVyIGlmIGEgd2lkZ2V0IGlzIGEgZmlyc3QtY2hpbGQgaW4gdGhlIGJsb2NrcXVvdGUgb3IgaW4gdGhlIHJvb3QgZWRpdGFibGUuXG5cdEluIGZhY3QsIGFueXRoaW5nIHdpdGggb3ZlcmZsb3c6IGhpZGRlbi5cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1ibG9jay1xdW90ZS9pc3N1ZXMvMjhcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS13aWRnZXQvaXNzdWVzLzQ0XG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtd2lkZ2V0L2lzc3Vlcy82NiAqL1xuXHRtYXJnaW4tdG9wOiBjYWxjKDFlbSArIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSkpO1xufVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlciAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlciB7XG5cdFx0cGFkZGluZzogNHB4O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cblx0XHQvKiBCYWNrZ3JvdW5kIGFuZCBvcGFjaXR5IHdpbGwgYmUgYW5pbWF0ZWQgYXMgdGhlIGhhbmRsZXIgc2hvd3MgdXAgb3IgdGhlIHdpZGdldCBnZXRzIHNlbGVjdGVkLiAqL1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdG9wYWNpdHk6IDA7XG5cblx0XHQvKiBUcmFuc2l0aW9uOlxuXHRcdCAgICogYmFja2dyb3VuZC1jb2xvciBmb3IgdGhlIC5jay13aWRnZXRfc2VsZWN0ZWQgc3RhdGUgY2hhbmdlLFxuXHRcdCAgICogdmlzaWJpbGl0eSBmb3IgaGlkaW5nIHRoZSBoYW5kbGVyLFxuXHRcdCAgICogb3BhY2l0eSBmb3IgdGhlIHByb3BlciBsb29rIG9mIHRoZSBpY29uIHdoZW4gdGhlIGhhbmRsZXIgZGlzYXBwZWFycy4gKi9cblx0XHR0cmFuc2l0aW9uOlxuXHRcdFx0YmFja2dyb3VuZC1jb2xvciB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSksXG5cdFx0XHR2aXNpYmlsaXR5IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKSxcblx0XHRcdG9wYWNpdHkgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xuXG5cdFx0LyogTWFrZSBvbmx5IHRvcCBjb3JuZXJzIHJvdW5kLiAqL1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIDAgMDtcblxuXHRcdC8qIFBsYWNlIHRoZSBkcmFnIGhhbmRsZXIgb3V0c2lkZSB0aGUgd2lkZ2V0IHdyYXBwZXIuICovXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcblx0XHRsZWZ0OiBjYWxjKDBweCAtIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpXG5cblx0XHQvKiBBZHZlcnRpc2UgdXNpbmcgdGhlIGxvb2sgb2YgdGhlIGljb24gdGhhdCBvbmNlIGNsaWNrZWQgdGhlIGhhbmRsZXIsIHRoZSB3aWRnZXQgd2lsbCBiZSBzZWxlY3RlZC4gKi9cblx0fVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlciAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlcjpob3ZlciAuY2staWNvbiAuY2staWNvbl9fc2VsZWN0ZWQtaW5kaWNhdG9yIHtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0fVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlciAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlciAuY2staWNvbiB7XG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIGRpbWVuc2lvbnMgb2YgdGhlIGljb24gYXJlIGluZGVwZW5kZW50IG9mIHRoZSBmb24tc2l6ZSBvZiB0aGUgY29udGVudC4gKi9cblx0XHRcdHdpZHRoOiB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1pY29uLXNpemUpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1pY29uLXNpemUpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1kcmFnLWhhbmRsZXItaWNvbi1jb2xvcilcblxuXHRcdFx0LyogVGhlIFwic2VsZWN0ZWRcIiBwYXJ0IG9mIHRoZSBpY29uIGlzIGludmlzaWJsZSBieSBkZWZhdWx0ICovXG5cdFx0fVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlciAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlciAuY2staWNvbiAuY2staWNvbl9fc2VsZWN0ZWQtaW5kaWNhdG9yIHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblxuXHRcdFx0XHQvKiBOb3RlOiBUaGUgYW5pbWF0aW9uIGlzIGxvbmdlciBvbiBwdXJwb3NlLiBTaW1wbHkgZmVlbHMgYmV0dGVyLiAqL1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cdFx0XHR9XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGVyIHtcblxuXHQvKiBTaG93IHRoZSBzZWxlY3Rpb24gaGFuZGxlciB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQuICovXG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGVyLmNrLXdpZGdldF9zZWxlY3RlZCAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlciwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZXIuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGVyIHtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpXG5cblx0XHRcdC8qIFdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCwgbm90aWZ5IHRoZSB1c2VyIHVzaW5nIHRoZSBwcm9wZXIgbG9vayBvZiB0aGUgaWNvbi4gKi9cblx0XHR9XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGVyLmNrLXdpZGdldF9zZWxlY3RlZCAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlciAuY2staWNvbiAuY2staWNvbl9fc2VsZWN0ZWQtaW5kaWNhdG9yLCAuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlci5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZXIgLmNrLWljb24gLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGVyIHtcblxuXHQvKiBTaG93IHRoZSBzZWxlY3Rpb24gaGFuZGxlciBvbiBtb3VzZSBob3ZlciBvdmVyIHRoZSB3aWRnZXQuICovXG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGVyOmhvdmVyIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGVyIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ob3Zlci1ib3JkZXIpO1xuXHR9XG5cbi8qIEluIGEgUlRMIGVudmlyb25tZW50LCBhbGlnbiB0aGUgc2VsZWN0aW9uIGhhbmRsZXIgdG8gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHdpZGdldCAqL1xuXG4uY2tbZGlyPVwicnRsXCJdIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZXIgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZXIge1xuXHRsZWZ0OiBhdXRvO1xuXHRyaWdodDogY2FsYygwcHggLSB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcbn1cblxuLyogU3R5bGUgdGhlIHdpZGdldCB3aGVuIGl0J3Mgc2VsZWN0ZWQgYnV0IHRoZSBlZGl0YWJsZSBpdCBiZWxvbmdzIHRvIGxvc3QgZm9jdXMuICovXG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdC5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdG91dGxpbmUtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcilcblx0fVxuXG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGVyLFxuXHRcdC5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZXI6aG92ZXIsXG5cdFx0LmNrLWVkaXRvcl9fZWRpdGFibGUuY2stYmx1cnJlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlcixcblx0XHQuY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGVyOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdFx0fVxuXG4uY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZWFkLW9ubHkgLmNrLXdpZGdldCB7XG5cdC8qIERpc2FibGUgdmlzdWFsIGVmZmVjdHMgb2YgaG92ZXIvYWN0aXZlIHdpZGdldCB3aGVuIENLRWRpdG9yIGlzIGluIHJlYWRPbmx5IG1vZGUuXG5cdFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvMTI2MSAqL1xuXHQtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzczogMDtcbn1cbiIsIi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xcdG9vbHRpcFxcdG9vbHRpcC5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2suY2stdG9vbHRpcCxcbi5jay5jay10b29sdGlwIC5jay10b29sdGlwX190ZXh0OjphZnRlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQvKiBXaXRob3V0IHRoaXMsIGhvdmVyaW5nIHRoZSB0b29sdGlwIGNvdWxkIGtlZXAgaXQgdmlzaWJsZS4gKi9cblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cblx0LyogVGhpcyBpcyB0byBnZXQgcmlkIG9mIGZsaWNrZXJpbmcgd2hlbiB0cmFuc2l0aW9uaW5nIG9wYWNpdHkgaW4gQ2hyb21lLlxuXHRJdCdzIHdlaXJkIGJ1dCBpdCB3b3Jrcy4gKi9cblx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5jay10b29sdGlwIHtcblx0LyogVG9vbHRpcCBpcyBoaWRkZW4gYnkgZGVmYXVsdC4gKi9cblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRvcGFjaXR5OiAwO1xuXHRkaXNwbGF5OiBub25lO1xuXHR6LWluZGV4OiB2YXIoLS1jay16LW1vZGFsKVxufVxuXG4uY2stdG9vbHRpcCAuY2stdG9vbHRpcF9fdGV4dCB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrXG5cdH1cblxuLmNrLXRvb2x0aXAgLmNrLXRvb2x0aXBfX3RleHQ6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHR3aWR0aDogMDtcblx0XHRcdGhlaWdodDogMDtcblx0XHR9XG5cbi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGNvbXBvbmVudHNcXHRvb2x0aXBcXHRvb2x0aXAuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdG9vbHRpcC1hcnJvdy1zaXplOiA1cHg7XG59XG5cbi5jay5jay10b29sdGlwIHtcblx0bGVmdDogNTAlO1xuXG5cdC8qXG5cdCAqIFByZXZlbnQgYmx1cnJ5IHRvb2x0aXBzIGluIExvRFBJIGVudmlyb25tZW50cy5cblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE4MDIuXG5cdCAqL1xuXHR0b3A6IDBcblxuXHQvKipcblx0ICogQSBjbGFzcyBvbmNlIGFwcGxpZWQgZGlzcGxheXMgdGhlIHRvb2x0aXAgc291dGggb2YgdGhlIGVsZW1lbnQuXG5cdCAqXG5cdCAqICAgICAgIFtlbGVtZW50XVxuXHQgKiAgICAgICAgICAgXlxuXHQgKiAgICAgKy0tLS0tLS0tLS0tK1xuXHQgKiAgICAgfCAgVG9vbHRpcCAgfFxuXHQgKiAgICAgKy0tLS0tLS0tLS0tK1xuXHQgKi9cbn1cblxuLmNrLmNrLXRvb2x0aXAuY2stdG9vbHRpcF9zIHtcblx0XHRib3R0b206IGNhbGMoLTEgKiB2YXIoLS1jay10b29sdGlwLWFycm93LXNpemUpKTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoIDEwMCUgKVxuXHR9XG5cbi5jay5jay10b29sdGlwLmNrLXRvb2x0aXBfcyAuY2stdG9vbHRpcF9fdGV4dDo6YWZ0ZXIge1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stdG9vbHRpcC1hcnJvdy1zaXplKSk7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoIC01MCUgKTtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItdG9vbHRpcC1iYWNrZ3JvdW5kKSB0cmFuc3BhcmVudDtcblx0XHRcdGJvcmRlci13aWR0aDogMCB2YXIoLS1jay10b29sdGlwLWFycm93LXNpemUpIHZhcigtLWNrLXRvb2x0aXAtYXJyb3ctc2l6ZSkgdmFyKC0tY2stdG9vbHRpcC1hcnJvdy1zaXplKTtcblx0XHR9XG5cbi5jay5jay10b29sdGlwIHtcblxuXHQvKipcblx0ICogQSBjbGFzcyBvbmNlIGFwcGxpZWQgZGlzcGxheXMgdGhlIHRvb2x0aXAgbm9ydGggb2YgdGhlIGVsZW1lbnQuXG5cdCAqXG5cdCAqICAgICArLS0tLS0tLS0tLS0rXG5cdCAqICAgICB8ICBUb29sdGlwICB8XG5cdCAqICAgICArLS0tLS0tLS0tLS0rXG5cdCAqICAgICAgICAgICBWXG5cdCAqICAgICAgIFtlbGVtZW50XVxuXHQgKi9cbn1cblxuLmNrLmNrLXRvb2x0aXAuY2stdG9vbHRpcF9uIHtcblx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay10b29sdGlwLWFycm93LXNpemUpKTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoIC0xMDAlIClcblx0fVxuXG4uY2suY2stdG9vbHRpcC5jay10b29sdGlwX24gLmNrLXRvb2x0aXBfX3RleHQ6OmFmdGVyIHtcblx0XHRcdGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLXRvb2x0aXAtYXJyb3ctc2l6ZSkpO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCAtNTAlICk7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLXRvb2x0aXAtYmFja2dyb3VuZCkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRib3JkZXItd2lkdGg6IHZhcigtLWNrLXRvb2x0aXAtYXJyb3ctc2l6ZSkgdmFyKC0tY2stdG9vbHRpcC1hcnJvdy1zaXplKSAwIHZhcigtLWNrLXRvb2x0aXAtYXJyb3ctc2l6ZSk7XG5cdFx0fVxuXG4uY2suY2stdG9vbHRpcCAuY2stdG9vbHRpcF9fdGV4dCB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMFxuXHR9XG5cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLXRvb2x0aXAgLmNrLXRvb2x0aXBfX3RleHQsIC5jay5jay10b29sdGlwIC5jay10b29sdGlwX190ZXh0LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cylcblx0fVxuXG4uY2suY2stdG9vbHRpcCAuY2stdG9vbHRpcF9fdGV4dCB7XG5cblx0XHRmb250LXNpemU6IC45ZW07XG5cdFx0bGluZS1oZWlnaHQ6IDEuNTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItdG9vbHRpcC10ZXh0KTtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbHRpcC1iYWNrZ3JvdW5kKTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0bGVmdDogLTUwJVxuXHR9XG5cbi5jay5jay10b29sdGlwIC5jay10b29sdGlwX190ZXh0OjphZnRlciB7XG5cdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdH1cblxuLmNrLmNrLXRvb2x0aXAsXG4uY2suY2stdG9vbHRpcCAuY2stdG9vbHRpcF9fdGV4dDo6YWZ0ZXIge1xuXHQvKiBGb3IgdGhlIHRyYW5zaXRpb24gdG8gd29yaywgdGhlIHRvb2x0aXAgbXVzdCBiZSBjb250cm9sbGVkXG5cdHVzaW5nIHZpc2liaWxpdHkrb3BhY2l0eS4gQSBkZWxheSBwcmV2ZW50cyBhIFwidG9vbHRpcCBhdmFsYW5jaGVcIlxuXHRpLmUuIHdoZW4gc2Nhbm5pbmcgdGhlIHRvb2xiYXIgd2l0aCBtb3VzZSBjdXJzb3IuICovXG5cdHRyYW5zaXRpb246IG9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0IC4ycztcbn1cbiIsIi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xcYnV0dG9uXFxidXR0b24uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIE1ha2VzIGVsZW1lbnQgdW5zZWxlY3RhYmxlLlxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBFbmFibGVzIHRoZSB0b29sdGlwLCB3aGljaCBpcyB0aGUgdG9vbHRpcCBpcyBpbiBET00gYnV0XG4gKiBub3QgeWV0IGRpc3BsYXllZC5cbiAqL1xuXG4vKipcbiAqIERpc2FibGVzIHRoZSB0b29sdGlwIG1ha2luZyBpdCBkaXNhcHBlYXIgZnJvbSBET00uXG4gKi9cblxuLyoqXG4gKiBTaG93cyB0aGUgdG9vbHRpcCwgd2hpY2ggaXMgYWxyZWFkeSBpbiBET00uXG4gKiBSZXF1aXJlcyBgY2stdG9vbHRpcF9lbmFibGVkYCBmaXJzdC5cbiAqL1xuXG4uY2suY2stYnV0dG9uLFxuYS5jay5jay1idXR0b24ge1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lXG59XG5cbi5jay5jay1idXR0b24gLmNrLXRvb2x0aXAsIGEuY2suY2stYnV0dG9uIC5jay10b29sdGlwIHtcblx0XHRkaXNwbGF5OiBibG9ja1xuXG5cdFx0Lypcblx0XHQgKiBEb24ndCBkaXNwbGF5IHRvb2x0aXBzIGluIGRldmljZXMgd2hpY2ggZG9uJ3Qgc3VwcG9ydCA6aG92ZXIuXG5cdFx0ICogSW4gZmFjdCwgaXQncyBhbGwgYWJvdXQgaU9TLCB3aGljaCBmb3JjZXMgdXNlciB0byBjbGljayBVSSBlbGVtZW50cyB0d2ljZSB0byBleGVjdXRlXG5cdFx0ICogdGhlIHByaW1hcnkgYWN0aW9uLCB3aGVuIHRvb2x0aXBzIGFyZSBlbmFibGVkLlxuXHRcdCAqXG5cdFx0ICogUTogT0ssIGJ1dCB3aHkgbm90IHRoZSBmb2xsb3dpbmcgcXVlcnk/XG5cdFx0ICpcblx0XHQgKiAgIEBtZWRpYSAoaG92ZXIpIHtcblx0XHQgKiAgICAgICBkaXNwbGF5OiBibG9jaztcblx0XHQgKiAgIH1cblx0XHQgKlxuXHRcdCAqIEE6IEJlY2F1c2UgRkYgZG9lcyBub3Qgc3VwcG9ydCBpdCBhbmQgaXQgd291bGQgY29tcGxldGVseSBkaXNhYmxlIHRvb2x0aXBzXG5cdFx0ICogaW4gdGhhdCBicm93c2VyLlxuXHRcdCAqXG5cdFx0ICogTW9yZSBpbiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MjAuXG5cdFx0ICovXG5cdH1cblxuQG1lZGlhIChob3Zlcjpub25lKSB7XG5cbi5jay5jay1idXR0b24gLmNrLXRvb2x0aXAsIGEuY2suY2stYnV0dG9uIC5jay10b29sdGlwIHtcblx0XHRcdGRpc3BsYXk6IG5vbmVcblx0fVxuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uIHtcblxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGxlZnRcbn1cblxuLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IC5jay1idXR0b25fX2xhYmVsLCBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR9XG5cbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cblx0LyogQ2VudGVyIHRoZSBpY29uIGhvcml6b250YWxseSBpbiBhIGJ1dHRvbiB3aXRob3V0IHRleHQuICovXG59XG5cbi5jay5jay1idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSwgIGEuY2suY2stYnV0dG9uOm5vdCguY2stYnV0dG9uX3dpdGgtdGV4dCkgIHtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0fVxuXG4uY2suY2stYnV0dG9uOmhvdmVyIC5jay10b29sdGlwLCBhLmNrLmNrLWJ1dHRvbjpob3ZlciAuY2stdG9vbHRpcCB7XG5cdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cblx0LyogR2V0IHJpZCBvZiB0aGUgbmF0aXZlIGZvY3VzIG91dGxpbmUgYXJvdW5kIHRoZSB0b29sdGlwIHdoZW4gZm9jdXNlZCAoYnV0IG5vdCA6aG92ZXIpLiAqL1xufVxuXG4uY2suY2stYnV0dG9uOmZvY3VzOm5vdCg6aG92ZXIpIC5jay10b29sdGlwLCBhLmNrLmNrLWJ1dHRvbjpmb2N1czpub3QoOmhvdmVyKSAuY2stdG9vbHRpcCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG4uY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsLCBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFxidXR0b25cXGJ1dHRvbi5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cblxuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVsZW1lbnQgaG9sZGluZyBpdCBpcyBkaXNhYmxlZC5cbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIGEgYnV0dG9uIG9mIGdpdmVuIGJhY2tncm91bmQgY29sb3IuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9ICRiYWNrZ3JvdW5kIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICogQHBhcmFtIHtTdHJpbmd9ICRib3JkZXIgLSBCb3JkZXIgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWJhY2tncm91bmQpXG59XG5cbi5jay5jay1idXR0b246bm90KC5jay1kaXNhYmxlZCk6aG92ZXIsIGEuY2suY2stYnV0dG9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbjpub3QoLmNrLWRpc2FibGVkKTphY3RpdmUsIGEuY2suY2stYnV0dG9uOm5vdCguY2stZGlzYWJsZWQpOmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZCk7XG5cdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDJweCAycHggdmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtYWN0aXZlLXNoYWRvdyk7XG5cdFx0fVxuXG4uY2suY2stYnV0dG9uLFxuYS5jay5jay1idXR0b24ge1xuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzk4ICovXG59XG5cbi5jay5jay1idXR0b24uY2stZGlzYWJsZWQsIGEuY2suY2stYnV0dG9uLmNrLWRpc2FibGVkIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcblx0fVxuXG4uY2suY2stYnV0dG9uLFxuYS5jay5jay1idXR0b24ge1xuXHRib3JkZXItcmFkaXVzOiAwXG59XG5cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWJ1dHRvbixcbi5jay5jay1idXR0b24uY2stcm91bmRlZC1jb3JuZXJzLFxuLmNrLXJvdW5kZWQtY29ybmVycyBhLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cylcbn1cblxuLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uIHtcblxuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctdGlueSk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHQvKiBBIHZlcnkgaW1wb3J0YW50IHBpZWNlIG9mIHN0eWxpbmcuIEdvIHRvIHZhcmlhYmxlIGRlY2xhcmF0aW9uIHRvIGxlYXJuIG1vcmUuICovXG5cdG1pbi13aWR0aDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodCk7XG5cblx0LyogTm9ybWFsaXplIHRoZSBoZWlnaHQgb2YgdGhlIGxpbmUuIFJlbW92aW5nIHRoaXMgd2lsbCBicmVhayBjb25zaXN0ZW50IGhlaWdodFxuXHRhbW9uZyB0ZXh0IGFuZCB0ZXh0LWxlc3MgYnV0dG9ucyAod2l0aCBpY29ucykuICovXG5cdGxpbmUtaGVpZ2h0OiAxO1xuXG5cdC8qIEVuYWJsZSBmb250IHNpemUgaW5oZXJpdGFuY2UsIHdoaWNoIGFsbG93cyBmbHVpZCBVSSBzY2FsaW5nLiAqL1xuXHRmb250LXNpemU6IGluaGVyaXQ7XG5cblx0LyogQXZvaWQgZmxpY2tlcmluZyB3aGVuIHRoZSBmb3VjcyBib3JkZXIgc2hvd3MgdXAuICovXG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG5cdC8qIEFwcGx5IHNvbWUgc21vb3RoIHRyYW5zaXRpb24gdG8gdGhlIGJveC1zaGFkb3cuICovXG5cdHRyYW5zaXRpb246IGJveC1zaGFkb3cgMjAwbXMgZWFzZS1pbi1vdXQ7XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xODkgKi9cblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lXG59XG5cbi5jay5jay1idXR0b246YWN0aXZlLFxuXHQuY2suY2stYnV0dG9uOmZvY3VzLFxuXHRhLmNrLmNrLWJ1dHRvbjphY3RpdmUsXG5cdGEuY2suY2stYnV0dG9uOmZvY3VzIHtcblx0XHQvKiBEaXNhYmxlIG5hdGl2ZSBvdXRsaW5lLiAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpLCAwIDA7XG5cblx0XHQvKiBEaXNhYmxlIGJvcmRlciBwYXJ0IG9mIHRoZSBmb2N1cyByaW5nIGZvciB0aGUgYnV0dG9ucy4gSXQgaXMgdG9vIG11Y2guICovXG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0fVxuXG4uY2suY2stYnV0dG9uLFxuYS5jay5jay1idXR0b24ge1xuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvNzAgKi9cbn1cblxuLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZDphY3RpdmUsXG5cdFx0LmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZDpmb2N1cyxcblx0XHRhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZDphY3RpdmUsXG5cdFx0YS5jay5jay1idXR0b24uY2stZGlzYWJsZWQ6Zm9jdXMge1xuXHRcdFx0LyogVGhlIGRpc2FibGVkIGJ1dHRvbiBzaG91bGQgaGF2ZSBhIHNsaWdodGx5IGxlc3MgdmlzaWJsZSBzaGFkb3cgd2hlbiBmb2N1c2VkLiAqL1xuXHRcdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtZGlzYWJsZWQtb3V0ZXItc2hhZG93KSwgMCAwO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19pY29uLCBhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19pY29uIHtcblx0XHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCwgYS5jay5jay1idXR0b24uY2stZGlzYWJsZWQge1xuXG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy85OCAqL1xuXHR9XG5cbi5jay5jay1idXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fbGFiZWwsIGEuY2suY2stYnV0dG9uLmNrLWRpc2FibGVkIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0LCBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IHtcblx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpXG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLWJ1dHRvbl9faWNvbiwgW2Rpcj1cImx0clwiXSBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IC5jay1idXR0b25fX2ljb24ge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKVxuXHRcdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLWJ1dHRvbl9faWNvbiwgW2Rpcj1cInJ0bFwiXSBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC10ZXh0IC5jay1idXR0b25fX2ljb24ge1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKSk7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKVxuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uIHtcblxuXHQvKiBBIHN0eWxlIG9mIHRoZSBidXR0b24gd2hpY2ggaXMgY3VycmVudGx5IG9uLCBlLmcuIGl0cyBmZWF0dXJlIGlzIGFjdGl2ZS4gKi9cbn1cblxuLmNrLmNrLWJ1dHRvbi5jay1vbiwgYS5jay5jay1idXR0b24uY2stb24ge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kKTtcblx0fVxuXG4uY2suY2stYnV0dG9uLmNrLW9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyLCBhLmNrLmNrLWJ1dHRvbi5jay1vbjpub3QoLmNrLWRpc2FibGVkKTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXG4uY2suY2stYnV0dG9uLmNrLW9uOm5vdCguY2stZGlzYWJsZWQpOmFjdGl2ZSwgYS5jay5jay1idXR0b24uY2stb246bm90KC5jay1kaXNhYmxlZCk6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1hY3RpdmUtYmFja2dyb3VuZCk7XG5cdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDJweCAycHggdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWFjdGl2ZS1zaGFkb3cpO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1vbiwgYS5jay5jay1idXR0b24uY2stb24ge1xuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvOTggKi9cblx0fVxuXG4uY2suY2stYnV0dG9uLmNrLW9uLmNrLWRpc2FibGVkLCBhLmNrLmNrLWJ1dHRvbi5jay1vbi5jay1kaXNhYmxlZCB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHR9XG5cbi5jay5jay1idXR0b24uY2stYnV0dG9uLXNhdmUsIGEuY2suY2stYnV0dG9uLmNrLWJ1dHRvbi1zYXZlIHtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLXNhdmUpO1xuXHR9XG5cbi5jay5jay1idXR0b24uY2stYnV0dG9uLWNhbmNlbCwgYS5jay5jay1idXR0b24uY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1jYW5jZWwpO1xuXHR9XG5cbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cblx0LyogQWxsb3cgaWNvbiBjb2xvcmluZyB1c2luZyB0aGUgdGV4dCBcImNvbG9yXCIgcHJvcGVydHkuICovXG59XG5cbi5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9faWNvbiB1c2UsXG5cdFx0LmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHVzZSAqLFxuXHRcdGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2ljb24gdXNlLFxuXHRcdGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2ljb24gdXNlICoge1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0fVxuXG4uY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsLCBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdFx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRcdGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdGN1cnNvcjogaW5oZXJpdDtcblxuXHRcdC8qIE11c3QgYmUgY29uc2lzdGVudCB3aXRoIC5jay1pY29uJ3MgdmVydGljYWwgYWxpZ24uIE90aGVyd2lzZSwgYnV0dG9ucyB3aXRoIGFuZFxuXHRcdHdpdGhvdXQgbGFiZWxzIChidXQgd2l0aCBpY29ucykgaGF2ZSBkaWZmZXJlbnQgc2l6ZXMgaW4gQ2hyb21lICovXG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZVxuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCwgW2Rpcj1cImx0clwiXSBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsLCBbZGlyPVwicnRsXCJdIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0XG5cdH1cblxuLyogQSBzdHlsZSBvZiB0aGUgYnV0dG9uIHdoaWNoIGhhbmRsZXMgdGhlIHByaW1hcnkgYWN0aW9uLiAqL1xuXG4uY2suY2stYnV0dG9uLWFjdGlvbixcbmEuY2suY2stYnV0dG9uLWFjdGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tYmFja2dyb3VuZCk7XG59XG5cbi5jay5jay1idXR0b24tYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyLCBhLmNrLmNrLWJ1dHRvbi1hY3Rpb246bm90KC5jay1kaXNhYmxlZCk6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG5cbi5jay5jay1idXR0b24tYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpOmFjdGl2ZSwgYS5jay5jay1idXR0b24tYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpOmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLWFjdGl2ZS1iYWNrZ3JvdW5kKTtcblx0XHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDJweCB2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLWFjdGl2ZS1zaGFkb3cpO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbi1hY3Rpb24sXG5hLmNrLmNrLWJ1dHRvbi1hY3Rpb24ge1xuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzk4ICovXG59XG5cbi5jay5jay1idXR0b24tYWN0aW9uLmNrLWRpc2FibGVkLCBhLmNrLmNrLWJ1dHRvbi1hY3Rpb24uY2stZGlzYWJsZWQge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdH1cblxuLmNrLmNrLWJ1dHRvbi1hY3Rpb24sXG5hLmNrLmNrLWJ1dHRvbi1hY3Rpb24ge1xuXG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLXRleHQpO1xufVxuXG4uY2suY2stYnV0dG9uLWJvbGQsXG5hLmNrLmNrLWJ1dHRvbi1ib2xkIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXGRyb3Bkb3duXFxkcm9wZG93bi5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogRW5hYmxlcyB0aGUgdG9vbHRpcCwgd2hpY2ggaXMgdGhlIHRvb2x0aXAgaXMgaW4gRE9NIGJ1dFxuICogbm90IHlldCBkaXNwbGF5ZWQuXG4gKi9cblxuLyoqXG4gKiBEaXNhYmxlcyB0aGUgdG9vbHRpcCBtYWtpbmcgaXQgZGlzYXBwZWFyIGZyb20gRE9NLlxuICovXG5cbi8qKlxuICogU2hvd3MgdGhlIHRvb2x0aXAsIHdoaWNoIGlzIGFscmVhZHkgaW4gRE9NLlxuICogUmVxdWlyZXMgYGNrLXRvb2x0aXBfZW5hYmxlZGAgZmlyc3QuXG4gKi9cblxuLmNrLmNrLWRyb3Bkb3duIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmVcbn1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdH1cblxuLmNrLmNrLWRyb3Bkb3duIHtcblxuXHQvKiBEcm9wZG93biBidXR0b24gc2hvdWxkIHNwYW4gaG9yaXpvbnRhbGx5LCBlLmcuIGluIHZlcnRpY2FsIHRvb2xiYXJzICovXG59XG5cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdHdpZHRoOiAxMDAlXG5cblx0XHQvKiBEaXNhYmxlIG1haW4gYnV0dG9uJ3MgdG9vbHRpcCB3aGVuIHRoZSBkcm9wZG93biBpcyBvcGVuLiBPdGhlcndpc2UgdGhlIHBhbmVsIG1heVxuXHRcdHBhcnRpYWxseSBjb3ZlciB0aGUgdG9vbHRpcCAqL1xuXHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24uY2stb24gLmNrLXRvb2x0aXAge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRcdC8qIFRoaXMgaXMgdG8gZ2V0IHJpZCBvZiBmbGlja2VyaW5nIHdoZW4gdGhlIHRvb2x0aXAgaXMgc2hvd24gdW5kZXIgdGhlIHBhbmVsLFxuXHRcdHdoaWNoIGxvb2tzIGxpa2UgdGhlIHBhbmVsIG1vdmVzIHZlcnRpY2FsbHkgYSBwaXhlbCBkb3duIGFuZCB1cC4gKi9cblx0XHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1tb2RhbCk7XG5cblx0XHRwb3NpdGlvbjogYWJzb2x1dGVcblx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWwtdmlzaWJsZSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHRcdC8qIFRoaXMgd2lsbCBwcmV2ZW50IGJsdXJyeSBpY29ucyBpbiBkcm9wZG93biBvbiBGaXJlZm94LiBTZWUgIzM0MC4gKi9cblx0XHRcdHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbmUsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX253IHtcblx0XHRcdGJvdHRvbTogMTAwJTtcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zZSxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc3cge1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUzZCggMCwgMTAwJSwgMCApO1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX25lLFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zZSB7XG5cdFx0XHRsZWZ0OiAwcHg7XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbncsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3N3IHtcblx0XHRcdHJpZ2h0OiAwcHg7XG5cdFx0fVxuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFxkcm9wZG93blxcZHJvcGRvd24uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZTogY2FsYygwLjUgKiB2YXIoLS1jay1pY29uLXNpemUpKTtcbn1cblxuLmNrLmNrLWRyb3Bkb3duIHtcblx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdGZvbnQtc2l6ZTogaW5oZXJpdFxufVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLWFycm93LXNpemUpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdFx0cmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHQvKiBBIHNwYWNlIHRvIGFjY29tbW9kYXRlIHRoZSB0cmlhbmdsZS4gKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdFx0bGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cbi5jay5jay1kcm9wZG93bi5jay1kaXNhYmxlZCAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHRvcGFjaXR5OiB2YXIoLS1jay1kaXNhYmxlZC1vcGFjaXR5KTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdC8qIE1ha2Ugc3VyZSBkcm9wZG93bnMgd2l0aCBqdXN0IGFuIGljb24gaGF2ZSB0aGUgcmlnaHQgaW5uZXIgc3BhY2luZyAqL1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSB7XG5cdFx0XHRcdC8qIE1ha2Ugc3VyZSBkcm9wZG93bnMgd2l0aCBqdXN0IGFuIGljb24gaGF2ZSB0aGUgcmlnaHQgaW5uZXIgc3BhY2luZyAqL1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbiB7XG5cblx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzcwICovXG5cdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRvcGFjaXR5OiB2YXIoLS1jay1kaXNhYmxlZC1vcGFjaXR5KTtcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODE2ICovXG5cdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbi5jay1vbiB7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIHtcblxuXHRcdC8qICMyMyAqL1xuXHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0d2lkdGg6IDdlbTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHR9XG5cbi5jay5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1kcm9wZG93bl9fcGFuZWwsIC5jay5jay1kcm9wZG93bl9fcGFuZWwuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcbn1cblxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xuXG5cdC8qIERpc2FibGVkIHJhZGl1cyBvZiB0b3AtbGVmdCBib3JkZXIgdG8gYmUgY29uc2lzdGVudCB3aXRoIC5kcm9wZG93bl9fYnV0dG9uXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgxNiAqL1xuXHRib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1kcm9wZG93bl9fcGFuZWwsIC5jay5jay1kcm9wZG93bl9fcGFuZWwuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xufVxuXG4uY2suY2stZHJvcGRvd25fX3BhbmVsIHtcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZHJvcGRvd24tcGFuZWwtYm9yZGVyKTtcblx0Ym90dG9tOiAwO1xuXG5cdC8qIE1ha2Ugc3VyZSB0aGUgcGFuZWwgaXMgYXQgbGVhc3QgYXMgd2lkZSBhcyB0aGUgZHJvcC1kb3duJ3MgYnV0dG9uLiAqL1xuXHRtaW4td2lkdGg6IDEwMCU7XG59XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXHRvb2xiYXJcXHRvb2xiYXIuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIE1ha2VzIGVsZW1lbnQgdW5zZWxlY3RhYmxlLlxuICovXG5cbi5jay5jay10b29sYmFyIHtcblx0LW1vei11c2VyLXNlbGVjdDogbm9uZTtcblx0LXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcblx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblxuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWZsb3c6IHJvdyB3cmFwO1xuXHRhbGlnbi1pdGVtczogY2VudGVyXG59XG5cbi5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfdmVydGljYWwge1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdH1cblxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9mbG9hdGluZyB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cblxuLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmNrLmNrLXRvb2xiYXJfX25ld2xpbmUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEwMCU7XG59XG5cbi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGNvbXBvbmVudHNcXHRvb2xiYXJcXHRvb2xiYXIuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay5jay10b29sYmFyIHtcblx0Ym9yZGVyLXJhZGl1czogMFxufVxuXG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay10b29sYmFyLCAuY2suY2stdG9vbGJhci5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpXG59XG5cbi5jay5jay10b29sYmFyIHtcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10b29sYmFyLWJhY2tncm91bmQpO1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcilcbn1cblxuLmNrLmNrLXRvb2xiYXIgPiAqIHtcblx0XHQvKiBNYWtlIHN1cmUgaXRlbXMgd3JhcHBlZCB0byB0aGUgbmV4dCBsaW5lIGhhdmUgdi1zcGFjaW5nICovXG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuLmNrLmNrLXRvb2xiYXIgPiAqIHtcblx0XHQvKiAoIzExKSBTZXBhcmF0ZSB0b29sYmFyIGl0ZW1zLiAqL1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stdG9vbGJhciA+ICoge1xuXHRcdFx0LyogKCMxMSkgU2VwYXJhdGUgdG9vbGJhciBpdGVtcy4gKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHR9XG5cbi5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfdmVydGljYWwge1xuXHRcdC8qIEl0ZW1zIGluIGEgdmVydGljYWwgdG9vbGJhciBzcGFuIHRoZSBlbnRpcmUgd2lkdGguICovXG5cdFx0cGFkZGluZzogMFxuXG5cdFx0LyogU3BlY2lmaWNpdHkgbWF0dGVycyBoZXJlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xNjguICovXG5cdH1cblxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl92ZXJ0aWNhbCA+IC5jayB7XG5cdFx0XHQvKiBJdGVtcyBpbiBhIHZlcnRpY2FsIHRvb2xiYXIgc2hvdWxkIHNwYW4gdGhlIGhvcml6b250YWwgc3BhY2UuICovXG5cdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNob3VsZCBoYXZlIG5vIG1hcmdpbi4gKi9cblx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNwYW4gdGhlIGVudGlyZSB3aWR0aCBzbyByb3VuZGVkIGNvcm5lcnMgYXJlIHBvaW50bGVzcy4gKi9cblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHRcdC8qIEl0ZW1zIGluIGEgdmVydGljYWwgdG9vbGJhciBzcGFuIHRoZSBlbnRpcmUgd2lkdGggc28gYW55IGJvcmRlciBpcyBwb2ludGxlc3MuICovXG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay10b29sYmFyID4gKjpsYXN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1yaWdodDogMDtcblx0XHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIgPiAqOmxhc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0fVxuXG4uY2stdG9vbGJhci1jb250YWluZXIgLmNrLmNrLXRvb2xiYXIge1xuXHRcdGJvcmRlcjogMFxufVxuXG4uY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0YWxpZ24tc2VsZjogc3RyZXRjaDtcblx0d2lkdGg6IDFweDtcblx0bWFyZ2luLXRvcDogMDtcblx0bWFyZ2luLWJvdHRvbTogMDtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xufVxuXG4uY2suY2stdG9vbGJhcl9fbmV3bGluZSB7XG5cdG1hcmdpbjogMDtcbn1cbiIsIi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xcbGlzdFxcbGlzdC5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cblxuLmNrLmNrLWxpc3Qge1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cbn1cblxuLmNrLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW0sXG5cdC5jay5jay1saXN0IC5jay1saXN0X19zZXBhcmF0b3Ige1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbi5jay5jay1saXN0IHtcblxuXHQvKiBNYWtlIHN1cmUgdGhhdCB3aGF0ZXZlciBjaGlsZCBvZiB0aGUgbGlzdCBpdGVtIGdldHMgZm9jdXMsIGl0IHJlbWFpbnMgb24gdGhlXG5cdHRvcC4gVGhhbmtzIHRvIHRoYXQsIHN0eWxlcyBsaWtlIGJveC1zaGFkb3csIG91dGxpbmUsIGV0Yy4gYXJlIG5vdCBtYXNrZWQgYnlcblx0YWRqYWNlbnQgbGlzdCBpdGVtcy4gKi9cbn1cblxuLmNrLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW0gPiAqOmZvY3VzIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0fVxuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFxsaXN0XFxsaXN0LmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVsZW1lbnQgaG9sZGluZyBpdCBpcyBkaXNhYmxlZC5cbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cblxuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5cbi5jay5jay1saXN0IHtcblx0Ym9yZGVyLXJhZGl1czogMDtcbn1cblxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stbGlzdCwgLmNrLmNrLWxpc3QuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcbn1cblxuLmNrLmNrLWxpc3Qge1xuXG5cdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1iYWNrZ3JvdW5kKTtcbn1cblxuLmNrLmNrLWxpc3RfX2l0ZW0ge1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdG1pbi13aWR0aDogMTJlbVxufVxuXG4uY2suY2stbGlzdF9faXRlbSAuY2stYnV0dG9uIHtcblx0XHRtaW4taGVpZ2h0OiB1bnNldDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyOiAwO1xuXG5cdFx0LyogTGlzdCBpdGVtcyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBoZWlnaHQuIFVzZSBhYnNvbHV0ZSB1bml0cyB0byBtYWtlIHN1cmUgaXQgaXMgc29cblx0XHQgICBiZWNhdXNlIGUuZy4gZGlmZmVyZW50IGhlYWRpbmcgc3R5bGVzIG1heSBoYXZlIGRpZmZlcmVudCBoZWlnaHRcblx0XHQgICBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWhlYWRpbmcvaXNzdWVzLzYzICovXG5cdFx0cGFkZGluZzpcblx0XHRcdGNhbGMoLjIqdmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSkqdmFyKC0tY2stZm9udC1zaXplLWJhc2UpKVxuXHRcdFx0Y2FsYyguNCp2YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKSp2YXIoLS1jay1mb250LXNpemUtYmFzZSkpXG5cdH1cblxuLmNrLmNrLWxpc3RfX2l0ZW0gLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWhlYWRpbmcvaXNzdWVzLzYzICovXG5cdFx0XHRsaW5lLWhlaWdodDogY2FsYygxLjIqdmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSkqdmFyKC0tY2stZm9udC1zaXplLWJhc2UpKTtcblx0XHR9XG5cbi5jay5jay1saXN0X19pdGVtIC5jay1idXR0b246YWN0aXZlIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuXG4uY2suY2stbGlzdF9faXRlbSAuY2stYnV0dG9uLmNrLW9uIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLWJhY2tncm91bmQpO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLXRleHQpXG5cdFx0fVxuXG4uY2suY2stbGlzdF9faXRlbSAuY2stYnV0dG9uLmNrLW9uOmhvdmVyOm5vdChjay1kaXNhYmxlZCkge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kLWZvY3VzKTtcblx0XHRcdH1cblxuLmNrLmNrLWxpc3RfX2l0ZW0gLmNrLWJ1dHRvbi5jay1vbjphY3RpdmUge1xuXHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0fVxuXG4uY2suY2stbGlzdF9faXRlbSAuY2stYnV0dG9uOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cblxuLmNrLmNrLWxpc3RfX2l0ZW0ge1xuXG5cdC8qIEl0J3MgdW5uZWNlc3NhcnkgdG8gY2hhbmdlIHRoZSBiYWNrZ3JvdW5kL3RleHQgb2YgYSBzd2l0Y2ggdG9nZ2xlOyBpdCBoYXMgZGlmZmVyZW50IHdheXNcblx0b2YgY29udmV5aW5nIGl0cyBzdGF0ZSAobGlrZSB0aGUgc3dpdGNoZXIpICovXG59XG5cbi5jay5jay1saXN0X19pdGVtIC5jay1zd2l0Y2hidXR0b24uY2stb24ge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1iYWNrZ3JvdW5kKTtcblx0XHRcdGNvbG9yOiBpbmhlcml0XG5cdFx0fVxuXG4uY2suY2stbGlzdF9faXRlbSAuY2stc3dpdGNoYnV0dG9uLmNrLW9uOmhvdmVyOm5vdChjay1kaXNhYmxlZCkge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHR9XG5cbi5jay5jay1saXN0X19zZXBhcmF0b3Ige1xuXHRoZWlnaHQ6IDFweDtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcbn1cbiIsIi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xcYnV0dG9uXFxzd2l0Y2hidXR0b24uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRkaXNwbGF5OiBibG9ja1xuXHR9XG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS11aVxcY29tcG9uZW50c1xcYnV0dG9uXFxzd2l0Y2hidXR0b24uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKiBOb3RlOiBUbyBhdm9pZCByZW5kZXJpbmcgaXNzdWVzIChhbGlhc2luZykgYnV0IHRvIHByZXNlcnZlIHRoZSByZXNwb25zaXZlIG5hdHVyZVxub2YgdGhlIGNvbXBvbmVudCwgZmxvYXRpbmfigJNwb2ludCBudW1iZXJzIGhhdmUgYmVlbiB1c2VkIHdoaWNoLCBmb3IgdGhlIGRlZmF1bHQgZm9udCBzaXplXG4oc2VlOiAtLWNrLWZvbnQtc2l6ZS1iYXNlKSwgd2lsbCBnZW5lcmF0ZSBzaW1wbGUgaW50ZWdlcnMuICovXG5cbjpyb290IHtcblx0LyogMzRweCBhdCAxM3B4IGZvbnQtc2l6ZSAqL1xuXHQtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLXdpZHRoOiAyLjYxNTM4NDYxNTRlbTtcblx0LyogMTRweCBhdCAxM3B4IGZvbnQtc2l6ZSAqL1xuXHQtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemU6IDEuMDc2OTIzMDc2OWVtO1xuXHQtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLXNwYWNpbmc6IDFweDtcblx0LS1jay1zd2l0Y2gtYnV0dG9uLXRyYW5zbGF0aW9uOiAxLjM4NDYxNTM4NDdlbTtcbn1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHQvKiBTZXBhcmF0ZSB0aGUgbGFiZWwgZnJvbSB0aGUgc3dpdGNoICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoMip2YXIoLS1jay1zcGFjaW5nLWxhcmdlKSlcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdC8qIFNlcGFyYXRlIHRoZSBsYWJlbCBmcm9tIHRoZSBzd2l0Y2ggKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKDIqdmFyKC0tY2stc3BhY2luZy1sYXJnZSkpXG5cdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRvcGFjaXR5OiB2YXIoLS1jay1kaXNhYmxlZC1vcGFjaXR5KTtcblx0fVxuXG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdGJvcmRlci1yYWRpdXM6IDBcblx0fVxuXG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSwgLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cylcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIHRvZ2dsZSBpcyBhbHdheXMgdG8gdGhlIHJpZ2h0IGFzIGZhciBhcyBwb3NzaWJsZS4gKi9cblx0XHRcdG1hcmdpbi1sZWZ0OiBhdXRvXG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSB0b2dnbGUgaXMgYWx3YXlzIHRvIHRoZSBsZWZ0IGFzIGZhciBhcyBwb3NzaWJsZS4gKi9cblx0XHRcdG1hcmdpbi1yaWdodDogYXV0b1xuXHR9XG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cblx0XHQvKiBHZW50bHkgYW5pbWF0ZSB0aGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgdG9nZ2xlIHN3aXRjaCAqL1xuXHRcdHRyYW5zaXRpb246IGJhY2tncm91bmQgNDAwbXMgZWFzZTtcblxuXHRcdHdpZHRoOiB2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS13aWR0aCk7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vZmYtYmFja2dyb3VuZClcblx0fVxuXG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGU6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vZmYtaG92ZXItYmFja2dyb3VuZClcblx0XHR9XG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZTpob3ZlciAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdFx0Ym94LXNoYWRvdzogMCAwIDAgNXB4IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24taW5uZXItc2hhZG93KTtcblx0XHRcdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHR9XG5cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIsIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IGNhbGMoLjUqdmFyKC0tY2stYm9yZGVyLXJhZGl1cykpO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXG5cdFx0XHQvKiBMZWF2ZSBzb21lIHRpbnkgYml0IG9mIHNwYWNlIGFyb3VuZCB0aGUgaW5uZXIgcGFydCBvZiB0aGUgc3dpdGNoICovXG5cdFx0XHRtYXJnaW46IHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLXNwYWNpbmcpO1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemUpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS1pbm5lci1zaXplKTtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24taW5uZXItYmFja2dyb3VuZCk7XG5cblx0XHRcdC8qIEdlbnRseSBhbmltYXRlIHRoZSBpbm5lciBwYXJ0IG9mIHRoZSB0b2dnbGUgc3dpdGNoICovXG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTtcblx0XHR9XG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kKVxuXHR9XG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uIC5jay1idXR0b25fX3RvZ2dsZTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0Lypcblx0XHRcdCAqIE1vdmUgdGhlIHRvZ2dsZSBzd2l0Y2ggdG8gdGhlIHJpZ2h0LiBJdCB3aWxsIGJlIGFuaW1hdGVkLlxuXHRcdFx0ICpcblx0XHRcdCAqIEVkZ2UgaXMgbm90IHN1cHBvcnRpbmcgY2FsYygpIGluIHRoZSB0cmFuc2l0aW9ucyBhbmQgYW5pbWF0aW9ucywgd2UgbmVlZCB0byBoYXJkY29kZSB0aGlzIHZhbHVlIChzZWUgY2tlZGl0b3I1LXVpIzQzMykuXG5cdFx0XHQgKiBJdCBib2lscyBkb3duIHRvOlxuXHRcdFx0ICpcblx0XHRcdCAqIFx0Y2FsYyhcblx0XHRcdCAqIFx0XHR2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS13aWR0aCkgLVxuXHRcdFx0ICogXHRcdHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemUpIC1cblx0XHRcdCAqIFx0XHQyKnZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLXNwYWNpbmcpIClcblx0XHRcdCAqIFx0KVxuXHRcdFx0ICovXG5cdFx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCB2YXIoIC0tY2stc3dpdGNoLWJ1dHRvbi10cmFuc2xhdGlvbiApIClcblx0XHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoIGNhbGMoIC0xICogdmFyKCAtLWNrLXN3aXRjaC1idXR0b24tdHJhbnNsYXRpb24gKSApIClcblx0XHR9XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXGRyb3Bkb3duXFx0b29sYmFyZHJvcGRvd24uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLXRvb2xiYXItZHJvcGRvd24gLmNrLXRvb2xiYXIge1xuXHRcdGZsZXgtd3JhcDogbm93cmFwO1xuXHR9XG5cbi5jay5jay10b29sYmFyLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWJ1dHRvbjpmb2N1cyB7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyAxKTtcblx0XHR9XG5cbi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGNvbXBvbmVudHNcXGRyb3Bkb3duXFx0b29sYmFyZHJvcGRvd24uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLXRvb2xiYXItZHJvcGRvd24gLmNrLXRvb2xiYXIge1xuXHRib3JkZXI6IDA7XG59XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXGRyb3Bkb3duXFxsaXN0ZHJvcGRvd24uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIE5vdGU6IFRoaXMgZmlsZSBzaG91bGQgY29udGFpbiB0aGUgd2lyZWZyYW1lIHN0eWxlcyBvbmx5LiBCdXQgc2luY2UgdGhlcmUgYXJlIG5vIHN1Y2ggc3R5bGVzLFxuICogaXQgYWN0cyBhcyBhIG1lc3NhZ2UgdG8gdGhlIGJ1aWxkZXIgdGVsbGluZyB0aGF0IGl0IHNob3VsZCBsb29rIGZvciB0aGUgY29ycmVzcG9uZGluZyBzdHlsZXNcbiAqICoqaW4gdGhlIHRoZW1lKiogd2hlbiBjb21waWxpbmcgdGhlIGVkaXRvci5cbiAqL1xuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFxkcm9wZG93blxcbGlzdGRyb3Bkb3duLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3Qge1xuXHQvKiBEaXNhYmxlZCByYWRpdXMgb2YgdG9wLWxlZnQgYm9yZGVyIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCAuZHJvcGRvd25fX2J1dHRvblxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MTYgKi9cblx0Ym9yZGVyLXJhZGl1czogMFxufVxuXG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsIC5jay1saXN0LCAuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCAuY2stbGlzdC5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBcbn1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3Qge1xuXG5cdC8qIE1ha2Ugc3VyZSB0aGUgYnV0dG9uIGJlbG9uZ2luZyB0byB0aGUgZmlyc3QvbGFzdCBjaGlsZCBvZiB0aGUgbGlzdCBnb2VzIHdlbGwgd2l0aCB0aGVcblx0Ym9yZGVyIHJhZGl1cyBvZiB0aGUgZW50aXJlIHBhbmVsLiAqL1xufVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCAuY2stbGlzdCAuY2stbGlzdF9faXRlbTpmaXJzdC1jaGlsZCAuY2stYnV0dG9uIHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDBcblx0XHR9XG5cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06Zmlyc3QtY2hpbGQgLmNrLWJ1dHRvbiwgLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06Zmlyc3QtY2hpbGQgLmNrLWJ1dHRvbi5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMFxuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06bGFzdC1jaGlsZCAuY2stYnV0dG9uIHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDBcblx0XHR9XG5cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06bGFzdC1jaGlsZCAuY2stYnV0dG9uLCAuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCAuY2stbGlzdCAuY2stbGlzdF9faXRlbTpsYXN0LWNoaWxkIC5jay1idXR0b24uY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBcblx0XHR9XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS1lbmdpbmVcXHRoZW1lXFxwbGFjZWhvbGRlci5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKiBTZWUgY2tlZGl0b3IvY2tlZGl0b3I1IzkzNi4gKi9cblxuLmNrLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUsIC5jayAuY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLXBsYWNlaG9sZGVyKTtcblxuXHRcdC8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjNDY5LiAqL1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG5cbi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtZW5naW5lXFxwbGFjZWhvbGRlci5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKiBTZWUgY2tlZGl0b3IvY2tlZGl0b3I1IzkzNi4gKi9cblxuLmNrLmNrLXBsYWNlaG9sZGVyOjpiZWZvcmUsIC5jayAuY2stcGxhY2Vob2xkZXI6OmJlZm9yZSB7XG5cdFx0Y3Vyc29yOiB0ZXh0O1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1lbmdpbmUtcGxhY2Vob2xkZXItdGV4dCk7XG5cdH1cbiIsIi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xcZWRpdG9ydWlcXGVkaXRvcnVpLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBOb3RlOiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIHdpcmVmcmFtZSBzdHlsZXMgb25seS4gQnV0IHNpbmNlIHRoZXJlIGFyZSBubyBzdWNoIHN0eWxlcyxcbiAqIGl0IGFjdHMgYXMgYSBtZXNzYWdlIHRvIHRoZSBidWlsZGVyIHRlbGxpbmcgdGhhdCBpdCBzaG91bGQgbG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGVzXG4gKiAqKmluIHRoZSB0aGVtZSoqIHdoZW4gY29tcGlsaW5nIHRoZSBlZGl0b3IuXG4gKi9cblxuLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS11aVxcY29tcG9uZW50c1xcZWRpdG9ydWlcXGVkaXRvcnVpLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEEgY2xhc3Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgYW4gZWxlbWVudCBob2xkaW5nIGl0IGlzIGRpc2FibGVkLlxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cblxuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgYSBidXR0b24gb2YgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJhY2tncm91bmQgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJvcmRlciAtIEJvcmRlciBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUpIHtcblx0Ym9yZGVyLXJhZGl1czogMFxufVxuXG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUpLCAuY2suY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlKS5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpXG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUpLmNrLWZvY3VzZWQge1xuXHRcdC8qIERpc2FibGUgbmF0aXZlIG91dGxpbmUuICovXG5cdFx0b3V0bGluZTogbm9uZTtcblx0XHRib3JkZXI6IHZhcigtLWNrLWZvY3VzLXJpbmcpO1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWlubmVyLXNoYWRvdyksIDAgMDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUge1xuXHRvdmVyZmxvdzogYXV0bztcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnRcbn1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lW2Rpcj1cImx0clwiXSB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmVbZGlyPVwicnRsXCJdIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUge1xuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTE2ICovXG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZSA+ICo6Zmlyc3QtY2hpbGQge1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZSB7XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODQ3ICovXG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZSA+ICo6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cblxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xMTEgKi9cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbGJhci1jb250YWluZXJbY2xhc3MqPVwiYXJyb3dfblwiXTo6YWZ0ZXIge1xuXHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stdG9vbGJhci1jb250YWluZXJbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YWZ0ZXIge1xuXHRcdGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZCk7XG5cdH1cbiIsIi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xcbGFiZWxcXGxhYmVsLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay5jay1sYWJlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY2suY2stdm9pY2UtbGFiZWwge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFxsYWJlbFxcbGFiZWwuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLWxhYmVsIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXHBhbmVsXFxzdGlja3lwYW5lbC5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2suY2stc3RpY2t5LXBhbmVsIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnRfc3RpY2t5IHtcblx0XHR6LWluZGV4OiB2YXIoLS1jay16LW1vZGFsKTsgLyogIzMxNSAqL1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHR0b3A6IDA7XG5cdH1cblxuLmNrLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreV9ib3R0b20tbGltaXQge1xuXHRcdHRvcDogYXV0bztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cblxuLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS11aVxcY29tcG9uZW50c1xccGFuZWxcXHN0aWNreXBhbmVsLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cblxuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5cbi5jay5jay1zdGlja3ktcGFuZWwgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3kge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xuXG5cdFx0Ym9yZGVyLXdpZHRoOiAwIDFweCAxcHg7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuIiwiLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtZWRpdG9yLWNsYXNzaWNcXHRoZW1lXFxjbGFzc2ljZWRpdG9yLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay5jay1lZGl0b3Ige1xuXHQvKiBBbGwgdGhlIGVsZW1lbnRzIHdpdGhpbiBgLmNrLWVkaXRvcmAgYXJlIHBvc2l0aW9uZWQgcmVsYXRpdmVseSB0byBpdC5cblx0IElmIGFueSBlbGVtZW50IG5lZWRzIHRvIGJlIHBvc2l0aW9uZWQgd2l0aCByZXNwZWN0IHRvIHRoZSA8Ym9keT4sIGV0Yy4sXG5cdCBpdCBtdXN0IGxhbmQgb3V0c2lkZSBvZiB0aGUgYC5jay1lZGl0b3JgIGluIERPTS4gKi9cblx0cG9zaXRpb246IHJlbGF0aXZlXG59XG5cbi5jay5jay1lZGl0b3IgLmNrLWVkaXRvcl9fdG9wIC5jay1zdGlja3ktcGFuZWwgLmNrLXRvb2xiYXIge1xuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtZWRpdG9yLWNsYXNzaWMvaXNzdWVzLzYyICovXG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1tb2RhbCk7XG5cdH1cblxuLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS1lZGl0b3ItY2xhc3NpY1xcY2xhc3NpY2VkaXRvci5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG5cbi5jay5jay1lZGl0b3JfX3RvcCAuY2stc3RpY2t5LXBhbmVsIC5jay10b29sYmFyIHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0fVxuXG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1lZGl0b3JfX3RvcCAuY2stc3RpY2t5LXBhbmVsIC5jay10b29sYmFyLCAuY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stdG9vbGJhci5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcblx0XHR9XG5cbi5jay5jay1lZGl0b3JfX3RvcCAuY2stc3RpY2t5LXBhbmVsIC5jay10b29sYmFyIHtcblxuXHRcdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDogMDtcblx0XHR9XG5cbi5jay5jay1lZGl0b3JfX3RvcCAuY2stc3RpY2t5LXBhbmVsIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnRfc3RpY2t5IC5jay10b29sYmFyIHtcblx0XHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcblxuXHRcdFx0Ym9yZGVyLXJhZGl1czogMFxuXHRcdH1cblxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreSAuY2stdG9vbGJhciwgLmNrLmNrLWVkaXRvcl9fdG9wIC5jay1zdGlja3ktcGFuZWwgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3kgLmNrLXRvb2xiYXIuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMFxuXHRcdH1cblxuLyogTm90ZTogVXNlIGNrLWVkaXRvcl9fbWFpbiB0byBtYWtlIHN1cmUgdGhlc2Ugc3R5bGVzIGRvbid0IGFwcGx5IHRvIG90aGVyIGVkaXRvciB0eXBlcyAqL1xuXG4uY2suY2stZWRpdG9yX19tYWluID4gLmNrLWVkaXRvcl9fZWRpdGFibGUge1xuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzExMyAqL1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdGJvcmRlci1yYWRpdXM6IDBcbn1cblxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZWRpdG9yX19tYWluID4gLmNrLWVkaXRvcl9fZWRpdGFibGUsIC5jay5jay1lZGl0b3JfX21haW4gPiAuY2stZWRpdG9yX19lZGl0YWJsZS5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBcbn1cblxuLmNrLmNrLWVkaXRvcl9fbWFpbiA+IC5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stZm9jdXNlZCkge1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHR9XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS1oZWFkaW5nXFx0aGVtZVxcaGVhZGluZy5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2suY2staGVhZGluZ19oZWFkaW5nMSB7XG5cdGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLmNrLmNrLWhlYWRpbmdfaGVhZGluZzIge1xuXHRmb250LXNpemU6IDE3cHg7XG59XG5cbi5jay5jay1oZWFkaW5nX2hlYWRpbmczIHtcblx0Zm9udC1zaXplOiAxNHB4O1xufVxuXG4uY2tbY2xhc3MqPVwiY2staGVhZGluZ19oZWFkaW5nXCJdIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtaGVhZGluZ1xcaGVhZGluZy5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKiBSZXNpemUgZHJvcGRvd24ncyBidXR0b24gbGFiZWwuICovXG5cbi5jay5jay1kcm9wZG93bi5jay1oZWFkaW5nLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHR3aWR0aDogOGVtO1xuXHR9XG5cbi5jay5jay1kcm9wZG93bi5jay1oZWFkaW5nLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3RfX2l0ZW0ge1xuXHRcdG1pbi13aWR0aDogMThlbTtcblx0fVxuIiwiLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtbGlua1xcdGhlbWVcXGxpbmsuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIE5vdGU6IFRoaXMgZmlsZSBzaG91bGQgY29udGFpbiB0aGUgd2lyZWZyYW1lIHN0eWxlcyBvbmx5LiBCdXQgc2luY2UgdGhlcmUgYXJlIG5vIHN1Y2ggc3R5bGVzLFxuICogaXQgYWN0cyBhcyBhIG1lc3NhZ2UgdG8gdGhlIGJ1aWxkZXIgdGVsbGluZyB0aGF0IGl0IHNob3VsZCBsb29rIGZvciB0aGUgY29ycmVzcG9uZGluZyBzdHlsZXNcbiAqICoqaW4gdGhlIHRoZW1lKiogd2hlbiBjb21waWxpbmcgdGhlIGVkaXRvci5cbiAqL1xuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LWxpbmtcXGxpbmsuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyogQ2xhc3MgYWRkZWQgdG8gc3BhbiBlbGVtZW50IHN1cnJvdW5kaW5nIGN1cnJlbnRseSBzZWxlY3RlZCBsaW5rLiAqL1xuXG4uY2sgLmNrLWxpbmtfc2VsZWN0ZWQge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQpO1xufVxuIiwiLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdWlcXHRoZW1lXFxjb21wb25lbnRzXFxwYW5lbFxcYmFsbG9vbnBhbmVsLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbjpyb290IHtcblx0LyogTWFrZSBzdXJlIHRoZSBiYWxsb29uIGFycm93IGRvZXMgbm90IGZsb2F0IG92ZXIgaXRzIGNoaWxkcmVuLiAqL1xuXHQtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpIC0gMyk7XG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsIHtcblx0ZGlzcGxheTogbm9uZTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdHotaW5kZXg6IHZhcigtLWNrLXotbW9kYWwpXG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YmVmb3JlIHtcblx0XHRcdHotaW5kZXg6IHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX3dpdGgtYXJyb3c6OmFmdGVyIHtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KSArIDEpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfblwiXTo6YmVmb3JlIHtcblx0XHRcdHotaW5kZXg6IHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjphZnRlciB7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCkgKyAxKTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmJlZm9yZSB7XG5cdFx0XHR6LWluZGV4OiB2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YWZ0ZXIge1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpICsgMSk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX3Zpc2libGUge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGNvbXBvbmVudHNcXHBhbmVsXFxiYWxsb29ucGFuZWwuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG5cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQ6IDJweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhlaWdodDogMTBweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGg6IDhweDtcbn1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwge1xuXHRib3JkZXItcmFkaXVzOiAwXG59XG5cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWJhbGxvb24tcGFuZWwsIC5jay5jay1iYWxsb29uLXBhbmVsLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cylcbn1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwge1xuXHRib3gtc2hhZG93OiB2YXIoLS1jay1kcm9wLXNoYWRvdyksIDAgMDtcblxuXHRtaW4taGVpZ2h0OiAxNXB4O1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpXG59XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfd2l0aC1hcnJvdzo6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfblwiXTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X25cIl06OmFmdGVyIHtcblx0XHRcdGJvcmRlci13aWR0aDogMCB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfblwiXTo6YmVmb3JlIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYm9yZGVyKSB0cmFuc3BhcmVudDtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X25cIl06OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCkgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1iYWxsb29uLWFycm93LW9mZnNldCk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19zXCJdOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfc1wiXTo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLXdpZHRoOiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSAwIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19zXCJdOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpIHRyYW5zcGFyZW50ICB0cmFuc3BhcmVudDtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1iYWxsb29uLWFycm93LW9mZnNldCk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X246OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X246OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19udzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbnc6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbmU6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X25lOjphZnRlciB7XG5cdFx0XHRyaWdodDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zOjphZnRlciB7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc3c6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3N3OjphZnRlciB7XG5cdFx0XHRsZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NlOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zZTo6YWZ0ZXIge1xuXHRcdFx0cmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXHBhbmVsXFxiYWxsb29ucm90YXRvci5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fbmF2aWdhdGlvbiB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiBCdXR0b25zIGluc2lkZSBhIHRvb2xiYXIgc2hvdWxkIGJlIGNlbnRlcmVkIHdoZW4gcm90YXRvciBiYXIgaXMgd2lkZXIuXG4gKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdWkvaXNzdWVzLzQ5NVxuICovXG5cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19jb250ZW50IC5jay10b29sYmFyIHtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGNvbXBvbmVudHNcXHBhbmVsXFxiYWxsb29ucm90YXRvci5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fbmF2aWdhdGlvbiB7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXRvb2xiYXItYmFja2dyb3VuZCk7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zbWFsbClcblxuXHQvKiBMZXQncyBrZWVwIHNpbWlsYXIgYXBwZWFyYW5jZSB0byBgY2stdG9vbGJhcmAuICovXG59XG5cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19uYXZpZ2F0aW9uID4gKiB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fbmF2aWdhdGlvbiB7XG5cblx0LyogR2l2ZXMgY291bnRlciBtb3JlIGJyZWF0aCB0aGFuIGJ1dHRvbnMuICovXG59XG5cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19uYXZpZ2F0aW9uIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvdW50ZXIge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHQvKiBXZSBuZWVkIHRvIHVzZSBzbWFsbGVyIG1hcmdpbiBiZWNhdXNlIG9mIHByZXZpb3VzIGJ1dHRvbidzIHJpZ2h0IG1hcmdpbi4gKi9cblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvbnRlbnQge1xuXG5cdC8qIERpc2FibGUgZGVmYXVsdCBhbm5vdGF0aW9uIHNoYWRvdyBpbnNpZGUgcm90YXRvciB3aXRoIGZha2UgcGFuZWxzLiAqL1xufVxuXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fY29udGVudCAuY2suY2stYW5ub3RhdGlvbi13cmFwcGVyIHtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHR9XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXHBhbmVsXFxmYWtlcGFuZWwuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrIC5jay1mYWtlLXBhbmVsIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qIEZha2UgcGFuZWxzIHNob3VsZCBiZSBwbGFjZWQgdW5kZXIgbWFpbiBiYWxsb29uIGNvbnRlbnQuICovXG5cdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1tb2RhbCkgLSAxKTtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDEgKSB7XG5cdHotaW5kZXg6IDI7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAyICkge1xuXHR6LWluZGV4OiAxO1xufVxuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFxwYW5lbFxcZmFrZXBhbmVsLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cblxuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5cbjpyb290IHtcblx0LS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LWhvcml6b250YWw6IDZweDtcblx0LS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LXZlcnRpY2FsOiA2cHg7XG59XG5cbi8qIExldCdzIHVzZSBgLmNrLWJhbGxvb24tcGFuZWxgIGFwcGVhcmFuY2UuIFNlZTogYmFsbG9vbnBhbmVsLmNzcy4gKi9cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdiB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xuXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcik7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAxICkge1xuXHRtYXJnaW4tbGVmdDogdmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsKTtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbCk7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAyICkge1xuXHRtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LWhvcml6b250YWwpICogMik7XG5cdG1hcmdpbi10b3A6IGNhbGModmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbCkgKiAyKTtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDMgKSB7XG5cdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbCkgKiAzKTtcblx0bWFyZ2luLXRvcDogY2FsYyh2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LXZlcnRpY2FsKSAqIDMpO1xufVxuXG4vKiBJZiBiYWxsb29uIGlzIHBvc2l0aW9uZWQgYWJvdmUgZWxlbWVudCwgd2UgbmVlZCB0byBtb3ZlIGZha2UgcGFuZWwgdG8gdGhlIHRvcC4gKi9cblxuLmNrIC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3MgKyAuY2stZmFrZS1wYW5lbCxcbi5jayAuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zZSArIC5jay1mYWtlLXBhbmVsLFxuLmNrIC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3N3ICsgLmNrLWZha2UtcGFuZWwge1xuXHQtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWw6IC02cHg7XG59XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXGxhYmVsZWRpbnB1dFxcbGFiZWxlZGlucHV0LmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBOb3RlOiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIHdpcmVmcmFtZSBzdHlsZXMgb25seS4gQnV0IHNpbmNlIHRoZXJlIGFyZSBubyBzdWNoIHN0eWxlcyxcbiAqIGl0IGFjdHMgYXMgYSBtZXNzYWdlIHRvIHRoZSBidWlsZGVyIHRlbGxpbmcgdGhhdCBpdCBzaG91bGQgbG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGVzXG4gKiAqKmluIHRoZSB0aGVtZSoqIHdoZW4gY29tcGlsaW5nIHRoZSBlZGl0b3IuXG4gKi9cblxuLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS11aVxcY29tcG9uZW50c1xcbGFiZWxlZGlucHV0XFxsYWJlbGVkaW5wdXQuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLWxhYmVsZWQtaW5wdXQgLmNrLWxhYmVsZWQtaW5wdXRfX3N0YXR1cyB7XG5cdGZvbnQtc2l6ZTogdmFyKC0tY2stZm9udC1zaXplLXNtYWxsKTtcblx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cblx0LyogTGV0IHRoZSBpbmZvIHdyYXAgdG8gdGhlIG5leHQgbGluZSB0byBhdm9pZCBzdHJldGNoaW5nIHRoZSBsYXlvdXQgaG9yaXpvbnRhbGx5LlxuXHRUaGUgc3RhdHVzIGNvdWxkIGJlIHZlcnkgbG9uZy4gKi9cblx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cblxuLmNrLmNrLWxhYmVsZWQtaW5wdXQgLmNrLWxhYmVsZWQtaW5wdXRfX3N0YXR1c19lcnJvciB7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcbn1cbiIsIi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xcaW5wdXR0ZXh0XFxpbnB1dHRleHQuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIE5vdGU6IFRoaXMgZmlsZSBzaG91bGQgY29udGFpbiB0aGUgd2lyZWZyYW1lIHN0eWxlcyBvbmx5LiBCdXQgc2luY2UgdGhlcmUgYXJlIG5vIHN1Y2ggc3R5bGVzLFxuICogaXQgYWN0cyBhcyBhIG1lc3NhZ2UgdG8gdGhlIGJ1aWxkZXIgdGVsbGluZyB0aGF0IGl0IHNob3VsZCBsb29rIGZvciB0aGUgY29ycmVzcG9uZGluZyBzdHlsZXNcbiAqICoqaW4gdGhlIHRoZW1lKiogd2hlbiBjb21waWxpbmcgdGhlIGVkaXRvci5cbiAqL1xuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFxpbnB1dHRleHRcXGlucHV0dGV4dC5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWlucHV0LXRleHQtd2lkdGg6IDE4ZW07XG59XG5cbi5jay5jay1pbnB1dC10ZXh0IHtcblx0Ym9yZGVyLXJhZGl1czogMFxufVxuXG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1pbnB1dC10ZXh0LCAuY2suY2staW5wdXQtdGV4dC5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpXG59XG5cbi5jay5jay1pbnB1dC10ZXh0IHtcblx0Ym94LXNoYWRvdzogdmFyKC0tY2staW5uZXItc2hhZG93KSwgMCAwO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWlucHV0LWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1pbnB1dC1ib3JkZXIpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWV4dHJhLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0bWluLXdpZHRoOiB2YXIoLS1jay1pbnB1dC10ZXh0LXdpZHRoKTtcblxuXHQvKiBUaGlzIGlzIGltcG9ydGFudCB0byBzdGF5IG9mIHRoZSBzYW1lIGhlaWdodCBhcyBzdXJyb3VuZGluZyBidXR0b25zICovXG5cdG1pbi1oZWlnaHQ6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblxuXHQvKiBBcHBseSBzb21lIHNtb290aCB0cmFuc2l0aW9uIHRvIHRoZSBib3gtc2hhZG93IGFuZCBib3JkZXIuICovXG5cdHRyYW5zaXRpb24tcHJvcGVydHk6IGJveC1zaGFkb3csIGJvcmRlcjtcblx0dHJhbnNpdGlvbjogLjJzIGVhc2UtaW4tb3V0XG59XG5cbi5jay5jay1pbnB1dC10ZXh0OmZvY3VzIHtcblx0XHQvKiBEaXNhYmxlIG5hdGl2ZSBvdXRsaW5lLiAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpLCB2YXIoLS1jay1pbm5lci1zaGFkb3cpO1xuXHR9XG5cbi5jay5jay1pbnB1dC10ZXh0W3JlYWRvbmx5XSB7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYm9yZGVyKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC1iYWNrZ3JvdW5kKTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtdGV4dClcblx0fVxuXG4uY2suY2staW5wdXQtdGV4dFtyZWFkb25seV06Zm9jdXMge1xuXHRcdFx0LyogVGhlIHJlYWQtb25seSBpbnB1dCBzaG91bGQgaGF2ZSBhIHNsaWdodGx5IGxlc3MgdmlzaWJsZSBzaGFkb3cgd2hlbiBmb2N1c2VkLiAqL1xuXHRcdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtZGlzYWJsZWQtb3V0ZXItc2hhZG93KSwgdmFyKC0tY2staW5uZXItc2hhZG93KTtcblx0XHR9XG5cbi5jay5jay1pbnB1dC10ZXh0LmNrLWVycm9yIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWlucHV0LWVycm9yLWJvcmRlcik7XG5cdFx0YW5pbWF0aW9uOiBjay10ZXh0LWlucHV0LXNoYWtlIC4zcyBlYXNlIGJvdGhcblx0fVxuXG4uY2suY2staW5wdXQtdGV4dC5jay1lcnJvcjpmb2N1cyB7XG5cdFx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1lcnJvci1vdXRlci1zaGFkb3cpLCB2YXIoLS1jay1pbm5lci1zaGFkb3cpO1xuXHRcdH1cblxuQGtleWZyYW1lcyBjay10ZXh0LWlucHV0LXNoYWtlIHtcblx0MjAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7XG5cdH1cblxuXHQ0MCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xuXHR9XG5cblx0NjAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFweCk7XG5cdH1cblxuXHQ4MCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcHgpO1xuXHR9XG59XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS1saW5rXFx0aGVtZVxcbGlua2Zvcm0uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2suY2stbGluay1mb3JtIHtcblx0ZGlzcGxheTogZmxleFxufVxuXG4uY2suY2stbGluay1mb3JtIC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4uY2suY2stbGluay1mb3JtIHtcblx0XHRmbGV4LXdyYXA6IHdyYXBcbn1cblxuXHRcdC5jay5jay1saW5rLWZvcm0gLmNrLWxhYmVsZWQtaW5wdXQge1xuXHRcdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHR9XG5cblx0XHQuY2suY2stbGluay1mb3JtIC5jay1idXR0b24ge1xuXHRcdFx0ZmxleC1iYXNpczogNTAlO1xuXHRcdH1cblx0fVxuXG4vKlxuICogU3R5bGUgbGluayBmb3JtIGRpZmZlcmVudGx5IHdoZW4gbWFudWFsIGRlY29yYXRvcnMgYXJlIGF2YWlsYWJsZS5cbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1saW5rL2lzc3Vlcy8xODYuXG4gKi9cblxuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS1saW5rXFxsaW5rZm9ybS5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLWxpbmstZm9ybSB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpXG59XG5cbi5jay5jay1saW5rLWZvcm06Zm9jdXMge1xuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbGluay9pc3N1ZXMvOTAgKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWxpbmstZm9ybSA+IDpub3QoOmZpcnN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1saW5rLWZvcm0gPiA6bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4uY2suY2stbGluay1mb3JtIHtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHdpZHRoOiBjYWxjKC44ICogdmFyKC0tY2staW5wdXQtdGV4dC13aWR0aCkpXG59XG5cblx0XHQuY2suY2stbGluay1mb3JtIC5jay1sYWJlbGVkLWlucHV0IHtcblx0XHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgMFxuXHRcdH1cblxuXHRcdFx0LmNrLmNrLWxpbmstZm9ybSAuY2stbGFiZWxlZC1pbnB1dCAuY2staW5wdXQtdGV4dCB7XG5cdFx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cblx0XHQuY2suY2stbGluay1mb3JtIC5jay1idXR0b24ge1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRcdGJvcmRlcjogMDtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcilcblx0XHR9XG5cblx0XHRbZGlyPVwibHRyXCJdIC5jay5jay1saW5rLWZvcm0gLmNrLWJ1dHRvbiB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwXG5cdFx0fVxuXG5cdFx0XHRcdFtkaXI9XCJsdHJcIl0gLmNrLmNrLWxpbmstZm9ybSAuY2stYnV0dG9uOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdFx0fVxuXG5cdFx0W2Rpcj1cInJ0bFwiXSAuY2suY2stbGluay1mb3JtIC5jay1idXR0b24ge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMFxuXHRcdH1cblxuXHRcdFx0XHRbZGlyPVwicnRsXCJdIC5jay5jay1saW5rLWZvcm0gLmNrLWJ1dHRvbjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdFx0fVxuXHR9XG5cbi8qXG4gKiBTdHlsZSBsaW5rIGZvcm0gZGlmZmVyZW50bHkgd2hlbiBtYW51YWwgZGVjb3JhdG9ycyBhcmUgYXZhaWxhYmxlLlxuICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWxpbmsvaXNzdWVzLzE4Ni5cbiAqL1xuXG4uY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCB7XG5cdHBhZGRpbmc6IDA7XG5cdG1pbi13aWR0aDogdmFyKC0tY2staW5wdXQtdGV4dC13aWR0aClcbn1cblxuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgLmNrLWxhYmVsZWQtaW5wdXQge1xuXHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgdmFyKC0tY2stc3BhY2luZy1zbWFsbClcblx0fVxuXG4uY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCAuY2stbGFiZWxlZC1pbnB1dCAuY2staW5wdXQtdGV4dCB7XG5cdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHR9XG5cbi5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIC5jay1idXR0b24ge1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdG1hcmdpbjogMDtcblx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdGJvcmRlcjogMDtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdHdpZHRoOiA1MCVcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIC5jay1idXR0b24ge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDBcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIC5jay1idXR0b246Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCAuY2stYnV0dG9uIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwXG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCAuY2stYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdH1cblxuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwge1xuXG5cdC8qIFVzaW5nIGFkZGl0aW9uYWwgYC5ja2AgY2xhc3MgZm9yIHN0cm9uZ2VyIENTUyBzcGVjaWZpY2l0eSB0aGFuIGAuY2suY2stbGluay1mb3JtID4gOm5vdCg6Zmlyc3QtY2hpbGQpYC4gKi9cbn1cblxuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgLmNrLmNrLWxpc3Qge1xuXHRcdG1hcmdpbi1sZWZ0OiAwXG5cdH1cblxuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgLmNrLmNrLWxpc3QgLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24ge1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0d2lkdGg6IDEwMCVcblx0XHR9XG5cbi5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIC5jay5jay1saXN0IC5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdH1cblxuIiwiLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtbGlua1xcdGhlbWVcXGxpbmthY3Rpb25zLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLWxpbmstYWN0aW9ucyB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwXG59XG5cbi5jay5jay1saW5rLWFjdGlvbnMgLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrXG5cdH1cblxuLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stbGluay1hY3Rpb25zX19wcmV2aWV3IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4uY2suY2stbGluay1hY3Rpb25zIHtcblx0XHRmbGV4LXdyYXA6IHdyYXBcbn1cblxuXHRcdC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbjpub3QoLmNrLWxpbmstYWN0aW9uc19fcHJldmlldykge1xuXHRcdFx0ZmxleC1iYXNpczogNTAlO1xuXHRcdH1cblx0fVxuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LWxpbmtcXGxpbmthY3Rpb25zLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBFbmFibGVzIHRoZSB0b29sdGlwLCB3aGljaCBpcyB0aGUgdG9vbHRpcCBpcyBpbiBET00gYnV0XG4gKiBub3QgeWV0IGRpc3BsYXllZC5cbiAqL1xuXG4vKipcbiAqIERpc2FibGVzIHRoZSB0b29sdGlwIG1ha2luZyBpdCBkaXNhcHBlYXIgZnJvbSBET00uXG4gKi9cblxuLyoqXG4gKiBTaG93cyB0aGUgdG9vbHRpcCwgd2hpY2ggaXMgYWxyZWFkeSBpbiBET00uXG4gKiBSZXF1aXJlcyBgY2stdG9vbHRpcF9lbmFibGVkYCBmaXJzdC5cbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cblxuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLWxpbmstYWN0aW9ucyB7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpXG59XG5cbi5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcge1xuXHRcdHBhZGRpbmctbGVmdDogMDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAwXG5cdH1cblxuLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyxcblx0XHQuY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3OmhvdmVyLFxuXHRcdC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXc6Zm9jdXMsXG5cdFx0LmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldzphY3RpdmUge1xuXHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHR9XG5cbi5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXc6YWN0aXZlIHtcblx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0fVxuXG4uY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3OmZvY3VzIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHR9XG5cbi5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbGluay1kZWZhdWx0KTtcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdFx0XHQvKiBNYXRjaCB0aGUgYm94IG1vZGVsIG9mIHRoZSBsaW5rIGVkaXRvciBmb3JtJ3MgaW5wdXQgc28gdGhlIGJhbGxvb25cblx0XHRcdGRvZXMgbm90IGNoYW5nZSB3aWR0aCB3aGVuIG1vdmluZyBiZXR3ZWVuIGFjdGlvbnMgYW5kIHRoZSBmb3JtLiAqL1xuXHRcdFx0bWF4LXdpZHRoOiB2YXIoLS1jay1pbnB1dC10ZXh0LXdpZHRoKTtcblx0XHRcdG1pbi13aWR0aDogM2VtO1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyXG5cdFx0fVxuXG4uY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3IC5jay1idXR0b25fX2xhYmVsOmhvdmVyIHtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHR9XG5cbi5jay5jay1saW5rLWFjdGlvbnM6Zm9jdXMge1xuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbGluay9pc3N1ZXMvOTAgKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblxuLmNrLmNrLWxpbmstYWN0aW9ucyB7XG5cdFx0cGFkZGluZzogMDtcblx0XHR3aWR0aDogY2FsYyguOCAqIHZhcigtLWNrLWlucHV0LXRleHQtd2lkdGgpKVxufVxuXG5cdFx0LmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIDBcblx0XHR9XG5cblx0XHRcdC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRcdH1cblxuXHRcdC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbjpub3QoLmNrLWxpbmstYWN0aW9uc19fcHJldmlldykge1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRcdGJvcmRlcjogMDtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcilcblx0XHR9XG5cblx0XHRbZGlyPVwibHRyXCJdIC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbjpub3QoLmNrLWxpbmstYWN0aW9uc19fcHJldmlldykge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMFxuXHRcdH1cblxuXHRcdFx0XHRbZGlyPVwibHRyXCJdIC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbjpub3QoLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyk6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0XHR9XG5cblx0XHRbZGlyPVwicnRsXCJdIC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbjpub3QoLmNrLWxpbmstYWN0aW9uc19fcHJldmlldykge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMFxuXHRcdH1cblxuXHRcdFx0XHRbZGlyPVwicnRsXCJdIC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbjpub3QoLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyk6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHRcdH1cblx0fVxuIiwiLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtaW1hZ2VcXHRoZW1lXFx0ZXh0YWx0ZXJuYXRpdmVmb3JtLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogbm93cmFwXG59XG5cbi5jay5jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0gLmNrLWxhYmVsZWQtaW5wdXQge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXG4uY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4uY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIHtcblx0XHRmbGV4LXdyYXA6IHdyYXBcbn1cblxuXHRcdC5jay5jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0gLmNrLWxhYmVsZWQtaW5wdXQge1xuXHRcdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHR9XG5cblx0XHQuY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIC5jay1idXR0b24ge1xuXHRcdFx0ZmxleC1iYXNpczogNTAlO1xuXHRcdH1cblx0fVxuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LWltYWdlXFx0ZXh0YWx0ZXJuYXRpdmVmb3JtLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZClcbn1cblxuLmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybTpmb2N1cyB7XG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1saW5rL2lzc3Vlcy85MCAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybSA+IDpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHR9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbi5jay5jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0ge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0d2lkdGg6IGNhbGMoLjggKiB2YXIoLS1jay1pbnB1dC10ZXh0LXdpZHRoKSlcbn1cblxuXHRcdC5jay5jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0gLmNrLWxhYmVsZWQtaW5wdXQge1xuXHRcdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSAwXG5cdFx0fVxuXG5cdFx0XHQuY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIC5jay1sYWJlbGVkLWlucHV0IC5jay1pbnB1dC10ZXh0IHtcblx0XHRcdFx0bWluLXdpZHRoOiAwO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblxuXHRcdC5jay5jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0gLmNrLWJ1dHRvbiB7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKVxuXHRcdH1cblxuXHRcdFtkaXI9XCJsdHJcIl0gLmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybSAuY2stYnV0dG9uIHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDBcblx0XHR9XG5cblx0XHRcdFx0W2Rpcj1cImx0clwiXSAuY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIC5jay1idXR0b246Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0XHR9XG5cblx0XHRbZGlyPVwicnRsXCJdIC5jay5jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0gLmNrLWJ1dHRvbiB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwXG5cdFx0fVxuXG5cdFx0XHRcdFtkaXI9XCJydGxcIl0gLmNrLmNrLXRleHQtYWx0ZXJuYXRpdmUtZm9ybSAuY2stYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0XHR9XG5cdH1cbiIsIi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LWltYWdlXFx0aGVtZVxcaW1hZ2UuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLWNvbnRlbnQgLmltYWdlIHtcblx0ZGlzcGxheTogdGFibGU7XG5cdGNsZWFyOiBib3RoO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0LyogTWFrZSBzdXJlIHRoZXJlIGlzIHNvbWUgc3BhY2UgYmV0d2VlbiB0aGUgY29udGVudCBhbmQgdGhlIGltYWdlLiBDZW50ZXIgaW1hZ2UgYnkgZGVmYXVsdC4gKi9cblx0bWFyZ2luOiAxZW0gYXV0b1xufVxuXG4uY2stY29udGVudCAuaW1hZ2UgPiBpbWcge1xuXHRcdC8qIFByZXZlbnQgdW5uZWNlc3NhcnkgbWFyZ2lucyBjYXVzZWQgYnkgbGluZS1oZWlnaHQgKHNlZSAjNDQpLiAqL1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0LyogQ2VudGVyIHRoZSBpbWFnZSBpZiBpdHMgd2lkdGggaXMgc21hbGxlciB0aGFuIHRoZSBjb250ZW50J3Mgd2lkdGguICovXG5cdFx0bWFyZ2luOiAwIGF1dG87XG5cblx0XHQvKiBNYWtlIHN1cmUgdGhlIGltYWdlIG5ldmVyIGV4Y2VlZHMgdGhlIHNpemUgb2YgdGhlIHBhcmVudCBjb250YWluZXIgKGNrZWRpdG9yL2NrZWRpdG9yNS11aSM2NykuICovXG5cdFx0bWF4LXdpZHRoOiAxMDAlO1xuXG5cdFx0LyogTWFrZSBzdXJlIHRoZSBjYXB0aW9uIHdpbGwgYmUgZGlzcGxheWVkIHByb3Blcmx5IChTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE4NzApLiAqL1xuXHRcdG1pbi13aWR0aDogNTBweDtcblx0fVxuIiwiLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtaW1hZ2VcXHRoZW1lXFxpbWFnZWNhcHRpb24uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLWNvbnRlbnQgLmltYWdlID4gZmlnY2FwdGlvbiB7XG5cdGRpc3BsYXk6IHRhYmxlLWNhcHRpb247XG5cdGNhcHRpb24tc2lkZTogYm90dG9tO1xuXHR3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuXHRjb2xvcjogaHNsKDAsIDAlLCAyMCUpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk3JSk7XG5cdHBhZGRpbmc6IC42ZW07XG5cdGZvbnQtc2l6ZTogLjc1ZW07XG5cdG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xufVxuIiwiLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtaW1hZ2VcXHRoZW1lXFxpbWFnZXN0eWxlLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbjpyb290IHtcblx0LS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nOiAxLjVlbTtcbn1cblxuLmNrLWNvbnRlbnQgLmltYWdlLXN0eWxlLXNpZGU6bm90KC5pbWFnZV9yZXNpemVkKSwgLmNrLWNvbnRlbnQgLmltYWdlLXN0eWxlLWFsaWduLWxlZnQ6bm90KC5pbWFnZV9yZXNpemVkKSwgLmNrLWNvbnRlbnQgLmltYWdlLXN0eWxlLWFsaWduLWNlbnRlcjpub3QoLmltYWdlX3Jlc2l6ZWQpLCAuY2stY29udGVudCAuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQ6bm90KC5pbWFnZV9yZXNpemVkKSB7XG5cdFx0XHRtYXgtd2lkdGg6IDUwJTtcblx0XHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS1zdHlsZS1zaWRlIHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS1zdHlsZS1hbGlnbi1sZWZ0IHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS1zdHlsZS1hbGlnbi1jZW50ZXIge1xuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xuXHRcdG1hcmdpbi1yaWdodDogYXV0bztcblx0fVxuXG4uY2stY29udGVudCAuaW1hZ2Utc3R5bGUtYWxpZ24tcmlnaHQge1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2staW1hZ2Utc3R5bGUtc3BhY2luZyk7XG5cdH1cbiIsIi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LWltYWdlXFx0aGVtZVxcaW1hZ2VyZXNpemUuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlX3Jlc2l6ZWQge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdC8qXG5cdFRoZSBmaWd1cmUgZWxlbWVudCBmb3IgcmVzaXplZCBpbWFnZXMgbXVzdCBub3QgdXNlIGBkaXNwbGF5OnRhYmxlYCBhcyBicm93c2VycyBkb2Vzbid0IHN1cHBvcnQgYG1heC13aWR0aGAgZm9yIGl0IHdlbGwuXG5cdFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MDE5NjA0L2Nocm9tZS1zYWZhcmktaWdub3JpbmctbWF4LXdpZHRoLWluLXRhYmxlLzE0NDIwNjkxIzE0NDIwNjkxIGZvciBtb3JlLlxuXHRGb3J0dW5hdGVseSwgc2luY2Ugd2UgY29udHJvbCB3aWR0aCwgdGhlcmUncyBubyByaXNrIHRoYXQgdGhlIGltYWdlIHdpbGwgbG9vayBiYWQuXG5cdCovXG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94XG59XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZV9yZXNpemVkIGltZyB7XG5cdFx0LyogRm9yIHJlc2l6ZWQgaW1hZ2VzIGl0J3MgdGhlIGZpZ3VyZSB0aGF0IGRldGVybWluZXMgdGhlIGltYWdlJ3Mgd2lkdGguICovXG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlX3Jlc2l6ZWQgPiBmaWdjYXB0aW9uIHtcblx0XHQvKiBGaWd1cmUgdXNlcyBkaXNwbGF5IGJsb2NrLCBzbyBmaWdjYXB0aW9uIGFsc28gaGFzIHRvLiAqL1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS1pbWFnZVxcdGhlbWVcXGltYWdldXBsb2FkcHJvZ3Jlc3MuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKiBVcGxvYWQgcHJvZ3Jlc3MgYmFyLiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UgLmNrLXByb2dyZXNzLWJhciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xufVxuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LWltYWdlXFxpbWFnZXVwbG9hZHByb2dyZXNzLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSB7XG5cdC8qIFNob3dpbmcgYW5pbWF0aW9uLiAqL1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UuY2stYXBwZWFyIHtcblx0XHRhbmltYXRpb246IGZhZGVJbiA3MDBtcztcblx0fVxuXG4vKiBVcGxvYWQgcHJvZ3Jlc3MgYmFyLiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UgLmNrLXByb2dyZXNzLWJhciB7XG5cdGhlaWdodDogMnB4O1xuXHR3aWR0aDogMDtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdXBsb2FkLWJhci1iYWNrZ3JvdW5kKTtcblx0dHJhbnNpdGlvbjogd2lkdGggMTAwbXM7XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcblx0ZnJvbSB7IG9wYWNpdHk6IDA7IH1cblx0dG8gICB7IG9wYWNpdHk6IDE7IH1cbn1cbiIsIi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LWltYWdlXFx0aGVtZVxcaW1hZ2V1cGxvYWRpY29uLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay1pbWFnZS11cGxvYWQtY29tcGxldGUtaWNvbiB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMTBweDtcblx0cmlnaHQ6IDEwcHg7XG5cdGJvcmRlci1yYWRpdXM6IDUwJVxufVxuXG4uY2staW1hZ2UtdXBsb2FkLWNvbXBsZXRlLWljb246OmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0fVxuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LWltYWdlXFxpbWFnZXVwbG9hZGljb24uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uOiBoc2woMCwgMCUsIDEwMCUpO1xuXHQtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uLWJhY2tncm91bmQ6IGhzbCgxMjAsIDEwMCUsIDI3JSk7XG5cblx0LS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplOiAyMHB4O1xuXHQtLWNrLWltYWdlLXVwbG9hZC1pY29uLXdpZHRoOiAycHg7XG59XG5cbi5jay1pbWFnZS11cGxvYWQtY29tcGxldGUtaWNvbiB7XG5cdHdpZHRoOiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplKTtcblx0b3BhY2l0eTogMDtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItaW1hZ2UtdXBsb2FkLWljb24tYmFja2dyb3VuZCk7XG5cdGFuaW1hdGlvbi1uYW1lOiBjay11cGxvYWQtY29tcGxldGUtaWNvbi1zaG93LCBjay11cGxvYWQtY29tcGxldGUtaWNvbi1oaWRlO1xuXHRhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcywgZm9yd2FyZHM7XG5cdGFuaW1hdGlvbi1kdXJhdGlvbjogNTAwbXMsIDUwMG1zO1xuXG5cdC8qIFRvIG1ha2UgYW5pbWF0aW9uIHNjYWxhYmxlLiAqL1xuXHRmb250LXNpemU6IHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXNpemUpO1xuXG5cdC8qIEhpZGUgY29tcGxldGVkIHVwbG9hZCBpY29uIGFmdGVyIDMgc2Vjb25kcy4gKi9cblx0YW5pbWF0aW9uLWRlbGF5OiAwbXMsIDMwMDBtc1xuXG5cdC8qIFRoaXMgaXMgY2hlY2sgaWNvbiBlbGVtZW50IG1hZGUgZnJvbSBib3JkZXItd2lkdGggbWl4ZWQgd2l0aCBhbmltYXRpb25zLiAqL1xufVxuXG4uY2staW1hZ2UtdXBsb2FkLWNvbXBsZXRlLWljb246OmFmdGVyIHtcblx0XHQvKiBCZWNhdXNlIG9mIGJvcmRlciB0cmFuc2Zvcm1hdGlvbiB3ZSBuZWVkIHRvIFwiaGFyZCBjb2RlXCIgbGVmdCBwb3NpdGlvbi4gKi9cblx0XHRsZWZ0OiAyNSU7XG5cblx0XHR0b3A6IDUwJTtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdGhlaWdodDogMDtcblx0XHR3aWR0aDogMDtcblxuXHRcdHRyYW5zZm9ybTogc2NhbGVYKC0xKSByb3RhdGUoMTM1ZGVnKTtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcblx0XHRib3JkZXItdG9wOiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi13aWR0aCkgc29saWQgdmFyKC0tY2stY29sb3ItaW1hZ2UtdXBsb2FkLWljb24pO1xuXHRcdGJvcmRlci1yaWdodDogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24td2lkdGgpIHNvbGlkIHZhcigtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uKTtcblxuXHRcdGFuaW1hdGlvbi1uYW1lOiBjay11cGxvYWQtY29tcGxldGUtaWNvbi1jaGVjaztcblx0XHRhbmltYXRpb24tZHVyYXRpb246IDUwMG1zO1xuXHRcdGFuaW1hdGlvbi1kZWxheTogNTAwbXM7XG5cdFx0YW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG5cblx0XHQvKiAjMTA5NS4gV2hpbGUgcmVzZXQgaXMgbm90IHByb3ZpZGluZyBwcm9wZXIgYm94LXNpemluZyBmb3IgcHNldWRvZWxlbWVudHMsIHdlIG5lZWQgdG8gaGFuZGxlIGl0LiAqL1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cblxuQGtleWZyYW1lcyBjay11cGxvYWQtY29tcGxldGUtaWNvbi1zaG93IHtcblx0ZnJvbSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXG5cdHRvIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2stdXBsb2FkLWNvbXBsZXRlLWljb24taGlkZSB7XG5cdGZyb20ge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblxuXHR0byB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLWNoZWNrIHtcblx0MCUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0d2lkdGg6IDA7XG5cdFx0aGVpZ2h0OiAwO1xuXHR9XG5cdDMzJSB7XG5cdFx0d2lkdGg6IDAuM2VtO1xuXHRcdGhlaWdodDogMDtcblx0fVxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHdpZHRoOiAwLjNlbTtcblx0XHRoZWlnaHQ6IDAuNDVlbTtcblx0fVxufVxuIiwiLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtaW1hZ2VcXHRoZW1lXFxpbWFnZXVwbG9hZGxvYWRlci5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2sgLmNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDBcbn1cblxuLmNrIC5jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyOjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LWltYWdlXFxpbWFnZXVwbG9hZGxvYWRlci5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlcjogaHNsKDAsIDAlLCA3MCUpO1xuXHQtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXItc2l6ZTogMzJweDtcbn1cblxuLmNrIC5jay1pbWFnZS11cGxvYWQtcGxhY2Vob2xkZXIge1xuXHQvKiBXZSBuZWVkIHRvIGNvbnRyb2wgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIFNWRyBncmF5IGJhY2tncm91bmQuICovXG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW46IDA7XG59XG5cbi5jayAuY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCVcbn1cblxuLmNrIC5jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyOjpiZWZvcmUge1xuXHRcdHdpZHRoOiB2YXIoLS1jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplKTtcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0Ym9yZGVyLXRvcDogM3B4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIpO1xuXHRcdGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdGFuaW1hdGlvbjogY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlciAxcyBsaW5lYXIgaW5maW5pdGU7XG5cdH1cblxuQGtleWZyYW1lcyBjay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyIHtcblx0dG8ge1xuXHRcdHRyYW5zZm9ybTogcm90YXRlKCAzNjBkZWcgKTtcblx0fVxufVxuIiwiLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtbWVkaWEtZW1iZWRcXHRoZW1lXFxtZWRpYWVtYmVkZWRpdGluZy5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogRW5hYmxlcyB0aGUgdG9vbHRpcCwgd2hpY2ggaXMgdGhlIHRvb2x0aXAgaXMgaW4gRE9NIGJ1dFxuICogbm90IHlldCBkaXNwbGF5ZWQuXG4gKi9cblxuLyoqXG4gKiBEaXNhYmxlcyB0aGUgdG9vbHRpcCBtYWtpbmcgaXQgZGlzYXBwZWFyIGZyb20gRE9NLlxuICovXG5cbi8qKlxuICogU2hvd3MgdGhlIHRvb2x0aXAsIHdoaWNoIGlzIGFscmVhZHkgaW4gRE9NLlxuICogUmVxdWlyZXMgYGNrLXRvb2x0aXBfZW5hYmxlZGAgZmlyc3QuXG4gKi9cblxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyXG5cdH1cblxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsIC5jay10b29sdGlwIHtcblx0XHRkaXNwbGF5OiBibG9ja1xuXG5cdFx0Lypcblx0XHQgKiBEb24ndCBkaXNwbGF5IHRvb2x0aXBzIGluIGRldmljZXMgd2hpY2ggZG9uJ3Qgc3VwcG9ydCA6aG92ZXIuXG5cdFx0ICogSW4gZmFjdCwgaXQncyBhbGwgYWJvdXQgaU9TLCB3aGljaCBmb3JjZXMgdXNlciB0byBjbGljayBVSSBlbGVtZW50cyB0d2ljZSB0byBleGVjdXRlXG5cdFx0ICogdGhlIHByaW1hcnkgYWN0aW9uLCB3aGVuIHRvb2x0aXBzIGFyZSBlbmFibGVkLlxuXHRcdCAqXG5cdFx0ICogUTogT0ssIGJ1dCB3aHkgbm90IHRoZSBmb2xsb3dpbmcgcXVlcnk/XG5cdFx0ICpcblx0XHQgKiAgIEBtZWRpYSAoaG92ZXIpIHtcblx0XHQgKiAgICAgICBkaXNwbGF5OiBibG9jaztcblx0XHQgKiAgIH1cblx0XHQgKlxuXHRcdCAqIEE6IEJlY2F1c2UgRkYgZG9lcyBub3Qgc3VwcG9ydCBpdCBhbmQgaXQgd291bGQgY29tcGxldGVseSBkaXNhYmxlIHRvb2x0aXBzXG5cdFx0ICogaW4gdGhhdCBicm93c2VyLlxuXHRcdCAqXG5cdFx0ICogTW9yZSBpbiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy85MjAuXG5cdFx0ICovXG5cdH1cblxuQG1lZGlhIChob3Zlcjpub25lKSB7XG5cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybCAuY2stdG9vbHRpcCB7XG5cdFx0XHRkaXNwbGF5OiBub25lXG5cdH1cblx0XHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybCB7XG5cblx0XHRcdC8qIE90aGVyd2lzZSB0aGUgVVJMIHdpbGwgb3ZlcmZsb3cgd2hlbiB0aGUgY29udGVudCBpcyB2ZXJ5IG5hcnJvdy4gKi9cblx0XHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlXG5cdFx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmw6aG92ZXIgLmNrLXRvb2x0aXAge1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmwgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwidHdpdHRlci5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAqLCAuY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImdvb2dsZS5jb20vbWFwc1wiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICosIC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZmFjZWJvb2suY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24gKiwgLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24gKiB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuLyogRGlzYWJsZSBhbGwgbW91c2UgaW50ZXJhY3Rpb24gYXMgbG9uZyBhcyB0aGUgZWRpdG9yIGlzIG5vdCByZWFk4oCTb25seS5cbiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbWVkaWEtZW1iZWQvaXNzdWVzLzU4ICovXG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcmVhZC1vbmx5KSAuY2stbWVkaWFfX3dyYXBwZXIgPiAqOm5vdCguY2stbWVkaWFfX3BsYWNlaG9sZGVyKSB7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiBEaXNhYmxlIGFsbCBtb3VzZSBpbnRlcmFjdGlvbiB3aGVuIHRoZSB3aWRnZXQgaXMgbm90IHNlbGVjdGVkIChlLmcuIHRvIGF2b2lkIG9wZW5pbmcgbGlua3MgYnkgYWNjaWRlbnQpLlxuICAgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9pc3N1ZXMvMTggKi9cblxuLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1yZWFkLW9ubHkpIC5jay13aWRnZXQ6bm90KC5jay13aWRnZXRfc2VsZWN0ZWQpIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS1tZWRpYS1lbWJlZFxcbWVkaWFlbWJlZGVkaXRpbmcuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLWljb24tc2l6ZTogM2VtO1xuXG5cdC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQ6IGhzbCgwLCAwJSwgNDYlKTtcblx0LS1jay1jb2xvci1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci11cmwtdGV4dC1ob3ZlcjogdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcbn1cblxuLmNrLW1lZGlhX193cmFwcGVyIHtcblx0bWFyZ2luOiAwIGF1dG9cbn1cblxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdHBhZGRpbmc6IGNhbGMoIDMgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSApO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZClcblx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItaWNvbi1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItaWNvbi1zaXplKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3ZlclxuXHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAuY2staWNvbiB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybCAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQpO1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXNcblx0XHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dDpob3ZlciB7XG5cdFx0XHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLXVybC10ZXh0LWhvdmVyKTtcblx0XHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJvcGVuLnNwb3RpZnkuY29tXCJdIHtcblx0XHRtYXgtd2lkdGg6IDMwMHB4O1xuXHRcdG1heC1oZWlnaHQ6IDM4MHB4O1xuXHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwidHdpdHRlci5jb21cIl0gLmNrLmNrLW1lZGlhX19wbGFjZWhvbGRlciB7XG5cdFx0XHQvKiBVc2UgZ3JhZGllbnQgdG8gY29udHJhc3Qgd2l0aCBmb2N1c2VkIHdpZGdldCAoY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkIzIyKS4gKi9cblx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCggdG8gcmlnaHQsIGhzbCgyMDEsIDg1JSwgNzAlKSwgaHNsKDIwMSwgODUlLCAzNSUpIClcblx0XHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwidHdpdHRlci5jb21cIl0gLmNrLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaWRYUm1MVGdpUHo0OGMzWm5JSFpsY25OcGIyNDlJakV1TVNJZ2FXUTlJbGRvYVhSbElpQjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIaHRiRzV6T25oc2FXNXJQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwzaHNhVzVySWlCNFBTSXdjSGdpSUhrOUlqQndlQ0lnZG1sbGQwSnZlRDBpTUNBd0lEUXdNQ0EwTURBaUlITjBlV3hsUFNKbGJtRmliR1V0WW1GamEyZHliM1Z1WkRwdVpYY2dNQ0F3SURRd01DQTBNREE3SWlCNGJXdzZjM0JoWTJVOUluQnlaWE5sY25abElqNDhjM1I1YkdVZ2RIbHdaVDBpZEdWNGRDOWpjM01pUGk1emREQjdabWxzYkRvalJrWkdSa1pHTzMwOEwzTjBlV3hsUGp4d1lYUm9JR05zWVhOelBTSnpkREFpSUdROUlrMDBNREFzTWpBd1l6QXNNVEV3TGpVdE9Ea3VOU3d5TURBdE1qQXdMREl3TUZNd0xETXhNQzQxTERBc01qQXdVemc1TGpVc01Dd3lNREFzTUZNME1EQXNPRGt1TlN3ME1EQXNNakF3ZWlCTk1UWXpMalFzTXpBMUxqVmpPRGd1Tnl3d0xERXpOeTR5TFRjekxqVXNNVE0zTGpJdE1UTTNMakpqTUMweUxqRXNNQzAwTGpJdE1DNHhMVFl1TW1NNUxqUXROaTQ0TERFM0xqWXRNVFV1TXl3eU5DNHhMVEkxWXkwNExqWXNNeTQ0TFRFM0xqa3NOaTQwTFRJM0xqY3NOeTQyWXpFd0xUWXNNVGN1TmkweE5TNDBMREl4TGpJdE1qWXVOMk10T1M0ekxEVXVOUzB4T1M0MkxEa3VOUzB6TUM0MkxERXhMamRqTFRndU9DMDVMalF0TWpFdU15MHhOUzR5TFRNMUxqSXRNVFV1TW1NdE1qWXVOaXd3TFRRNExqSXNNakV1TmkwME9DNHlMRFE0TGpKak1Dd3pMamdzTUM0MExEY3VOU3d4TGpNc01URmpMVFF3TGpFdE1pMDNOUzQyTFRJeExqSXRPVGt1TkMwMU1DNDBZeTAwTGpFc055NHhMVFl1TlN3eE5TNDBMVFl1TlN3eU5DNHlZekFzTVRZdU55dzRMalVzTXpFdU5Td3lNUzQxTERRd0xqRmpMVGN1T1Mwd0xqSXRNVFV1TXkweUxqUXRNakV1T0MwMll6QXNNQzR5TERBc01DNDBMREFzTUM0Mll6QXNNak11TkN3eE5pNDJMRFF5TGpnc016Z3VOeXcwTnk0ell5MDBMREV1TVMwNExqTXNNUzQzTFRFeUxqY3NNUzQzWXkwekxqRXNNQzAyTGpFdE1DNHpMVGt1TVMwd0xqbGpOaTR4TERFNUxqSXNNak11T1N3ek15NHhMRFExTERNekxqVmpMVEUyTGpVc01USXVPUzB6Tnk0ekxESXdMall0TlRrdU9Td3lNQzQyWXkwekxqa3NNQzAzTGpjdE1DNHlMVEV4TGpVdE1DNDNRekV4TUM0NExESTVOeTQxTERFek5pNHlMRE13TlM0MUxERTJNeTQwTERNd05TNDFJaTgrUEM5emRtYyspO1xuXHRcdFx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdFx0Y29sb3I6IGhzbCgyMDEsIDEwMCUsIDg2JSlcblx0XHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJ0d2l0dGVyLmNvbVwiXSAuY2suY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dDpob3ZlciB7XG5cdFx0XHRcdFx0Y29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0XHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJnb29nbGUuY29tL21hcHNcIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhkcFpIUm9QU0l5TlRBdU16YzRJaUJvWldsbmFIUTlJakkxTkM0eE5qY2lJSFpwWlhkQ2IzZzlJakFnTUNBMk5pNHlORFlnTmpjdU1qUTRJajQ4WnlCMGNtRnVjMlp2Y20wOUluUnlZVzV6YkdGMFpTZ3RNVGN5TGpVek1TQXRNakU0TGpRMU5Ta2djMk5oYkdVb0xqazRNREV5S1NJK1BISmxZM1FnY25rOUlqVXVNak00SWlCeWVEMGlOUzR5TXpnaUlIazlJakl6TVM0ek9Ua2lJSGc5SWpFM05pNHdNekVpSUdobGFXZG9kRDBpTmpBdU1EazVJaUIzYVdSMGFEMGlOakF1TURrNUlpQm1hV3hzUFNJak16UmhOalk0SWlCd1lXbHVkQzF2Y21SbGNqMGliV0Z5YTJWeWN5QnpkSEp2YTJVZ1ptbHNiQ0l2UGp4d1lYUm9JR1E5SWsweU1EWXVORGMzSURJMk1DNDViQzB5T0M0NU9EY2dNamd1T1RnM1lUVXVNakU0SURVdU1qRTRJREFnTUNBd0lETXVOemdnTVM0Mk1XZzBPUzQyTWpGak1TNDJPVFFnTUNBekxqRTVMUzQzT1RnZ05DNHhORFl0TWk0d016ZDZJaUJtYVd4c1BTSWpOV000T0dNMUlpOCtQSEJoZEdnZ1pEMGlUVEl5Tmk0M05ESWdNakl5TGprNE9HTXRPUzR5TmpZZ01DMHhOaTQzTnpjZ055NHhOeTB4Tmk0M056Y2dNVFl1TURFMExqQXdOeUF5TGpjMk1pNDJOak1nTlM0ME56UWdNaTR3T1RNZ055NDROelV1TkRNdU56QXpMamd6SURFdU5EQTRJREV1TVRrZ01pNHhNRGN1TXpNekxqVXdNaTQyTlNBeExqQXdOUzQ1TlNBeExqVXdPQzR6TkRNdU5EYzNMalkzTXk0NU5UY3VPVGc0SURFdU5EUWdNUzR6TVNBeExqYzJPU0F5TGpVZ015NDFNRElnTXk0Mk16Y2dOUzR4TmpndU56a3pJREV1TWpjMUlERXVOamd6SURJdU5qUWdNaTQwTmpZZ015NDVPU0F5TGpNMk15QTBMakE1TkNBMExqQXdOeUE0TGpBNU1pQTBMallnTVRNdU9URTBkaTR3TVRKakxqRTRNaTQwTVRJdU5URTJMalkyTmk0NE56a3VOalkzTGpRd015MHVNREF4TGpjMk9DMHVNekUwTGprekxTNDNPVGt1TmpBekxUVXVOelUySURJdU1qTTRMVGt1TnpJNUlEUXVOVGcxTFRFekxqYzVOQzQzT0RJdE1TNHpOU0F4TGpZM015MHlMamN4TlNBeUxqUTJOUzB6TGprNUlERXVNVE0zTFRFdU5qWTJJREl1TXpJNExUTXVOQ0F6TGpZek9DMDFMakUyT1M0ek1UVXRMalE0TWk0Mk5EVXRMamsyTWk0NU9EZ3RNUzQwTXprdU15MHVOVEF6TGpZeE55MHhMakF3Tmk0NU5TMHhMalV3T0M0ek5Ua3RMamN1TnpZdE1TNDBNRFFnTVM0eE9TMHlMakV3TnlBeExqUXlOaTB5TGpRd01pQXlMVFV1TVRFMElESXVNREEwTFRjdU9EYzFJREF0T0M0NE5EUXROeTQxTVRFdE1UWXVNREUwTFRFMkxqYzNOaTB4Tmk0d01UUjZJaUJtYVd4c1BTSWpaR1EwWWpObElpQndZV2x1ZEMxdmNtUmxjajBpYldGeWEyVnljeUJ6ZEhKdmEyVWdabWxzYkNJdlBqeGxiR3hwY0hObElISjVQU0kxTGpVMk5DSWdjbmc5SWpVdU9ESTRJaUJqZVQwaU1qTTVMakF3TWlJZ1kzZzlJakl5Tmk0M05ESWlJR1pwYkd3OUlpTTRNREprTWpjaUlIQmhhVzUwTFc5eVpHVnlQU0p0WVhKclpYSnpJSE4wY205clpTQm1hV3hzSWk4K1BIQmhkR2dnWkQwaVRURTVNQzR6TURFZ01qTTNMakk0TTJNdE5DNDJOeUF3TFRndU5EVTNJRE11T0RVekxUZ3VORFUzSURndU5qQTJjek11TnpnMklEZ3VOakEzSURndU5EVTNJRGd1TmpBM1l6TXVNRFF6SURBZ05DNDRNRFl0TGprMU9DQTJMak16TnkweUxqVXhOaUF4TGpVekxURXVOVFUzSURJdU1EZzNMVE11T1RFeklESXVNRGczTFRZdU1qa2dNQzB1TXpZeUxTNHdNak10TGpjeU1pMHVNRFkwTFRFdU1EYzVhQzA0TGpJMU4zWXpMakEwTTJnMExqZzFZeTB1TVRrM0xqYzFPUzB1TlRNeElERXVORFV0TVM0d05UZ2dNUzQ1T0RZdExqazBNaTQ1TlRndE1pNHdNamdnTVM0MU5EZ3RNeTQ1TURFZ01TNDFORGd0TWk0NE56WWdNQzAxTGpJd09DMHlMak0zTWkwMUxqSXdPQzAxTGpJNU9TQXdMVEl1T1RJMklESXVNek15TFRVdU1qazVJRFV1TWpBNExUVXVNams1SURFdU16azVJREFnTWk0Mk1UZ3VOREEzSURNdU5UZzBJREV1TWpremJESXVNemd4TFRJdU16aGpNQzB1TURBeUxTNHdNRE10TGpBd05DMHVNREEwTFM0d01EVXRNUzQxT0RndE1TNDFNalF0TXk0Mk1pMHlMakl4TlMwMUxqazFOUzB5TGpJeE5YcHROQzQwTXlBMUxqWTJiQzR3TURNdU1EQTJkaTB1TURBemVpSWdabWxzYkQwaUkyWm1aaUlnY0dGcGJuUXRiM0prWlhJOUltMWhjbXRsY25NZ2MzUnliMnRsSUdacGJHd2lMejQ4Y0dGMGFDQmtQU0pOTWpFMUxqRTROQ0F5TlRFdU9USTViQzAzTGprNElEY3VPVGM1SURJNExqUTNOeUF5T0M0ME56VmpMakk0TnkwdU5qUTVMalEwT1MweExqTTJOaTQwTkRrdE1pNHhNak4yTFRNeExqRTJOV010TGpRMk9TNDJOelV0TGprek5DQXhMak0wT1MweExqTTRNaUF5TGpBd05TMHVOemt5SURFdU1qYzFMVEV1TmpneUlESXVOalF0TWk0ME5qVWdNeTQ1T1MweUxqTTBOeUEwTGpBMk5TMHpMams0TWlBNExqQXpPQzAwTGpVNE5TQXhNeTQzT1RRdExqRTJNaTQwT0RVdExqVXlOeTQzT1RndExqa3pMamM1T1MwdU16WXpMUzR3TURFdExqWTVOeTB1TWpVMUxTNDROemt0TGpZMk4zWXRMakF4TW1NdExqVTVNeTAxTGpneU1pMHlMakl6TnkwNUxqZ3lMVFF1TmkweE15NDVNVFF0TGpjNE15MHhMak0xTFRFdU5qY3pMVEl1TnpFMUxUSXVORFkyTFRNdU9Ua3RNUzR4TXpjdE1TNDJOall0TWk0ek1qY3RNeTQwTFRNdU5qTTNMVFV1TVRZNWJDMHVNREF5TFM0d01ETjZJaUJtYVd4c1BTSWpZek5qTTJNeklpOCtQSEJoZEdnZ1pEMGlUVEl4TWk0NU9ETWdNalE0TGpRNU5Xd3RNell1T1RVeUlETTJMamsxTTNZdU9ERXlZVFV1TWpJM0lEVXVNakkzSURBZ01DQXdJRFV1TWpNNElEVXVNak00YURFdU1ERTFiRE0xTGpZMk5pMHpOUzQyTmpaaE1UTTJMakkzTlNBeE16WXVNamMxSURBZ01DQXdMVEl1TnpZMExUTXVPU0F6Tnk0MU56VWdNemN1TlRjMUlEQWdNQ0F3TFM0NU9Ea3RNUzQwTkdNdExqSTVPUzB1TlRBekxTNDJNVFl0TVM0d01EWXRMamsxTFRFdU5UQTRMUzR3T0RNdExqRTJNaTB1TVRjMkxTNHpNall0TGpJMk5DMHVORGc1ZWlJZ1ptbHNiRDBpSTJaa1pHTTBaaUlnY0dGcGJuUXRiM0prWlhJOUltMWhjbXRsY25NZ2MzUnliMnRsSUdacGJHd2lMejQ4Y0dGMGFDQmtQU0pOTWpFeExqazVPQ0F5TmpFdU1EZ3piQzAyTGpFMU1pQTJMakUxTVNBeU5DNHlOalFnTWpRdU1qWTBhQzQzT0RGaE5TNHlNamNnTlM0eU1qY2dNQ0F3SURBZ05TNHlNemt0TlM0eU16aDJMVEV1TURRMWVpSWdabWxzYkQwaUkyWm1aaUlnY0dGcGJuUXRiM0prWlhJOUltMWhjbXRsY25NZ2MzUnliMnRsSUdacGJHd2lMejQ4TDJjK1BDOXpkbWMrKTtcblx0XHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZmFjZWJvb2suY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdFx0YmFja2dyb3VuZDogaHNsKDIyMCwgNDYlLCA0OCUpXG5cdFx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpVlZSR0xUZ2lQejQ4YzNabklIZHBaSFJvUFNJeE1ESTBjSGdpSUdobGFXZG9kRDBpTVRBeU5IQjRJaUIyYVdWM1FtOTRQU0l3SURBZ01UQXlOQ0F4TURJMElpQjJaWEp6YVc5dVBTSXhMakVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lQaUFnSUNBZ0lDQWdQSFJwZEd4bFBrWnBiR3dnTVR3dmRHbDBiR1UrSUNBZ0lEeGtaWE5qUGtOeVpXRjBaV1FnZDJsMGFDQlRhMlYwWTJndVBDOWtaWE5qUGlBZ0lDQThaR1ZtY3o0OEwyUmxabk0rSUNBZ0lEeG5JR2xrUFNKUVlXZGxMVEVpSUhOMGNtOXJaVDBpYm05dVpTSWdjM1J5YjJ0bExYZHBaSFJvUFNJeElpQm1hV3hzUFNKdWIyNWxJaUJtYVd4c0xYSjFiR1U5SW1WMlpXNXZaR1FpUGlBZ0lDQWdJQ0FnUEdjZ2FXUTlJbVpNYjJkdlgxZG9hWFJsSWlCbWFXeHNQU0lqUmtaR1JrWkZJajRnSUNBZ0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk9UWTNMalE0TkN3d0lFdzFOaTQxTVRjc01DQkRNalV1TXpBMExEQWdNQ3d5TlM0ek1EUWdNQ3cxTmk0MU1UY2dUREFzT1RZM0xqUTRNeUJETUN3NU9UZ3VOamswSURJMUxqSTVOeXd4TURJMElEVTJMalV5TWl3eE1ESTBJRXcxTkRjc01UQXlOQ0JNTlRRM0xEWXlPQ0JNTkRFMExEWXlPQ0JNTkRFMExEUTNNeUJNTlRRM0xEUTNNeUJNTlRRM0xETTFPUzR3TWprZ1F6VTBOeXd5TWpZdU56WTNJRFl5Tnk0M056TXNNVFUwTGpjME55QTNORFV1TnpVMkxERTFOQzQzTkRjZ1F6Z3dNaTR5Tmprc01UVTBMamMwTnlBNE5UQXVPRFF5TERFMU9DNDVOVFVnT0RZMUxERTJNQzQ0TXpZZ1REZzJOU3d5T1RrZ1REYzRNeTR6T0RRc01qazVMakF6TnlCRE56RTVMak01TVN3eU9Ua3VNRE0zSURjd055d3pNamt1TlRJNUlEY3dOeXd6TnpRdU1qY3pJRXczTURjc05EY3pJRXc0TmpBdU5EZzNMRFEzTXlCTU9EUXdMalV3TVN3Mk1qZ2dURGN3Tnl3Mk1qZ2dURGN3Tnl3eE1ESTBJRXc1TmpjdU5EZzBMREV3TWpRZ1F6azVPQzQyT1Rjc01UQXlOQ0F4TURJMExEazVPQzQyT1RjZ01UQXlOQ3c1TmpjdU5EZzBJRXd4TURJMExEVTJMalV4TlNCRE1UQXlOQ3d5TlM0ek1ETWdPVGs0TGpZNU55d3dJRGsyTnk0ME9EUXNNQ0lnYVdROUlrWnBiR3d0TVNJK1BDOXdZWFJvUGlBZ0lDQWdJQ0FnUEM5blBpQWdJQ0E4TDJjK1BDOXpkbWMrKTtcblx0XHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJmYWNlYm9vay5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0XHRjb2xvcjogaHNsKDIyMCwgMTAwJSwgOTAlKVxuXHRcdFx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dDpob3ZlciB7XG5cdFx0XHRcdFx0Y29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0XHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdFx0YmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KC0xMzVkZWcsIzE0MDBjOCwjYjkwMGI0LCNmNTAwMDApXG5cdFx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImluc3RhZ3JhbS5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpUHo0OGMzWm5JSGRwWkhSb1BTSTFNRFJ3ZUNJZ2FHVnBaMmgwUFNJMU1EUndlQ0lnZG1sbGQwSnZlRDBpTUNBd0lEVXdOQ0ExTURRaUlIWmxjbk5wYjI0OUlqRXVNU0lnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JaUI0Yld4dWN6cDRiR2x1YXowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzk0YkdsdWF5SStJQ0FnSUNBZ0lDQThkR2wwYkdVK1oyeDVjR2d0Ykc5bmIxOU5ZWGt5TURFMlBDOTBhWFJzWlQ0Z0lDQWdQR1JsYzJNK1EzSmxZWFJsWkNCM2FYUm9JRk5yWlhSamFDNDhMMlJsYzJNK0lDQWdJRHhrWldaelBpQWdJQ0FnSUNBZ1BIQnZiSGxuYjI0Z2FXUTlJbkJoZEdndE1TSWdjRzlwYm5SelBTSXdJREF1TVRVNUlEVXdNeTQ0TkRFZ01DNHhOVGtnTlRBekxqZzBNU0ExTURNdU9UUWdNQ0ExTURNdU9UUWlQand2Y0c5c2VXZHZiajRnSUNBZ1BDOWtaV1p6UGlBZ0lDQThaeUJwWkQwaVoyeDVjR2d0Ykc5bmIxOU5ZWGt5TURFMklpQnpkSEp2YTJVOUltNXZibVVpSUhOMGNtOXJaUzEzYVdSMGFEMGlNU0lnWm1sc2JEMGlibTl1WlNJZ1ptbHNiQzF5ZFd4bFBTSmxkbVZ1YjJSa0lqNGdJQ0FnSUNBZ0lEeG5JR2xrUFNKSGNtOTFjQzB6SWo0Z0lDQWdJQ0FnSUNBZ0lDQThiV0Z6YXlCcFpEMGliV0Z6YXkweUlpQm1hV3hzUFNKM2FHbDBaU0krSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHgxYzJVZ2VHeHBibXM2YUhKbFpqMGlJM0JoZEdndE1TSStQQzkxYzJVK0lDQWdJQ0FnSUNBZ0lDQWdQQzl0WVhOclBpQWdJQ0FnSUNBZ0lDQWdJRHhuSUdsa1BTSkRiR2x3TFRJaVBqd3ZaejRnSUNBZ0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk1qVXhMamt5TVN3d0xqRTFPU0JETVRnekxqVXdNeXd3TGpFMU9TQXhOelF1T1RJMExEQXVORFE1SURFME9DNHdOVFFzTVM0Mk56VWdRekV5TVM0eU5Dd3lMamc1T0NBeE1ESXVPVEkzTERjdU1UVTNJRGcyTGprd015d3hNeTR6T0RVZ1F6Y3dMak16Tnl3eE9TNDRNaklnTlRZdU1qZzRMREk0TGpRek5pQTBNaTR5T0RJc05ESXVORFF4SUVNeU9DNHlOemNzTlRZdU5EUTNJREU1TGpZMk15dzNNQzQwT1RZZ01UTXVNakkyTERnM0xqQTJNaUJETmk0NU9UZ3NNVEF6TGpBNE5pQXlMamN6T1N3eE1qRXVNems1SURFdU5URTJMREUwT0M0eU1UTWdRekF1TWprc01UYzFMakE0TXlBd0xERTRNeTQyTmpJZ01Dd3lOVEl1TURnZ1F6QXNNekl3TGpRNU55QXdMakk1TERNeU9TNHdOellnTVM0MU1UWXNNelUxTGprME5pQkRNaTQzTXprc016Z3lMamMySURZdU9UazRMRFF3TVM0d056TWdNVE11TWpJMkxEUXhOeTR3T1RjZ1F6RTVMalkyTXl3ME16TXVOall6SURJNExqSTNOeXcwTkRjdU56RXlJRFF5TGpJNE1pdzBOakV1TnpFNElFTTFOaTR5T0Rnc05EYzFMamN5TXlBM01DNHpNemNzTkRnMExqTXpOeUE0Tmk0NU1ETXNORGt3TGpjM05TQkRNVEF5TGpreU55dzBPVGN1TURBeUlERXlNUzR5TkN3MU1ERXVNall4SURFME9DNHdOVFFzTlRBeUxqUTROQ0JETVRjMExqa3lOQ3cxTURNdU56RWdNVGd6TGpVd015dzFNRFFnTWpVeExqa3lNU3cxTURRZ1F6TXlNQzR6TXpnc05UQTBJRE15T0M0NU1UY3NOVEF6TGpjeElETTFOUzQzT0Rjc05UQXlMalE0TkNCRE16Z3lMall3TVN3MU1ERXVNall4SURRd01DNDVNVFFzTkRrM0xqQXdNaUEwTVRZdU9UTTRMRFE1TUM0M056VWdRelF6TXk0MU1EUXNORGcwTGpNek55QTBORGN1TlRVekxEUTNOUzQzTWpNZ05EWXhMalUxT1N3ME5qRXVOekU0SUVNME56VXVOVFkwTERRME55NDNNVElnTkRnMExqRTNPQ3cwTXpNdU5qWXpJRFE1TUM0Mk1UWXNOREUzTGpBNU55QkRORGsyTGpnME15dzBNREV1TURjeklEVXdNUzR4TURJc016Z3lMamMySURVd01pNHpNalVzTXpVMUxqazBOaUJETlRBekxqVTFNU3d6TWprdU1EYzJJRFV3TXk0NE5ERXNNekl3TGpRNU55QTFNRE11T0RReExESTFNaTR3T0NCRE5UQXpMamcwTVN3eE9ETXVOall5SURVd015NDFOVEVzTVRjMUxqQTRNeUExTURJdU16STFMREUwT0M0eU1UTWdRelV3TVM0eE1ESXNNVEl4TGpNNU9TQTBPVFl1T0RRekxERXdNeTR3T0RZZ05Ea3dMall4Tml3NE55NHdOaklnUXpRNE5DNHhOemdzTnpBdU5EazJJRFEzTlM0MU5qUXNOVFl1TkRRM0lEUTJNUzQxTlRrc05ESXVORFF4SUVNME5EY3VOVFV6TERJNExqUXpOaUEwTXpNdU5UQTBMREU1TGpneU1pQTBNVFl1T1RNNExERXpMak00TlNCRE5EQXdMamt4TkN3M0xqRTFOeUF6T0RJdU5qQXhMREl1T0RrNElETTFOUzQzT0Rjc01TNDJOelVnUXpNeU9DNDVNVGNzTUM0ME5Ea2dNekl3TGpNek9Dd3dMakUxT1NBeU5URXVPVEl4TERBdU1UVTVJRm9nVFRJMU1TNDVNakVzTkRVdU5UVWdRek14T1M0eE9EWXNORFV1TlRVZ016STNMakUxTkN3ME5TNDRNRGNnTXpVekxqY3hPQ3cwTnk0d01Ua2dRek0zT0M0eU9DdzBPQzR4TXprZ016a3hMall4T1N3MU1pNHlORE1nTkRBd0xqUTVOaXcxTlM0Mk9UTWdRelF4TWk0eU5UVXNOakF1TWpZeklEUXlNQzQyTkRjc05qVXVOekl5SURReU9TNDBOaklzTnpRdU5UTTRJRU0wTXpndU1qYzRMRGd6TGpNMU15QTBORE11TnpNM0xEa3hMamMwTlNBME5EZ3VNekEzTERFd015NDFNRFFnUXpRMU1TNDNOVGNzTVRFeUxqTTRNU0EwTlRVdU9EWXhMREV5TlM0M01pQTBOVFl1T1RneExERTFNQzR5T0RJZ1F6UTFPQzR4T1RNc01UYzJMamcwTmlBME5UZ3VORFVzTVRnMExqZ3hOQ0EwTlRndU5EVXNNalV5TGpBNElFTTBOVGd1TkRVc016RTVMak0wTlNBME5UZ3VNVGt6TERNeU55NHpNVE1nTkRVMkxqazRNU3d6TlRNdU9EYzNJRU0wTlRVdU9EWXhMRE0zT0M0ME16a2dORFV4TGpjMU55d3pPVEV1TnpjNElEUTBPQzR6TURjc05EQXdMalkxTlNCRE5EUXpMamN6Tnl3ME1USXVOREUwSURRek9DNHlOemdzTkRJd0xqZ3dOaUEwTWprdU5EWXlMRFF5T1M0Mk1qRWdRelF5TUM0Mk5EY3NORE00TGpRek55QTBNVEl1TWpVMUxEUTBNeTQ0T1RZZ05EQXdMalE1Tml3ME5EZ3VORFkySUVNek9URXVOakU1TERRMU1TNDVNVFlnTXpjNExqSTRMRFExTmk0d01pQXpOVE11TnpFNExEUTFOeTR4TkNCRE16STNMakUxT0N3ME5UZ3VNelV5SURNeE9TNHhPVEVzTkRVNExqWXdPU0F5TlRFdU9USXhMRFExT0M0Mk1Ea2dRekU0TkM0Mk5TdzBOVGd1TmpBNUlERTNOaTQyT0RRc05EVTRMak0xTWlBeE5UQXVNVEl6TERRMU55NHhOQ0JETVRJMUxqVTJNU3cwTlRZdU1ESWdNVEV5TGpJeU1pdzBOVEV1T1RFMklERXdNeTR6TkRVc05EUTRMalEyTmlCRE9URXVOVGcyTERRME15NDRPVFlnT0RNdU1UazBMRFF6T0M0ME16Y2dOelF1TXpjNUxEUXlPUzQyTWpFZ1F6WTFMalUyTkN3ME1qQXVPREEySURZd0xqRXdOQ3cwTVRJdU5ERTBJRFUxTGpVek5DdzBNREF1TmpVMUlFTTFNaTR3T0RRc016a3hMamMzT0NBME55NDVPQ3d6TnpndU5ETTVJRFEyTGpnMkxETTFNeTQ0TnpjZ1F6UTFMalkwT0N3ek1qY3VNekV6SURRMUxqTTVNU3d6TVRrdU16UTFJRFExTGpNNU1Td3lOVEl1TURnZ1F6UTFMak01TVN3eE9EUXVPREUwSURRMUxqWTBPQ3d4TnpZdU9EUTJJRFEyTGpnMkxERTFNQzR5T0RJZ1F6UTNMams0TERFeU5TNDNNaUExTWk0d09EUXNNVEV5TGpNNE1TQTFOUzQxTXpRc01UQXpMalV3TkNCRE5qQXVNVEEwTERreExqYzBOU0EyTlM0MU5qTXNPRE11TXpVeklEYzBMak0zT1N3M05DNDFNemdnUXpnekxqRTVOQ3cyTlM0M01qSWdPVEV1TlRnMkxEWXdMakkyTXlBeE1ETXVNelExTERVMUxqWTVNeUJETVRFeUxqSXlNaXcxTWk0eU5ETWdNVEkxTGpVMk1TdzBPQzR4TXprZ01UVXdMakV5TXl3ME55NHdNVGtnUXpFM05pNDJPRGNzTkRVdU9EQTNJREU0TkM0Mk5UVXNORFV1TlRVZ01qVXhMamt5TVN3ME5TNDFOU0JhSWlCcFpEMGlSbWxzYkMweElpQm1hV3hzUFNJalJrWkdSa1pHSWlCdFlYTnJQU0oxY213b0kyMWhjMnN0TWlraVBqd3ZjR0YwYUQ0Z0lDQWdJQ0FnSUR3dlp6NGdJQ0FnSUNBZ0lEeHdZWFJvSUdROUlrMHlOVEV1T1RJeExETXpOaTR3TlRNZ1F6SXdOUzQxTkRNc016TTJMakExTXlBeE5qY3VPVFEzTERJNU9DNDBOVGNnTVRZM0xqazBOeXd5TlRJdU1EZ2dRekUyTnk0NU5EY3NNakExTGpjd01pQXlNRFV1TlRRekxERTJPQzR4TURZZ01qVXhMamt5TVN3eE5qZ3VNVEEySUVNeU9UZ3VNams0TERFMk9DNHhNRFlnTXpNMUxqZzVOQ3d5TURVdU56QXlJRE16TlM0NE9UUXNNalV5TGpBNElFTXpNelV1T0RrMExESTVPQzQwTlRjZ01qazRMakk1T0N3ek16WXVNRFV6SURJMU1TNDVNakVzTXpNMkxqQTFNeUJhSUUweU5URXVPVEl4TERFeU1pNDNNVFVnUXpFNE1DNDBOelFzTVRJeUxqY3hOU0F4TWpJdU5UVTJMREU0TUM0Mk16TWdNVEl5TGpVMU5pd3lOVEl1TURnZ1F6RXlNaTQxTlRZc016SXpMalV5TmlBeE9EQXVORGMwTERNNE1TNDBORFFnTWpVeExqa3lNU3d6T0RFdU5EUTBJRU16TWpNdU16WTNMRE00TVM0ME5EUWdNemd4TGpJNE5Td3pNak11TlRJMklETTRNUzR5T0RVc01qVXlMakE0SUVNek9ERXVNamcxTERFNE1DNDJNek1nTXpJekxqTTJOeXd4TWpJdU56RTFJREkxTVM0NU1qRXNNVEl5TGpjeE5TQmFJaUJwWkQwaVJtbHNiQzAwSWlCbWFXeHNQU0lqUmtaR1JrWkdJajQ4TDNCaGRHZytJQ0FnSUNBZ0lDQThjR0YwYUNCa1BTSk5OREUyTGpZeU55d3hNVGN1TmpBMElFTTBNVFl1TmpJM0xERXpOQzR6SURRd015NHdPVElzTVRRM0xqZ3pOQ0F6T0RZdU16azJMREUwTnk0NE16UWdRek0yT1M0M01ERXNNVFEzTGpnek5DQXpOVFl1TVRZMkxERXpOQzR6SURNMU5pNHhOallzTVRFM0xqWXdOQ0JETXpVMkxqRTJOaXd4TURBdU9UQTRJRE0yT1M0M01ERXNPRGN1TXpjeklETTROaTR6T1RZc09EY3VNemN6SUVNME1ETXVNRGt5TERnM0xqTTNNeUEwTVRZdU5qSTNMREV3TUM0NU1EZ2dOREUyTGpZeU55d3hNVGN1TmpBMElpQnBaRDBpUm1sc2JDMDFJaUJtYVd4c1BTSWpSa1pHUmtaR0lqNDhMM0JoZEdnK0lDQWdJRHd2Wno0OEwzTjJaejQ9KTtcblx0XHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdFx0Y29sb3I6IGhzbCgzMDIsIDEwMCUsIDk0JSlcblx0XHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0OmhvdmVyIHtcblx0XHRcdFx0XHRjb2xvcjogaHNsKDAsIDAlLCAxMDAlKTtcblx0XHRcdFx0fVxuIiwiLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtbWVkaWEtZW1iZWRcXHRoZW1lXFxtZWRpYWZvcm0uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2suY2stbWVkaWEtZm9ybSB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcFxufVxuXG4uY2suY2stbWVkaWEtZm9ybSAuY2stbGFiZWxlZC1pbnB1dCB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cbi5jay5jay1tZWRpYS1mb3JtIC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4uY2suY2stbWVkaWEtZm9ybSB7XG5cdFx0ZmxleC13cmFwOiB3cmFwXG59XG5cblx0XHQuY2suY2stbWVkaWEtZm9ybSAuY2stbGFiZWxlZC1pbnB1dCB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdC5jay5jay1tZWRpYS1mb3JtIC5jay1idXR0b24ge1xuXHRcdFx0ZmxleC1iYXNpczogNTAlO1xuXHRcdH1cblx0fVxuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LW1lZGlhLWVtYmVkXFxtZWRpYWZvcm0uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay5jay1tZWRpYS1mb3JtIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZClcbn1cblxuLmNrLmNrLW1lZGlhLWZvcm06Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stbWVkaWEtZm9ybSA+IDpub3QoOmZpcnN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1tZWRpYS1mb3JtID4gOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblxuLmNrLmNrLW1lZGlhLWZvcm0ge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0d2lkdGg6IGNhbGMoLjggKiB2YXIoLS1jay1pbnB1dC10ZXh0LXdpZHRoKSlcbn1cblxuXHRcdC5jay5jay1tZWRpYS1mb3JtIC5jay1sYWJlbGVkLWlucHV0IHtcblx0XHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgMFxuXHRcdH1cblxuXHRcdFx0LmNrLmNrLW1lZGlhLWZvcm0gLmNrLWxhYmVsZWQtaW5wdXQgLmNrLWlucHV0LXRleHQge1xuXHRcdFx0XHRtaW4td2lkdGg6IDA7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXG5cdFx0LmNrLmNrLW1lZGlhLWZvcm0gLmNrLWxhYmVsZWQtaW5wdXQge1xuXG5cdFx0XHQvKiBMZXQgdGhlIGxvbmcgZXJyb3IgbWVzc2FnZXMgd3JhcCBpbiB0aGUgbmFycm93IGZvcm0uICovXG5cdFx0fVxuXHRcdFx0LmNrLmNrLW1lZGlhLWZvcm0gLmNrLWxhYmVsZWQtaW5wdXQgLmNrLWxhYmVsZWQtaW5wdXRfX2Vycm9yIHtcblx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblx0XHRcdH1cblxuXHRcdC5jay5jay1tZWRpYS1mb3JtIC5jay1idXR0b24ge1xuXHRcdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRcdGJvcmRlcjogMDtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcilcblx0XHR9XG5cblx0XHRbZGlyPVwibHRyXCJdIC5jay5jay1tZWRpYS1mb3JtIC5jay1idXR0b24ge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMFxuXHRcdH1cblxuXHRcdFx0XHRbZGlyPVwibHRyXCJdIC5jay5jay1tZWRpYS1mb3JtIC5jay1idXR0b246Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0XHR9XG5cblx0XHRbZGlyPVwicnRsXCJdIC5jay5jay1tZWRpYS1mb3JtIC5jay1idXR0b24ge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMFxuXHRcdH1cblxuXHRcdFx0XHRbZGlyPVwicnRsXCJdIC5jay5jay1tZWRpYS1mb3JtIC5jay1idXR0b246bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHRcdH1cblx0fVxuIiwiLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtbWVkaWEtZW1iZWRcXHRoZW1lXFxtZWRpYWVtYmVkLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay1jb250ZW50IC5tZWRpYSB7XG5cdC8qIERvbid0IGFsbG93IGZsb2F0ZWQgY29udGVudCBvdmVybGFwIHRoZSBtZWRpYS5cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1tZWRpYS1lbWJlZC9pc3N1ZXMvNTMgKi9cblx0Y2xlYXI6IGJvdGg7XG5cblx0LyogTWFrZSBzdXJlIHRoZXJlIGlzIHNvbWUgc3BhY2UgYmV0d2VlbiB0aGUgY29udGVudCBhbmQgdGhlIG1lZGlhLiAqL1xuXHRtYXJnaW46IDFlbSAwO1xuXG5cdC8qIE1ha2Ugc3VyZSBtZWRpYSBpcyBub3Qgb3ZlcnJpZGVuIHdpdGggQm9vdHN0cmFwIGRlZmF1bHQgYGZsZXhgIHZhbHVlLlxuXHRTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzEzNzMuICovXG5cdGRpc3BsYXk6IGJsb2NrO1xuXG5cdC8qIEdpdmUgdGhlIG1lZGlhIHNvbWUgbWluaW1hbCB3aWR0aCBpbiB0aGUgY29udGVudCB0byBwcmV2ZW50IHRoZW1cblx0ZnJvbSBiZWluZyBcInNxdWFzaGVkXCIgaW4gdGlnaHQgc3BhY2VzLCBlLmcuIGluIHRhYmxlIGNlbGxzICgjNDQpICovXG5cdG1pbi13aWR0aDogMTVlbTtcbn1cbiIsIi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRhYmxlXFx0aGVtZVxcdGFibGVlZGl0aW5nLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBOb3RlOiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIHdpcmVmcmFtZSBzdHlsZXMgb25seS4gQnV0IHNpbmNlIHRoZXJlIGFyZSBubyBzdWNoIHN0eWxlcyxcbiAqIGl0IGFjdHMgYXMgYSBtZXNzYWdlIHRvIHRoZSBidWlsZGVyIHRlbGxpbmcgdGhhdCBpdCBzaG91bGQgbG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGVzXG4gKiAqKmluIHRoZSB0aGVtZSoqIHdoZW4gY29tcGlsaW5nIHRoZSBlZGl0b3IuXG4gKi9cblxuLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS10YWJsZVxcdGFibGVlZGl0aW5nLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci10YWJsZS1mb2N1c2VkLWNlbGwtYmFja2dyb3VuZDogaHNsKDIwOCwgOTAlLCA5OCUpO1xufVxuXG4uY2std2lkZ2V0LnRhYmxlIHRkLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlX2ZvY3VzZWQsIC5jay13aWRnZXQudGFibGUgdGguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCB7XG5cdFx0XHQvKiBBIHZlcnkgc2xpZ2h0IGJhY2tncm91bmQgdG8gaGlnaGxpZ2h0IHRoZSBmb2N1c2VkIGNlbGwgKi9cblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXRhYmxlLWZvY3VzZWQtY2VsbC1iYWNrZ3JvdW5kKTtcblxuXHRcdFx0LyogRml4ZXMgdGhlIHByb2JsZW0gd2hlcmUgc3Vycm91bmRpbmcgY2VsbHMgY292ZXIgdGhlIGZvY3VzZWQgY2VsbCdzIGJvcmRlci5cblx0XHRcdEl0IGRvZXMgbm90IGZpeCB0aGUgcHJvYmxlbSBpbiBhbGwgcGxhY2VzIGJ1dCB0aGUgVVggaXMgaW1wcm92ZWQuXG5cdFx0XHRTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10YWJsZS9pc3N1ZXMvMjkuICovXG5cdFx0XHRib3JkZXItc3R5bGU6IG5vbmU7XG5cdFx0XHRvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHRcdG91dGxpbmUtb2Zmc2V0OiAtMXB4OyAvKiBwcm9ncmVzc2l2ZSBlbmhhbmNlbWVudCAtIG5vIElFIHN1cHBvcnQgKi9cblx0XHR9XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10YWJsZVxcdGhlbWVcXGluc2VydHRhYmxlLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbjpyb290IHtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tcGFkZGluZzogMTBweDtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LWhlaWdodDogMTFweDtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LXdpZHRoOiAxMnB4O1xuXHQtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtbWFyZ2luOiAxcHg7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1ib3JkZXItY29sb3I6IGhzbCgwLCAwJSwgNzUlKTtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LWJvcmRlci1hY3RpdmUtY29sb3I6IGhzbCgyMDgsIDczJSwgNjElKTtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LWFjdGl2ZS1iYWNrZ3JvdW5kOiBoc2woMjA4LCAxMDAlLCA4OSUpO1xufVxuXG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fZ3JpZCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcblx0LyogVGhlIHdpZHRoIG9mIGEgY29udGFpbmVyIHNob3VsZCBtYXRjaCAxMCBpdGVtcyBpbiBhIHJvdyBzbyB0aGVyZSB3aWxsIGJlIGEgMTB4MTAgZ3JpZC4gKi9cblx0d2lkdGg6IGNhbGModmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC13aWR0aCkgKiAxMCArIHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtbWFyZ2luKSAqIDIwICsgdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLXBhZGRpbmcpICogMik7XG5cdHBhZGRpbmc6IHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1wYWRkaW5nKSB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tcGFkZGluZykgMDtcbn1cblxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd25fX2xhYmVsIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ncmlkLWJveCB7XG5cdHdpZHRoOiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LXdpZHRoKTtcblx0aGVpZ2h0OiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LWhlaWdodCk7XG5cdG1hcmdpbjogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1tYXJnaW4pO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LWJvcmRlci1jb2xvcik7XG5cdGJvcmRlci1yYWRpdXM6IDFweFxufVxuXG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ncmlkLWJveC5jay1vbiB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LWJvcmRlci1hY3RpdmUtY29sb3IpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtYWN0aXZlLWJhY2tncm91bmQpO1xuXHR9XG5cbiIsIi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRhYmxlXFx0aGVtZVxcdGFibGUuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLWNvbnRlbnQgLnRhYmxlIHtcblx0LyogR2l2ZSB0aGUgdGFibGUgd2lkZ2V0IHNvbWUgYWlyIGFuZCBjZW50ZXIgaXQgaG9yaXpvbnRhbGx5ICovXG5cdG1hcmdpbjogMWVtIGF1dG87XG5cdGRpc3BsYXk6IHRhYmxlXG59XG5cbi5jay1jb250ZW50IC50YWJsZSB0YWJsZSB7XG5cdFx0LyogVGhlIHRhYmxlIGNlbGxzIHNob3VsZCBoYXZlIHNsaWdodCBib3JkZXJzICovXG5cdFx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblx0XHRib3JkZXItc3BhY2luZzogMDtcblxuXHRcdC8qIFRoZSBvdXRlciBib3JkZXIgb2YgdGhlIHRhYmxlIHNob3VsZCBiZSBzbGlnaHRseSBkYXJrZXIgdGhhbiB0aGUgaW5uZXIgbGluZXMuXG5cdFx0QWxzbyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10YWJsZS9pc3N1ZXMvNTAuICovXG5cdFx0Ym9yZGVyOiAxcHggZG91YmxlIGhzbCgwLCAwJSwgNzAlKVxuXHR9XG5cbi5jay1jb250ZW50IC50YWJsZSB0YWJsZSB0ZCxcblx0XHQuY2stY29udGVudCAudGFibGUgdGFibGUgdGgge1xuXHRcdFx0bWluLXdpZHRoOiAyZW07XG5cdFx0XHRwYWRkaW5nOiAuNGVtO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiBoc2woMCwgMCUsIDg1JSk7XG5cdFx0fVxuXG4uY2stY29udGVudCAudGFibGUgdGFibGUgdGgge1xuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdFx0XHRiYWNrZ3JvdW5kOiBoc2woMCwgMCUsIDk4JSk7XG5cdFx0fVxuIiwiLyogQzpcXGdpdFxcbXkuYTFjcmVkaXRcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtYmxvY2stcXVvdGVcXHRoZW1lXFxibG9ja3F1b3RlLmNzcyAqL1xuXG4vKipcbiAqIEBsaWNlbnNlIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2stY29udGVudCBibG9ja3F1b3RlIHtcblx0LyogU2VlICMxMiAqL1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtYmxvY2stcXVvdGUvaXNzdWVzLzE1ICovXG5cdHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xuXHRwYWRkaW5nLWxlZnQ6IDEuNWVtO1xuXG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDA7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0Ym9yZGVyLWxlZnQ6IHNvbGlkIDVweCBoc2woMCwgMCUsIDgwJSk7XG59XG5cbi5jay1jb250ZW50W2Rpcj1cInJ0bFwiXSBibG9ja3F1b3RlIHtcblx0Ym9yZGVyLWxlZnQ6IDA7XG5cdGJvcmRlci1yaWdodDogc29saWQgNXB4IGhzbCgwLCAwJSwgODAlKTtcbn1cbiIsIi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xcY29sb3JncmlkXFxjb2xvcmdyaWQuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLWNvbG9yLWdyaWQge1xuXHRkaXNwbGF5OiBncmlkO1xufVxuXG4vKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFxjb2xvcmdyaWRcXGNvbG9yZ3JpZC5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDE5LCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZTogMjBweDtcbn1cblxuLmNrLmNrLWNvbG9yLWdyaWQge1xuXHRncmlkLWdhcDogY2FsYyggdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgLyAyICk7XG5cdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xufVxuXG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZSB7XG5cdGJvcmRlci1yYWRpdXM6IDBcbn1cblxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stY29sb3ItZ3JpZF9fdGlsZSwgLmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKVxufVxuXG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZSB7XG5cblx0d2lkdGg6IHZhcigtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdG1pbi13aWR0aDogdmFyKC0tY2stY29sb3ItZ3JpZC10aWxlLXNpemUpO1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdHBhZGRpbmc6IDA7XG5cdHRyYW5zaXRpb246IDIwMG1zIGVhc2UgYm94LXNoYWRvdztcblx0Ym9yZGVyOiAwXG59XG5cbi5jay5jay1jb2xvci1ncmlkX190aWxlLmNrLWRpc2FibGVkIHtcblx0XHRjdXJzb3I6IHVuc2V0O1xuXHRcdHRyYW5zaXRpb246IHVuc2V0O1xuXHR9XG5cbi5jay5jay1jb2xvci1ncmlkX190aWxlLmNrLWNvbG9yLXRhYmxlX19jb2xvci10aWxlX2JvcmRlcmVkIHtcblx0XHRib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHR9XG5cbi5jay5jay1jb2xvci1ncmlkX190aWxlIC5jay5jay1pY29uIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cbi5jay5jay1jb2xvci1ncmlkX190aWxlLmNrLW9uIHtcblx0XHRib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKSwgMCAwIDAgMnB4IHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dClcblx0fVxuXG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZS5jay1vbiAuY2suY2staWNvbiB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR9XG5cbi5jay5jay1jb2xvci1ncmlkX190aWxlOmhvdmVyOm5vdCggLmNrLWRpc2FibGVkICkge1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpO1xuXHR9XG5cbi5jay5jay1jb2xvci1ncmlkX19sYWJlbCB7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG59XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS1mb250XFx0aGVtZVxcZm9udGNvbG9yLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jayAuY2stYnV0dG9uLmNrLWNvbG9yLXRhYmxlX19yZW1vdmUtY29sb3Ige1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR3aWR0aDogMTAwJTtcbn1cblxubGFiZWwuY2suY2stY29sb3ItZ3JpZF9fbGFiZWwge1xuXHRmb250LXdlaWdodDogdW5zZXQ7XG59XG5cbi8qIEM6XFxnaXRcXG15LmExY3JlZGl0XFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtZm9udFxcZm9udGNvbG9yLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMTksIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrIC5jay1idXR0b24uY2stY29sb3ItdGFibGVfX3JlbW92ZS1jb2xvciB7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdHBhZGRpbmc6IGNhbGModmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkgLyAyICkgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwXG59XG5cbltkaXI9XCJsdHJcIl0gLmNrIC5jay1idXR0b24uY2stY29sb3ItdGFibGVfX3JlbW92ZS1jb2xvciAuY2suY2staWNvbiB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpXG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2sgLmNrLWJ1dHRvbi5jay1jb2xvci10YWJsZV9fcmVtb3ZlLWNvbG9yIC5jay5jay1pY29uIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKVxuXHR9XG4iLCIvKiBDOlxcZ2l0XFxteS5hMWNyZWRpdFxcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS1mb250XFx0aGVtZVxcZm9udHNpemUuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAxOSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLnRleHQtdGlueSB7XG5cdGZvbnQtc2l6ZTogLjdlbTtcbn1cblxuLnRleHQtc21hbGwge1xuXHRmb250LXNpemU6IC44NWVtO1xufVxuXG4udGV4dC1iaWcge1xuXHRmb250LXNpemU6IDEuNGVtO1xufVxuXG4udGV4dC1odWdlIHtcblx0Zm9udC1zaXplOiAxLjhlbTtcbn1cbiIsIi8qISBQaWNrciAxLjkuMSBNSVQgfCBodHRwczovL2dpdGh1Yi5jb20vU2ltb253ZXAvcGlja3IgKi9cbi5waWNrcntwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzp2aXNpYmxlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfS5waWNrciAqe2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdXRsaW5lOm5vbmU7Ym9yZGVyOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LnBpY2tyIC5wY3ItYnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDoyZW07d2lkdGg6MmVtO3BhZGRpbmc6LjVlbTtjdXJzb3I6cG9pbnRlcjtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxcIlNlZ29lIFVJXCIsXCJSb2JvdG9cIixcIkhlbHZldGljYSBOZXVlXCIsQXJpYWwsc2Fucy1zZXJpZjtib3JkZXItcmFkaXVzOi4xNWVtO2JhY2tncm91bmQ6dXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgNTAgNTBcXFwiIHN0cm9rZT1cXFwiJTIzNDI0NDVBXFxcIiBzdHJva2Utd2lkdGg9XFxcIjVweFxcXCIgc3Ryb2tlLWxpbmVjYXA9XFxcInJvdW5kXFxcIj48cGF0aCBkPVxcXCJNNDUsNDVMNSw1XFxcIj48L3BhdGg+PHBhdGggZD1cXFwiTTQ1LDVMNSw0NVxcXCI+PC9wYXRoPjwvc3ZnPlwiKSBuby1yZXBlYXQgY2VudGVyO2JhY2tncm91bmQtc2l6ZTowO3RyYW5zaXRpb246YWxsIC4zc30ucGlja3IgLnBjci1idXR0b246OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OlwiXCI7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDp1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgPHN2ZyB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiIHZpZXdCb3g9XFxcIjAgMCAyIDJcXFwiPjxwYXRoIGZpbGw9XFxcIndoaXRlXFxcIiBkPVxcXCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlxcXCIvPjxwYXRoIGZpbGw9XFxcImdyYXlcXFwiIGQ9XFxcIk0wLDBIMVYxSDBWMFpNMSwxSDJWMkgxVjFaXFxcIi8+PC9zdmc+XCIpO2JhY2tncm91bmQtc2l6ZTouNWVtO2JvcmRlci1yYWRpdXM6LjE1ZW07ei1pbmRleDotMX0ucGlja3IgLnBjci1idXR0b246OmJlZm9yZXt6LWluZGV4OmluaXRpYWx9LnBpY2tyIC5wY3ItYnV0dG9uOjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OlwiXCI7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4zcztiYWNrZ3JvdW5kOnZhcigtLXBjci1jb2xvcik7Ym9yZGVyLXJhZGl1czouMTVlbX0ucGlja3IgLnBjci1idXR0b24uY2xlYXJ7YmFja2dyb3VuZC1zaXplOjcwJX0ucGlja3IgLnBjci1idXR0b24uY2xlYXI6OmJlZm9yZXtvcGFjaXR5OjB9LnBpY2tyIC5wY3ItYnV0dG9uLmNsZWFyOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjg1KSwwIDAgMCAzcHggdmFyKC0tcGNyLWNvbG9yKX0ucGlja3IgLnBjci1idXR0b24uZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5waWNrciAqLC5wY3ItYXBwICp7Ym94LXNpemluZzpib3JkZXItYm94O291dGxpbmU6bm9uZTtib3JkZXI6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0ucGlja3IgaW5wdXQ6Zm9jdXMsLnBpY2tyIGlucHV0LnBjci1hY3RpdmUsLnBpY2tyIGJ1dHRvbjpmb2N1cywucGlja3IgYnV0dG9uLnBjci1hY3RpdmUsLnBjci1hcHAgaW5wdXQ6Zm9jdXMsLnBjci1hcHAgaW5wdXQucGNyLWFjdGl2ZSwucGNyLWFwcCBidXR0b246Zm9jdXMsLnBjci1hcHAgYnV0dG9uLnBjci1hY3RpdmV7Ym94LXNoYWRvdzowIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuODUpLDAgMCAwIDNweCB2YXIoLS1wY3ItY29sb3IpfS5waWNrciAucGNyLXBhbGV0dGUsLnBpY2tyIC5wY3Itc2xpZGVyLC5wY3ItYXBwIC5wY3ItcGFsZXR0ZSwucGNyLWFwcCAucGNyLXNsaWRlcnt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjNzfS5waWNrciAucGNyLXBhbGV0dGU6Zm9jdXMsLnBpY2tyIC5wY3Itc2xpZGVyOmZvY3VzLC5wY3ItYXBwIC5wY3ItcGFsZXR0ZTpmb2N1cywucGNyLWFwcCAucGNyLXNsaWRlcjpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC44NSksMCAwIDAgM3B4IHJnYmEoMCwwLDAsLjI1KX0ucGNyLWFwcHtwb3NpdGlvbjpmaXhlZDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3otaW5kZXg6MTAwMDA7Ym9yZGVyLXJhZGl1czouMWVtO2JhY2tncm91bmQ6I2ZmZjtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyx2aXNpYmlsaXR5IDBzIC4zcztmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxcIlNlZ29lIFVJXCIsXCJSb2JvdG9cIixcIkhlbHZldGljYSBOZXVlXCIsQXJpYWwsc2Fucy1zZXJpZjtib3gtc2hhZG93OjAgLjE1ZW0gMS41ZW0gMCByZ2JhKDAsMCwwLC4xKSwwIDAgMWVtIDAgcmdiYSgwLDAsMCwuMDMpO2xlZnQ6MDt0b3A6MH0ucGNyLWFwcC52aXNpYmxle3RyYW5zaXRpb246b3BhY2l0eSAuM3M7dmlzaWJpbGl0eTp2aXNpYmxlO29wYWNpdHk6MX0ucGNyLWFwcCAucGNyLXN3YXRjaGVze2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tdG9wOi43NWVtfS5wY3ItYXBwIC5wY3Itc3dhdGNoZXMucGNyLWxhc3R7bWFyZ2luOjB9QHN1cHBvcnRzKGRpc3BsYXk6IGdyaWQpey5wY3ItYXBwIC5wY3Itc3dhdGNoZXN7ZGlzcGxheTpncmlkO2FsaWduLWl0ZW1zOmNlbnRlcjtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZml0LCAxLjc1ZW0pfX0ucGNyLWFwcCAucGNyLXN3YXRjaGVzPmJ1dHRvbntmb250LXNpemU6MWVtO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOmNhbGMoMS43NWVtIC0gNXB4KTtoZWlnaHQ6Y2FsYygxLjc1ZW0gLSA1cHgpO2JvcmRlci1yYWRpdXM6LjE1ZW07Y3Vyc29yOnBvaW50ZXI7bWFyZ2luOjIuNXB4O2ZsZXgtc2hyaW5rOjA7anVzdGlmeS1zZWxmOmNlbnRlcjt0cmFuc2l0aW9uOmFsbCAuMTVzO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7ei1pbmRleDoxfS5wY3ItYXBwIC5wY3Itc3dhdGNoZXM+YnV0dG9uOjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDpcIlwiO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6dXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsIDxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMiAyXFxcIj48cGF0aCBmaWxsPVxcXCJ3aGl0ZVxcXCIgZD1cXFwiTTEsMEgyVjFIMVYwWk0wLDFIMVYySDBWMVpcXFwiLz48cGF0aCBmaWxsPVxcXCJncmF5XFxcIiBkPVxcXCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlxcXCIvPjwvc3ZnPlwiKTtiYWNrZ3JvdW5kLXNpemU6NnB4O2JvcmRlci1yYWRpdXM6LjE1ZW07ei1pbmRleDotMX0ucGNyLWFwcCAucGNyLXN3YXRjaGVzPmJ1dHRvbjo6YWZ0ZXJ7Y29udGVudDpcIlwiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6dmFyKC0tcGNyLWNvbG9yKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjA1KTtib3JkZXItcmFkaXVzOi4xNWVtO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ucGNyLWFwcCAucGNyLXN3YXRjaGVzPmJ1dHRvbjpob3ZlcntmaWx0ZXI6YnJpZ2h0bmVzcygxLjA1KX0ucGNyLWFwcCAucGNyLXN3YXRjaGVzPmJ1dHRvbjpub3QoLnBjci1hY3RpdmUpe2JveC1zaGFkb3c6bm9uZX0ucGNyLWFwcCAucGNyLWludGVyYWN0aW9ue2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOjAgLTAuMmVtIDAgLTAuMmVtfS5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24+KnttYXJnaW46MCAuMmVtfS5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gaW5wdXR7bGV0dGVyLXNwYWNpbmc6LjA3ZW07Zm9udC1zaXplOi43NWVtO3RleHQtYWxpZ246Y2VudGVyO2N1cnNvcjpwb2ludGVyO2NvbG9yOiM3NTc5N2U7YmFja2dyb3VuZDojZjFmM2Y0O2JvcmRlci1yYWRpdXM6LjE1ZW07dHJhbnNpdGlvbjphbGwgLjE1cztwYWRkaW5nOi40NWVtIC41ZW07bWFyZ2luLXRvcDouNzVlbX0ucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIGlucHV0OmhvdmVye2ZpbHRlcjpicmlnaHRuZXNzKDAuOTc1KX0ucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIGlucHV0OmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjg1KSwwIDAgMCAzcHggcmdiYSg2NiwxMzMsMjQ0LC43NSl9LnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXJlc3VsdHtjb2xvcjojNzU3OTdlO3RleHQtYWxpZ246bGVmdDtmbGV4OjEgMSA4ZW07bWluLXdpZHRoOjhlbTt0cmFuc2l0aW9uOmFsbCAuMnM7Ym9yZGVyLXJhZGl1czouMTVlbTtiYWNrZ3JvdW5kOiNmMWYzZjQ7Y3Vyc29yOnRleHR9LnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXJlc3VsdDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZDojNDI4NWY0O2NvbG9yOiNmZmZ9LnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXJlc3VsdDo6c2VsZWN0aW9ue2JhY2tncm91bmQ6IzQyODVmNDtjb2xvcjojZmZmfS5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci10eXBlLmFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQ6IzQyODVmNH0ucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3Itc2F2ZSwucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2FuY2VsLC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhcntjb2xvcjojZmZmO3dpZHRoOmF1dG99LnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXNhdmUsLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbCwucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXJ7Y29sb3I6I2ZmZn0ucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3Itc2F2ZTpob3ZlciwucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2FuY2VsOmhvdmVyLC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhcjpob3ZlcntmaWx0ZXI6YnJpZ2h0bmVzcygwLjkyNSl9LnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXNhdmV7YmFja2dyb3VuZDojNDI4NWY0fS5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jbGVhciwucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2FuY2Vse2JhY2tncm91bmQ6I2Y0NDI1MH0ucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXI6Zm9jdXMsLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbDpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LC44NSksMCAwIDAgM3B4IHJnYmEoMjQ0LDY2LDgwLC43NSl9LnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1waWNrZXJ7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjE4cHg7d2lkdGg6MThweDtib3JkZXI6MnB4IHNvbGlkICNmZmY7Ym9yZGVyLXJhZGl1czoxMDAlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXBhbGV0dGUsLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyLC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eXtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtjdXJzb3I6Z3JhYjtjdXJzb3I6LXdlYmtpdC1ncmFifS5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZTphY3RpdmUsLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyOmFjdGl2ZSwucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHk6YWN0aXZle2N1cnNvcjpncmFiYmluZztjdXJzb3I6LXdlYmtpdC1ncmFiYmluZ30ucGNyLWFwcFtkYXRhLXRoZW1lPWNsYXNzaWNde3dpZHRoOjI4LjVlbTttYXgtd2lkdGg6OTV2dztwYWRkaW5nOi44ZW19LnBjci1hcHBbZGF0YS10aGVtZT1jbGFzc2ljXSAucGNyLXNlbGVjdGlvbntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47ZmxleC1ncm93OjF9LnBjci1hcHBbZGF0YS10aGVtZT1jbGFzc2ljXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXByZXZpZXd7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO3dpZHRoOjJlbTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbi1yaWdodDouNzVlbX0ucGNyLWFwcFtkYXRhLXRoZW1lPWNsYXNzaWNdIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcHJldmlldzo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6XCJcIjt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDIgMlxcXCI+PHBhdGggZmlsbD1cXFwid2hpdGVcXFwiIGQ9XFxcIk0xLDBIMlYxSDFWMFpNMCwxSDFWMkgwVjFaXFxcIi8+PHBhdGggZmlsbD1cXFwiZ3JheVxcXCIgZD1cXFwiTTAsMEgxVjFIMFYwWk0xLDFIMlYySDFWMVpcXFwiLz48L3N2Zz5cIik7YmFja2dyb3VuZC1zaXplOi41ZW07Ym9yZGVyLXJhZGl1czouMTVlbTt6LWluZGV4Oi0xfS5wY3ItYXBwW2RhdGEtdGhlbWU9Y2xhc3NpY10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wcmV2aWV3IC5wY3ItbGFzdC1jb2xvcntjdXJzb3I6cG9pbnRlcjtib3JkZXItcmFkaXVzOi4xNWVtIC4xNWVtIDAgMDt6LWluZGV4OjJ9LnBjci1hcHBbZGF0YS10aGVtZT1jbGFzc2ljXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXByZXZpZXcgLnBjci1jdXJyZW50LWNvbG9ye2JvcmRlci1yYWRpdXM6MCAwIC4xNWVtIC4xNWVtfS5wY3ItYXBwW2RhdGEtdGhlbWU9Y2xhc3NpY10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wcmV2aWV3IC5wY3ItbGFzdC1jb2xvciwucGNyLWFwcFtkYXRhLXRoZW1lPWNsYXNzaWNdIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcHJldmlldyAucGNyLWN1cnJlbnQtY29sb3J7YmFja2dyb3VuZDp2YXIoLS1wY3ItY29sb3IpO3dpZHRoOjEwMCU7aGVpZ2h0OjUwJX0ucGNyLWFwcFtkYXRhLXRoZW1lPWNsYXNzaWNdIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZXt3aWR0aDoxMDAlO2hlaWdodDo4ZW07ei1pbmRleDoxfS5wY3ItYXBwW2RhdGEtdGhlbWU9Y2xhc3NpY10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlIC5wY3ItcGFsZXR0ZXtmbGV4LWdyb3c6MTtib3JkZXItcmFkaXVzOi4xNWVtfS5wY3ItYXBwW2RhdGEtdGhlbWU9Y2xhc3NpY10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlIC5wY3ItcGFsZXR0ZTo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6XCJcIjt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDIgMlxcXCI+PHBhdGggZmlsbD1cXFwid2hpdGVcXFwiIGQ9XFxcIk0xLDBIMlYxSDFWMFpNMCwxSDFWMkgwVjFaXFxcIi8+PHBhdGggZmlsbD1cXFwiZ3JheVxcXCIgZD1cXFwiTTAsMEgxVjFIMFYwWk0xLDFIMlYySDFWMVpcXFwiLz48L3N2Zz5cIik7YmFja2dyb3VuZC1zaXplOi41ZW07Ym9yZGVyLXJhZGl1czouMTVlbTt6LWluZGV4Oi0xfS5wY3ItYXBwW2RhdGEtdGhlbWU9Y2xhc3NpY10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyLC5wY3ItYXBwW2RhdGEtdGhlbWU9Y2xhc3NpY10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5e21hcmdpbi1sZWZ0Oi43NWVtfS5wY3ItYXBwW2RhdGEtdGhlbWU9Y2xhc3NpY10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIC5wY3ItcGlja2VyLC5wY3ItYXBwW2RhdGEtdGhlbWU9Y2xhc3NpY10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IC5wY3ItcGlja2Vye2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpfS5wY3ItYXBwW2RhdGEtdGhlbWU9Y2xhc3NpY10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIC5wY3Itc2xpZGVyLC5wY3ItYXBwW2RhdGEtdGhlbWU9Y2xhc3NpY10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IC5wY3Itc2xpZGVye3dpZHRoOjhweDtmbGV4LWdyb3c6MTtib3JkZXItcmFkaXVzOjUwZW19LnBjci1hcHBbZGF0YS10aGVtZT1jbGFzc2ljXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLWNob29zZXIgLnBjci1zbGlkZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBoc2woMCwgMTAwJSwgNTAlKSwgaHNsKDYwLCAxMDAlLCA1MCUpLCBoc2woMTIwLCAxMDAlLCA1MCUpLCBoc2woMTgwLCAxMDAlLCA1MCUpLCBoc2woMjQwLCAxMDAlLCA1MCUpLCBoc2woMzAwLCAxMDAlLCA1MCUpLCBoc2woMCwgMTAwJSwgNTAlKSl9LnBjci1hcHBbZGF0YS10aGVtZT1jbGFzc2ljXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkgLnBjci1zbGlkZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCwgYmxhY2spLHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCIgdmlld0JveD1cXFwiMCAwIDIgMlxcXCI+PHBhdGggZmlsbD1cXFwid2hpdGVcXFwiIGQ9XFxcIk0xLDBIMlYxSDFWMFpNMCwxSDFWMkgwVjFaXFxcIi8+PHBhdGggZmlsbD1cXFwiZ3JheVxcXCIgZD1cXFwiTTAsMEgxVjFIMFYwWk0xLDFIMlYySDFWMVpcXFwiLz48L3N2Zz5cIik7YmFja2dyb3VuZC1zaXplOjEwMCUsNTAlfVxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/