/*
Base mixins and Functions ONLY in here
No CSS output!
Remember these tools/utilities will be made availabe to all your components,
any CSS you output in here will add massive bloat to your project.
If you need common css, add to main.scss
========================================================================== */
/* ============================================================================================
	Vertical Spacing
============================================================================================= */
/* ============================================================================================
	Breakpoints
============================================================================================= */
/* ============================================================================================
	Colours
============================================================================================= */
/* ============================================================================================
	Z-Index
============================================================================================= */
/* =========================================================================
  cubic-bezier curve variables
========================================================================== */
/* =========================================================================
  Font variables
========================================================================== */
/* =========================================================================
  Grid Variables (size vars must match the breakpoint vars)
========================================================================== */
@media (min-width: 320px) {
  body::after {
    content: '{"xsmall":{"value": "320px", "active": true}, "small":{"value": "768px", "active": false}, "medium":{"value": "1024px", "active": false}, "xmedium":{"value": "1200px", "active": false}, "large":{"value": "1440px", "active": false}, "xlarge":{"value": "1920px", "active": false}, "xxlarge":{"value": "2000px", "active": false}}';
    display: block;
    height: 0;
    overflow: hidden;
    width: 0; } }

@media (min-width: 768px) {
  body::after {
    content: '{"xsmall":{"value": "320px", "active": true}, "small":{"value": "768px", "active": true}, "medium":{"value": "1024px", "active": false}, "xmedium":{"value": "1200px", "active": false}, "large":{"value": "1440px", "active": false}, "xlarge":{"value": "1920px", "active": false}, "xxlarge":{"value": "2000px", "active": false}}';
    display: block;
    height: 0;
    overflow: hidden;
    width: 0; } }

@media (min-width: 1024px) {
  body::after {
    content: '{"xsmall":{"value": "320px", "active": true}, "small":{"value": "768px", "active": true}, "medium":{"value": "1024px", "active": true}, "xmedium":{"value": "1200px", "active": false}, "large":{"value": "1440px", "active": false}, "xlarge":{"value": "1920px", "active": false}, "xxlarge":{"value": "2000px", "active": false}}';
    display: block;
    height: 0;
    overflow: hidden;
    width: 0; } }

@media (min-width: 1200px) {
  body::after {
    content: '{"xsmall":{"value": "320px", "active": true}, "small":{"value": "768px", "active": true}, "medium":{"value": "1024px", "active": true}, "xmedium":{"value": "1200px", "active": true}, "large":{"value": "1440px", "active": false}, "xlarge":{"value": "1920px", "active": false}, "xxlarge":{"value": "2000px", "active": false}}';
    display: block;
    height: 0;
    overflow: hidden;
    width: 0; } }

@media (min-width: 1440px) {
  body::after {
    content: '{"xsmall":{"value": "320px", "active": true}, "small":{"value": "768px", "active": true}, "medium":{"value": "1024px", "active": true}, "xmedium":{"value": "1200px", "active": true}, "large":{"value": "1440px", "active": true}, "xlarge":{"value": "1920px", "active": false}, "xxlarge":{"value": "2000px", "active": false}}';
    display: block;
    height: 0;
    overflow: hidden;
    width: 0; } }

@media (min-width: 1920px) {
  body::after {
    content: '{"xsmall":{"value": "320px", "active": true}, "small":{"value": "768px", "active": true}, "medium":{"value": "1024px", "active": true}, "xmedium":{"value": "1200px", "active": true}, "large":{"value": "1440px", "active": true}, "xlarge":{"value": "1920px", "active": true}, "xxlarge":{"value": "2000px", "active": false}}';
    display: block;
    height: 0;
    overflow: hidden;
    width: 0; } }

@media (min-width: 2000px) {
  body::after {
    content: '{"xsmall":{"value": "320px", "active": true}, "small":{"value": "768px", "active": true}, "medium":{"value": "1024px", "active": true}, "xmedium":{"value": "1200px", "active": true}, "large":{"value": "1440px", "active": true}, "xlarge":{"value": "1920px", "active": true}, "xxlarge":{"value": "2000px", "active": true}}';
    display: block;
    height: 0;
    overflow: hidden;
    width: 0; } }

/* ==========================================================================
	Site Transition
	Apply transitions consistently across the project
========================================================================== */
/* ==========================================================================
	Variable Spacing (v-spacing)
	Use with values set in _config.scss
========================================================================== */
/* ==========================================================================
	Tracking
	Convert XD, illustrator, indesign and
	photoshop tracking into letter spacing.
========================================================================== */
/* ============================================================================================================
	Line Height Crop (lhCrop)
	Removes the additional line height from top of text - https://codyhouse.co/blog/post/line-height-crop
	Use to make sure the top of your text lines up with other elements along side it.
	Enter a unitless line height (same as the type line hight)
============================================================================================================= */
/* ===========================================================================================
	Unitless Line Height
	Converts a pixel, percentage, rem or em value to a unitless value based on a given font size.
	Ideal for working out unitless line heights.
	Stolen from Foundation https://get.foundation/sites/docs/sass-functions.html#unitless-calc

	@param {Number} $value - Value to convert to a unitless line height
	@param {Number} $base - The font size to use to work out the line height - defaults to $global-font-size
	@return {Number} - Unitless number
=========================================================================================== */
/* ==================================================================================
	Removes the unit (e.g. px, em, rem) from a value, returning the number only.

	@param {Number} $num - Number to strip unit from.
	@returns {Number} The same number, sans unit.
=================================================================================== */
/* ==================================================================================
	used to create resonsive type

	@param {Number} $min-font-size - Number of the miniumum font size with units.
	@param {Number} $max-font-size - Number of the maximum font size with units.
	@param {Number} $line-height - Number of the lineheight with units.
	@returns font size using the v-space mixin and a unitless lineheight.
=================================================================================== */
/* ==================================================================================
	used to retreive varbailes from the $six-ccs-variables array

	$type = type is the name you set for your nested varaible array
	$size = is the nested variable you wish to get.
	@returns the value of teh specified variable
=================================================================================== */
/* ==================================================================================
	loops through varbailes from the $six-ccs-variables array & out put css var

	$value = used to get the correct value
=================================================================================== */
/* ==================================================================================
	used to retreive css var based on the breakpoint passed

	$breakpoint = used to specify media query
=================================================================================== */
/* ==================================================================================
	sibling fade: fade out siblings around a hovered item
=================================================================================== */
/*
Fix for 100vh elements being covered by iOS Safari toolbar
This is a bit hacky. More info: https://allthingssmitty.com/2020/05/11/css-fix-for-100vh-in-mobile-webkit/
The height doesn't adjust when the address bar is hidden.
*/
/* ==========================================================================================================
	Character Style Mixins
=========================================================================================================== */
.u-uppercase {
  text-transform: uppercase; }

