@import url(https://fonts.googleapis.com/css?family=Open+Sans:300,700&display=swap);
/*! tailwindcss v2.2.19 | MIT License | https://tailwindcss.com */
/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */
/*
Document
========
*/
/**
Use a better box model (opinionated).
*/
*,
::before,
::after {
	box-sizing: border-box;
}
/**
Use a more readable tab size (opinionated).
*/
html {
	-moz-tab-size: 4;
	-o-tab-size: 4;
	   tab-size: 4;
}
/**
1. Correct the line height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
	line-height: 1.15; /* 1 */
	-webkit-text-size-adjust: 100%; /* 2 */
}
/*
Sections
========
*/
/**
Remove the margin in all browsers.
*/
body {
	margin: 0;
}
/**
Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
*/
body {
	font-family:
		system-ui,
		-apple-system, /* Firefox supports this but not yet `system-ui` */
		'Segoe UI',
		Roboto,
		Helvetica,
		Arial,
		sans-serif,
		'Apple Color Emoji',
		'Segoe UI Emoji';
}
/*
Grouping content
================
*/
/**
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
*/
hr {
	height: 0; /* 1 */
	color: inherit; /* 2 */
}
/*
Text-level semantics
====================
*/
/**
Add the correct text decoration in Chrome, Edge, and Safari.
*/
abbr[title] {
	-webkit-text-decoration: underline dotted;
	        text-decoration: underline dotted;
}
/**
Add the correct font weight in Edge and Safari.
*/
b,
strong {
	font-weight: bolder;
}
/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/
code,
kbd,
samp,
pre {
	font-family:
		ui-monospace,
		SFMono-Regular,
		Consolas,
		'Liberation Mono',
		Menlo,
		monospace; /* 1 */
	font-size: 1em; /* 2 */
}
/**
Add the correct font size in all browsers.
*/
small {
	font-size: 80%;
}
/**
Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
*/
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}
sub {
	bottom: -0.25em;
}
sup {
	top: -0.5em;
}
/*
Tabular data
============
*/
/**
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
*/
table {
	text-indent: 0; /* 1 */
	border-color: inherit; /* 2 */
}
/*
Forms
=====
*/
/**
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
	font-family: inherit; /* 1 */
	font-size: 100%; /* 1 */
	line-height: 1.15; /* 1 */
	margin: 0; /* 2 */
}
/**
Remove the inheritance of text transform in Edge and Firefox.
1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
	text-transform: none;
}
/**
Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type='button'],
[type='reset'],
[type='submit'] {
	-webkit-appearance: button;
}
/**
Remove the inner border and padding in Firefox.
*/
::-moz-focus-inner {
	border-style: none;
	padding: 0;
}
/**
Restore the focus styles unset by the previous rule.
*/
:-moz-focusring {
	outline: 1px dotted ButtonText;
}
/**
Remove the additional ':invalid' styles in Firefox.
See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
*/
:-moz-ui-invalid {
	box-shadow: none;
}
/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/
legend {
	padding: 0;
}
/**
Add the correct vertical alignment in Chrome and Firefox.
*/
progress {
	vertical-align: baseline;
}
/**
Correct the cursor style of increment and decrement buttons in Safari.
*/
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
	height: auto;
}
/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/
[type='search'] {
	-webkit-appearance: textfield; /* 1 */
	outline-offset: -2px; /* 2 */
}
/**
Remove the inner padding in Chrome and Safari on macOS.
*/
::-webkit-search-decoration {
	-webkit-appearance: none;
}
/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/
::-webkit-file-upload-button {
	-webkit-appearance: button; /* 1 */
	font: inherit; /* 2 */
}
/*
Interactive
===========
*/
/*
Add the correct display in Chrome and Safari.
*/
summary {
	display: list-item;
}
/**
 * Manually forked from SUIT CSS Base: https://github.com/suitcss/base
 * A thin layer on top of normalize.css that provides a starting point more
 * suitable for web applications.
 */
/**
 * Removes the default spacing and border for appropriate elements.
 */
blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}
button {
  background-color: transparent;
  background-image: none;
}
fieldset {
  margin: 0;
  padding: 0;
}
ol,
ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
/**
 * Tailwind custom reset styles
 */
/**
 * 1. Use the user's configured `sans` font-family (with Tailwind's default
 *    sans-serif font stack as a fallback) as a sane default.
 * 2. Use Tailwind's default "normal" line-height so the user isn't forced
 *    to override it to ensure consistency even when using the default theme.
 */
html {
  font-family: "Helvetica", "Arial", sans-serif; /* 1 */
  line-height: 1.5; /* 2 */
}
/**
 * Inherit font-family and line-height from `html` so users can set them as
 * a class directly on the `html` element.
 */
body {
  font-family: inherit;
  line-height: inherit;
}
/**
 * 1. Prevent padding and border from affecting element width.
 *
 *    We used to set this in the html element and inherit from
 *    the parent element for everything else. This caused issues
 *    in shadow-dom-enhanced elements like <details> where the content
 *    is wrapped by a div with box-sizing set to `content-box`.
 *
 *    https://github.com/mozdevs/cssremedy/issues/4
 *
 *
 * 2. Allow adding a border to an element by just adding a border-width.
 *
 *    By default, the way the browser specifies that an element should have no
 *    border is by setting it's border-style to `none` in the user-agent
 *    stylesheet.
 *
 *    In order to easily add borders to elements by just setting the `border-width`
 *    property, we change the default border-style for all elements to `solid`, and
 *    use border-width to hide them instead. This way our `border` utilities only
 *    need to set the `border-width` property instead of the entire `border`
 *    shorthand, making our border utilities much more straightforward to compose.
 *
 *    https://github.com/tailwindcss/tailwindcss/pull/116
 */
*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: currentColor; /* 2 */
}
/*
 * Ensure horizontal rules are visible by default
 */
hr {
  border-top-width: 1px;
}
/**
 * Undo the `border-style: none` reset that Normalize applies to images so that
 * our `border-{width}` utilities have the expected effect.
 *
 * The Normalize reset is unnecessary for us since we default the border-width
 * to 0 on all elements.
 *
 * https://github.com/tailwindcss/tailwindcss/issues/362
 */
img {
  border-style: solid;
}
textarea {
  resize: vertical;
}
input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1;
  color: #a1a1aa;
}
input::placeholder,
textarea::placeholder {
  opacity: 1;
  color: #a1a1aa;
}
button,
[role="button"] {
  cursor: pointer;
}
/**
 * Override legacy focus reset from Normalize with modern Firefox focus styles.
 *
 * This is actually an improvement over the new defaults in Firefox in our testing,
 * as it triggers the better focus styles even for links, which still use a dotted
 * outline in Firefox by default.
 */
:-moz-focusring {
	outline: auto;
}
table {
  border-collapse: collapse;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}
/**
 * Reset links to optimize for opt-in styling instead of
 * opt-out.
 */
a {
  color: inherit;
  text-decoration: inherit;
}
/**
 * Reset form element properties that are easy to forget to
 * style explicitly so you don't inadvertently introduce
 * styles that deviate from your design system. These styles
 * supplement a partial reset that is already applied by
 * normalize.css.
 */
button,
input,
optgroup,
select,
textarea {
  padding: 0;
  line-height: inherit;
  color: inherit;
}
/**
 * Use the configured 'mono' font family for elements that
 * are expected to be rendered with a monospace font, falling
 * back to the system monospace stack if there is no configured
 * 'mono' font family.
 */
pre,
code,
kbd,
samp {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
/**
 * 1. Make replaced elements `display: block` by default as that's
 *    the behavior you want almost all of the time. Inspired by
 *    CSS Remedy, with `svg` added as well.
 *
 *    https://github.com/mozdevs/cssremedy/issues/14
 * 
 * 2. Add `vertical-align: middle` to align replaced elements more
 *    sensibly by default when overriding `display` by adding a
 *    utility like `inline`.
 *
 *    This can trigger a poorly considered linting error in some
 *    tools but is included by design.
 * 
 *    https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210
 */
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}
/**
 * Constrain images and videos to the parent width and preserve
 * their intrinsic aspect ratio.
 *
 * https://github.com/mozdevs/cssremedy/issues/14
 */
img,
video {
  max-width: 100%;
  height: auto;
}
/**
 * Ensure the default browser behavior of the `hidden` attribute.
 */
[hidden] {
  display: none;
}
*, ::before, ::after{
	border-color: currentColor;
	--tw-ring-offset-shadow: 0 0 #0000;
	--tw-ring-shadow: 0 0 #0000;
	--tw-shadow: 0 0 #0000;
	--tw-blur: var(--tw-empty,/*!*/ /*!*/);
	--tw-brightness: var(--tw-empty,/*!*/ /*!*/);
	--tw-contrast: var(--tw-empty,/*!*/ /*!*/);
	--tw-grayscale: var(--tw-empty,/*!*/ /*!*/);
	--tw-hue-rotate: var(--tw-empty,/*!*/ /*!*/);
	--tw-invert: var(--tw-empty,/*!*/ /*!*/);
	--tw-saturate: var(--tw-empty,/*!*/ /*!*/);
	--tw-sepia: var(--tw-empty,/*!*/ /*!*/);
	--tw-drop-shadow: var(--tw-empty,/*!*/ /*!*/);
	--tw-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.aspect-w-1,
.aspect-w-2,
.aspect-w-3,
.aspect-w-4,
.aspect-w-5,
.aspect-w-6,
.aspect-w-7,
.aspect-w-8,
.aspect-w-9,
.aspect-w-10,
.aspect-w-11,
.aspect-w-12,
.aspect-w-13,
.aspect-w-14,
.aspect-w-15,
.aspect-w-16{
	position: relative;
	padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%);
}
.aspect-w-1 > *,
.aspect-w-2 > *,
.aspect-w-3 > *,
.aspect-w-4 > *,
.aspect-w-5 > *,
.aspect-w-6 > *,
.aspect-w-7 > *,
.aspect-w-8 > *,
.aspect-w-9 > *,
.aspect-w-10 > *,
.aspect-w-11 > *,
.aspect-w-12 > *,
.aspect-w-13 > *,
.aspect-w-14 > *,
.aspect-w-15 > *,
.aspect-w-16 > *{
	position: absolute;
	height: 100%;
	width: 100%;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
}
.aspect-w-16{
	--tw-aspect-w: 16;
}
.aspect-h-9{
	--tw-aspect-h: 9;
}
.container, .container-fluid{
	width: 100%;
	margin-right: auto;
	margin-left: auto;
	padding-right: var(--bs-gutter-x, calc(30px / 2));
	padding-left: var(--bs-gutter-x, calc(30px / 2));
}
@media (min-width: 400px){
	.container{
		max-width: 400px;
	}
}
@media (min-width: 575px){
	.container{
		max-width: 575px;
	}
}
@media (min-width: 768px){
	.container{
		max-width: 768px;
	}
}
@media (min-width: 992px){
	.container{
		max-width: 992px;
	}
}
@media (min-width: 1200px){
	.container{
		max-width: 1200px;
	}
}
@media (min-width: 1400px){
	.container{
		max-width: 1400px;
	}
}
.row{
	--bs-gutter-x: 30px;
	--bs-gutter-y: 0;
	display: flex;
	flex-wrap: wrap;
	margin-top: calc(var(--bs-gutter-y) * -1);
	margin-right: calc(var(--bs-gutter-x) / -2);
	margin-left: calc(var(--bs-gutter-x) / -2);
}
.row > *{
	box-sizing: border-box;
	flex-shrink: 0;
	width: 100%;
	max-width: 100%;
	padding-right: calc(var(--bs-gutter-x) / 2);
	padding-left: calc(var(--bs-gutter-x) / 2);
	margin-top: var(--bs-gutter-y);
}
.col{
	flex: 1 0 0%;
}
.col-12{
	flex: 0 0 auto;
	width: 100%;
}
.order-1{
	order: 1;
}
.order-2{
	order: 2;
}
:root {
  --black: #000000;
  --white: #fff;
  --grey: #565656;
  --light-grey: #ececec;
  --primary-colour: #BF181A;
}

.flex-grid-row{
	display: flex;
	flex-wrap: wrap;
	overflow: visible;
  margin-left: -15px;
  margin-right: -15px;
}