/* ==============================================================================================
	WYSIWYG Mixin and class
	Apply to content that is using a WYSIWYG editor field.
	Redefines all the typographic HTML elements that TinyMce outputs. (h1,img,p,ul etc.)
=============================================================================================== */
/*
Form Mixins
Create mixins first so they can be reused on Woo forms or other places where you can't add your own classes
========================================================================== */
/* ==========================================================================================================
	Grid Mixins
=========================================================================================================== */
/* ==========================================================================
	Archive Filter Component
========================================================================== */
.c-EnquireForm {
  width: 100%;
  position: fixed;
  bottom: -730px;
  left: 0;
  background-color: #fff;
  z-index: 80;
  height: 730px;
  transition: 500ms bottom cubic-bezier(0.25, 1, 0.5, 1); }
  @media (max-width: 1023px) {
    .c-EnquireForm {
      bottom: unset;
      overflow-y: auto;
      height: 100vh;
      top: 100vh;
      transition: 500ms top cubic-bezier(0.25, 1, 0.5, 1); } }

@media (min-width: 768px) and (max-width: 1023px) {
  .c-EnquireForm {
    display: flex;
    flex-direction: column;
    justify-content: space-between; } }
  .c-EnquireForm.is-active {
    bottom: 0;
    transition: 800ms bottom 300ms cubic-bezier(0.25, 1, 0.5, 1); }
    @media (max-width: 1023px) {
      .c-EnquireForm.is-active {
        top: 0;
        transition: 800ms top 300ms cubic-bezier(0.25, 1, 0.5, 1); } }
  .c-EnquireForm .hf-message-success {
    display: none; }
  .c-EnquireForm link {
    display: none; }
  .c-EnquireForm.is-successfull .c-EnquireForm__content > form {
    opacity: 0; }
  .c-EnquireForm.is-successfull .c-EnquireForm__success-data {
    opacity: 1;
    height: initial; }

.c-EnquireForm__header {
  width: 100%;
  position: relative;
  padding-left: var(--six-margin);
  padding-right: var(--six-margin);
  padding-top: calc(0.00595 * 100vw + 28.09524px);
  margin-bottom: calc(0.05655 * 100vw + 26.90476px); }
  @media (min-width: 1921px) {
    .c-EnquireForm__header {
      padding-top: 40px; } }
  @media (max-width: 499px) {
    .c-EnquireForm__header {
      padding-top: 30px; } }
  @media (min-width: 1921px) {
    .c-EnquireForm__header {
      margin-bottom: 140px; } }
  @media (max-width: 499px) {
    .c-EnquireForm__header {
      margin-bottom: 45px; } }

.c-EnquireForm__content {
  width: 100%;
  position: relative;
  padding-bottom: calc(0.0625 * 100vw + 10px); }
  @supports not (display: grid) {
    .c-EnquireForm__content {
      display: block;
      width: 100%; } }
  @supports (display: grid) {
    .c-EnquireForm__content {
      display: -ms-grid;
      display: grid;
      grid-template-columns: repeat(var(--six-cols), 1fr);
      column-gap: var(--six-gutter);
      box-sizing: border-box; } }
  @media (min-width: 1921px) {
    .c-EnquireForm__content {
      padding-bottom: 135px; } }
  @media (max-width: 499px) {
    .c-EnquireForm__content {
      padding-bottom: 30px; } }
  .c-EnquireForm__content > form {
    transition: 600ms opacity cubic-bezier(0.25, 1, 0.5, 1);
    grid-row: 1 / -1;
    -ms-grid-column: 1;
    -ms-grid-column-span: -2;
    grid-column: 1 / -1; }

.c-EnquireForm__title {
  text-transform: uppercase;
  font-family: "Lausanne-300", sans-serif;
  font-style: normal;
  font-weight: 300;
  font-size: calc(0.01488 * 100vw + 25.2381px);
  line-height: 1; }
  .c-EnquireForm__title em {
    font-family: "Lausanne-300-italic", sans-serif;
    font-style: normal;
    font-weight: 300; }
    .c-EnquireForm__title em em {
      font-style: normal;
      font-weight: 300; }
    .c-EnquireForm__title em strong {
      font-family: "Lausanne-450-italic", sans-serif;
      font-style: normal;
      font-weight: 450; }
      .c-EnquireForm__title em strong em {
        font-style: normal;
        font-weight: 450; }
  .c-EnquireForm__title strong {
    font-family: "Lausanne-450", sans-serif;
    font-style: normal;
    font-weight: 450; }
    .c-EnquireForm__title strong em {
      font-family: "Lausanne-450-italic", sans-serif;
      font-style: normal;
      font-weight: 450; }
      .c-EnquireForm__title strong em em {
        font-style: normal;
        font-weight: 450; }
    .c-EnquireForm__title strong strong {
      font-weight: 450; }
  @media (min-width: 1921px) {
    .c-EnquireForm__title {
      font-size: 55px; } }
  @media (max-width: 499px) {
    .c-EnquireForm__title {
      font-size: 30px; } }
  .c-EnquireForm__title strong,
  .c-EnquireForm__title b {
    font-family: "Lausanne-450", sans-serif;
    font-style: normal;
    font-weight: 450; }
    .c-EnquireForm__title strong em,
    .c-EnquireForm__title b em {
      font-family: "Lausanne-450-italic", sans-serif;
      font-style: normal;
      font-weight: 450; }
      .c-EnquireForm__title strong em em,
      .c-EnquireForm__title b em em {
        font-style: normal;
        font-weight: 450; }
    .c-EnquireForm__title strong strong,
    .c-EnquireForm__title b strong {
      font-weight: 450; }

.c-EnquireForm__close {
  display: inline-flex;
  cursor: pointer;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 10;
  transition: 400ms transform cubic-bezier(0.25, 1, 0.5, 1), 400ms top cubic-bezier(0.25, 1, 0.5, 1), 400ms bottom cubic-bezier(0.25, 1, 0.5, 1), 400ms opacity cubic-bezier(0.25, 1, 0.5, 1);
  width: 24px;
  height: 24px;
  top: calc(0.00595 * 100vw + 28.09524px);
  right: var(--six-margin); }
  .c-EnquireForm__close::before, .c-EnquireForm__close::after {
    content: "";
    width: 100%;
    height: 5px;
    display: inline-flex;
    background-color: #000;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
    height: 2px; }
    @media (max-width: 767px) {
      .c-EnquireForm__close::before, .c-EnquireForm__close::after {
        height: 3px; } }
  .c-EnquireForm__close::after {
    transform: translate(-50%, -50%) rotate(135deg); }
  @media (min-width: 1921px) {
    .c-EnquireForm__close {
      top: 40px; } }
  @media (max-width: 499px) {
    .c-EnquireForm__close {
      top: 30px; } }
  @media (max-width: 767px) {
    .c-EnquireForm__close::after, .c-EnquireForm__close::before {
      height: 2px; } }
  @media (hover: hover) {
    .c-EnquireForm__close:hover {
      transform: rotate(90deg); } }