.flex-grid-col {
  flex: 1 0;
  max-width: 100%;
  flex-grow: 1;
  flex-direction: column;
  flex-wrap: wrap;
  overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-3{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 25%;
  max-width: 25%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-3.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-3.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-3.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-3.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-3.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-4{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 33.3333%;
  max-width: 33.3333%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-4.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-4.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-4.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-4.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-4.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-5{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 41.6665%;
  max-width: 41.6665%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-5.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-5.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-5.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-5.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-5.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-6{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 50%;
  max-width: 50%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-6.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-6.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-6.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-6.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-6.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-7{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 58.3333%;
  max-width: 58.3333%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-7.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-7.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-7.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-7.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-7.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-8{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 66.6667%;
  max-width: 66.6667%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-8.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-8.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-8.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-8.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-8.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-10{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 83.3333%;
  max-width: 83.3333%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-10.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-10.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-10.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-10.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-10.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-fifth{
	flex-grow: 1;
	flex-direction: column;
	flex-wrap: wrap;
	overflow: visible;
  padding-left: 15px;
  padding-right: 15px;
  min-width: 8.3333%;
  flex: 0 0 20%;
  max-width: 20%;
}
@media screen and (max-width: 1199px) {
  .flex-grid-col-fifth.lg-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 991px) {
  .flex-grid-col-fifth.md-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media screen and (max-width: 767px) {
  .flex-grid-col-fifth.sm-third {
    flex: 0 0 33.33333%;
    max-width: 33.33333%;
  }
  .flex-grid-col-fifth.sm-half {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .flex-grid-col-fifth.sm-full {
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.flex-grid-col-offset-1 {
  margin-left: 8.3333%;
}
@media screen and (max-width: 991px) {
  .flex-grid-col-offset-1 {
    margin-left: 0;
  }
}
.flex-grid-col-offset-2 {
  margin-left: 16.6666%;
}
@media screen and (max-width: 991px) {
  .flex-grid-col-offset-2 {
    margin-left: 0;
  }
}

body {
  font-size: 16px;
  line-height: 2em;
}

h1,
.h1 {
  font-size: 3rem;
  margin-top: 1rem;
  margin-bottom: 1rem;
  font-weight: bold;
  line-height: 60px;
}
@media screen and (max-width: 767px) {
  h1,
  .h1 {
    font-size: 2rem;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
    line-height: 40px;
  }
}

h3,
.h3,
h2,
.h2 {
  font-size: 2.5em;
  margin-bottom: 0.75em;
  line-height: 1.1em;
  font-weight: 400;
}
@media screen and (max-width: 767px) {
  h3,
  .h3,
  h2,
  .h2 {
    font-size: 1.875em;
    line-height: 1.075em;
  }
}
h3--sm,
.h3--sm,
h2--sm,
.h2--sm {
  font-size: 1.875em;
  line-height: 1.075em;
}

h4,
.h4 {
  font-size: 1em;
  line-height: 2em;
  font-weight: 700;
  margin-bottom: 1em;
}

ul{
	margin-bottom: 1.5rem;
  list-style-type: disc;
  padding-left: 18px;
}
ul:last-of-type{
	margin-bottom: 0px;
}
ul:last-of-type + *{
	margin-top: 1.5rem;
}

ol{
	margin-bottom: 1.5rem;
  list-style-type: lower-alpha;
  padding-left: 18px;
}
ol:last-of-type{
	margin-bottom: 0px;
}
ol:last-of-type + *{
	margin-top: 1.5rem;
}

.display-1 {
  font-size: 3.75em;
  line-height: 1em;
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .display-1 {
    font-size: 2.25em;
  }
}

p{
	margin-bottom: 1.5rem;
}
p:last-of-type{
	margin-bottom: 0px;
}
p:last-of-type + ul, p:last-of-type + ol{
	margin-top: 1.5rem;
}

.py-20px {
  padding-top: 20px;
  padding-bottom: 20px;
}

.mt-30px {
  margin-top: 30px;
}
.mt-60px {
  margin-top: 60px;
}

.mb-60px {
  margin-bottom: 60px;
}
.mb-30px {
  margin-bottom: 30px;
}

section {
  margin-bottom: 60px;
}
section.about {
  margin-bottom: 0;
  padding: 60px 0;
}
@media screen and (max-width: 991px) {
  section.about {
    padding: 60px 0 0 0;
  }
}
section + .bg-fixed {
  margin-top: 60px;
  margin-bottom: 60px;
}
section.about-pt-0 {
  padding-top: 0;
}
section.faq:has(+ footer), section.faq :has(+ section) {
  margin-bottom: 60px;
}
section.section-grey {
  background-color: rgba(0, 0, 0, 0.1);
  padding: 60px 0;
}
section.section-grey:has(+ .bg-black) {
  margin-bottom: 0px;
}
section.section-grey p:last-of-type {
  margin-bottom: 0;
}
@media screen and (max-width: 991px) {
  section.section-grey {
    padding: 60px 0 60px 0;
  }
}
section.section-grey h4 {
  margin-bottom: 10px;
}
section:last-of-type {
  margin-bottom: 0;
}
section:last-of-type.services {
  padding-bottom: 60px;
}
@media screen and (max-width: 991px) {
  section:last-of-type.services {
    padding-bottom: 0;
  }
}
section.contact-page {
  margin-top: 60px;
}
@media screen and (max-width: 991px) {
  section.contact-page {
    margin-top: 60px;
  }
  section.contact {
    margin-bottom: 60px;
  }
}

.contact__title {
  line-height: 32px;
}
@media screen and (max-width: 767px) {
  .contact .contact-info {
    padding: 5px 15px;
  }
}

.container-lg {
  max-width: 1500px;
  width: 100%;
  padding-left: 15px;
  padding-right: 15px;
}

.container-sm {
  width: 100%;
  padding-left: 15px;
  padding-right: 15px;
}
@media (min-width: 575px) {
  .container-sm {
    max-width: 575px;
  }
}
@media screen and (min-width: 768px) {
  .container-sm {
    max-width: 768px;
  }
}
@media (min-width: 990px) {
  .container-sm {
    max-width: 990px;
  }
}

.el-shadow {
  overflow: visible;
  position: relative;
}
.el-shadow:after {
  content: "";
  background-color: rgba(0, 0, 0, 0.1);
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: -1;
}
.el-shadow--bl:after {
  bottom: -60px;
  left: -60px;
}
@media screen and (max-width: 991px) {
  .el-shadow--bl-about > img {
    width: 100%;
  }
}
.el-shadow--bl-about:after {
  height: calc(100% - 60px);
  bottom: 0;
  left: -60px;
}

.icon-wrapper {
  background-color: var(--grey);
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100px;
  width: 100%;
}
@media screen and (max-width: 991px) {
  .icon-wrapper {
    width: 100%;
    margin-left: 0;
  }
}

#map {
  background-color: aliceblue;
  height: 300px;
  margin-bottom: 60px;
}

.contact-page #map {
  margin-top: 60px;
}

.client-slider .slick-slide > div {
  min-height: 84px;
}

.brand-slider .slick-slide > div {
  min-height: 84px;
}

.testimonial-slider {
  padding: 0 60px;
}
.testimonial-slider .slick-arrow {
  position: absolute;
  top: 15px;
  font-size: 0;
  color: transparent;
  width: 45px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
}
.testimonial-slider .slick-arrow:after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  color: var(--primary-colour);
  font-size: 32px;
  line-height: 32px;
  font-family: "Font Awesome 6 Pro";
}
.testimonial-slider p{
	margin-bottom: 0.25rem;
}
.testimonial-slider .slick-next {
  right: 0;
}
.testimonial-slider .slick-next:after {
  content: "\f356";
}
.testimonial-slider .slick-prev {
  left: 0;
}
.testimonial-slider .slick-prev:after {
  content: "\f355";
}
.testimonial-slider button:focus {
  outline: none;
}

.text-slider {
  padding: 0 60px;
}
.text-slider .slick-arrow {
  position: absolute;
  top: calc(50% - 15px);
  font-size: 0;
  color: transparent;
  width: 45px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
}
.text-slider .slick-arrow:after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  color: var(--primary-colour);
  font-size: 32px;
  line-height: 32px;
  font-family: "Font Awesome 6 Pro";
}
.text-slider .slick-next {
  right: 0;
}
.text-slider .slick-next:after {
  content: "\f356";
}
.text-slider .slick-prev {
  left: 0;
}
.text-slider .slick-prev:after {
  content: "\f355";
}
.text-slider button:focus {
  outline: none;
}

/* purgecss start ignore */
/* purgecss end ignore */
.social ul {
  display: inline;
  padding-left: 0;
}
.social ul > li {
  display: inline;
}
.social ul > li + li {
  margin-left: 10px;
}
.social ul a {
  padding: 6px;
}
@media screen and (max-width: 767px) {
  .social {
    display: block;
    margin-top: 10px;
  }
  .social ul {
    padding-left: 0;
  }
}

#header ul {
  list-style-type: none;
  margin-bottom: 0;
  padding-left: 0;
}
#header ul a:hover{
	color: var(--primary-colour);
}

@media (min-width: 992px) {
  #mainNav .submenu {
    display: none;
  }
  #mainNav li:hover .submenu {
    display: block;
  }
}
.submenu a{
	display: inline-block;
	padding-top: 0.25rem;
	padding-bottom: 0.25rem;
	padding-left: 1rem;
	padding-right: 1rem;
	line-height: 1.25;
	color: var(--black);
	text-decoration: none;
}

.testimonial-block{
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
  background-image: url(/build/images/testimonial-bg.160a7fc3.jpg);
}

.rating1 .rating__star2, .rating1 .rating__star3, .rating1 .rating__star4, .rating1 .rating__star5{
	display: none;
}

.rating2 .rating__star1, .rating2 .rating__star3, .rating2 .rating__star4, .rating2 .rating__star5{
	display: none;
}

.rating3 .rating__star1, .rating3 .rating__star2, .rating3 .rating__star4, .rating3 .rating__star5{
	display: none;
}

.rating4 .rating__star1, .rating4 .rating__star2, .rating4 .rating__star3, .rating4 .rating__star5{
	display: none;
}

.rating5 .rating__star1, .rating5 .rating__star2, .rating5 .rating__star3, .rating5 .rating__star4{
	display: none;
}

.testimonial__text p{
	margin-bottom: 0.5rem;
}
.testimonial__text p:last-of-type{
	margin-bottom: 0px;
}

.study-grad:after {
  content: "";
  position: absolute;
  top: 0px;
  left: 0px;
  z-index: 10;
  height: 100%;
  width: 100%;
  mix-blend-mode: multiply;
  background: #000000;
  background: linear-gradient(0deg, rgb(0, 0, 0) 0%, rgba(255, 255, 255, 0) 100%);
}
.study-grad:before {
  content: "";
  position: absolute;
  top: 0px;
  left: 0px;
  z-index: 0;
  height: 100%;
  width: 100%;
  background-color: var(--primary-colour);
  mix-blend-mode: multiply;
  mix-blend-mode: multiply;
}
.study-grad .container{
	position: relative;
	z-index: 20;
}

.study-text h2, .study-text h3, .study-text h4, .study-text h5, .study-text h6, .study-text .h2, .study-text .h3, .study-text .h4, .study-text .h5, .study-text .h6{
	color: var(--primary-colour);
}
.study-text h3{
	font-size: 1.875rem;
	line-height: 2.25rem;
}
.study-text table{
	margin-bottom: 1.5rem;
	width: 100%;
	border-width: 1px;
	border-color: var(--black);
}
.study-text table td{
	border-right-width: 1px;
	border-color: var(--black);
	padding: 0.75rem;
}
.study-text table td::last-of-type{
	border-style: none;
}
.study-text table thead{
	background-color: var(--primary-colour);
	color: var(--white);
}
.study-text table thead td{
	border-bottom-width: 1px;
	border-color: var(--black);
}

.landing-text h2, .landing-text h3, .landing-text h4, .landing-text h5, .landing-text h6, .landing-text .h2, .landing-text .h3, .landing-text .h4, .landing-text .h5, .landing-text .h6{
	color: var(--primary-colour);
}

.service-link:hover {
  filter: brightness(0) saturate(100%) invert(12%) sepia(45%) saturate(6460%) hue-rotate(349deg) brightness(110%) contrast(98%);
}

.text-cols p:nth-child(2), .text-cols p:nth-child(3){
	display: inline-block;
  width: calc(50% - 30px);
}
.text-cols p:nth-child(2) {
  margin-right: 15px;
}
.text-cols p:nth-child(3) {
  margin-left: 15px;
}

.text-and-image:has(+ .text-and-image) {
  margin-bottom: 0 !important;
}

details > summary {
  list-style-type: none;
}
details > summary:hover{
	cursor: pointer;
}

details > summary::-webkit-details-marker {
  display: none;
}

details > summary::after{
	position: absolute;
	right: 1.5rem;
	font-family: "Font Awesome 6 Pro";
  content: "\f078";
}

details[open] > summary::after {
  content: "\f077";
}

.textslider--content ul, .textslider--content ol {
  list-style: none;
}

.menu-wrapper{
	max-height: 80vh;
	overflow-y: auto;
}
@media (min-width: 992px) {
  .menu-wrapper {
    max-height: auto;
  }
  .menu-wrapper{
		overflow-y: visible;
	}
}

section.section-service-news:has(+ .section-grey, + .bg-black){
	padding-bottom: 0px;
}

.header-primary h1, .header-primary h2, .header-primary h4, .header-primary h4{
	color: var(--primary-colour);
}

body.error {
  background-color: var(--primary-colour);
}

#header .social {
  padding-left: 0;
  padding-right: 15px;
  margin-top: 10px;
}
@media screen and (max-width: 991px) {
  #header .social {
    padding-left: 0;
    display: block;
  }
}
@media (min-width: 768px) {
  #header .social{
		margin-top: 0px;
	}
}

#mainNav:not(.areas-footer-menu ul) .active {
  color: var(--primary-colour);
}

.site-header:after {
  content: "";
  position: absolute;
  top: 0px;
  left: 0px;
  z-index: 10;
  height: 100%;
  width: 100%;
  background-color: var(--white);
  opacity: 0.65;
  transition: all 1s;
}
.site-header .container{
	position: relative;
	z-index: 20;
}

.site-header--border,
.site-header--border-const {
  border-bottom: 1px solid var(--primary-colour);
}

.site-header--opacity:after {
  opacity: 1;
  transition: all 1s;
}

button#nav-toggle:focus{
	outline: 2px solid transparent;
	outline-offset: 2px;
}
button#nav-toggle svg {
  fill: var(--primary-colour);
}

.brand-logo {
  max-width: 100%;
}

.strapline {
  max-width: 100%;
}

@media screen and (max-width: 1500px) {
  .brand-logo {
    max-width: 175px;
  }
  .strapline {
    max-width: 250px;
  }
}
@media screen and (max-width: 768px) {
  .strapline {
    max-width: 250px;
  }
}
/* Magnific Popup CSS */
/* purgecss start ignore */
.mfp-bg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1042;
  overflow: hidden;
  position: fixed;
  background: #0b0b0b;
  opacity: 0.8;
}

.mfp-wrap {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1043;
  position: fixed;
  outline: none !important;
  -webkit-backface-visibility: hidden;
}

.mfp-container {
  text-align: center;
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  padding: 0 8px;
  box-sizing: border-box;
}

.mfp-container:before {
  content: "";
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}

.mfp-align-top .mfp-container:before {
  display: none;
}

.mfp-content {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  margin: 0 auto;
  text-align: left;
  z-index: 1045;
}

.mfp-inline-holder .mfp-content,
.mfp-ajax-holder .mfp-content {
  width: 100%;
  cursor: auto;
}

.mfp-ajax-cur {
  cursor: progress;
}

.mfp-zoom-out-cur,
.mfp-zoom-out-cur .mfp-image-holder .mfp-close {
  cursor: zoom-out;
}

.mfp-zoom {
  cursor: pointer;
  cursor: zoom-in;
}

.mfp-auto-cursor .mfp-content {
  cursor: auto;
}

.mfp-close,
.mfp-arrow,
.mfp-preloader,
.mfp-counter {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.mfp-loading.mfp-figure {
  display: none;
}

.mfp-hide {
  display: none !important;
}

.mfp-preloader {
  color: #CCC;
  position: absolute;
  top: 50%;
  width: auto;
  text-align: center;
  margin-top: -0.8em;
  left: 8px;
  right: 8px;
  z-index: 1044;
}

.mfp-preloader a {
  color: #CCC;
}

.mfp-preloader a:hover {
  color: #FFF;
}

.mfp-s-ready .mfp-preloader {
  display: none;
}

.mfp-s-error .mfp-content {
  display: none;
}

button.mfp-close,
button.mfp-arrow {
  overflow: visible;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
  display: block;
  outline: none;
  padding: 0;
  z-index: 1046;
  box-shadow: none;
  touch-action: manipulation;
}

button::-moz-focus-inner {
  padding: 0;
  border: 0;
}

.mfp-close {
  width: 44px;
  height: 44px;
  line-height: 44px;
  position: absolute;
  right: 0;
  top: 0;
  text-decoration: none;
  text-align: center;
  opacity: 0.65;
  padding: 0 0 18px 10px;
  color: #FFF;
  font-style: normal;
  font-size: 28px;
  font-family: Arial, Baskerville, monospace;
}

.mfp-close:hover,
.mfp-close:focus {
  opacity: 1;
}

.mfp-close:active {
  top: 1px;
}

.mfp-close-btn-in .mfp-close {
  color: #333;
}

.mfp-image-holder .mfp-close,
.mfp-iframe-holder .mfp-close {
  color: #FFF;
  right: -6px;
  text-align: right;
  padding-right: 6px;
  width: 100%;
}

.mfp-counter {
  position: absolute;
  top: 0;
  right: 0;
  color: #CCC;
  font-size: 12px;
  line-height: 18px;
  white-space: nowrap;
}

.mfp-arrow {
  position: absolute;
  opacity: 0.65;
  margin: 0;
  top: 50%;
  margin-top: -55px;
  padding: 0;
  width: 90px;
  height: 110px;
  -webkit-tap-highlight-color: transparent;
}

.mfp-arrow:active {
  margin-top: -54px;
}

.mfp-arrow:hover,
.mfp-arrow:focus {
  opacity: 1;
}

.mfp-arrow:before,
.mfp-arrow:after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  left: 0;
  top: 0;
  margin-top: 35px;
  margin-left: 35px;
  border: medium inset transparent;
}

.mfp-arrow:after {
  border-top-width: 13px;
  border-bottom-width: 13px;
  top: 8px;
}

.mfp-arrow:before {
  border-top-width: 21px;
  border-bottom-width: 21px;
  opacity: 0.7;
}

.mfp-arrow-left {
  left: 0;
}

.mfp-arrow-left:after {
  border-right: 17px solid #FFF;
  margin-left: 31px;
}

.mfp-arrow-left:before {
  margin-left: 25px;
  border-right: 27px solid #3F3F3F;
}

.mfp-arrow-right {
  right: 0;
}

.mfp-arrow-right:after {
  border-left: 17px solid #FFF;
  margin-left: 39px;
}

.mfp-arrow-right:before {
  border-left: 27px solid #3F3F3F;
}

.mfp-iframe-holder {
  padding-top: 40px;
  padding-bottom: 40px;
}

.mfp-iframe-holder .mfp-content {
  line-height: 0;
  width: 100%;
  max-width: 900px;
}

.mfp-iframe-holder .mfp-close {
  top: -40px;
}

.mfp-iframe-scaler {
  width: 100%;
  height: 0;
  overflow: hidden;
  padding-top: 56.25%;
}

.mfp-iframe-scaler iframe {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  background: #000;
}

/* Main image in popup */
img.mfp-img {
  width: auto;
  max-width: 100%;
  height: auto;
  display: block;
  line-height: 0;
  box-sizing: border-box;
  padding: 40px 0 40px;
  margin: 0 auto;
}

/* The shadow behind the image */
.mfp-figure {
  line-height: 0;
}

.mfp-figure:after {
  content: "";
  position: absolute;
  left: 0;
  top: 40px;
  bottom: 40px;
  display: block;
  right: 0;
  width: auto;
  height: auto;
  z-index: -1;
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  background: #444;
}

.mfp-figure small {
  color: #BDBDBD;
  display: block;
  font-size: 12px;
  line-height: 14px;
}

.mfp-figure figure {
  margin: 0;
}

.mfp-bottom-bar {
  margin-top: -36px;
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  cursor: auto;
}

.mfp-title {
  text-align: left;
  line-height: 18px;
  color: #F3F3F3;
  word-wrap: break-word;
  padding-right: 36px;
}

.mfp-image-holder .mfp-content {
  max-width: 100%;
}

.mfp-gallery .mfp-image-holder .mfp-figure {
  cursor: pointer;
}

@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
  /**
   * Remove all paddings around the image on small screen
   */
  .mfp-img-mobile .mfp-image-holder {
    padding-left: 0;
    padding-right: 0;
  }
  .mfp-img-mobile img.mfp-img {
    padding: 0;
  }
  .mfp-img-mobile .mfp-figure:after {
    top: 0;
    bottom: 0;
  }
  .mfp-img-mobile .mfp-figure small {
    display: inline;
    margin-left: 5px;
  }
  .mfp-img-mobile .mfp-bottom-bar {
    background: rgba(0, 0, 0, 0.6);
    bottom: 0;
    margin: 0;
    top: auto;
    padding: 3px 5px;
    position: fixed;
    box-sizing: border-box;
  }
  .mfp-img-mobile .mfp-bottom-bar:empty {
    padding: 0;
  }
  .mfp-img-mobile .mfp-counter {
    right: 5px;
    top: 3px;
  }
  .mfp-img-mobile .mfp-close {
    top: 0;
    right: 0;
    width: 35px;
    height: 35px;
    line-height: 35px;
    background: rgba(0, 0, 0, 0.6);
    position: fixed;
    text-align: center;
    padding: 0;
  }
}
@media all and (max-width: 900px) {
  .mfp-arrow {
    transform: scale(0.75);
  }
  .mfp-arrow-left {
    transform-origin: 0;
  }
  .mfp-arrow-right {
    transform-origin: 100%;
  }
  .mfp-container {
    padding-left: 6px;
    padding-right: 6px;
  }
}
/* purgecss end ignore */
.slide {
  background-size: cover;
  background-position: center;
  min-height: 600px;
}
.slide__logos {
  padding-top: 30px;
  background-color: rgba(var(--white), 0.8);
}
.slide__logos-image {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

.hero{
	position: relative;
  margin-bottom: 0;
}
.hero .slide > div:after {
  content: "";
  position: absolute;
  top: 0px;
  left: 0px;
  z-index: 10;
  height: 100%;
  width: 100%;
  mix-blend-mode: multiply;
  background: #000000;
  background: linear-gradient(360deg, rgb(0, 0, 0) 0%, rgba(255, 255, 255, 0) 100%);
}
.hero .slide__label{
	position: relative;
	z-index: 20;
}
@media screen and (max-width: 1199px) {
  .hero {
    margin-bottom: 0;
  }
}

section.video{
	position: relative;
	height: 750px;
	width: 100vw;
	background-color: var(--black);
}
@media screen and (max-width: 990px) {
  section.video{
		height: 100vh;
	}
}
section.video #myVideo{
	position: absolute;
	top: 0px;
	left: 0px;
	z-index: 0;
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	   object-fit: cover;
}
section.video:before {
  content: "";
  position: absolute;
  top: 0px;
  left: 0px;
  z-index: 20;
  height: 100%;
  width: 100%;
  background-color: var(--black);
  opacity: 0.7;
}

.btn{
	display: inline-flex;
	width: 100%;
	align-items: center;
	justify-content: center;
	border-radius: 9999px;
	background-color: var(--primary-colour);
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
	padding-left: 1rem;
	padding-right: 1rem;
	text-align: center;
  margin-top: 30px;
  border: 1px solid var(--primary-colour);
  color: var(--white);
  max-width: 200px;
  min-height: 64px;
}
.btn:hover {
  background-color: var(--white);
  color: var(--primary-colour);
}
.btn--fluid {
  max-width: none;
}
.btn--white {
  border: 1px solid var(--white);
  color: var(--white);
}

.btn-wide {
  max-width: 375px;
}

.btn-sm {
  max-width: 150px;
}

.btn-video{
	font-size: 0.75rem;
	line-height: 1rem;
  background-color: rgba(0, 0, 0, 0.45);
  min-height: 50px;
  max-height: 50px;
  border: 2px solid var(--primary-colour);
}
.btn-video:hover {
  background-color: var(--primary-colour);
  color: var(--white);
}

.services-single__link{
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	background-size: cover;
  border-bottom: 10px solid var(--grey);
  margin-bottom: 30px;
  min-height: 550px;
  padding: 30px 20px;
  background-position: center;
  background-color: var(--primary-colour);
  transition: all 0.5s;
}
.services-single__link:before {
  content: "";
  position: absolute;
  bottom: 0px;
  left: 0px;
  width: 100%;
  background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.9));
  height: 50%;
}
.services-single__link:hover {
  background-blend-mode: multiply;
  border-bottom: 10px solid var(--black);
}
.services-single__link:hover:before {
  display: none;
}
.services-single__link:hover .services-single__icon {
  transform: scale(120%);
}
@media screen and (max-width: 767px) {
  .services-single__link {
    min-height: 250px;
  }
}
.services-single__icon {
  margin-bottom: 20px;
  position: relative;
  z-index: 1;
  transition: all 0.5s;
}
.services-single__title {
  margin-bottom: 0;
  position: relative;
  z-index: 1;
}
.services-single:nth-last-child(-n+3) .services-single__link {
  margin-bottom: 0;
}
@media screen and (max-width: 1199px) {
  .services-single:nth-last-child(-n+3) .services-single__link {
    margin-bottom: 30px;
  }
}
.services-single:nth-last-child(-n+2) .services-single__link {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .services-single:nth-last-child(-n+2) .services-single__link {
    margin-bottom: 30px;
  }
}
.services-single:nth-last-child(-n+1) .services-single__link {
  margin-bottom: 0;
}

.work-single__title {
  margin-bottom: 0;
  padding: 30px 0;
}

.gallery-single {
  margin-bottom: 30px;
}
.gallery-single__link {
  padding-bottom: 54%;
  display: block;
  background-position: center;
  background-size: cover;
}

section.services.gallery {
  padding-bottom: 30px;
}

footer .legal .separator {
  margin: 0 10px;
}
@media screen and (max-width: 991px) {
  footer .legal .separator:first-of-type{
		display: none;
	}
}
footer a:hover{
	color: var(--black);
}

.footer__logos {
  margin-bottom: 30px;
}
.footer__logos-image {
  display: block;
  margin: 0 auto;
  width: 100px;
  max-width: 100%;
  height: auto;
}

.title-red h2, .title-red h3, .title-red h4{
	color: var(--primary-colour);
}

.areas-footer-menu ul{
	margin: 0px;
	display: block;
	list-style-type: none;
	padding: 0px;
}

ul.pagination{
	margin-bottom: 3rem;
	display: flex;
	list-style-type: none;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	text-align: center;
}
ul.pagination li{
	display: flex;
	height: 3rem;
	width: 3rem;
	align-items: center;
	justify-content: center;
	border-radius: 9999px;
	background-color: var(--primary-colour);
	line-height: 1;
	color: var(--white);
}
ul.pagination li a{
	display: flex;
	height: 100%;
	width: 100%;
	align-items: center;
	justify-content: center;
	padding: 0.75rem;
	line-height: 1;
}
ul.pagination li.active{
	background-color: var(--black);
}
ul.pagination li.disabled{
	cursor: not-allowed;
	opacity: 0.5;
}
ul.pagination li:has(a):hover{
	background-color: var(--black);
}

#cookies-bar{
	position: fixed;
	bottom: 0px;
	left: 0px;
	z-index: 50;
	width: 100%;
	border-top-width: 1px;
	border-color: var(--primary-colour);
	background-color: var(--white);
	padding: 2rem;
	text-align: left;
	color: var(--black);
}

#cookies-bar-tab{
	display: flex;
	height: 4rem;
	width: 4rem;
	cursor: pointer;
	align-items: center;
	justify-content: center;
	border-radius: 9999px;
	border-width: 1px;
	border-color: var(--black);
	background-color: var(--white);
	text-align: center;
	font-size: 2.25rem;
	line-height: 2.5rem;
	color: var(--black);
  position: fixed;
  bottom: 15px;
  left: 10px;
  z-index: 10000;
}

.sr-only{
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0;
}

.invisible{
	visibility: hidden;
}

.static{
	position: static;
}

.fixed{
	position: fixed;
}

.absolute{
	position: absolute;
}

.relative{
	position: relative;
}

.sticky{
	position: sticky;
}

.top-0{
	top: 0px;
}

.left-0{
	left: 0px;
}

.right-2{
	right: 0.5rem;
}

.z-30{
	z-index: 30;
}

.z-20{
	z-index: 20;
}

.order-1{
	order: 1;
}

.order-2{
	order: 2;
}

.col-span-12{
	grid-column: span 12 / span 12;
}

.mx-auto{
	margin-left: auto;
	margin-right: auto;
}

.my-12{
	margin-top: 3rem;
	margin-bottom: 3rem;
}

.my-4{
	margin-top: 1rem;
	margin-bottom: 1rem;
}

.mx-8{
	margin-left: 2rem;
	margin-right: 2rem;
}

.mb-6{
	margin-bottom: 1.5rem;
}

.mr-6{
	margin-right: 1.5rem;
}

.mb-2{
	margin-bottom: 0.5rem;
}

.\!mt-6{
	margin-top: 1.5rem !important;
}

.mt-6{
	margin-top: 1.5rem;
}

.mt-4{
	margin-top: 1rem;
}

.mr-4{
	margin-right: 1rem;
}

.mb-3{
	margin-bottom: 0.75rem;
}

.\!mb-6{
	margin-bottom: 1.5rem !important;
}

.mb-10{
	margin-bottom: 2.5rem;
}

.mb-0{
	margin-bottom: 0px;
}

.mt-10{
	margin-top: 2.5rem;
}

.mr-auto{
	margin-right: auto;
}

.ml-auto{
	margin-left: auto;
}

.\!mt-8{
	margin-top: 2rem !important;
}

.\!mb-4{
	margin-bottom: 1rem !important;
}

.mt-auto{
	margin-top: auto;
}

.\!mb-12{
	margin-bottom: 3rem !important;
}

.mt-12{
	margin-top: 3rem;
}

.mb-12{
	margin-bottom: 3rem;
}

.mb-4{
	margin-bottom: 1rem;
}

.mt-2{
	margin-top: 0.5rem;
}

.mt-0{
	margin-top: 0px;
}

.mb-1{
	margin-bottom: 0.25rem;
}

.mr-10{
	margin-right: 2.5rem;
}

.ml-4{
	margin-left: 1rem;
}

.ml-6{
	margin-left: 1.5rem;
}

.mr-2{
	margin-right: 0.5rem;
}

.mt-5{
	margin-top: 1.25rem;
}

.mb-8{
	margin-bottom: 2rem;
}

.mt-8{
	margin-top: 2rem;
}

.mt-24{
	margin-top: 6rem;
}

.\!mb-0{
	margin-bottom: 0px !important;
}

.mt-16{
	margin-top: 4rem;
}

.block{
	display: block;
}

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

.flex{
	display: flex;
}

.table{
	display: table;
}

.grid{
	display: grid;
}

.hidden{
	display: none;
}

.h-auto{
	height: auto;
}

.h-\[600px\]{
	height: 600px;
}

.h-full{
	height: 100%;
}

.h-6{
	height: 1.5rem;
}

.min-h-\[600px\]{
	min-height: 600px;
}

.w-full{
	width: 100%;
}

.w-6{
	width: 1.5rem;
}

.w-1\/2{
	width: 50%;
}

.min-w-\[650px\]{
	min-width: 650px;
}

.max-w-full{
	max-width: 100%;
}

.max-w-\[75\%\]{
	max-width: 75%;
}

.flex-1{
	flex: 1 1 0%;
}

.flex-grow{
	flex-grow: 1;
}

.resize{
	resize: both;
}

.grid-cols-12{
	grid-template-columns: repeat(12, minmax(0, 1fr));
}

.flex-col{
	flex-direction: column;
}

.flex-wrap{
	flex-wrap: wrap;
}

.items-center{
	align-items: center;
}

.justify-start{
	justify-content: flex-start;
}

.justify-end{
	justify-content: flex-end;
}

.justify-center{
	justify-content: center;
}

.justify-between{
	justify-content: space-between;
}

.justify-around{
	justify-content: space-around;
}

.gap-4{
	gap: 1rem;
}

.self-center{
	align-self: center;
}

.rounded-xl{
	border-radius: 0.75rem;
}

.rounded-lg{
	border-radius: 0.5rem;
}

.rounded{
	border-radius: 0.25rem;
}

.border{
	border-width: 1px;
}

.border-primary{
	border-color: var(--primary-colour);
}

.bg-primary{
	background-color: var(--primary-colour);
}

.bg-black{
	background-color: var(--black);
}

.bg-white{
	background-color: var(--white);
}

.bg-lightgrey{
	background-color: var(--light-grey);
}

.bg-cover{
	background-size: cover;
}

.bg-center{
	background-position: center;
}

.bg-no-repeat{
	background-repeat: no-repeat;
}

.p-1{
	padding: 0.25rem;
}

.p-4{
	padding: 1rem;
}

.p-12{
	padding: 3rem;
}

.p-6{
	padding: 1.5rem;
}

.p-0{
	padding: 0px;
}

.py-10{
	padding-top: 2.5rem;
	padding-bottom: 2.5rem;
}

.px-4{
	padding-left: 1rem;
	padding-right: 1rem;
}