.c-EnquireForm__success-data {
  opacity: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
  transition: 600ms opacity 1000ms cubic-bezier(0.25, 1, 0.5, 1);
  padding-left: var(--six-margin);
  grid-row: 1/-1;
  position: relative;
  z-index: 10;
  -ms-grid-column: 1;
  -ms-grid-column-span: -2;
  grid-column: 1 / -1; }
  @media (max-width: 1023px) {
    .c-EnquireForm__success-data {
      padding-right: var(--six-margin); } }
  @media (min-width: 1024px) {
    .c-EnquireForm__success-data {
      -ms-grid-column: 1;
      -ms-grid-column-span: 11;
      grid-column: 1 / 12; } }
  @media (min-width: 1920px) {
    .c-EnquireForm__success-data {
      -ms-grid-column: 1;
      -ms-grid-column-span: 9;
      grid-column: 1 / 10; } }
  .c-EnquireForm__success-data .c-EnquireForm__success-details {
    text-transform: uppercase;
    font-family: "Lausanne-300", sans-serif;
    font-style: normal;
    font-weight: 300;
    font-size: calc(0.00595 * 100vw + 18.09524px);
    line-height: 1.33333;
    letter-spacing: 0.005em; }
    .c-EnquireForm__success-data .c-EnquireForm__success-details em {
      font-family: "Lausanne-300-italic", sans-serif;
      font-style: normal;
      font-weight: 300; }
      .c-EnquireForm__success-data .c-EnquireForm__success-details em em {
        font-style: normal;
        font-weight: 300; }
      .c-EnquireForm__success-data .c-EnquireForm__success-details em strong {
        font-family: "Lausanne-450-italic", sans-serif;
        font-style: normal;
        font-weight: 450; }
        .c-EnquireForm__success-data .c-EnquireForm__success-details em strong em {
          font-style: normal;
          font-weight: 450; }
    .c-EnquireForm__success-data .c-EnquireForm__success-details strong {
      font-family: "Lausanne-450", sans-serif;
      font-style: normal;
      font-weight: 450; }
      .c-EnquireForm__success-data .c-EnquireForm__success-details strong em {
        font-family: "Lausanne-450-italic", sans-serif;
        font-style: normal;
        font-weight: 450; }
        .c-EnquireForm__success-data .c-EnquireForm__success-details strong em em {
          font-style: normal;
          font-weight: 450; }
      .c-EnquireForm__success-data .c-EnquireForm__success-details strong strong {
        font-weight: 450; }
    @media (min-width: 1921px) {
      .c-EnquireForm__success-data .c-EnquireForm__success-details {
        font-size: 30px; } }
    @media (max-width: 499px) {
      .c-EnquireForm__success-data .c-EnquireForm__success-details {
        font-size: 20px; } }
    @media (max-width: 767px) {
      .c-EnquireForm__success-data .c-EnquireForm__success-details {
        letter-spacing: 0.01em; } }
  .c-EnquireForm__success-data .c-EnquireForm__success-msg {
    font-family: "Lausanne-300", sans-serif;
    font-style: normal;
    font-weight: 300;
    font-size: calc(0.00595 * 100vw + 18.09524px);
    line-height: 1.33333;
    letter-spacing: 0.005em;
    margin-bottom: calc(0.0119 * 100vw + 16.19048px); }
    .c-EnquireForm__success-data .c-EnquireForm__success-msg em {
      font-family: "Lausanne-300-italic", sans-serif;
      font-style: normal;
      font-weight: 300; }
      .c-EnquireForm__success-data .c-EnquireForm__success-msg em em {
        font-style: normal;
        font-weight: 300; }
      .c-EnquireForm__success-data .c-EnquireForm__success-msg em strong {
        font-family: "Lausanne-450-italic", sans-serif;
        font-style: normal;
        font-weight: 450; }
        .c-EnquireForm__success-data .c-EnquireForm__success-msg em strong em {
          font-style: normal;
          font-weight: 450; }
    .c-EnquireForm__success-data .c-EnquireForm__success-msg strong {
      font-family: "Lausanne-450", sans-serif;
      font-style: normal;
      font-weight: 450; }
      .c-EnquireForm__success-data .c-EnquireForm__success-msg strong em {
        font-family: "Lausanne-450-italic", sans-serif;
        font-style: normal;
        font-weight: 450; }
        .c-EnquireForm__success-data .c-EnquireForm__success-msg strong em em {
          font-style: normal;
          font-weight: 450; }
      .c-EnquireForm__success-data .c-EnquireForm__success-msg strong strong {
        font-weight: 450; }
    @media (min-width: 1921px) {
      .c-EnquireForm__success-data .c-EnquireForm__success-msg {
        font-size: 30px; } }
    @media (max-width: 499px) {
      .c-EnquireForm__success-data .c-EnquireForm__success-msg {
        font-size: 20px; } }
    @media (max-width: 767px) {
      .c-EnquireForm__success-data .c-EnquireForm__success-msg {
        letter-spacing: 0.01em; } }
    @media (min-width: 1921px) {
      .c-EnquireForm__success-data .c-EnquireForm__success-msg {
        margin-bottom: 40px; } }
    @media (max-width: 499px) {
      .c-EnquireForm__success-data .c-EnquireForm__success-msg {
        margin-bottom: 20px; } }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvc2Fzcy9jb21wb25lbnRzL2MtRW5xdWlyZUZvcm0uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFVBQVUsaUNBQWlDLFdBQVcsa0NBQWtDLFlBQVksbUNBQW1DLGFBQWEsbUNBQW1DLFdBQVcsbUNBQW1DLFlBQVksbUNBQW1DLGFBQWEsb0NBQW9DO0FBQ3BWO0FBQ0E7QUFDQTtBQUNBLGFBQWEsRUFBRTs7QUFFZjtBQUNBO0FBQ0EsZUFBZSxVQUFVLGlDQUFpQyxXQUFXLGlDQUFpQyxZQUFZLG1DQUFtQyxhQUFhLG1DQUFtQyxXQUFXLG1DQUFtQyxZQUFZLG1DQUFtQyxhQUFhLG9DQUFvQztBQUNuVjtBQUNBO0FBQ0E7QUFDQSxhQUFhLEVBQUU7O0FBRWY7QUFDQTtBQUNBLGVBQWUsVUFBVSxpQ0FBaUMsV0FBVyxpQ0FBaUMsWUFBWSxrQ0FBa0MsYUFBYSxtQ0FBbUMsV0FBVyxtQ0FBbUMsWUFBWSxtQ0FBbUMsYUFBYSxvQ0FBb0M7QUFDbFY7QUFDQTtBQUNBO0FBQ0EsYUFBYSxFQUFFOztBQUVmO0FBQ0E7QUFDQSxlQUFlLFVBQVUsaUNBQWlDLFdBQVcsaUNBQWlDLFlBQVksa0NBQWtDLGFBQWEsa0NBQWtDLFdBQVcsbUNBQW1DLFlBQVksbUNBQW1DLGFBQWEsb0NBQW9DO0FBQ2pWO0FBQ0E7QUFDQTtBQUNBLGFBQWEsRUFBRTs7QUFFZjtBQUNBO0FBQ0EsZUFBZSxVQUFVLGlDQUFpQyxXQUFXLGlDQUFpQyxZQUFZLGtDQUFrQyxhQUFhLGtDQUFrQyxXQUFXLGtDQUFrQyxZQUFZLG1DQUFtQyxhQUFhLG9DQUFvQztBQUNoVjtBQUNB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QUNyRDtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBLHdCQUF3QixFQUFFO0FBQzFCO0FBQ0E7QUFDQSx3QkFBd0IsRUFBRTtBQUMxQjtBQUNBO0FBQ0EsK0JBQStCLEVBQUU7QUFDakM7QUFDQTtBQUNBLDRCQUE0QixFQUFFO0FBQzlCO0FBQ0E7QUFDQSw0QkFBNEIsRUFBRSIsImZpbGUiOiJjLUVucXVpcmVGb3JtLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5CYXNlIG1peGlucyBhbmQgRnVuY3Rpb25zIE9OTFkgaW4gaGVyZVxuTm8gQ1NTIG91dHB1dCFcblJlbWVtYmVyIHRoZXNlIHRvb2xzL3V0aWxpdGllcyB3aWxsIGJlIG1hZGUgYXZhaWxhYmUgdG8gYWxsIHlvdXIgY29tcG9uZW50cyxcbmFueSBDU1MgeW91IG91dHB1dCBpbiBoZXJlIHdpbGwgYWRkIG1hc3NpdmUgYmxvYXQgdG8geW91ciBwcm9qZWN0LlxuSWYgeW91IG5lZWQgY29tbW9uIGNzcywgYWRkIHRvIG1haW4uc2Nzc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdFZlcnRpY2FsIFNwYWNpbmdcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0QnJlYWtwb2ludHNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0Q29sb3Vyc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHRaLUluZGV4XG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgY3ViaWMtYmV6aWVyIGN1cnZlIHZhcmlhYmxlc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgRm9udCB2YXJpYWJsZXNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIEdyaWQgVmFyaWFibGVzIChzaXplIHZhcnMgbXVzdCBtYXRjaCB0aGUgYnJlYWtwb2ludCB2YXJzKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBtZWRpYSAobWluLXdpZHRoOiAzMjBweCkge1xuICBib2R5OjphZnRlciB7XG4gICAgY29udGVudDogJ3tcInhzbWFsbFwiOntcInZhbHVlXCI6IFwiMzIwcHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwic21hbGxcIjp7XCJ2YWx1ZVwiOiBcIjc2OHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfSwgXCJtZWRpdW1cIjp7XCJ2YWx1ZVwiOiBcIjEwMjRweFwiLCBcImFjdGl2ZVwiOiBmYWxzZX0sIFwieG1lZGl1bVwiOntcInZhbHVlXCI6IFwiMTIwMHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfSwgXCJsYXJnZVwiOntcInZhbHVlXCI6IFwiMTQ0MHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfSwgXCJ4bGFyZ2VcIjp7XCJ2YWx1ZVwiOiBcIjE5MjBweFwiLCBcImFjdGl2ZVwiOiBmYWxzZX0sIFwieHhsYXJnZVwiOntcInZhbHVlXCI6IFwiMjAwMHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfX0nO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAwOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIGJvZHk6OmFmdGVyIHtcbiAgICBjb250ZW50OiAne1wieHNtYWxsXCI6e1widmFsdWVcIjogXCIzMjBweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJzbWFsbFwiOntcInZhbHVlXCI6IFwiNzY4cHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwibWVkaXVtXCI6e1widmFsdWVcIjogXCIxMDI0cHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9LCBcInhtZWRpdW1cIjp7XCJ2YWx1ZVwiOiBcIjEyMDBweFwiLCBcImFjdGl2ZVwiOiBmYWxzZX0sIFwibGFyZ2VcIjp7XCJ2YWx1ZVwiOiBcIjE0NDBweFwiLCBcImFjdGl2ZVwiOiBmYWxzZX0sIFwieGxhcmdlXCI6e1widmFsdWVcIjogXCIxOTIwcHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9LCBcInh4bGFyZ2VcIjp7XCJ2YWx1ZVwiOiBcIjIwMDBweFwiLCBcImFjdGl2ZVwiOiBmYWxzZX19JztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgYm9keTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICd7XCJ4c21hbGxcIjp7XCJ2YWx1ZVwiOiBcIjMyMHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcInNtYWxsXCI6e1widmFsdWVcIjogXCI3NjhweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJtZWRpdW1cIjp7XCJ2YWx1ZVwiOiBcIjEwMjRweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJ4bWVkaXVtXCI6e1widmFsdWVcIjogXCIxMjAwcHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9LCBcImxhcmdlXCI6e1widmFsdWVcIjogXCIxNDQwcHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9LCBcInhsYXJnZVwiOntcInZhbHVlXCI6IFwiMTkyMHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfSwgXCJ4eGxhcmdlXCI6e1widmFsdWVcIjogXCIyMDAwcHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9fSc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDA7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gIGJvZHk6OmFmdGVyIHtcbiAgICBjb250ZW50OiAne1wieHNtYWxsXCI6e1widmFsdWVcIjogXCIzMjBweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJzbWFsbFwiOntcInZhbHVlXCI6IFwiNzY4cHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwibWVkaXVtXCI6e1widmFsdWVcIjogXCIxMDI0cHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwieG1lZGl1bVwiOntcInZhbHVlXCI6IFwiMTIwMHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcImxhcmdlXCI6e1widmFsdWVcIjogXCIxNDQwcHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9LCBcInhsYXJnZVwiOntcInZhbHVlXCI6IFwiMTkyMHB4XCIsIFwiYWN0aXZlXCI6IGZhbHNlfSwgXCJ4eGxhcmdlXCI6e1widmFsdWVcIjogXCIyMDAwcHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9fSc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDA7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTQ0MHB4KSB7XG4gIGJvZHk6OmFmdGVyIHtcbiAgICBjb250ZW50OiAne1wieHNtYWxsXCI6e1widmFsdWVcIjogXCIzMjBweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJzbWFsbFwiOntcInZhbHVlXCI6IFwiNzY4cHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwibWVkaXVtXCI6e1widmFsdWVcIjogXCIxMDI0cHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwieG1lZGl1bVwiOntcInZhbHVlXCI6IFwiMTIwMHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcImxhcmdlXCI6e1widmFsdWVcIjogXCIxNDQwcHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwieGxhcmdlXCI6e1widmFsdWVcIjogXCIxOTIwcHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9LCBcInh4bGFyZ2VcIjp7XCJ2YWx1ZVwiOiBcIjIwMDBweFwiLCBcImFjdGl2ZVwiOiBmYWxzZX19JztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxOTIwcHgpIHtcbiAgYm9keTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICd7XCJ4c21hbGxcIjp7XCJ2YWx1ZVwiOiBcIjMyMHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcInNtYWxsXCI6e1widmFsdWVcIjogXCI3NjhweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJtZWRpdW1cIjp7XCJ2YWx1ZVwiOiBcIjEwMjRweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJ4bWVkaXVtXCI6e1widmFsdWVcIjogXCIxMjAwcHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwibGFyZ2VcIjp7XCJ2YWx1ZVwiOiBcIjE0NDBweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJ4bGFyZ2VcIjp7XCJ2YWx1ZVwiOiBcIjE5MjBweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJ4eGxhcmdlXCI6e1widmFsdWVcIjogXCIyMDAwcHhcIiwgXCJhY3RpdmVcIjogZmFsc2V9fSc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDA7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMjAwMHB4KSB7XG4gIGJvZHk6OmFmdGVyIHtcbiAgICBjb250ZW50OiAne1wieHNtYWxsXCI6e1widmFsdWVcIjogXCIzMjBweFwiLCBcImFjdGl2ZVwiOiB0cnVlfSwgXCJzbWFsbFwiOntcInZhbHVlXCI6IFwiNzY4cHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwibWVkaXVtXCI6e1widmFsdWVcIjogXCIxMDI0cHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwieG1lZGl1bVwiOntcInZhbHVlXCI6IFwiMTIwMHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9LCBcImxhcmdlXCI6e1widmFsdWVcIjogXCIxNDQwcHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwieGxhcmdlXCI6e1widmFsdWVcIjogXCIxOTIwcHhcIiwgXCJhY3RpdmVcIjogdHJ1ZX0sIFwieHhsYXJnZVwiOntcInZhbHVlXCI6IFwiMjAwMHB4XCIsIFwiYWN0aXZlXCI6IHRydWV9fSc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDA7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHRTaXRlIFRyYW5zaXRpb25cblx0QXBwbHkgdHJhbnNpdGlvbnMgY29uc2lzdGVudGx5IGFjcm9zcyB0aGUgcHJvamVjdFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdFZhcmlhYmxlIFNwYWNpbmcgKHYtc3BhY2luZylcblx0VXNlIHdpdGggdmFsdWVzIHNldCBpbiBfY29uZmlnLnNjc3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHRUcmFja2luZ1xuXHRDb252ZXJ0IFhELCBpbGx1c3RyYXRvciwgaW5kZXNpZ24gYW5kXG5cdHBob3Rvc2hvcCB0cmFja2luZyBpbnRvIGxldHRlciBzcGFjaW5nLlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHRMaW5lIEhlaWdodCBDcm9wIChsaENyb3ApXG5cdFJlbW92ZXMgdGhlIGFkZGl0aW9uYWwgbGluZSBoZWlnaHQgZnJvbSB0b3Agb2YgdGV4dCAtIGh0dHBzOi8vY29keWhvdXNlLmNvL2Jsb2cvcG9zdC9saW5lLWhlaWdodC1jcm9wXG5cdFVzZSB0byBtYWtlIHN1cmUgdGhlIHRvcCBvZiB5b3VyIHRleHQgbGluZXMgdXAgd2l0aCBvdGhlciBlbGVtZW50cyBhbG9uZyBzaWRlIGl0LlxuXHRFbnRlciBhIHVuaXRsZXNzIGxpbmUgaGVpZ2h0IChzYW1lIGFzIHRoZSB0eXBlIGxpbmUgaGlnaHQpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdFVuaXRsZXNzIExpbmUgSGVpZ2h0XG5cdENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLlxuXHRJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuXHRTdG9sZW4gZnJvbSBGb3VuZGF0aW9uIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb24vc2l0ZXMvZG9jcy9zYXNzLWZ1bmN0aW9ucy5odG1sI3VuaXRsZXNzLWNhbGNcblxuXHRAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gY29udmVydCB0byBhIHVuaXRsZXNzIGxpbmUgaGVpZ2h0XG5cdEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG5cdEByZXR1cm4ge051bWJlcn0gLSBVbml0bGVzcyBudW1iZXJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0UmVtb3ZlcyB0aGUgdW5pdCAoZS5nLiBweCwgZW0sIHJlbSkgZnJvbSBhIHZhbHVlLCByZXR1cm5pbmcgdGhlIG51bWJlciBvbmx5LlxuXG5cdEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cblx0QHJldHVybnMge051bWJlcn0gVGhlIHNhbWUgbnVtYmVyLCBzYW5zIHVuaXQuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHR1c2VkIHRvIGNyZWF0ZSByZXNvbnNpdmUgdHlwZVxuXG5cdEBwYXJhbSB7TnVtYmVyfSAkbWluLWZvbnQtc2l6ZSAtIE51bWJlciBvZiB0aGUgbWluaXVtdW0gZm9udCBzaXplIHdpdGggdW5pdHMuXG5cdEBwYXJhbSB7TnVtYmVyfSAkbWF4LWZvbnQtc2l6ZSAtIE51bWJlciBvZiB0aGUgbWF4aW11bSBmb250IHNpemUgd2l0aCB1bml0cy5cblx0QHBhcmFtIHtOdW1iZXJ9ICRsaW5lLWhlaWdodCAtIE51bWJlciBvZiB0aGUgbGluZWhlaWdodCB3aXRoIHVuaXRzLlxuXHRAcmV0dXJucyBmb250IHNpemUgdXNpbmcgdGhlIHYtc3BhY2UgbWl4aW4gYW5kIGEgdW5pdGxlc3MgbGluZWhlaWdodC5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdHVzZWQgdG8gcmV0cmVpdmUgdmFyYmFpbGVzIGZyb20gdGhlICRzaXgtY2NzLXZhcmlhYmxlcyBhcnJheVxuXG5cdCR0eXBlID0gdHlwZSBpcyB0aGUgbmFtZSB5b3Ugc2V0IGZvciB5b3VyIG5lc3RlZCB2YXJhaWJsZSBhcnJheVxuXHQkc2l6ZSA9IGlzIHRoZSBuZXN0ZWQgdmFyaWFibGUgeW91IHdpc2ggdG8gZ2V0LlxuXHRAcmV0dXJucyB0aGUgdmFsdWUgb2YgdGVoIHNwZWNpZmllZCB2YXJpYWJsZVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0bG9vcHMgdGhyb3VnaCB2YXJiYWlsZXMgZnJvbSB0aGUgJHNpeC1jY3MtdmFyaWFibGVzIGFycmF5ICYgb3V0IHB1dCBjc3MgdmFyXG5cblx0JHZhbHVlID0gdXNlZCB0byBnZXQgdGhlIGNvcnJlY3QgdmFsdWVcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdHVzZWQgdG8gcmV0cmVpdmUgY3NzIHZhciBiYXNlZCBvbiB0aGUgYnJlYWtwb2ludCBwYXNzZWRcblxuXHQkYnJlYWtwb2ludCA9IHVzZWQgdG8gc3BlY2lmeSBtZWRpYSBxdWVyeVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0c2libGluZyBmYWRlOiBmYWRlIG91dCBzaWJsaW5ncyBhcm91bmQgYSBob3ZlcmVkIGl0ZW1cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuRml4IGZvciAxMDB2aCBlbGVtZW50cyBiZWluZyBjb3ZlcmVkIGJ5IGlPUyBTYWZhcmkgdG9vbGJhclxuVGhpcyBpcyBhIGJpdCBoYWNreS4gTW9yZSBpbmZvOiBodHRwczovL2FsbHRoaW5nc3NtaXR0eS5jb20vMjAyMC8wNS8xMS9jc3MtZml4LWZvci0xMDB2aC1pbi1tb2JpbGUtd2Via2l0L1xuVGhlIGhlaWdodCBkb2Vzbid0IGFkanVzdCB3aGVuIHRoZSBhZGRyZXNzIGJhciBpcyBoaWRkZW4uXG4qL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHRDaGFyYWN0ZXIgU3R5bGUgTWl4aW5zXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnUtdXBwZXJjYXNlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdFdZU0lXWUcgTWl4aW4gYW5kIGNsYXNzXG5cdEFwcGx5IHRvIGNvbnRlbnQgdGhhdCBpcyB1c2luZyBhIFdZU0lXWUcgZWRpdG9yIGZpZWxkLlxuXHRSZWRlZmluZXMgYWxsIHRoZSB0eXBvZ3JhcGhpYyBIVE1MIGVsZW1lbnRzIHRoYXQgVGlueU1jZSBvdXRwdXRzLiAoaDEsaW1nLHAsdWwgZXRjLilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuRm9ybSBNaXhpbnNcbkNyZWF0ZSBtaXhpbnMgZmlyc3Qgc28gdGhleSBjYW4gYmUgcmV1c2VkIG9uIFdvbyBmb3JtcyBvciBvdGhlciBwbGFjZXMgd2hlcmUgeW91IGNhbid0IGFkZCB5b3VyIG93biBjbGFzc2VzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHRHcmlkIE1peGluc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdEFyY2hpdmUgRmlsdGVyIENvbXBvbmVudFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jLUVucXVpcmVGb3JtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAtNzMwcHg7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHotaW5kZXg6IDgwO1xuICBoZWlnaHQ6IDczMHB4O1xuICB0cmFuc2l0aW9uOiA1MDBtcyBib3R0b20gY3ViaWMtYmV6aWVyKDAuMjUsIDEsIDAuNSwgMSk7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgIC5jLUVucXVpcmVGb3JtIHtcbiAgICAgIGJvdHRvbTogdW5zZXQ7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgIHRvcDogMTAwdmg7XG4gICAgICB0cmFuc2l0aW9uOiA1MDBtcyB0b3AgY3ViaWMtYmV6aWVyKDAuMjUsIDEsIDAuNSwgMSk7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmMtRW5xdWlyZUZvcm0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuICAuYy1FbnF1aXJlRm9ybS5pcy1hY3RpdmUge1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2l0aW9uOiA4MDBtcyBib3R0b20gMzAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDEsIDAuNSwgMSk7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gICAgICAuYy1FbnF1aXJlRm9ybS5pcy1hY3RpdmUge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IDgwMG1zIHRvcCAzMDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMSwgMC41LCAxKTsgfSB9XG4gIC5jLUVucXVpcmVGb3JtIC5oZi1tZXNzYWdlLXN1Y2Nlc3Mge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmMtRW5xdWlyZUZvcm0gbGluayB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuYy1FbnF1aXJlRm9ybS5pcy1zdWNjZXNzZnVsbCAuYy1FbnF1aXJlRm9ybV9fY29udGVudCA+IGZvcm0ge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmMtRW5xdWlyZUZvcm0uaXMtc3VjY2Vzc2Z1bGwgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtZGF0YSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBoZWlnaHQ6IGluaXRpYWw7IH1cblxuLmMtRW5xdWlyZUZvcm1fX2hlYWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogdmFyKC0tc2l4LW1hcmdpbik7XG4gIHBhZGRpbmctcmlnaHQ6IHZhcigtLXNpeC1tYXJnaW4pO1xuICBwYWRkaW5nLXRvcDogY2FsYygwLjAwNTk1ICogMTAwdncgKyAyOC4wOTUyNHB4KTtcbiAgbWFyZ2luLWJvdHRvbTogY2FsYygwLjA1NjU1ICogMTAwdncgKyAyNi45MDQ3NnB4KTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTkyMXB4KSB7XG4gICAgLmMtRW5xdWlyZUZvcm1fX2hlYWRlciB7XG4gICAgICBwYWRkaW5nLXRvcDogNDBweDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OTlweCkge1xuICAgIC5jLUVucXVpcmVGb3JtX19oZWFkZXIge1xuICAgICAgcGFkZGluZy10b3A6IDMwcHg7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTkyMXB4KSB7XG4gICAgLmMtRW5xdWlyZUZvcm1fX2hlYWRlciB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNDBweDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0OTlweCkge1xuICAgIC5jLUVucXVpcmVGb3JtX19oZWFkZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogNDVweDsgfSB9XG5cbi5jLUVucXVpcmVGb3JtX19jb250ZW50IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoMC4wNjI1ICogMTAwdncgKyAxMHB4KTsgfVxuICBAc3VwcG9ydHMgbm90IChkaXNwbGF5OiBncmlkKSB7XG4gICAgLmMtRW5xdWlyZUZvcm1fX2NvbnRlbnQge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIEBzdXBwb3J0cyAoZGlzcGxheTogZ3JpZCkge1xuICAgIC5jLUVucXVpcmVGb3JtX19jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IC1tcy1ncmlkO1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLXNpeC1jb2xzKSwgMWZyKTtcbiAgICAgIGNvbHVtbi1nYXA6IHZhcigtLXNpeC1ndXR0ZXIpO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxOTIxcHgpIHtcbiAgICAuYy1FbnF1aXJlRm9ybV9fY29udGVudCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMTM1cHg7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDk5cHgpIHtcbiAgICAuYy1FbnF1aXJlRm9ybV9fY29udGVudCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzBweDsgfSB9XG4gIC5jLUVucXVpcmVGb3JtX19jb250ZW50ID4gZm9ybSB7XG4gICAgdHJhbnNpdGlvbjogNjAwbXMgb3BhY2l0eSBjdWJpYy1iZXppZXIoMC4yNSwgMSwgMC41LCAxKTtcbiAgICBncmlkLXJvdzogMSAvIC0xO1xuICAgIC1tcy1ncmlkLWNvbHVtbjogMTtcbiAgICAtbXMtZ3JpZC1jb2x1bW4tc3BhbjogLTI7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTsgfVxuXG4uYy1FbnF1aXJlRm9ybV9fdGl0bGUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogXCJMYXVzYW5uZS0zMDBcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IGNhbGMoMC4wMTQ4OCAqIDEwMHZ3ICsgMjUuMjM4MXB4KTtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLmMtRW5xdWlyZUZvcm1fX3RpdGxlIGVtIHtcbiAgICBmb250LWZhbWlseTogXCJMYXVzYW5uZS0zMDAtaXRhbGljXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgICAuYy1FbnF1aXJlRm9ybV9fdGl0bGUgZW0gZW0ge1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAgIC5jLUVucXVpcmVGb3JtX190aXRsZSBlbSBzdHJvbmcge1xuICAgICAgZm9udC1mYW1pbHk6IFwiTGF1c2FubmUtNDUwLWl0YWxpY1wiLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC13ZWlnaHQ6IDQ1MDsgfVxuICAgICAgLmMtRW5xdWlyZUZvcm1fX3RpdGxlIGVtIHN0cm9uZyBlbSB7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQ1MDsgfVxuICAuYy1FbnF1aXJlRm9ybV9fdGl0bGUgc3Ryb25nIHtcbiAgICBmb250LWZhbWlseTogXCJMYXVzYW5uZS00NTBcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDQ1MDsgfVxuICAgIC5jLUVucXVpcmVGb3JtX190aXRsZSBzdHJvbmcgZW0ge1xuICAgICAgZm9udC1mYW1pbHk6IFwiTGF1c2FubmUtNDUwLWl0YWxpY1wiLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC13ZWlnaHQ6IDQ1MDsgfVxuICAgICAgLmMtRW5xdWlyZUZvcm1fX3RpdGxlIHN0cm9uZyBlbSBlbSB7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQ1MDsgfVxuICAgIC5jLUVucXVpcmVGb3JtX190aXRsZSBzdHJvbmcgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0NTA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDE5MjFweCkge1xuICAgIC5jLUVucXVpcmVGb3JtX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDU1cHg7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDk5cHgpIHtcbiAgICAuYy1FbnF1aXJlRm9ybV9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAzMHB4OyB9IH1cbiAgLmMtRW5xdWlyZUZvcm1fX3RpdGxlIHN0cm9uZyxcbiAgLmMtRW5xdWlyZUZvcm1fX3RpdGxlIGIge1xuICAgIGZvbnQtZmFtaWx5OiBcIkxhdXNhbm5lLTQ1MFwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNDUwOyB9XG4gICAgLmMtRW5xdWlyZUZvcm1fX3RpdGxlIHN0cm9uZyBlbSxcbiAgICAuYy1FbnF1aXJlRm9ybV9fdGl0bGUgYiBlbSB7XG4gICAgICBmb250LWZhbWlseTogXCJMYXVzYW5uZS00NTAtaXRhbGljXCIsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXdlaWdodDogNDUwOyB9XG4gICAgICAuYy1FbnF1aXJlRm9ybV9fdGl0bGUgc3Ryb25nIGVtIGVtLFxuICAgICAgLmMtRW5xdWlyZUZvcm1fX3RpdGxlIGIgZW0gZW0ge1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0NTA7IH1cbiAgICAuYy1FbnF1aXJlRm9ybV9fdGl0bGUgc3Ryb25nIHN0cm9uZyxcbiAgICAuYy1FbnF1aXJlRm9ybV9fdGl0bGUgYiBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IDQ1MDsgfVxuXG4uYy1FbnF1aXJlRm9ybV9fY2xvc2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIHotaW5kZXg6IDEwO1xuICB0cmFuc2l0aW9uOiA0MDBtcyB0cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuMjUsIDEsIDAuNSwgMSksIDQwMG1zIHRvcCBjdWJpYy1iZXppZXIoMC4yNSwgMSwgMC41LCAxKSwgNDAwbXMgYm90dG9tIGN1YmljLWJlemllcigwLjI1LCAxLCAwLjUsIDEpLCA0MDBtcyBvcGFjaXR5IGN1YmljLWJlemllcigwLjI1LCAxLCAwLjUsIDEpO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICB0b3A6IGNhbGMoMC4wMDU5NSAqIDEwMHZ3ICsgMjguMDk1MjRweCk7XG4gIHJpZ2h0OiB2YXIoLS1zaXgtbWFyZ2luKTsgfVxuICAuYy1FbnF1aXJlRm9ybV9fY2xvc2U6OmJlZm9yZSwgLmMtRW5xdWlyZUZvcm1fX2Nsb3NlOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDVweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICBoZWlnaHQ6IDJweDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgLmMtRW5xdWlyZUZvcm1fX2Nsb3NlOjpiZWZvcmUsIC5jLUVucXVpcmVGb3JtX19jbG9zZTo6YWZ0ZXIge1xuICAgICAgICBoZWlnaHQ6IDNweDsgfSB9XG4gIC5jLUVucXVpcmVGb3JtX19jbG9zZTo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgxMzVkZWcpOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxOTIxcHgpIHtcbiAgICAuYy1FbnF1aXJlRm9ybV9fY2xvc2Uge1xuICAgICAgdG9wOiA0MHB4OyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ5OXB4KSB7XG4gICAgLmMtRW5xdWlyZUZvcm1fX2Nsb3NlIHtcbiAgICAgIHRvcDogMzBweDsgfSB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5jLUVucXVpcmVGb3JtX19jbG9zZTo6YWZ0ZXIsIC5jLUVucXVpcmVGb3JtX19jbG9zZTo6YmVmb3JlIHtcbiAgICAgIGhlaWdodDogMnB4OyB9IH1cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgICAuYy1FbnF1aXJlRm9ybV9fY2xvc2U6aG92ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9IH1cblxuLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtZGF0YSB7XG4gIG9wYWNpdHk6IDA7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IDYwMG1zIG9wYWNpdHkgMTAwMG1zIGN1YmljLWJlemllcigwLjI1LCAxLCAwLjUsIDEpO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLXNpeC1tYXJnaW4pO1xuICBncmlkLXJvdzogMS8tMTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMDtcbiAgLW1zLWdyaWQtY29sdW1uOiAxO1xuICAtbXMtZ3JpZC1jb2x1bW4tc3BhbjogLTI7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAgIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRhdGEge1xuICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tc2l4LW1hcmdpbik7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gICAgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtZGF0YSB7XG4gICAgICAtbXMtZ3JpZC1jb2x1bW46IDE7XG4gICAgICAtbXMtZ3JpZC1jb2x1bW4tc3BhbjogMTE7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIDEyOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDE5MjBweCkge1xuICAgIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRhdGEge1xuICAgICAgLW1zLWdyaWQtY29sdW1uOiAxO1xuICAgICAgLW1zLWdyaWQtY29sdW1uLXNwYW46IDk7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIDEwOyB9IH1cbiAgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtZGF0YSAuYy1FbnF1aXJlRm9ybV9fc3VjY2Vzcy1kZXRhaWxzIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtZmFtaWx5OiBcIkxhdXNhbm5lLTMwMFwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGZvbnQtc2l6ZTogY2FsYygwLjAwNTk1ICogMTAwdncgKyAxOC4wOTUyNHB4KTtcbiAgICBsaW5lLWhlaWdodDogMS4zMzMzMztcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMDVlbTsgfVxuICAgIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRhdGEgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtZGV0YWlscyBlbSB7XG4gICAgICBmb250LWZhbWlseTogXCJMYXVzYW5uZS0zMDAtaXRhbGljXCIsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXdlaWdodDogMzAwOyB9XG4gICAgICAuYy1FbnF1aXJlRm9ybV9fc3VjY2Vzcy1kYXRhIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRldGFpbHMgZW0gZW0ge1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgICAgIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRhdGEgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtZGV0YWlscyBlbSBzdHJvbmcge1xuICAgICAgICBmb250LWZhbWlseTogXCJMYXVzYW5uZS00NTAtaXRhbGljXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQ1MDsgfVxuICAgICAgICAuYy1FbnF1aXJlRm9ybV9fc3VjY2Vzcy1kYXRhIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRldGFpbHMgZW0gc3Ryb25nIGVtIHtcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDQ1MDsgfVxuICAgIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRhdGEgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtZGV0YWlscyBzdHJvbmcge1xuICAgICAgZm9udC1mYW1pbHk6IFwiTGF1c2FubmUtNDUwXCIsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXdlaWdodDogNDUwOyB9XG4gICAgICAuYy1FbnF1aXJlRm9ybV9fc3VjY2Vzcy1kYXRhIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRldGFpbHMgc3Ryb25nIGVtIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiTGF1c2FubmUtNDUwLWl0YWxpY1wiLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0NTA7IH1cbiAgICAgICAgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtZGF0YSAuYy1FbnF1aXJlRm9ybV9fc3VjY2Vzcy1kZXRhaWxzIHN0cm9uZyBlbSBlbSB7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0NTA7IH1cbiAgICAgIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRhdGEgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtZGV0YWlscyBzdHJvbmcgc3Ryb25nIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQ1MDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxOTIxcHgpIHtcbiAgICAgIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRhdGEgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtZGV0YWlscyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzBweDsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ5OXB4KSB7XG4gICAgICAuYy1FbnF1aXJlRm9ybV9fc3VjY2Vzcy1kYXRhIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRldGFpbHMge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtZGF0YSAuYy1FbnF1aXJlRm9ybV9fc3VjY2Vzcy1kZXRhaWxzIHtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTsgfSB9XG4gIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRhdGEgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtbXNnIHtcbiAgICBmb250LWZhbWlseTogXCJMYXVzYW5uZS0zMDBcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBmb250LXNpemU6IGNhbGMoMC4wMDU5NSAqIDEwMHZ3ICsgMTguMDk1MjRweCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzMzMzM7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDA1ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYygwLjAxMTkgKiAxMDB2dyArIDE2LjE5MDQ4cHgpOyB9XG4gICAgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtZGF0YSAuYy1FbnF1aXJlRm9ybV9fc3VjY2Vzcy1tc2cgZW0ge1xuICAgICAgZm9udC1mYW1pbHk6IFwiTGF1c2FubmUtMzAwLWl0YWxpY1wiLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAgICAgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtZGF0YSAuYy1FbnF1aXJlRm9ybV9fc3VjY2Vzcy1tc2cgZW0gZW0ge1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7IH1cbiAgICAgIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRhdGEgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtbXNnIGVtIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIkxhdXNhbm5lLTQ1MC1pdGFsaWNcIiwgc2Fucy1zZXJpZjtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXdlaWdodDogNDUwOyB9XG4gICAgICAgIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRhdGEgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtbXNnIGVtIHN0cm9uZyBlbSB7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0NTA7IH1cbiAgICAuYy1FbnF1aXJlRm9ybV9fc3VjY2Vzcy1kYXRhIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLW1zZyBzdHJvbmcge1xuICAgICAgZm9udC1mYW1pbHk6IFwiTGF1c2FubmUtNDUwXCIsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXdlaWdodDogNDUwOyB9XG4gICAgICAuYy1FbnF1aXJlRm9ybV9fc3VjY2Vzcy1kYXRhIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLW1zZyBzdHJvbmcgZW0ge1xuICAgICAgICBmb250LWZhbWlseTogXCJMYXVzYW5uZS00NTAtaXRhbGljXCIsIHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQ1MDsgfVxuICAgICAgICAuYy1FbnF1aXJlRm9ybV9fc3VjY2Vzcy1kYXRhIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLW1zZyBzdHJvbmcgZW0gZW0ge1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXdlaWdodDogNDUwOyB9XG4gICAgICAuYy1FbnF1aXJlRm9ybV9fc3VjY2Vzcy1kYXRhIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLW1zZyBzdHJvbmcgc3Ryb25nIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQ1MDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxOTIxcHgpIHtcbiAgICAgIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRhdGEgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtbXNnIHtcbiAgICAgICAgZm9udC1zaXplOiAzMHB4OyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDk5cHgpIHtcbiAgICAgIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRhdGEgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtbXNnIHtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4OyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRhdGEgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtbXNnIHtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDE5MjFweCkge1xuICAgICAgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtZGF0YSAuYy1FbnF1aXJlRm9ybV9fc3VjY2Vzcy1tc2cge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4OyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDk5cHgpIHtcbiAgICAgIC5jLUVucXVpcmVGb3JtX19zdWNjZXNzLWRhdGEgLmMtRW5xdWlyZUZvcm1fX3N1Y2Nlc3MtbXNnIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDsgfSB9XG4iXSwic291cmNlUm9vdCI6IiJ9*/