.py-2{
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

.px-12{
	padding-left: 3rem;
	padding-right: 3rem;
}

.py-16{
	padding-top: 4rem;
	padding-bottom: 4rem;
}

.py-8{
	padding-top: 2rem;
	padding-bottom: 2rem;
}

.px-6{
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

.py-4{
	padding-top: 1rem;
	padding-bottom: 1rem;
}

.py-3{
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
}

.py-6{
	padding-top: 1.5rem;
	padding-bottom: 1.5rem;
}

.py-24{
	padding-top: 6rem;
	padding-bottom: 6rem;
}

.px-0{
	padding-left: 0px;
	padding-right: 0px;
}

.px-2{
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}

.px-8{
	padding-left: 2rem;
	padding-right: 2rem;
}

.py-12{
	padding-top: 3rem;
	padding-bottom: 3rem;
}

.px-10{
	padding-left: 2.5rem;
	padding-right: 2.5rem;
}

.py-20{
	padding-top: 5rem;
	padding-bottom: 5rem;
}

.pb-12{
	padding-bottom: 3rem;
}

.pt-6{
	padding-top: 1.5rem;
}

.pl-6{
	padding-left: 1.5rem;
}

.pr-16{
	padding-right: 4rem;
}

.pr-4{
	padding-right: 1rem;
}

.pb-16{
	padding-bottom: 4rem;
}

.pr-8{
	padding-right: 2rem;
}

.\!pt-0{
	padding-top: 0px !important;
}

.\!pb-0{
	padding-bottom: 0px !important;
}

.pb-8{
	padding-bottom: 2rem;
}

.text-left{
	text-align: left;
}

.text-center{
	text-align: center;
}

.text-right{
	text-align: right;
}

.text-6xl{
	font-size: 3.75rem;
	line-height: 1;
}

.text-sm{
	font-size: 0.875rem;
	line-height: 1.25rem;
}

.text-4xl{
	font-size: 2.25rem;
	line-height: 2.5rem;
}

.text-3xl{
	font-size: 1.875rem;
	line-height: 2.25rem;
}

.text-xl{
	font-size: 1.25rem;
	line-height: 1.75rem;
}

.text-lg{
	font-size: 1.125rem;
	line-height: 1.75rem;
}

.text-2xl{
	font-size: 1.5rem;
	line-height: 2rem;
}

.font-bold{
	font-weight: 700;
}

.font-light{
	font-weight: 300;
}

.font-normal{
	font-weight: 400;
}

.uppercase{
	text-transform: uppercase;
}

.capitalize{
	text-transform: capitalize;
}

.leading-loose{
	line-height: 2;
}

.leading-normal{
	line-height: 1.5;
}

.leading-relaxed{
	line-height: 1.625;
}

.leading-tight{
	line-height: 1.25;
}

.tracking-normal{
	letter-spacing: 0em;
}

.text-white{
	color: var(--white);
}

.text-primary{
	color: var(--primary-colour);
}

.text-black{
	color: var(--black);
}

.no-underline{
	text-decoration: none;
}

.shadow{
	--tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
	box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.brightness-0{
	--tw-brightness: brightness(0);
	filter: var(--tw-filter);
}

.invert{
	--tw-invert: invert(100%);
	filter: var(--tw-filter);
}
::backdrop {
  background-color: rgba(0, 0, 0, 0.5);
}

dialog{
	border-radius: 0.5rem;
	background-color: var(--white);
	--tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
	box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.video-testimonial-carousel {
  position: relative;
  display: flex;
  align-items: center;
  gap: 15px;
  margin-top: 30px;
}

.video-testimonial-viewport {
  width: 100%;
  overflow: hidden;
}

.video-testimonial-track {
  display: flex;
  gap: 20px;
  padding-bottom: 4px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.video-testimonial-track::-webkit-scrollbar {
  display: none;
}

.video-testimonial-arrow {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 30px;
  min-width: 45px;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 0;
  cursor: pointer;
}

.video-testimonial-arrow::after {
  font-size: 32px;
  line-height: 32px;
  font-family: "Font Awesome 6 Pro", "Font Awesome 6 Free", sans-serif;
  font-weight: 900;
  color: #bf181a;
}

.video-testimonial-arrow--next::after {
  content: "\f356";
}

.video-testimonial-arrow--prev::after {
  content: "\f355";
}

.video-testimonial-arrow:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.video-testimonial-arrow:focus {
  outline: none;
}

.testimonial-video-card {
  flex: 0 0 calc((100% - 40px) / 3);
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
  scroll-snap-align: start;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  background: #fff;
}

.testimonial-video-card:hover,
.testimonial-video-card:focus-visible {
  text-decoration: none;
}

.testimonial-video-card img {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.2s ease;
}

.testimonial-video-card:hover img,
.testimonial-video-card:focus-visible img {
  transform: scale(1.06);
}

.testimonial-video-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1200;
  align-items: center;
  justify-content: center;
}

.testimonial-video-modal.is-open {
  display: flex;
}

.testimonial-video-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
}

.testimonial-video-modal__content {
  position: relative;
  z-index: 1;
  width: min(960px, 100% - 30px);
}

.testimonial-video-modal__close {
  position: absolute;
  top: -42px;
  right: 0;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 32px;
  line-height: 1;
  cursor: pointer;
}

.testimonial-video-modal__frame {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  background: #000;
}

.testimonial-video-modal__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

body.modal-open {
  overflow: hidden;
}

@media screen and (max-width: 991px) {
  .video-testimonial-carousel {
    gap: 8px;
  }
  .testimonial-video-card {
    flex: 0 0 calc((100% - 20px) / 2);
  }
}
@media screen and (max-width: 767px) {
  .video-testimonial-arrow {
    width: 35px;
    min-width: 35px;
  }
  .testimonial-video-card {
    flex: 0 0 100%;
  }
}
.testimonial-video-card__media {
  position: relative;
  display: block;
  width: 100%;
}

.testimonial-video-card__media::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.2);
  pointer-events: none;
  transition: background 0.2s ease;
}

.testimonial-video-card:hover .testimonial-video-card__media::before,
.testimonial-video-card:focus-visible .testimonial-video-card__media::before {
  background: rgba(0, 0, 0, 0.35);
}

.testimonial-video-card__play {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(191, 24, 26, 0.92);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
  transform: translate(-50%, -50%);
  pointer-events: none;
  transition: transform 0.2s ease, background 0.2s ease;
}

.testimonial-video-card__play::after {
  content: "\f04b";
  margin-left: 3px;
  font-family: "Font Awesome 6 Pro", "Font Awesome 6 Free", sans-serif;
  font-size: 20px;
  font-weight: 900;
  line-height: 1;
  color: #fff;
}

.testimonial-video-card:hover .testimonial-video-card__play,
.testimonial-video-card:focus-visible .testimonial-video-card__play {
  transform: translate(-50%, -50%) scale(1.06);
  background: #bf181a;
}

@media screen and (max-width: 767px) {
  .testimonial-video-card__play {
    width: 48px;
    height: 48px;
  }
  .testimonial-video-card__play::after {
    font-size: 17px;
  }
}

.hover\:no-underline:hover{
	text-decoration: none;
}

.hover\:outline-none:hover{
	outline: 2px solid transparent;
	outline-offset: 2px;
}

@media (min-width: 575px){
	.sm\:col-3{
		flex: 0 0 auto;
		width: 25%;
	}
	.sm\:col-4{
		flex: 0 0 auto;
		width: 33.333333333333336%;
	}
	.sm\:col-5{
		flex: 0 0 auto;
		width: 41.66666666666667%;
	}
	.sm\:col-6{
		flex: 0 0 auto;
		width: 50%;
	}
	.sm\:col-7{
		flex: 0 0 auto;
		width: 58.333333333333336%;
	}
	.sm\:col-9{
		flex: 0 0 auto;
		width: 75%;
	}
	.sm\:col-12{
		flex: 0 0 auto;
		width: 100%;
	}
	.sm\:mt-0{
		margin-top: 0px;
	}
	.sm\:ml-6{
		margin-left: 1.5rem;
	}
	.sm\:mt-16{
		margin-top: 4rem;
	}
	.sm\:bg-fixed{
		background-attachment: fixed;
	}
	.sm\:text-right{
		text-align: right;
	}
	.sm\:text-3xl{
		font-size: 1.875rem;
		line-height: 2.25rem;
	}
}

@media (min-width: 768px){
	.md\:col-2{
		flex: 0 0 auto;
		width: 16.666666666666668%;
	}
	.md\:col-3{
		flex: 0 0 auto;
		width: 25%;
	}
	.md\:col-4{
		flex: 0 0 auto;
		width: 33.333333333333336%;
	}
	.md\:col-6{
		flex: 0 0 auto;
		width: 50%;
	}
	.md\:col-8{
		flex: 0 0 auto;
		width: 66.66666666666667%;
	}
	.md\:col-10{
		flex: 0 0 auto;
		width: 83.33333333333334%;
	}
	.md\:order-1{
		order: 1;
	}
	.md\:order-2{
		order: 2;
	}
	.md\:order-1{
		order: 1;
	}
	.md\:order-2{
		order: 2;
	}
	.md\:col-span-8{
		grid-column: span 8 / span 8;
	}
	.md\:col-start-3{
		grid-column-start: 3;
	}
	.md\:mb-0{
		margin-bottom: 0px;
	}
	.md\:mt-8{
		margin-top: 2rem;
	}
	.md\:mt-0{
		margin-top: 0px;
	}
	.md\:mb-4{
		margin-bottom: 1rem;
	}
	.md\:p-6{
		padding: 1.5rem;
	}
	.md\:p-8{
		padding: 2rem;
	}
	.md\:py-48{
		padding-top: 12rem;
		padding-bottom: 12rem;
	}
	.md\:px-6{
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
	.md\:text-4xl{
		font-size: 2.25rem;
		line-height: 2.5rem;
	}
}

@media (min-width: 992px){
	.lg\:col-4{
		flex: 0 0 auto;
		width: 33.333333333333336%;
	}
	.lg\:col-6{
		flex: 0 0 auto;
		width: 50%;
	}
	.lg\:absolute{
		position: absolute;
	}
	.lg\:relative{
		position: relative;
	}
	.lg\:my-0{
		margin-top: 0px;
		margin-bottom: 0px;
	}
	.lg\:mb-0{
		margin-bottom: 0px;
	}
	.lg\:mb-12{
		margin-bottom: 3rem;
	}
	.lg\:ml-0{
		margin-left: 0px;
	}
	.lg\:mt-0{
		margin-top: 0px;
	}
	.lg\:flex{
		display: flex;
	}
	.lg\:hidden{
		display: none;
	}
	.lg\:w-auto{
		width: auto;
	}
	.lg\:w-2\/3{
		width: 66.666667%;
	}
	.lg\:w-1\/3{
		width: 33.333333%;
	}
	.lg\:w-1\/2{
		width: 50%;
	}
	.lg\:flex-row{
		flex-direction: row;
	}
	.lg\:flex-row-reverse{
		flex-direction: row-reverse;
	}
	.lg\:flex-col{
		flex-direction: column;
	}
	.lg\:flex-col-reverse{
		flex-direction: column-reverse;
	}
	.lg\:items-center{
		align-items: center;
	}
	.lg\:bg-white{
		background-color: var(--white);
	}
	.lg\:bg-transparent{
		background-color: transparent;
	}
	.lg\:p-0{
		padding: 0px;
	}
	.lg\:p-12{
		padding: 3rem;
	}
	.lg\:py-12{
		padding-top: 3rem;
		padding-bottom: 3rem;
	}
	.lg\:px-8{
		padding-left: 2rem;
		padding-right: 2rem;
	}
	.lg\:text-4xl{
		font-size: 2.25rem;
		line-height: 2.5rem;
	}
	.lg\:text-5xl{
		font-size: 3rem;
		line-height: 1;
	}
}

@media (min-width: 1200px){
	.xl\:mt-10{
		margin-top: 2.5rem;
	}
	.xl\:ml-12{
		margin-left: 3rem;
	}
	.xl\:mb-0{
		margin-bottom: 0px;
	}
	.xl\:flex{
		display: flex;
	}
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUpnSEo7O0FJN0dBO0VBQ0k7RUFDQTtBSmdISjs7QUk3R0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FKZ0hKOztBSTdHQTs7RUFFSTtBSmdISjs7QUk3R0E7RUFDSTtBSmdISjs7QUk3R0E7RUFDSTtBSmdISjs7QUk3R0E7O0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSmdISjs7QUk3R0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSmdISjs7QUk3R0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUpnSEo7O0FJN0dBO0VBQ0k7QUpnSEo7O0FJN0dBOztFQUVJO0FKZ0hKOztBSTdHQTs7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSmdISjs7QUk3R0E7RUFDSTtFQUNBO0VBQ0E7QUpnSEo7O0FJN0dBO0VBQ0k7RUFDQTtFQUNBO0FKZ0hKOztBSTdHQTtFQUNJO0FKZ0hKOztBSTdHQTtFQUNJO0VBQ0E7QUpnSEo7O0FJN0dBO0VBQ0k7RUFDQTtBSmdISjs7QUk3R0E7RUFDSTtBSmdISjs7QUk3R0E7RUFDSTtFQUNBO0FKZ0hKOztBSTdHQTtFQUNJO0FKZ0hKOztBSTdHQTtFQUNJO0VBQ0E7QUpnSEo7O0FJN0dBO0VBQ0k7RUFDQTtFQUNBO0FKZ0hKOztBSTdHQTtFQUNJO0FKZ0hKOztBSTdHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FKZ0hKOztBSTdHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUpnSEo7O0FJN0dBO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FKZ0hKOztBSTdHQTtBQUNBO0VBQ0k7QUpnSEo7O0FJN0dBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FKZ0hKOztBSTdHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FKZ0hKOztBSTdHQTtFQUNJO0FKZ0hKOztBSTdHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBSmdISjs7QUk3R0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FKZ0hKOztBSTdHQTtFQUNJO0FKZ0hKOztBSTdHQTtFQUNJO0FKZ0hKOztBSTdHQTtFQUdJOztJQUFBO0VBR0E7SUFDSTtJQUNBO0VKOEdOO0VJM0dFO0lBQ0k7RUo2R047RUkxR0U7SUFDSTtJQUNBO0VKNEdOO0VJekdFO0lBQ0k7SUFDQTtFSjJHTjtFSXhHRTtJQUNJO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VKMEdOO0VJdkdFO0lBQ0k7RUp5R047RUl0R0U7SUFDSTtJQUNBO0VKd0dOO0VJckdFO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0VKdUdOO0FBQ0Y7QUlwR0E7RUFDSTtJQUVJO0VKc0dOO0VJbkdFO0lBRUk7RUpxR047RUlsR0U7SUFFSTtFSm9HTjtFSWpHRTtJQUNJO0lBQ0E7RUptR047QUFDRjtBSWpHQTtBQUlBO0VBQ0k7RUFDQTtFQUNBO0FKZ0dKO0FJOUZJO0VBQ0k7RUFDQTtBSmdHUjtBSTdGSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FKK0ZSOztBRzM2Q0E7Q0FBQTtFQ2sxQ0k7Q0RsMUNKO0FDbTFDSTtFQUNJO0VEcDFDUjtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQ3MxQ1E7RUFDQTtBSitGUjtBR3Q3Q0E7Q0FBQTtDQUFBO0NBQUE7QUM0MUNJO0VBWko7SUFhUTtFSmdHTjtBQUNGOztBRzk3Q0E7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0FDbTJDSTtFRG4yQ0o7RUFBQTtFQUFBO0FIdThDQTtBR3Y4Q0E7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtJQUFBO0NBQUE7QUN5MkNJO0VBQ0k7RUQxMkNSO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7QUg4OENBOztBRzk4Q0E7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0VDbzNDSTtFQUNBO0VBQ0EsbUJBOTFDSTtFQSsxQ0o7RUFDQTtDRHgzQ0o7QUN5M0NJO0VBQ0ksOEJBbDJDQTtFQW0yQ0EsNEJBajJDUztBSmk4Q2pCO0FJOUZJO0VBQ0k7QUpnR1I7QUk5Rkk7RUFDSTtFQUNBLG1CQTEyQ0E7QUowOENSOztBSTVGQTtFQUNJO0FKK0ZKOztBSTVGQTtFQUNJO0FKK0ZKOztBRzErQ0E7Q0FBQTtDQUFBO0VDZzVDSTtFQUNBO0VBQ0E7RUFDQTtDRG41Q0o7QUNxNUNJO0VBQ0ksdUNBNTNDUztFQTYzQ1QsbUJBLzNDQTtBSjg5Q1I7O0FHdC9DQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7RUNpNkNZO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSx1Q0E1NENLO0VBNjRDTDtDRHY2Q1o7QUN3NkNZO0VBQ0k7RUR6NkNoQjtFQUFBO0VBQUE7RUFBQTtFQzI2Q2dCO0VBQ0E7QUoyRmhCO0FJekZZO0VBQ0k7RUFDQTtBSjJGaEI7QUkxRmdCO0VBQ0k7QUo0RnBCO0FJMUZnQjtFQUNJO0FKNEZwQjtBSXpGWTtFQXpCSjtJQTBCUTtFSjRGZDtBQUNGO0FJMUZRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUo0Rlo7QUkxRlE7RUFDSTtFQUNBO0VBQ0E7QUo0Rlo7QUl6Rlk7RUFDSTtBSjJGaEI7QUkxRmdCO0VBRko7SUFHUTtFSjZGbEI7QUFDRjtBSXpGWTtFQUNJO0FKMkZoQjtBSTFGZ0I7RUFGSjtJQUdRO0VKNkZsQjtBQUNGO0FJekZZO0VBQ0k7QUoyRmhCOztBSW5GUTtFQUNJO0VBQ0E7QUpzRlo7O0FJL0VBO0VBRUk7QUppRko7QUkvRUk7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBSmlGUjs7QUk3RUE7RUFDSTtBSmdGSjs7QUl6RVE7RUFDSTtBSjRFWjtBSTNFWTtFRGhnRFo7RUFBQTtFQUFBO0FIZ2xEQTtBR2hsREE7Q0FBQTtDQUFBOztBQzZnREk7RUFDSTtBSnlFUjtBSXRFSTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUp3RVI7O0FHOWxEQTtDQUFBO0NBQUE7O0FBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBOztBQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtBQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7QUFBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7QUFBQTtDQUFBO0NBQUE7QUFBQTtDQUFBO0NBQUE7Q0FBQTtBQUFBO0NBQUE7Q0FBQTs7QUFBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTs7QUFBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7RUVRUTtFQUNBO0VBQ0E7RUFDQTtDRlhSOztBSE9BO0NHUEE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0NBQUE7QUhPQTs7QUFBQTtDR1BBO0NBQUE7QUhPQTs7QUFBQTtDR1BBO0NBQUE7QUhPQTs7QUFBQTtDR1BBO0NBQUE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7Q0FBQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtBSE9BOztBQUFBO0NHUEE7QUhPQTs7QUFBQTtDR1BBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7O0FBQUE7Q0dQQTtDQUFBO0FIT0E7QUFFQTtFQUNJO0FBZ29ESjs7QUcxb0RBO0NBQUE7Q0FBQTtDQUFBO0NBQUE7Q0FBQTs7QUhpQkE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBZ29ESjs7QUE3bkRBO0VBQ0k7RUFDQTtBQWdvREo7O0FBN25EQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBZ29ESjs7QUE3bkRBO0VBQ0k7QUFnb0RKOztBQTduREE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFnb0RKOztBQTduREE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBZ29ESjs7QUE3bkRBO0VBQ0k7QUFnb0RKOztBQTduREE7RUFDSTtBQWdvREo7O0FBN25EQTtFQUNJO0VBQ0E7QUFnb0RKOztBQTduREE7RUFDSTtBQWdvREo7O0FBN25EQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBZ29ESjs7QUE3bkRBOztFQUVJO0FBZ29ESjs7QUE3bkRBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7S0FBQTtFQUNBO0FBZ29ESjs7QUE3bkRBOztFQUVJO0FBZ29ESjs7QUE3bkRBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBZ29ESjs7QUE3bkRBO0VBQ0k7QUFnb0RKOztBQTduREE7RUFDSTtFQUNBO0VBQ0E7QUFnb0RKOztBQTduREE7RUFDSTtFQUNBO0VBQ0E7QUFnb0RKOztBQTduREE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFnb0RKOztBQTduREE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQWdvREo7O0FBN25EQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBZ29ESjs7QUE3bkRBO0VBQ0k7QUFnb0RKOztBQTduREE7RUFDSTtJQUNJO0VBZ29ETjtFQTduREU7SUFDSTtFQStuRE47QUFDRjtBQTVuREE7RUFDSTtJQUNJO0lBQ0E7RUE4bkROO0VBM25ERTtJQUNJO0VBNm5ETjtBQUNGO0FBMW5EQTtFQUNJO0VBQ0E7RUFDQTtBQTRuREo7O0FBem5EQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBNG5ESjs7QUF6bkRBOztFQUVJO0FBNG5ESjs7QUF6bkRBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHFEQUNJO0FBMm5EUjs7QUF2bkRBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUEwbkRKOztBQXZuREE7O0VBRUk7RUFDQTtBQTBuREo7O0FBeG5EQTtFQUNJO0lBQ0k7SUFDQTtFQTJuRE47RUF6bkRFO0lBQ0k7RUEybkROO0FBQ0Y7O0FJdDNEUTtDREhSO0FIeTNEQTs7QUl0M0RRO0NESFI7Q0FBQTtBSHkzREE7O0FJdDNEUTtDREhSO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7QUh5M0RBOztBSXQzRFE7Q0RIUjtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7QUh5M0RBOztBSXQzRFE7Q0RIUjtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtBSHkzREE7O0FJdDNEUTtDREhSO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtBSHkzREEsQyIsInNvdXJjZXMiOlsid2VicGFjazovL2ZsaWdodGNtcy8uL2FwcC5zY3NzIiwid2VicGFjazovL2ZsaWdodGNtcy8uL2Fzc2V0cy9zY3NzLyUzQ2lucHV0JTIwY3NzJTIwNDA5WTNWJTNFIiwid2VicGFjazovL2ZsaWdodGNtcy8uL2Fzc2V0cy9zY3NzLyUzQ2lucHV0JTIwY3NzJTIwMWc1RVl0JTNFIiwid2VicGFjazovL2ZsaWdodGNtcy88bm8gc291cmNlPiIsIndlYnBhY2s6Ly9mbGlnaHRjbXMvLi9fY3RlLnNjc3MiLCJ3ZWJwYWNrOi8vZmxpZ2h0Y21zLy4vb2JqZWN0cy9fY29uc2VudC5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkB0YWlsd2luZCBiYXNlO1xuXG5AdGFpbHdpbmQgY29tcG9uZW50cztcblxuQGltcG9ydCBcImN0ZVwiO1xuQGltcG9ydCBcIi4vb2JqZWN0cy9jb25zZW50XCI7XG5cbkB0YWlsd2luZCB1dGlsaXRpZXM7XG5cbjo6YmFja2Ryb3Age1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cblxuZGlhbG9nIHtcbiAgICBAYXBwbHkgYmctd2hpdGUgcm91bmRlZC1sZyBzaGFkb3ctbGc7XG59XG5cbi52aWRlby10ZXN0aW1vbmlhbC1jYXJvdXNlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE1cHg7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbn1cblxuLnZpZGVvLXRlc3RpbW9uaWFsLXZpZXdwb3J0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udmlkZW8tdGVzdGltb25pYWwtdHJhY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAyMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBzY3JvbGwtc25hcC10eXBlOiB4IG1hbmRhdG9yeTtcbiAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gICAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xufVxuXG4udmlkZW8tdGVzdGltb25pYWwtdHJhY2s6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4udmlkZW8tdGVzdGltb25pYWwtYXJyb3cge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDQ1cHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG1pbi13aWR0aDogNDVweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udmlkZW8tdGVzdGltb25pYWwtYXJyb3c6OmFmdGVyIHtcbiAgICBmb250LXNpemU6IDMycHg7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCIsIFwiRm9udCBBd2Vzb21lIDYgRnJlZVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgY29sb3I6ICNiZjE4MWE7XG59XG5cbi52aWRlby10ZXN0aW1vbmlhbC1hcnJvdy0tbmV4dDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXFxmMzU2XCI7XG59XG5cbi52aWRlby10ZXN0aW1vbmlhbC1hcnJvdy0tcHJldjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXFxmMzU1XCI7XG59XG5cbi52aWRlby10ZXN0aW1vbmlhbC1hcnJvdzpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi52aWRlby10ZXN0aW1vbmlhbC1hcnJvdzpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmQge1xuICAgIGZsZXg6IDAgMCBjYWxjKCgxMDAlIC0gNDBweCkgLyAzKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4udGVzdGltb25pYWwtdmlkZW8tY2FyZDpob3Zlcixcbi50ZXN0aW1vbmlhbC12aWRlby1jYXJkOmZvY3VzLXZpc2libGUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmQgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xufVxuXG4udGVzdGltb25pYWwtdmlkZW8tY2FyZDpob3ZlciBpbWcsXG4udGVzdGltb25pYWwtdmlkZW8tY2FyZDpmb2N1cy12aXNpYmxlIGltZyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA2KTtcbn1cblxuLnRlc3RpbW9uaWFsLXZpZGVvLW1vZGFsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBpbnNldDogMDtcbiAgICB6LWluZGV4OiAxMjAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi50ZXN0aW1vbmlhbC12aWRlby1tb2RhbC5pcy1vcGVuIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4udGVzdGltb25pYWwtdmlkZW8tbW9kYWxfX2JhY2tkcm9wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuXG4udGVzdGltb25pYWwtdmlkZW8tbW9kYWxfX2NvbnRlbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xuICAgIHdpZHRoOiBtaW4oOTYwcHgsIGNhbGMoMTAwJSAtIDMwcHgpKTtcbn1cblxuLnRlc3RpbW9uaWFsLXZpZGVvLW1vZGFsX19jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTQycHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50ZXN0aW1vbmlhbC12aWRlby1tb2RhbF9fZnJhbWUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogNTYuMjUlO1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG59XG5cbi50ZXN0aW1vbmlhbC12aWRlby1tb2RhbF9fZnJhbWUgaWZyYW1lIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5Lm1vZGFsLW9wZW4ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgLnZpZGVvLXRlc3RpbW9uaWFsLWNhcm91c2VsIHtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgfVxuXG4gICAgLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmQge1xuICAgICAgICBmbGV4OiAwIDAgY2FsYygoMTAwJSAtIDIwcHgpIC8gMik7XG4gICAgfVxufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC52aWRlby10ZXN0aW1vbmlhbC1hcnJvdyB7XG4gICAgICAgIHdpZHRoOiAzNXB4O1xuICAgICAgICBtaW4td2lkdGg6IDM1cHg7XG4gICAgfVxuXG4gICAgLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmQge1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICB9XG59XG5cbi50ZXN0aW1vbmlhbC12aWRlby1jYXJkX19tZWRpYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4udGVzdGltb25pYWwtdmlkZW8tY2FyZF9fbWVkaWE6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2U7XG59XG5cbi50ZXN0aW1vbmlhbC12aWRlby1jYXJkOmhvdmVyIC50ZXN0aW1vbmlhbC12aWRlby1jYXJkX19tZWRpYTo6YmVmb3JlLFxuLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmQ6Zm9jdXMtdmlzaWJsZSAudGVzdGltb25pYWwtdmlkZW8tY2FyZF9fbWVkaWE6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjM1KTtcbn1cblxuLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmRfX3BsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgei1pbmRleDogMjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDU2cHg7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE5MSwgMjQsIDI2LCAwLjkyKTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgdHJhbnNmb3JtIDAuMnMgZWFzZSxcbiAgICAgICAgYmFja2dyb3VuZCAwLjJzIGVhc2U7XG59XG5cbi50ZXN0aW1vbmlhbC12aWRlby1jYXJkX19wbGF5OjphZnRlciB7XG4gICAgY29udGVudDogXCJcXGYwNGJcIjtcbiAgICBtYXJnaW4tbGVmdDogM3B4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA2IFByb1wiLCBcIkZvbnQgQXdlc29tZSA2IEZyZWVcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmQ6aG92ZXIgLnRlc3RpbW9uaWFsLXZpZGVvLWNhcmRfX3BsYXksXG4udGVzdGltb25pYWwtdmlkZW8tY2FyZDpmb2N1cy12aXNpYmxlIC50ZXN0aW1vbmlhbC12aWRlby1jYXJkX19wbGF5IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxLjA2KTtcbiAgICBiYWNrZ3JvdW5kOiAjYmYxODFhO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAudGVzdGltb25pYWwtdmlkZW8tY2FyZF9fcGxheSB7XG4gICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgfVxuICAgIC50ZXN0aW1vbmlhbC12aWRlby1jYXJkX19wbGF5OjphZnRlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICB9XG59XG4iLCIvKiEgbW9kZXJuLW5vcm1hbGl6ZSB2MS4xLjAgfCBNSVQgTGljZW5zZSB8IGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZSAqL1xuXG4vKlxuRG9jdW1lbnRcbj09PT09PT09XG4qL1xuXG4vKipcblVzZSBhIGJldHRlciBib3ggbW9kZWwgKG9waW5pb25hdGVkKS5cbiovXG5cbiosXG46OmJlZm9yZSxcbjo6YWZ0ZXIge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vKipcblVzZSBhIG1vcmUgcmVhZGFibGUgdGFiIHNpemUgKG9waW5pb25hdGVkKS5cbiovXG5cbmh0bWwge1xuXHQtbW96LXRhYi1zaXplOiA0O1xuXHR0YWItc2l6ZTogNDtcbn1cblxuLyoqXG4xLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4yLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiovXG5cbmh0bWwge1xuXHRsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuXHQtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLypcblNlY3Rpb25zXG49PT09PT09PVxuKi9cblxuLyoqXG5SZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5ib2R5IHtcblx0bWFyZ2luOiAwO1xufVxuXG4vKipcbkltcHJvdmUgY29uc2lzdGVuY3kgb2YgZGVmYXVsdCBmb250cyBpbiBhbGwgYnJvd3NlcnMuIChodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL21vZGVybi1ub3JtYWxpemUvaXNzdWVzLzMpXG4qL1xuXG5ib2R5IHtcblx0Zm9udC1mYW1pbHk6XG5cdFx0c3lzdGVtLXVpLFxuXHRcdC1hcHBsZS1zeXN0ZW0sIC8qIEZpcmVmb3ggc3VwcG9ydHMgdGhpcyBidXQgbm90IHlldCBgc3lzdGVtLXVpYCAqL1xuXHRcdCdTZWdvZSBVSScsXG5cdFx0Um9ib3RvLFxuXHRcdEhlbHZldGljYSxcblx0XHRBcmlhbCxcblx0XHRzYW5zLXNlcmlmLFxuXHRcdCdBcHBsZSBDb2xvciBFbW9qaScsXG5cdFx0J1NlZ29lIFVJIEVtb2ppJztcbn1cblxuLypcbkdyb3VwaW5nIGNvbnRlbnRcbj09PT09PT09PT09PT09PT1cbiovXG5cbi8qKlxuMS4gQWRkIHRoZSBjb3JyZWN0IGhlaWdodCBpbiBGaXJlZm94LlxuMi4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2Ugb2YgYm9yZGVyIGNvbG9yIGluIEZpcmVmb3guIChodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2NTUpXG4qL1xuXG5ociB7XG5cdGhlaWdodDogMDsgLyogMSAqL1xuXHRjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKlxuVGV4dC1sZXZlbCBzZW1hbnRpY3Ncbj09PT09PT09PT09PT09PT09PT09XG4qL1xuXG4vKipcbkFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuKi9cblxuYWJiclt0aXRsZV0ge1xuXHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG59XG5cbi8qKlxuQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIEVkZ2UgYW5kIFNhZmFyaS5cbiovXG5cbmIsXG5zdHJvbmcge1xuXHRmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbjEuIEltcHJvdmUgY29uc2lzdGVuY3kgb2YgZGVmYXVsdCBmb250cyBpbiBhbGwgYnJvd3NlcnMuIChodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL21vZGVybi1ub3JtYWxpemUvaXNzdWVzLzMpXG4yLiBDb3JyZWN0IHRoZSBvZGQgJ2VtJyBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4qL1xuXG5jb2RlLFxua2JkLFxuc2FtcCxcbnByZSB7XG5cdGZvbnQtZmFtaWx5OlxuXHRcdHVpLW1vbm9zcGFjZSxcblx0XHRTRk1vbm8tUmVndWxhcixcblx0XHRDb25zb2xhcyxcblx0XHQnTGliZXJhdGlvbiBNb25vJyxcblx0XHRNZW5sbyxcblx0XHRtb25vc3BhY2U7IC8qIDEgKi9cblx0Zm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG5BZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiovXG5cbnNtYWxsIHtcblx0Zm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuUHJldmVudCAnc3ViJyBhbmQgJ3N1cCcgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiovXG5cbnN1YixcbnN1cCB7XG5cdGZvbnQtc2l6ZTogNzUlO1xuXHRsaW5lLWhlaWdodDogMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG5cdGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcblx0dG9wOiAtMC41ZW07XG59XG5cbi8qXG5UYWJ1bGFyIGRhdGFcbj09PT09PT09PT09PVxuKi9cblxuLyoqXG4xLiBSZW1vdmUgdGV4dCBpbmRlbnRhdGlvbiBmcm9tIHRhYmxlIGNvbnRlbnRzIGluIENocm9tZSBhbmQgU2FmYXJpLiAoaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9OTk5MDg4LCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMjk3KVxuMi4gQ29ycmVjdCB0YWJsZSBib3JkZXIgY29sb3IgaW5oZXJpdGFuY2UgaW4gYWxsIENocm9tZSBhbmQgU2FmYXJpLiAoaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9OTM1NzI5LCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MDE2KVxuKi9cblxudGFibGUge1xuXHR0ZXh0LWluZGVudDogMDsgLyogMSAqL1xuXHRib3JkZXItY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLypcbkZvcm1zXG49PT09PVxuKi9cblxuLyoqXG4xLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbjIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG5cdGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuXHRsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuXHRtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG5SZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UgYW5kIEZpcmVmb3guXG4xLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4qL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG5cdHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbkNvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4qL1xuXG5idXR0b24sXG5bdHlwZT0nYnV0dG9uJ10sXG5bdHlwZT0ncmVzZXQnXSxcblt0eXBlPSdzdWJtaXQnXSB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcblJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4qL1xuXG46Oi1tb3otZm9jdXMtaW5uZXIge1xuXHRib3JkZXItc3R5bGU6IG5vbmU7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuKi9cblxuOi1tb3otZm9jdXNyaW5nIHtcblx0b3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcblJlbW92ZSB0aGUgYWRkaXRpb25hbCAnOmludmFsaWQnIHN0eWxlcyBpbiBGaXJlZm94LlxuU2VlOiBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrby1kZXYvYmxvYi8yZjllYWNkOWQzZDk5NWM5MzdiNDI1MWE1NTU3ZDk1ZDQ5NGM5YmUxL2xheW91dC9zdHlsZS9yZXMvZm9ybXMuY3NzI0w3MjgtTDczN1xuKi9cblxuOi1tb3otdWktaW52YWxpZCB7XG5cdGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qKlxuUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dCAnZmllbGRzZXQnIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiovXG5cbmxlZ2VuZCB7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUgYW5kIEZpcmVmb3guXG4qL1xuXG5wcm9ncmVzcyB7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG5Db3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBTYWZhcmkuXG4qL1xuXG46Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG46Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuXHRoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4yLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiovXG5cblt0eXBlPSdzZWFyY2gnXSB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG5cdG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuKi9cblxuOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbjEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4yLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvICdpbmhlcml0JyBpbiBTYWZhcmkuXG4qL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cblx0Zm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKlxuSW50ZXJhY3RpdmVcbj09PT09PT09PT09XG4qL1xuXG4vKlxuQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4qL1xuXG5zdW1tYXJ5IHtcblx0ZGlzcGxheTogbGlzdC1pdGVtO1xufVxuIiwiLyoqXG4gKiBNYW51YWxseSBmb3JrZWQgZnJvbSBTVUlUIENTUyBCYXNlOiBodHRwczovL2dpdGh1Yi5jb20vc3VpdGNzcy9iYXNlXG4gKiBBIHRoaW4gbGF5ZXIgb24gdG9wIG9mIG5vcm1hbGl6ZS5jc3MgdGhhdCBwcm92aWRlcyBhIHN0YXJ0aW5nIHBvaW50IG1vcmVcbiAqIHN1aXRhYmxlIGZvciB3ZWIgYXBwbGljYXRpb25zLlxuICovXG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgZGVmYXVsdCBzcGFjaW5nIGFuZCBib3JkZXIgZm9yIGFwcHJvcHJpYXRlIGVsZW1lbnRzLlxuICovXG5cbmJsb2NrcXVvdGUsXG5kbCxcbmRkLFxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2LFxuaHIsXG5maWd1cmUsXG5wLFxucHJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cblxuZmllbGRzZXQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbm9sLFxudWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogVGFpbHdpbmQgY3VzdG9tIHJlc2V0IHN0eWxlc1xuICovXG5cbi8qKlxuICogMS4gVXNlIHRoZSB1c2VyJ3MgY29uZmlndXJlZCBgc2Fuc2AgZm9udC1mYW1pbHkgKHdpdGggVGFpbHdpbmQncyBkZWZhdWx0XG4gKiAgICBzYW5zLXNlcmlmIGZvbnQgc3RhY2sgYXMgYSBmYWxsYmFjaykgYXMgYSBzYW5lIGRlZmF1bHQuXG4gKiAyLiBVc2UgVGFpbHdpbmQncyBkZWZhdWx0IFwibm9ybWFsXCIgbGluZS1oZWlnaHQgc28gdGhlIHVzZXIgaXNuJ3QgZm9yY2VkXG4gKiAgICB0byBvdmVycmlkZSBpdCB0byBlbnN1cmUgY29uc2lzdGVuY3kgZXZlbiB3aGVuIHVzaW5nIHRoZSBkZWZhdWx0IHRoZW1lLlxuICovXG5cbmh0bWwge1xuICBmb250LWZhbWlseTogdGhlbWUoJ2ZvbnRGYW1pbHkuc2FucycsIHVpLXNhbnMtc2VyaWYsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgXCJOb3RvIFNhbnNcIiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiKTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS41OyAvKiAyICovXG59XG5cblxuLyoqXG4gKiBJbmhlcml0IGZvbnQtZmFtaWx5IGFuZCBsaW5lLWhlaWdodCBmcm9tIGBodG1sYCBzbyB1c2VycyBjYW4gc2V0IHRoZW0gYXNcbiAqIGEgY2xhc3MgZGlyZWN0bHkgb24gdGhlIGBodG1sYCBlbGVtZW50LlxuICovXG5cbmJvZHkge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8qKlxuICogMS4gUHJldmVudCBwYWRkaW5nIGFuZCBib3JkZXIgZnJvbSBhZmZlY3RpbmcgZWxlbWVudCB3aWR0aC5cbiAqXG4gKiAgICBXZSB1c2VkIHRvIHNldCB0aGlzIGluIHRoZSBodG1sIGVsZW1lbnQgYW5kIGluaGVyaXQgZnJvbVxuICogICAgdGhlIHBhcmVudCBlbGVtZW50IGZvciBldmVyeXRoaW5nIGVsc2UuIFRoaXMgY2F1c2VkIGlzc3Vlc1xuICogICAgaW4gc2hhZG93LWRvbS1lbmhhbmNlZCBlbGVtZW50cyBsaWtlIDxkZXRhaWxzPiB3aGVyZSB0aGUgY29udGVudFxuICogICAgaXMgd3JhcHBlZCBieSBhIGRpdiB3aXRoIGJveC1zaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAuXG4gKlxuICogICAgaHR0cHM6Ly9naXRodWIuY29tL21vemRldnMvY3NzcmVtZWR5L2lzc3Vlcy80XG4gKlxuICpcbiAqIDIuIEFsbG93IGFkZGluZyBhIGJvcmRlciB0byBhbiBlbGVtZW50IGJ5IGp1c3QgYWRkaW5nIGEgYm9yZGVyLXdpZHRoLlxuICpcbiAqICAgIEJ5IGRlZmF1bHQsIHRoZSB3YXkgdGhlIGJyb3dzZXIgc3BlY2lmaWVzIHRoYXQgYW4gZWxlbWVudCBzaG91bGQgaGF2ZSBub1xuICogICAgYm9yZGVyIGlzIGJ5IHNldHRpbmcgaXQncyBib3JkZXItc3R5bGUgdG8gYG5vbmVgIGluIHRoZSB1c2VyLWFnZW50XG4gKiAgICBzdHlsZXNoZWV0LlxuICpcbiAqICAgIEluIG9yZGVyIHRvIGVhc2lseSBhZGQgYm9yZGVycyB0byBlbGVtZW50cyBieSBqdXN0IHNldHRpbmcgdGhlIGBib3JkZXItd2lkdGhgXG4gKiAgICBwcm9wZXJ0eSwgd2UgY2hhbmdlIHRoZSBkZWZhdWx0IGJvcmRlci1zdHlsZSBmb3IgYWxsIGVsZW1lbnRzIHRvIGBzb2xpZGAsIGFuZFxuICogICAgdXNlIGJvcmRlci13aWR0aCB0byBoaWRlIHRoZW0gaW5zdGVhZC4gVGhpcyB3YXkgb3VyIGBib3JkZXJgIHV0aWxpdGllcyBvbmx5XG4gKiAgICBuZWVkIHRvIHNldCB0aGUgYGJvcmRlci13aWR0aGAgcHJvcGVydHkgaW5zdGVhZCBvZiB0aGUgZW50aXJlIGBib3JkZXJgXG4gKiAgICBzaG9ydGhhbmQsIG1ha2luZyBvdXIgYm9yZGVyIHV0aWxpdGllcyBtdWNoIG1vcmUgc3RyYWlnaHRmb3J3YXJkIHRvIGNvbXBvc2UuXG4gKlxuICogICAgaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kY3NzL3RhaWx3aW5kY3NzL3B1bGwvMTE2XG4gKi9cblxuKixcbjo6YmVmb3JlLFxuOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgYm9yZGVyLXdpZHRoOiAwOyAvKiAyICovXG4gIGJvcmRlci1zdHlsZTogc29saWQ7IC8qIDIgKi9cbiAgYm9yZGVyLWNvbG9yOiBjdXJyZW50Q29sb3I7IC8qIDIgKi9cbn1cblxuLypcbiAqIEVuc3VyZSBob3Jpem9udGFsIHJ1bGVzIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHRcbiAqL1xuXG5ociB7XG4gIGJvcmRlci10b3Atd2lkdGg6IDFweDtcbn1cblxuLyoqXG4gKiBVbmRvIHRoZSBgYm9yZGVyLXN0eWxlOiBub25lYCByZXNldCB0aGF0IE5vcm1hbGl6ZSBhcHBsaWVzIHRvIGltYWdlcyBzbyB0aGF0XG4gKiBvdXIgYGJvcmRlci17d2lkdGh9YCB1dGlsaXRpZXMgaGF2ZSB0aGUgZXhwZWN0ZWQgZWZmZWN0LlxuICpcbiAqIFRoZSBOb3JtYWxpemUgcmVzZXQgaXMgdW5uZWNlc3NhcnkgZm9yIHVzIHNpbmNlIHdlIGRlZmF1bHQgdGhlIGJvcmRlci13aWR0aFxuICogdG8gMCBvbiBhbGwgZWxlbWVudHMuXG4gKlxuICogaHR0cHM6Ly9naXRodWIuY29tL3RhaWx3aW5kY3NzL3RhaWx3aW5kY3NzL2lzc3Vlcy8zNjJcbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG50ZXh0YXJlYSB7XG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiB0aGVtZSgnY29sb3JzLmdyYXkuNDAwJywgI2ExYTFhYSk7XG59XG5cbmJ1dHRvbixcbltyb2xlPVwiYnV0dG9uXCJdIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vKipcbiAqIE92ZXJyaWRlIGxlZ2FjeSBmb2N1cyByZXNldCBmcm9tIE5vcm1hbGl6ZSB3aXRoIG1vZGVybiBGaXJlZm94IGZvY3VzIHN0eWxlcy5cbiAqXG4gKiBUaGlzIGlzIGFjdHVhbGx5IGFuIGltcHJvdmVtZW50IG92ZXIgdGhlIG5ldyBkZWZhdWx0cyBpbiBGaXJlZm94IGluIG91ciB0ZXN0aW5nLFxuICogYXMgaXQgdHJpZ2dlcnMgdGhlIGJldHRlciBmb2N1cyBzdHlsZXMgZXZlbiBmb3IgbGlua3MsIHdoaWNoIHN0aWxsIHVzZSBhIGRvdHRlZFxuICogb3V0bGluZSBpbiBGaXJlZm94IGJ5IGRlZmF1bHQuXG4gKi9cbiBcbjotbW96LWZvY3VzcmluZyB7XG5cdG91dGxpbmU6IGF1dG87XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBSZXNldCBsaW5rcyB0byBvcHRpbWl6ZSBmb3Igb3B0LWluIHN0eWxpbmcgaW5zdGVhZCBvZlxuICogb3B0LW91dC5cbiAqL1xuXG5hIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBSZXNldCBmb3JtIGVsZW1lbnQgcHJvcGVydGllcyB0aGF0IGFyZSBlYXN5IHRvIGZvcmdldCB0b1xuICogc3R5bGUgZXhwbGljaXRseSBzbyB5b3UgZG9uJ3QgaW5hZHZlcnRlbnRseSBpbnRyb2R1Y2VcbiAqIHN0eWxlcyB0aGF0IGRldmlhdGUgZnJvbSB5b3VyIGRlc2lnbiBzeXN0ZW0uIFRoZXNlIHN0eWxlc1xuICogc3VwcGxlbWVudCBhIHBhcnRpYWwgcmVzZXQgdGhhdCBpcyBhbHJlYWR5IGFwcGxpZWQgYnlcbiAqIG5vcm1hbGl6ZS5jc3MuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgcGFkZGluZzogMDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4vKipcbiAqIFVzZSB0aGUgY29uZmlndXJlZCAnbW9ubycgZm9udCBmYW1pbHkgZm9yIGVsZW1lbnRzIHRoYXRcbiAqIGFyZSBleHBlY3RlZCB0byBiZSByZW5kZXJlZCB3aXRoIGEgbW9ub3NwYWNlIGZvbnQsIGZhbGxpbmdcbiAqIGJhY2sgdG8gdGhlIHN5c3RlbSBtb25vc3BhY2Ugc3RhY2sgaWYgdGhlcmUgaXMgbm8gY29uZmlndXJlZFxuICogJ21vbm8nIGZvbnQgZmFtaWx5LlxuICovXG5cbnByZSxcbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IHRoZW1lKCdmb250RmFtaWx5Lm1vbm8nLCB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgXCJMaWJlcmF0aW9uIE1vbm9cIiwgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2UpO1xufVxuXG4vKipcbiAqIDEuIE1ha2UgcmVwbGFjZWQgZWxlbWVudHMgYGRpc3BsYXk6IGJsb2NrYCBieSBkZWZhdWx0IGFzIHRoYXQnc1xuICogICAgdGhlIGJlaGF2aW9yIHlvdSB3YW50IGFsbW9zdCBhbGwgb2YgdGhlIHRpbWUuIEluc3BpcmVkIGJ5XG4gKiAgICBDU1MgUmVtZWR5LCB3aXRoIGBzdmdgIGFkZGVkIGFzIHdlbGwuXG4gKlxuICogICAgaHR0cHM6Ly9naXRodWIuY29tL21vemRldnMvY3NzcmVtZWR5L2lzc3Vlcy8xNFxuICogXG4gKiAyLiBBZGQgYHZlcnRpY2FsLWFsaWduOiBtaWRkbGVgIHRvIGFsaWduIHJlcGxhY2VkIGVsZW1lbnRzIG1vcmVcbiAqICAgIHNlbnNpYmx5IGJ5IGRlZmF1bHQgd2hlbiBvdmVycmlkaW5nIGBkaXNwbGF5YCBieSBhZGRpbmcgYVxuICogICAgdXRpbGl0eSBsaWtlIGBpbmxpbmVgLlxuICpcbiAqICAgIFRoaXMgY2FuIHRyaWdnZXIgYSBwb29ybHkgY29uc2lkZXJlZCBsaW50aW5nIGVycm9yIGluIHNvbWVcbiAqICAgIHRvb2xzIGJ1dCBpcyBpbmNsdWRlZCBieSBkZXNpZ24uXG4gKiBcbiAqICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9qZW5zaW1tb25zL2Nzc3JlbWVkeS9pc3N1ZXMvMTQjaXNzdWVjb21tZW50LTYzNDkzNDIxMFxuICovXG5cbmltZyxcbnN2ZyxcbnZpZGVvLFxuY2FudmFzLFxuYXVkaW8sXG5pZnJhbWUsXG5lbWJlZCxcbm9iamVjdCB7XG4gIGRpc3BsYXk6IGJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb25zdHJhaW4gaW1hZ2VzIGFuZCB2aWRlb3MgdG8gdGhlIHBhcmVudCB3aWR0aCBhbmQgcHJlc2VydmVcbiAqIHRoZWlyIGludHJpbnNpYyBhc3BlY3QgcmF0aW8uXG4gKlxuICogaHR0cHM6Ly9naXRodWIuY29tL21vemRldnMvY3NzcmVtZWR5L2lzc3Vlcy8xNFxuICovXG5cbmltZyxcbnZpZGVvIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogRW5zdXJlIHRoZSBkZWZhdWx0IGJyb3dzZXIgYmVoYXZpb3Igb2YgdGhlIGBoaWRkZW5gIGF0dHJpYnV0ZS5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLG51bGwsIi8vIENPTkZJR1xuLy8gRk9OVFNcblxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1PcGVuK1NhbnM6MzAwLDcwMCZkaXNwbGF5PXN3YXAnKTtcblxuJG9wZW46ICdPcGVuIFNhbnMnO1xuXG4vL0JSRUFLUE9JTlRTXG5cbiRkZXNrdG9wOiAxMzY2cHg7XG4kdGFibGV0OiA5OTFweDtcbiRtb2JpbGU6IDc2N3B4O1xuJHRpbnk6IDU3NXB4O1xuXG46cm9vdCB7XG4gICAgLS1ibGFjazogIzAwMDAwMDtcbiAgICAtLXdoaXRlOiAjZmZmO1xuICAgIC0tZ3JleTogIzU2NTY1NjtcbiAgICAtLWxpZ2h0LWdyZXk6ICNlY2VjZWM7XG4gICAgLS1wcmltYXJ5LWNvbG91cjogI0JGMTgxQTtcbn1cblxuLy9DT0xPVVJTXG4kYmxhY2s6IHZhcigtLWJsYWNrKTtcbiR3aGl0ZTogdmFyKC0td2hpdGUpO1xuJGdyZXk6IHZhcigtLWdyZXkpO1xuJHByaW1hcnktY29sb3VyOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4vLyBFTkQgQ09ORklHXG5cbi8vIEdSSURcbkBtaXhpbiBjb2woKSB7XG4gICAgQGFwcGx5IGZsZXgtZ3JvdyBmbGV4LXdyYXAgZmxleC1jb2wgb3ZlcmZsb3ctdmlzaWJsZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICBtaW4td2lkdGg6IDguMzMzMyU7XG5cbiAgICAmLmxnLWhhbGYge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubWQtZnVsbCB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuc20tdGhpcmQge1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzMuMzMzMzMlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zbS1oYWxmIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuc20tZnVsbCB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmZsZXgtZ3JpZC1yb3cge1xuICAgIEBhcHBseSBmbGV4IGZsZXgtd3JhcCBvdmVyZmxvdy12aXNpYmxlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xNXB4O1xufVxuXG4uZmxleC1ncmlkLWNvbCB7XG4gICAgZmxleDogMSAwO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBAaW5jbHVkZSBjb2woKTtcblxuICAgICYtMyB7XG4gICAgICAgIEBpbmNsdWRlIGNvbCgpO1xuICAgICAgICBmbGV4OiAwIDAgMjUlO1xuICAgICAgICBtYXgtd2lkdGg6IDI1JTtcbiAgICB9XG5cbiAgICAmLTQge1xuICAgICAgICBAaW5jbHVkZSBjb2woKTtcbiAgICAgICAgZmxleDogMCAwIDMzLjMzMzMlO1xuICAgICAgICBtYXgtd2lkdGg6IDMzLjMzMzMlO1xuICAgIH1cblxuICAgICYtNSB7XG4gICAgICAgIEBpbmNsdWRlIGNvbCgpO1xuICAgICAgICBmbGV4OiAwIDAgNDEuNjY2NSU7XG4gICAgICAgIG1heC13aWR0aDogNDEuNjY2NSU7XG4gICAgfVxuXG4gICAgJi02IHtcbiAgICAgICAgQGluY2x1ZGUgY29sKCk7XG4gICAgICAgIC8vIEFSRSBUSEVTRSBXUk9ORz9cbiAgICAgICAgLy8gZmxleDogMCAwIDE2LjY2NjYlO1xuICAgICAgICAvLyBtYXgtd2lkdGg6IDE2LjY2NjYlO1xuICAgICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAmLTcge1xuICAgICAgICBAaW5jbHVkZSBjb2woKTtcbiAgICAgICAgLy8gQVJFIFRIRVNFIFdST05HP1xuICAgICAgICAvLyBmbGV4OiAwIDAgMTQuMjg1NyU7XG4gICAgICAgIC8vIG1heC13aWR0aDogMTQuMjg1NyU7XG4gICAgICAgIGZsZXg6IDAgMCA1OC4zMzMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1OC4zMzMzJTtcbiAgICB9XG5cbiAgICAmLTgge1xuICAgICAgICBAaW5jbHVkZSBjb2woKTtcbiAgICAgICAgZmxleDogMCAwIDY2LjY2NjclO1xuICAgICAgICBtYXgtd2lkdGg6IDY2LjY2NjclO1xuICAgIH1cblxuICAgICYtMTAge1xuICAgICAgICBAaW5jbHVkZSBjb2woKTtcbiAgICAgICAgZmxleDogMCAwIDgzLjMzMzMlO1xuICAgICAgICBtYXgtd2lkdGg6IDgzLjMzMzMlO1xuICAgIH1cblxuICAgICYtZmlmdGgge1xuICAgICAgICBAaW5jbHVkZSBjb2woKTtcbiAgICAgICAgZmxleDogMCAwIDIwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAyMCU7XG4gICAgfVxuXG4gICAgJi1vZmZzZXQge1xuICAgICAgICAmLTEge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMlO1xuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLTIge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjYlO1xuXG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBFTkQgR1JJRFxuXG4vLyBCQVNFXG5ib2R5IHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDJlbTtcbn1cblxuaDEsXG4uaDEge1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDYwcHg7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgfVxufVxuXG5oMyxcbi5oMyxcbmgyLFxuLmgyIHtcbiAgICBmb250LXNpemU6IDIuNWVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuNzVlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBmb250LXNpemU6IDEuODc1ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA3NWVtO1xuICAgIH1cbiAgICAmLS1zbSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44NzVlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDc1ZW07XG4gICAgfVxufVxuXG5oNCxcbi5oNCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cblxudWwge1xuICAgIEBhcHBseSBtYi02O1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBAYXBwbHkgbWItMDtcbiAgICAgICAgJiArICoge1xuICAgICAgICAgICAgQGFwcGx5IG10LTY7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbm9sIHtcbiAgICBAYXBwbHkgbWItNjtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWFscGhhO1xuICAgIHBhZGRpbmctbGVmdDogMThweDtcbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIEBhcHBseSBtYi0wO1xuICAgICAgICAmICsgKiB7XG4gICAgICAgICAgICBAYXBwbHkgbXQtNjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmRpc3BsYXktMSB7XG4gICAgZm9udC1zaXplOiAzLjc1ZW07XG4gICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgICAgZm9udC1zaXplOiAyLjI1ZW07XG4gICAgfVxufVxuXG5wIHtcbiAgICBAYXBwbHkgbWItNjtcbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIEBhcHBseSBtYi0wO1xuICAgICAgICAmICsgdWwsICYgKyBvbCB7XG4gICAgICAgICAgICAgQGFwcGx5IG10LTY7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5weS0yMHB4IHtcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbn1cblxuLm10IHtcbiAgICAmLTMwcHgge1xuICAgICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgIH1cblxuICAgICYtNjBweCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDYwcHg7XG4gICAgfVxufVxuXG4ubWIge1xuICAgICYtNjBweCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgfVxuXG4gICAgJi0zMHB4IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICB9XG59XG5cbnNlY3Rpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG5cbiAgICAmLmFib3V0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZzogNjBweCAwO1xuXG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA2MHB4IDAgMCAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJisuYmctZml4ZWQge1xuICAgICAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICAgIH1cblxuICAgICYuYWJvdXQtcHQtMCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgICYuZmFxIHtcbiAgICAgICAgJjpoYXMoK2Zvb3RlciksIDpoYXMoK3NlY3Rpb24pIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNlY3Rpb24tZ3JleSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoIzAwMCwgMC4xKTtcbiAgICAgICAgcGFkZGluZzogNjBweCAwO1xuXG4gICAgICAgICY6aGFzKCsuYmctYmxhY2spIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICAgLy8gKiB7XG4gICAgICAgIC8vICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAvLyB9XG5cblxuICAgICAgICBwOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDYwcHggMCA2MHB4IDA7XG4gICAgICAgIH1cblxuICAgICAgICBoNCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gJi50ZXh0IHtcbiAgICAvLyAgICAgcCB7XG4gICAgLy8gICAgICAgICBtYXJnaW4tYm90dG9tOiAzZW07XG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgJi5zZXJ2aWNlcyB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogNjBweDtcblxuICAgICAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuY29udGFjdC1wYWdlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNjBweDtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNjBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuY29udGFjdCB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY29udGFjdCB7XG4gICAgJl9fdGl0bGUge1xuICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICB9XG5cbiAgICAuY29udGFjdC1pbmZvIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjdweCkge1xuICAgICAgICAgICAgcGFkZGluZzogNXB4IDE1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb250YWluZXItbGcge1xuICAgIG1heC13aWR0aDogMTUwMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xufVxuXG4uY29udGFpbmVyLXNtIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNTc1cHgpIHtcbiAgICAgICAgbWF4LXdpZHRoOiA1NzVweDtcbiAgICB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo3NjhweCkge1xuICAgICAgICBtYXgtd2lkdGg6IDc2OHB4O1xuICAgIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTkwcHgpIHtcbiAgICAgICAgbWF4LXdpZHRoOiA5OTBweDtcbiAgICB9XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG5cbi5lbC1zaGFkb3cge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgjMDAwLCAwLjEpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgIH1cblxuICAgICYtLWJsIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBib3R0b206IC02MHB4O1xuICAgICAgICAgICAgbGVmdDogLTYwcHhcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWJsLWFib3V0IHtcbiAgICAgICAgPmltZyB7XG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDYwcHgpO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogLTYwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5pY29uLXdyYXBwZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmV5O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG59XG5cbiNtYXAge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGFsaWNlYmx1ZTtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDYwcHg7XG59XG5cbi5jb250YWN0LXBhZ2UgI21hcCB7XG4gICAgbWFyZ2luLXRvcDogNjBweDtcbn1cblxuLmNsaWVudC1zbGlkZXIge1xuICAgIC5zbGljay1zbGlkZT5kaXYge1xuICAgICAgICBtaW4taGVpZ2h0OiA4NHB4O1xuICAgIH1cbn1cblxuLmJyYW5kLXNsaWRlciB7XG4gICAgLnNsaWNrLXNsaWRlPmRpdiB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDg0cHg7XG4gICAgfVxufVxuXG4udGVzdGltb25pYWwtc2xpZGVyIHtcbiAgICBwYWRkaW5nOiAwIDYwcHg7XG5cbiAgICAuc2xpY2stYXJyb3cge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTVweDtcbiAgICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHdpZHRoOiA0NXB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG91cjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgQGFwcGx5IG1iLTE7XG4gICAgfVxuXG4gICAgLnNsaWNrLW5leHQge1xuICAgICAgICByaWdodDogMDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYzNTYnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNsaWNrLXByZXYge1xuICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJ1xcZjM1NSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b246Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbn1cblxuLnRleHQtc2xpZGVyIHtcbiAgICBwYWRkaW5nOiAwIDYwcHg7XG5cbiAgICAuc2xpY2stYXJyb3cge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogY2FsYyg1MCUgLSAxNXB4KTtcbiAgICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHdpZHRoOiA0NXB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG91cjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpY2stbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJ1xcZjM1Nic7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpY2stcHJldiB7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnXFxmMzU1JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxufVxuXG4vKiBwdXJnZWNzcyBzdGFydCBpZ25vcmUgKi9cblxuLy8gI21hcmtldGluZy1jb25zZW50LFxuLy8gI2VucXVpcnlfYWdyZWVDb250YWN0IHtcbi8vICAgICBkaXNwbGF5OiBub25lO1xuXG4vLyAgICAgK2xhYmVsIHtcbi8vICAgICAgICAgJjpiZWZvcmUge1xuLy8gICAgICAgICAgICAgY29udGVudDogJ1xcZjBjOCc7XG4vLyAgICAgICAgICAgICBmb250LWZhbWlseTogJ0ZvbnQgQXdlc29tZSA1IFBybyc7XG4vLyAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuLy8gICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8gICAgICAgICB9XG4vLyAgICAgfVxuXG4vLyAgICAgJjpjaGVja2VkK2xhYmVsOmJlZm9yZSB7XG4vLyAgICAgICAgIGNvbnRlbnQ6ICdcXGYxNGEnO1xuLy8gICAgIH1cbi8vIH1cblxuLyogcHVyZ2Vjc3MgZW5kIGlnbm9yZSAqL1xuXG4uc29jaWFsIHtcbiAgICB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgICAgID5saSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG5cbiAgICAgICAgICAgICtsaSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA2cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgdWwge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jaGVhZGVyIHVsIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgYTpob3ZlciB7XG4gICAgICAgIEBhcHBseSB0ZXh0LXByaW1hcnk7XG4gICAgfVxufVxuXG4vLyBUQUlMV0lORCBPTkxZXG5cbkBzY3JlZW4gbGcge1xuICAgICNtYWluTmF2IC5zdWJtZW51IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAjbWFpbk5hdiBsaTpob3ZlciAuc3VibWVudSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbn1cblxuLnN1Ym1lbnUgYSB7XG4gICAgQGFwcGx5IGlubGluZS1ibG9jayB0ZXh0LWJsYWNrIG5vLXVuZGVybGluZSBweS0xIHB4LTQgbGVhZGluZy10aWdodDtcbn1cblxuLnRlc3RpbW9uaWFsLWJsb2NrIHtcbiAgICBAYXBwbHkgYmctY292ZXIgYmctbm8tcmVwZWF0IGJnLWNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy90ZXN0aW1vbmlhbC1iZy5qcGcnKTtcbn1cblxuLnJhdGluZzEge1xuICAgIC5yYXRpbmdfX3N0YXIyLCAucmF0aW5nX19zdGFyMywgLnJhdGluZ19fc3RhcjQsIC5yYXRpbmdfX3N0YXI1IHtcbiAgICAgICAgQGFwcGx5IGhpZGRlbjtcbiAgICB9XG59XG5cbi5yYXRpbmcyIHtcbiAgICAucmF0aW5nX19zdGFyMSwgLnJhdGluZ19fc3RhcjMsIC5yYXRpbmdfX3N0YXI0LCAucmF0aW5nX19zdGFyNSB7XG4gICAgICAgIEBhcHBseSBoaWRkZW47XG4gICAgfVxufVxuXG4ucmF0aW5nMyB7XG4gICAgLnJhdGluZ19fc3RhcjEsIC5yYXRpbmdfX3N0YXIyLCAucmF0aW5nX19zdGFyNCwgLnJhdGluZ19fc3RhcjUge1xuICAgICAgICBAYXBwbHkgaGlkZGVuO1xuICAgIH1cbn1cblxuLnJhdGluZzQge1xuICAgIC5yYXRpbmdfX3N0YXIxLCAucmF0aW5nX19zdGFyMiwgLnJhdGluZ19fc3RhcjMsIC5yYXRpbmdfX3N0YXI1IHtcbiAgICAgICAgQGFwcGx5IGhpZGRlbjtcbiAgICB9XG59XG5cbi5yYXRpbmc1IHtcbiAgICAucmF0aW5nX19zdGFyMSwgLnJhdGluZ19fc3RhcjIsIC5yYXRpbmdfX3N0YXIzLCAucmF0aW5nX19zdGFyNCB7XG4gICAgICAgIEBhcHBseSBoaWRkZW47XG4gICAgfVxufVxuXG4udGVzdGltb25pYWxfX3RleHQge1xuICAgIHAge1xuICAgICAgICBAYXBwbHkgbWItMjtcbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgQGFwcGx5IG1iLTA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zdHVkeS1ncmFkIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIEBhcHBseSBhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgdy1mdWxsIGgtZnVsbCBtaXgtYmxlbmQtbXVsdGlwbHkgei0xMDtcbiAgICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcscmdiYSgwLCAwLCAwLCAxKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgQGFwcGx5IGFic29sdXRlIHRvcC0wIGxlZnQtMCB3LWZ1bGwgaC1mdWxsIG1peC1ibGVuZC1tdWx0aXBseSB6LTAgYmctcHJpbWFyeSBtaXgtYmxlbmQtbXVsdGlwbHk7XG4gICAgfVxuICAgIC5jb250YWluZXIge1xuICAgICAgICBAYXBwbHkgcmVsYXRpdmUgei0yMDtcbiAgICB9XG59XG5cbi5zdHVkeS10ZXh0IHtcbiAgICBoMiwgaDMsIGg0LCBoNSwgaDYsIC5oMiwgLmgzLCAuaDQsIC5oNSwgLmg2IHtcbiAgICAgICAgQGFwcGx5IHRleHQtcHJpbWFyeTtcbiAgICB9XG4gICAgaDMge1xuICAgICAgICBAYXBwbHkgdGV4dC0zeGw7XG4gICAgfVxuICAgIHRhYmxlIHtcbiAgICAgICAgQGFwcGx5IHctZnVsbCBtYi02IGJvcmRlciBib3JkZXItYmxhY2s7XG4gICAgICAgICB0ZCB7XG4gICAgICAgICAgICBAYXBwbHkgcC0zIGJvcmRlci1yIGJvcmRlci1ibGFjaztcbiAgICAgICAgICAgICY6Omxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgQGFwcGx5IGJvcmRlci1ub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgfVxuICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICBAYXBwbHkgYmctcHJpbWFyeSB0ZXh0LXdoaXRlO1xuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIEBhcHBseSBib3JkZXItYmxhY2sgYm9yZGVyLWI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5sYW5kaW5nLXRleHQge1xuICAgIGgyLCBoMywgaDQsIGg1LCBoNiwgLmgyLCAuaDMsIC5oNCwgLmg1LCAuaDYge1xuICAgICAgICBAYXBwbHkgdGV4dC1wcmltYXJ5O1xuICAgIH1cbn1cblxuLnNlcnZpY2UtbGluayB7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwKSBzYXR1cmF0ZSgxMDAlKSBpbnZlcnQoMTIlKSBzZXBpYSg0NSUpIHNhdHVyYXRlKDY0NjAlKSBodWUtcm90YXRlKDM0OWRlZykgYnJpZ2h0bmVzcygxMTAlKSBjb250cmFzdCg5OCUpO1xuICAgIH1cbn1cblxuLnRleHQtY29scyB7XG4gICAgcDpudGgtY2hpbGQoMiksIHA6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgQGFwcGx5IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gMzBweCk7XG4gICAgfVxuICAgIHA6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgIH1cbiAgICBwOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgIH1cbn1cblxuLnRleHQtYW5kLWltYWdlOmhhcygrIC50ZXh0LWFuZC1pbWFnZSkge1xuICAgIG1hcmdpbi1ib3R0b206IDAhaW1wb3J0YW50O1xufVxuXG5kZXRhaWxzID4gc3VtbWFyeSB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICY6aG92ZXIge1xuICAgICAgICBAYXBwbHkgY3Vyc29yLXBvaW50ZXI7XG4gICAgfVxufVxuXG5kZXRhaWxzID4gc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuZGV0YWlscyA+IHN1bW1hcnk6OmFmdGVyIHtcbiAgICBAYXBwbHkgZm9udC1pY29ucyBhYnNvbHV0ZSByaWdodC02O1xuICAgIGNvbnRlbnQ6ICdcXGYwNzgnO1xufVxuXG5kZXRhaWxzW29wZW5dID4gc3VtbWFyeTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICdcXGYwNzcnO1xufVxuXG4udGV4dHNsaWRlci0tY29udGVudCB7XG4gICAgdWwsIG9sIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG59XG5cbi5tZW51LXdyYXBwZXIge1xuICAgIEBhcHBseSBtYXgtaC1bODB2aF0gb3ZlcmZsb3cteS1hdXRvO1xuICAgIEBzY3JlZW4gbGcge1xuICAgICAgICBtYXgtaGVpZ2h0OmF1dG87XG4gICAgICAgIEBhcHBseSBvdmVyZmxvdy15LXZpc2libGU7XG4gICAgfVxufVxuXG5zZWN0aW9uLnNlY3Rpb24tc2VydmljZS1uZXdzOmhhcygrLnNlY3Rpb24tZ3JleSwgKy5iZy1ibGFjaykge1xuICAgIEBhcHBseSBwYi0wO1xufVxuXG4uaGVhZGVyLXByaW1hcnkge1xuICAgIGgxLCBoMiwgaDQsIGg0IHtcbiAgICAgICAgQGFwcGx5IHRleHQtcHJpbWFyeTtcbiAgICB9XG59XG5cbi8vIEVORCBCQVNFXG5cbi8vIEVSUk9SXG5ib2R5LmVycm9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvdXI7XG59XG5cbi8vIEVORCBFUlJPUlxuXG4vLyBOQVZcbiNoZWFkZXIge1xuICAgIC5zb2NpYWwge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQHNjcmVlbiBtZCB7XG4gICAgICAgICAgICBAYXBwbHkgbXQtMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI21haW5OYXY6bm90KC5hcmVhcy1mb290ZXItbWVudSB1bCkgLmFjdGl2ZSB7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG91cjtcbn1cblxuLnNpdGUtaGVhZGVyIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIEBhcHBseSBhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgdy1mdWxsIGgtZnVsbCBiZy13aGl0ZSB6LTEwO1xuICAgICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMXM7XG4gICAgfVxuXG4gICAgLmNvbnRhaW5lciB7XG4gICAgICAgIEBhcHBseSByZWxhdGl2ZSB6LTIwO1xuICAgIH1cbn1cblxuLnNpdGUtaGVhZGVyLS1ib3JkZXIsXG4uc2l0ZS1oZWFkZXItLWJvcmRlci1jb25zdCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRwcmltYXJ5LWNvbG91cjtcbn1cblxuLnNpdGUtaGVhZGVyLS1vcGFjaXR5IHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDFzO1xuICAgIH1cbn1cblxuYnV0dG9uI25hdi10b2dnbGUge1xuICAgICY6Zm9jdXMge1xuICAgICAgICBAYXBwbHkgb3V0bGluZS1ub25lO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAgIGZpbGw6ICRwcmltYXJ5LWNvbG91cjtcbiAgICB9XG59XG5cbi5icmFuZC1sb2dvIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5zdHJhcGxpbmUge1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTUwMHB4KSB7XG4gICAgLmJyYW5kLWxvZ28ge1xuICAgICAgICBtYXgtd2lkdGg6IDE3NXB4O1xuICAgIH1cbiAgICAuc3RyYXBsaW5lIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG5cbiAgICAuc3RyYXBsaW5lIHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICB9XG59XG5cbi8vIEVORCBOQVZcblxuLy8gUE9QVVBcbi8qIE1hZ25pZmljIFBvcHVwIENTUyAqL1xuLyogcHVyZ2Vjc3Mgc3RhcnQgaWdub3JlICovXG4ubWZwLWJnIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogMTA0MjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBiYWNrZ3JvdW5kOiAjMGIwYjBiO1xuICAgIG9wYWNpdHk6IDAuODtcbn1cblxuLm1mcC13cmFwIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogMTA0MztcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ubWZwLWNvbnRhaW5lciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm1mcC1jb250YWluZXI6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5tZnAtYWxpZ24tdG9wIC5tZnAtY29udGFpbmVyOmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1mcC1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB6LWluZGV4OiAxMDQ1O1xufVxuXG4ubWZwLWlubGluZS1ob2xkZXIgLm1mcC1jb250ZW50LFxuLm1mcC1hamF4LWhvbGRlciAubWZwLWNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLm1mcC1hamF4LWN1ciB7XG4gICAgY3Vyc29yOiBwcm9ncmVzcztcbn1cblxuLm1mcC16b29tLW91dC1jdXIsXG4ubWZwLXpvb20tb3V0LWN1ciAubWZwLWltYWdlLWhvbGRlciAubWZwLWNsb3NlIHtcbiAgICBjdXJzb3I6IC1tb3otem9vbS1vdXQ7XG4gICAgY3Vyc29yOiAtd2Via2l0LXpvb20tb3V0O1xuICAgIGN1cnNvcjogem9vbS1vdXQ7XG59XG5cbi5tZnAtem9vbSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGN1cnNvcjogLXdlYmtpdC16b29tLWluO1xuICAgIGN1cnNvcjogLW1vei16b29tLWluO1xuICAgIGN1cnNvcjogem9vbS1pbjtcbn1cblxuLm1mcC1hdXRvLWN1cnNvciAubWZwLWNvbnRlbnQge1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLm1mcC1jbG9zZSxcbi5tZnAtYXJyb3csXG4ubWZwLXByZWxvYWRlcixcbi5tZnAtY291bnRlciB7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubWZwLWxvYWRpbmcubWZwLWZpZ3VyZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1mcC1oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tZnAtcHJlbG9hZGVyIHtcbiAgICBjb2xvcjogI0NDQztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IC0wLjhlbTtcbiAgICBsZWZ0OiA4cHg7XG4gICAgcmlnaHQ6IDhweDtcbiAgICB6LWluZGV4OiAxMDQ0O1xufVxuXG4ubWZwLXByZWxvYWRlciBhIHtcbiAgICBjb2xvcjogI0NDQztcbn1cblxuLm1mcC1wcmVsb2FkZXIgYTpob3ZlciB7XG4gICAgY29sb3I6ICNGRkY7XG59XG5cbi5tZnAtcy1yZWFkeSAubWZwLXByZWxvYWRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1mcC1zLWVycm9yIC5tZnAtY29udGVudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuYnV0dG9uLm1mcC1jbG9zZSxcbmJ1dHRvbi5tZnAtYXJyb3cge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICB6LWluZGV4OiAxMDQ2O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG59XG5cbi5tZnAtY2xvc2Uge1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBsaW5lLWhlaWdodDogNDRweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMC42NTtcbiAgICBwYWRkaW5nOiAwIDAgMThweCAxMHB4O1xuICAgIGNvbG9yOiAjRkZGO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBCYXNrZXJ2aWxsZSwgbW9ub3NwYWNlO1xufVxuXG4ubWZwLWNsb3NlOmhvdmVyLFxuLm1mcC1jbG9zZTpmb2N1cyB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLm1mcC1jbG9zZTphY3RpdmUge1xuICAgIHRvcDogMXB4O1xufVxuXG4ubWZwLWNsb3NlLWJ0bi1pbiAubWZwLWNsb3NlIHtcbiAgICBjb2xvcjogIzMzMztcbn1cblxuLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1jbG9zZSxcbi5tZnAtaWZyYW1lLWhvbGRlciAubWZwLWNsb3NlIHtcbiAgICBjb2xvcjogI0ZGRjtcbiAgICByaWdodDogLTZweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5tZnAtY291bnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBjb2xvcjogI0NDQztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1mcC1hcnJvdyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRvcDogNTAlO1xuICAgIG1hcmdpbi10b3A6IC01NXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDkwcHg7XG4gICAgaGVpZ2h0OiAxMTBweDtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubWZwLWFycm93OmFjdGl2ZSB7XG4gICAgbWFyZ2luLXRvcDogLTU0cHg7XG59XG5cbi5tZnAtYXJyb3c6aG92ZXIsXG4ubWZwLWFycm93OmZvY3VzIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4ubWZwLWFycm93OmJlZm9yZSxcbi5tZnAtYXJyb3c6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgbWFyZ2luLXRvcDogMzVweDtcbiAgICBtYXJnaW4tbGVmdDogMzVweDtcbiAgICBib3JkZXI6IG1lZGl1bSBpbnNldCB0cmFuc3BhcmVudDtcbn1cblxuLm1mcC1hcnJvdzphZnRlciB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMTNweDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAxM3B4O1xuICAgIHRvcDogOHB4O1xufVxuXG4ubWZwLWFycm93OmJlZm9yZSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMjFweDtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMXB4O1xuICAgIG9wYWNpdHk6IDAuNztcbn1cblxuLm1mcC1hcnJvdy1sZWZ0IHtcbiAgICBsZWZ0OiAwO1xufVxuXG4ubWZwLWFycm93LWxlZnQ6YWZ0ZXIge1xuICAgIGJvcmRlci1yaWdodDogMTdweCBzb2xpZCAjRkZGO1xuICAgIG1hcmdpbi1sZWZ0OiAzMXB4O1xufVxuXG4ubWZwLWFycm93LWxlZnQ6YmVmb3JlIHtcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICBib3JkZXItcmlnaHQ6IDI3cHggc29saWQgIzNGM0YzRjtcbn1cblxuLm1mcC1hcnJvdy1yaWdodCB7XG4gICAgcmlnaHQ6IDA7XG59XG5cbi5tZnAtYXJyb3ctcmlnaHQ6YWZ0ZXIge1xuICAgIGJvcmRlci1sZWZ0OiAxN3B4IHNvbGlkICNGRkY7XG4gICAgbWFyZ2luLWxlZnQ6IDM5cHg7XG59XG5cbi5tZnAtYXJyb3ctcmlnaHQ6YmVmb3JlIHtcbiAgICBib3JkZXItbGVmdDogMjdweCBzb2xpZCAjM0YzRjNGO1xufVxuXG4ubWZwLWlmcmFtZS1ob2xkZXIge1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xufVxuXG4ubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jb250ZW50IHtcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDkwMHB4O1xufVxuXG4ubWZwLWlmcmFtZS1ob2xkZXIgLm1mcC1jbG9zZSB7XG4gICAgdG9wOiAtNDBweDtcbn1cblxuLm1mcC1pZnJhbWUtc2NhbGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLXRvcDogNTYuMjUlO1xufVxuXG4ubWZwLWlmcmFtZS1zY2FsZXIgaWZyYW1lIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG59XG5cbi8qIE1haW4gaW1hZ2UgaW4gcG9wdXAgKi9cbmltZy5tZnAtaW1nIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogNDBweCAwIDQwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi8qIFRoZSBzaGFkb3cgYmVoaW5kIHRoZSBpbWFnZSAqL1xuLm1mcC1maWd1cmUge1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG4ubWZwLWZpZ3VyZTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA0MHB4O1xuICAgIGJvdHRvbTogNDBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgei1pbmRleDogLTE7XG4gICAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYmFja2dyb3VuZDogIzQ0NDtcbn1cblxuLm1mcC1maWd1cmUgc21hbGwge1xuICAgIGNvbG9yOiAjQkRCREJEO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMTRweDtcbn1cblxuLm1mcC1maWd1cmUgZmlndXJlIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5tZnAtYm90dG9tLWJhciB7XG4gICAgbWFyZ2luLXRvcDogLTM2cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGN1cnNvcjogYXV0bztcbn1cblxuLm1mcC10aXRsZSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogI0YzRjNGMztcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgcGFkZGluZy1yaWdodDogMzZweDtcbn1cblxuLm1mcC1pbWFnZS1ob2xkZXIgLm1mcC1jb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi5tZnAtZ2FsbGVyeSAubWZwLWltYWdlLWhvbGRlciAubWZwLWZpZ3VyZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4MDBweCkgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSxcbnNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDMwMHB4KSB7XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYWxsIHBhZGRpbmdzIGFyb3VuZCB0aGUgaW1hZ2Ugb24gc21hbGwgc2NyZWVuXG4gICAgICovXG4gICAgLm1mcC1pbWctbW9iaWxlIC5tZnAtaW1hZ2UtaG9sZGVyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5tZnAtaW1nLW1vYmlsZSBpbWcubWZwLWltZyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlOmFmdGVyIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgfVxuXG4gICAgLm1mcC1pbWctbW9iaWxlIC5tZnAtZmlndXJlIHNtYWxsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIH1cblxuICAgIC5tZnAtaW1nLW1vYmlsZSAubWZwLWJvdHRvbS1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDNweCA1cHg7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG5cbiAgICAubWZwLWltZy1tb2JpbGUgLm1mcC1ib3R0b20tYmFyOmVtcHR5IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAubWZwLWltZy1tb2JpbGUgLm1mcC1jb3VudGVyIHtcbiAgICAgICAgcmlnaHQ6IDVweDtcbiAgICAgICAgdG9wOiAzcHg7XG4gICAgfVxuXG4gICAgLm1mcC1pbWctbW9iaWxlIC5tZnAtY2xvc2Uge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMzVweDtcbiAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG5cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gICAgLm1mcC1hcnJvdyB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjc1KTtcbiAgICB9XG5cbiAgICAubWZwLWFycm93LWxlZnQge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDA7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDA7XG4gICAgfVxuXG4gICAgLm1mcC1hcnJvdy1yaWdodCB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwJTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMTAwJTtcbiAgICB9XG5cbiAgICAubWZwLWNvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNnB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7XG4gICAgfVxufVxuLyogcHVyZ2Vjc3MgZW5kIGlnbm9yZSAqL1xuLy8gRU5EIFBPUFVQXG5cbi8vIENPTVBPTkVOVFMgSEVST1xuLnNsaWRlIHtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBtaW4taGVpZ2h0OiA2MDBweDtcblxuICAgICZfX2xvZ29zIHtcbiAgICAgICAgcGFkZGluZy10b3A6MzBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkd2hpdGUsIDAuOCk7XG4gICAgfVxuXG4gICAgJl9fbG9nb3MtaW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbn1cblxuLmhlcm8ge1xuICAgIEBhcHBseSByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIC5zbGlkZSA+IGRpdjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBAYXBwbHkgYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHctZnVsbCBoLWZ1bGwgei0xMCBtaXgtYmxlbmQtbXVsdGlwbHk7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgzNjBkZWcsIHJnYmEoMCwgMCwgMCwgMSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7XG4gICAgfVxuICAgIC5zbGlkZV9fbGFiZWwge1xuICAgICAgICBAYXBwbHkgcmVsYXRpdmUgei0yMDtcbiAgICB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5OXB4KSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG5zZWN0aW9uLnZpZGVvIHtcbiAgICBAYXBwbHkgcmVsYXRpdmUgdy1zY3JlZW4gaC1bNzUwcHhdIGJnLWJsYWNrO1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MHB4KSB7XG4gICAgICAgIEBhcHBseSBoLXNjcmVlbjtcbiAgICB9XG4gICAgI215VmlkZW8ge1xuICAgICAgICBAYXBwbHkgYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHotMCBoLWZ1bGwgdy1mdWxsIG9iamVjdC1jb3ZlcjtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgQGFwcGx5IGFic29sdXRlIHRvcC0wIGxlZnQtMCB3LWZ1bGwgaC1mdWxsIGJnLWJsYWNrIG9wYWNpdHktNzAgei0yMDtcbiAgICB9XG59XG5cbi8vIEVORCBDT01QT05FTlRTIEhFUk9cblxuLy8gQ09NUE9ORU5UUyBCVVRUT05TXG4uYnRuIHtcbiAgICBAYXBwbHkgYmctcHJpbWFyeSBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHktMiBweC00IHctZnVsbCByb3VuZGVkLWZ1bGwgdGV4dC1jZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcHJpbWFyeS1jb2xvdXI7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDY0cHg7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG91cjtcbiAgICB9XG4gICAgJi0tZmx1aWQge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuICAgICYtLXdoaXRlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHdoaXRlO1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbn1cblxuLmJ0bi13aWRlIHtcbiAgICBtYXgtd2lkdGg6IDM3NXB4O1xufVxuXG4uYnRuLXNtIHtcbiAgICBtYXgtd2lkdGg6IDE1MHB4O1xufVxuXG4uYnRuLXZpZGVve1xuICAgIEBhcHBseSB0ZXh0LXhzO1xuICAgIGJhY2tncm91bmQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjQ1KTtcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIG1heC1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgJHByaW1hcnktY29sb3VyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG91cjtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG59XG4vLyBFTkQgQ09NUE9ORU5UUyBCVVRUT05TXG5cbi8vIENPTVBPTkVOVFMgU0VSVklDRVNcbi5zZXJ2aWNlcyB7XG4gICAgJi1zaW5nbGUge1xuICAgICAgICAmX19saW5rIHtcbiAgICAgICAgICAgIEBhcHBseSBmbGV4IGZsZXgtY29sIGp1c3RpZnktZW5kIGJnLWNvdmVyIHJlbGF0aXZlO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMTBweCBzb2xpZCAkZ3JleTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA1NTBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG91cjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIEBhcHBseSBhYnNvbHV0ZSBib3R0b20tMCBsZWZ0LTAgdy1mdWxsO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKCMwMDAsIDApLCByZ2JhKCMwMDAsIDAuOSkpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogNTAlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxMHB4IHNvbGlkICRibGFjaztcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5zZXJ2aWNlcy1zaW5nbGVfX2ljb24ge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEyMCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogMjUwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJl9faWNvbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzO1xuICAgICAgICB9XG4gICAgICAgICZfX3RpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG4gICAgICAgICY6bnRoLWxhc3QtY2hpbGQoLW4rMykge1xuICAgICAgICAgICAgLnNlcnZpY2VzLXNpbmdsZV9fbGluayB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtbGFzdC1jaGlsZCgtbisyKSB7XG4gICAgICAgICAgICAuc2VydmljZXMtc2luZ2xlX19saW5rIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bnRoLWxhc3QtY2hpbGQoLW4rMSkge1xuICAgICAgICAgICAgLnNlcnZpY2VzLXNpbmdsZV9fbGluayB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLndvcmsge1xuICAgICYtc2luZ2xlIHtcbiAgICAgICAgJl9fdGl0bGUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIEVORCBDT01QT05FTlRTIFNFUlZJQ0VTXG5cbi8vIENPTVBPTkVOVFMgR0FMTEVSWVxuLmdhbGxlcnktc2luZ2xlIHtcblxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDU0JTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICB9XG59XG5cbnNlY3Rpb24uc2VydmljZXMuZ2FsbGVyeSB7XG4gICAgcGFkZGluZy1ib3R0b206IDMwcHg7XG59XG4vLyBFTkQgQ09NUE9ORU5UUyBHQUxMRVJZXG5cbi8vIENPTVBPTkVOVFMgRk9PVEVSXG5mb290ZXIge1xuICAgIC5sZWdhbCB7XG4gICAgICAgIC5zZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xuICAgICAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgICAgIEBhcHBseSBoaWRkZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGE6aG92ZXIge1xuICAgICAgICBAYXBwbHkgdGV4dC1ibGFjaztcbiAgICB9XG59XG5cbi5mb290ZXIge1xuICAgICZfX2xvZ29zIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICB9XG5cbiAgICAmX19sb2dvcy1pbWFnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbn1cbi8vIEVORCBDT01QT05FTlRTIEZPT1RFUlxuXG4udGl0bGUtcmVkIHtcbiAgICBoMiwgaDMsIGg0IHtcbiAgICAgICAgQGFwcGx5IHRleHQtcHJpbWFyeTtcbiAgICB9XG59XG5cblxuLmFyZWFzLWZvb3Rlci1tZW51IHVsIHtcbiAgICBAYXBwbHkgYmxvY2sgbGlzdC1ub25lIHAtMCBtLTA7XG59XG5cbnVsLnBhZ2luYXRpb24ge1xuICAgIEBhcHBseSBsaXN0LW5vbmUgdGV4dC1jZW50ZXIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTQgbWItMTI7XG4gICAgbGkge1xuICAgICAgICBAYXBwbHkgYmctcHJpbWFyeSB0ZXh0LXdoaXRlIHJvdW5kZWQtZnVsbCBsZWFkaW5nLW5vbmUgdy0xMiBoLTEyIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyO1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIEBhcHBseSB3LWZ1bGwgaC1mdWxsIHAtMyBsZWFkaW5nLW5vbmUgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgQGFwcGx5IGJnLWJsYWNrO1xuICAgICAgICB9XG4gICAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICAgICAgQGFwcGx5IGN1cnNvci1ub3QtYWxsb3dlZCBvcGFjaXR5LTUwO1xuICAgICAgICB9XG4gICAgICAgICY6aGFzKGEpOmhvdmVyIHtcbiAgICAgICAgICAgIEBhcHBseSBiZy1ibGFjaztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIiNjb29raWVzLWJhciB7XG4gICAgQGFwcGx5IGZpeGVkIGJvdHRvbS0wIGxlZnQtMCB3LWZ1bGwgcC04IGJvcmRlci10IGJvcmRlci1wcmltYXJ5IGJnLXdoaXRlIHotNTAgdGV4dC1ibGFjayB0ZXh0LWxlZnQ7XG5cblxufVxuXG4jY29va2llcy1iYXItdGFiIHtcbiAgICBAYXBwbHkgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgdGV4dC1jZW50ZXIgYmctd2hpdGUgdGV4dC00eGwgdGV4dC1ibGFjayBib3JkZXIgYm9yZGVyLWJsYWNrIGgtMTYgdy0xNiByb3VuZGVkLWZ1bGw7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgYm90dG9tOiAxNXB4O1xuICAgICAgICBsZWZ0OiAxMHB4O1xuICAgICAgICB6LWluZGV4OiAxMDAwMDtcbiAgICAgICAgLy8gZm9udC1zaXplOiA0MHB4O1xuICAgICAgICAvLyBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgLy8gYm9yZGVyOiBibGFjayAycHggc29saWQ7XG4gICAgICAgIC8vIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/