
/**
  This file contains only imports of Bootstrap, GitLab UI and GitLab mixins,
  variables and functions, in the correct order.

  It is meant to be used in page_bundles, but SHOULD NOT introduce any
  styles of it's own. We actually check in CI that compiling _this_ file doesn't
  result in any additional styles.

  See: scripts/frontend/check_page_bundle_mixins_css_for_sideeffects.js
 */
/*
* SASS preserves units in arithmetic operations. For example:
* 12em * 0 = 0em. This function return the unit of a numeric value.
*
* For more examples, see: https://codepen.io/paulgv/pen/XWrqMgQ
*/
/* stylelint-disable @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-enable @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-disable-next-line @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-disable-next-line @gitlab/no-gl-deprecated-design-tokens */
/*
 * Layout
 */
/**
  🚨 Do not use this spacing scale — it is deprecated and being removed. 🚨
  See https://gitlab.com/gitlab-org/gitlab/issues/36857 for more details.

  Instead, if you need a spacing class, add it to app/assets/stylesheets/framework/common.scss,
  using the following values.

    $gl-spacing-scale-0: 0;
    $gl-spacing-scale-1: 2px;
    $gl-spacing-scale-2: 4px;
    $gl-spacing-scale-3: 8px;
    $gl-spacing-scale-4: 12px;
    $gl-spacing-scale-5: 16px;
    $gl-spacing-scale-6: 24px;
    $gl-spacing-scale-7: 32px;
    $gl-spacing-scale-8: 40px;
    $gl-spacing-scale-9: 48px;
    $gl-spacing-scale-10: 56px;
    $gl-spacing-scale-11: 64px;
    $gl-spacing-scale-12: 80px;
    $gl-spacing-scale-13: 96px;

  E.g., a padding top of 96px can be added using:
  .gl-shim-pt-13 {
    padding-top: 96px;
  }

  Please use -shim- so it can be differentiated from the old scale classes.

  These will be replaced when the Gitlab UI utilities are included.
**/
/* Will be moved to @gitlab/ui by https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/issues/2792 */
/* End gitlab-ui#1709 */
/*
 * Text
 */
/*
 * Lists
 */
/*
 * Code
 */
/*
 * Tooltips
 */
/*
 * Padding
 */
/*
 * Misc
 */
/*
 * Merge requests
 */
/*
 * Calculated heights
 */
/* tanuki logo colors */
/*
 * State colors:
 */
/*
 * Commit Diff Colors
 */
/*
 * The transparent colors are used in Monaco editor. Using full opacity colors
 * would hide other layers (selected text, matching brackets).
 *
 * When the transparent colors get layered on white background, they create their
 * full opacity counterparts:
 *
 *  - white + $line-added-transparent = $line-added
 *  - white + $line-added-transparent + $line-added-dark-transparent = $line-added-dark
 *
 * More details: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41553
 */
/*
 * Fonts
 * The --default-mono-font and --default-regular-font variables give users
 * a way to override our font choices for them.
 */
/*
* Dropdowns
*/
/*
* Sidebar
*/
/*
* Buttons
*/
/*
* Badges
*/
/*
 *  Award emoji
 */
/*
 * Search Box
 */
/*
 *  Notes
 */
/*
* Boards
*/
/*
* Builds
*/
/*
* Commit Page
*/
/*
* Files
*/
/*
* Forms
*/
/*
* Label
*/
/*
* Animation
*/
/*
* Login
*/
/*
* Typography
*/
/*
Pipeline Graph
*/
/*
GitLab Plans
*/
/*
Performance Bar
*/
/*
Image Commenting cursor
*/
/*
Popup
*/
/*
Drawers
*/
/*
Modals
*/
/*
Popovers
*/
/*
Merge requests
*/
/*
Board Swimlanes
*/
/*
Source Editor theme overrides
*/
/**
 Bootstrap 4.2.0 introduced new icons for validating forms.
 Our design system does not use those, so we are disabling them for now:
 - Docs: https://getbootstrap.com/docs/4.3/components/forms/#server-side
 - Issue: https://gitlab.com/gitlab-org/design.gitlab.com/issues/242
 */
/*
 * This file is only for overriding Bootstrap 4 variables.
 * Please add any new variables to variables.scss
 */
/*
* SASS preserves units in arithmetic operations. For example:
* 12em * 0 = 0em. This function return the unit of a numeric value.
*
* For more examples, see: https://codepen.io/paulgv/pen/XWrqMgQ
*/
/* stylelint-disable @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-enable @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-disable-next-line @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-disable-next-line @gitlab/no-gl-deprecated-design-tokens */
/**
 * Prefilled mixins
 * Mixins with fixed values
 */
/*
 * Base mixin for lists in GitLab
 */
/*
 * Mixin for status badges, as used for pipelines and commit signatures
 */
/*
 * Mixin that fixes wrapping issues with long strings (e.g. URLs)
 *
 * Note: the width needs to be set for it to work in Firefox
 */
/*
* Mixin that handles the container for the job logs (CI/CD and kubernetes pod logs)
*/
/*
* Mixin that handles the position of the controls placed on the top bar
*/
/*
* Mixin that handles the size and right margin of avatars.
*/
/**
* Style to apply to, for example, search results matches or text wrapped
* around <mark> (allowed in Markdown).
*/
/**
* Line connecting activity entries, used in issuables, work items etc
*/
/**
 * Deprecated mixin for dark mode
 */
/**
* CI/CD Job item failed status background
*
* Sets background color of items to visually
* highlight failed jobs in the UI.
*/
/*
* SASS preserves units in arithmetic operations. For example:
* 12em * 0 = 0em. This function return the unit of a numeric value.
*
* For more examples, see: https://codepen.io/paulgv/pen/XWrqMgQ
*/
/*
* SASS preserves units in arithmetic operations. For example:
* 12em * 0 = 0em. This function return the unit of a numeric value.
*
* For more examples, see: https://codepen.io/paulgv/pen/XWrqMgQ
*/
/* stylelint-disable @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-enable @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-disable-next-line @gitlab/no-gl-deprecated-design-tokens */
/* stylelint-disable-next-line @gitlab/no-gl-deprecated-design-tokens */
/**
* Declares a property with a fluid value that decreases or
* rises depending on the viewport’s size. The property type
* should be numeric.
*
* Values are expected in rem units.
* Fluid range: between 48rem (768px) – 75rem (1200px).
*
* @param $property Property name, i.e. line-height, font-size, width, height, etc.
* @param $min Property value lower bound.
* @param $max Property value upper bound.
*/
/**
* Helper function for :focus
*
* @param $size is deprecated and should not be used anymore
*/
/**
* Helper function for @media of at least the minimum
* breakpoint width.
*
* @param $name Breakpoint name, such as `sm` or `md`.
*/
/**
* Helper function for @media of at most the maximum
* breakpoint width.
*
* Note: Before using, consider using a mobile-first
* approach, and define @media for larger breakpoints
* using `gl-media-breakpoint-up` while using this rule as
* the starting point instead.
*
* @param $name Breakpoint, such as `sm` or `md`. `xs` is not valid
*/
/**
* Helper function to resolve font-size value from $gl-font-sizes and
* $gl-font-sizes-fixed maps.
*
* @param $size Number font-size scale
* @param $fixed Boolean toggle default and fixed font size scales
*/

.commit-description,
.commit-row-description {
  padding: 8px 0 8px 8px;
  margin-top: 8px;
  border: 0;
  border-radius: unset;
  background: none;
  word-break: normal;
  overflow-x: auto;
  border-left: 3px solid var(--gl-border-color-default);
  color: var(--gl-text-color-subtle);
}

.commit-box {
  border-top: 1px solid var(--gl-border-color-default);
  padding: 16px 0;
}
.commit-box .commit-title {
  margin: 0;
  color: var(--gl-text-color-default);
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9hc3NldHMvc3R5bGVzaGVldHMvcGFnZV9idW5kbGVzL2NvbW1pdF9kZXNjcmlwdGlvbi5zY3NzIiwiZmlsZTovLy9naXRsYWItZ2RrL2dpdGxhYi1kZXZlbG9wbWVudC1raXQvZ2l0bGFiL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvcGFnZV9idW5kbGVzL19taXhpbnNfYW5kX3ZhcmlhYmxlc19hbmRfZnVuY3Rpb25zLnNjc3MiLCJmaWxlOi8vL2dpdGxhYi1nZGsvZ2l0bGFiLWRldmVsb3BtZW50LWtpdC9naXRsYWIvbm9kZV9tb2R1bGVzL0BnaXRsYWIvdWkvc3JjL3Njc3MvZnVuY3Rpb25zLnNjc3MiLCJmaWxlOi8vL2dpdGxhYi1nZGsvZ2l0bGFiLWRldmVsb3BtZW50LWtpdC9naXRsYWIvbm9kZV9tb2R1bGVzL0BnaXRsYWIvdWkvc3JjL3Njc3MvdmFyaWFibGVzLnNjc3MiLCJmaWxlOi8vL2dpdGxhYi1nZGsvZ2l0bGFiLWRldmVsb3BtZW50LWtpdC9naXRsYWIvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mcmFtZXdvcmsvdmFyaWFibGVzLnNjc3MiLCJmaWxlOi8vL2dpdGxhYi1nZGsvZ2l0bGFiLWRldmVsb3BtZW50LWtpdC9naXRsYWIvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mcmFtZXdvcmsvdmFyaWFibGVzX292ZXJyaWRlcy5zY3NzIiwiZmlsZTovLy9naXRsYWItZ2RrL2dpdGxhYi1kZXZlbG9wbWVudC1raXQvZ2l0bGFiL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnJhbWV3b3JrL21peGlucy5zY3NzIiwiZmlsZTovLy9naXRsYWItZ2RrL2dpdGxhYi1kZXZlbG9wbWVudC1raXQvZ2l0bGFiL25vZGVfbW9kdWxlcy9AZ2l0bGFiL3VpL3NyYy9zY3NzL21peGlucy5zY3NzIiwiZmlsZTovLy9naXRsYWItZ2RrL2dpdGxhYi1kZXZlbG9wbWVudC1raXQvZ2l0bGFiL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvcGFnZV9idW5kbGVzL2NvbW1pdF9kZXNjcmlwdGlvbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ0FoQjs7Ozs7Ozs7O0VBQUE7QUNHQTs7Ozs7Q0FBQTtBQ3dCQSw2REFBQTtBQVFBLDREQUFBO0FBeU9BLHVFQUFBO0FBR0EsdUVBQUE7QUM1UUE7O0VBQUE7QUFxQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUFBO0FBd0NBLGlIQUFBO0FBR0EsdUJBQUE7QUFNQTs7RUFBQTtBQWVBOztFQUFBO0FBS0E7O0VBQUE7QUFPQTs7RUFBQTtBQUtBOztFQUFBO0FBaUJBOztFQUFBO0FBdUNBOztFQUFBO0FBVUE7O0VBQUE7QUFTQSx1QkFBQTtBQUtBOztFQUFBO0FBTUE7O0VBQUE7QUFRQTs7Ozs7Ozs7Ozs7RUFBQTtBQXVCQTs7OztFQUFBO0FBYUE7O0NBQUE7QUFhQTs7Q0FBQTtBQU9BOztDQUFBO0FBWUE7O0NBQUE7QUFLQTs7RUFBQTtBQVFBOztFQUFBO0FBTUE7O0VBQUE7QUFNQTs7Q0FBQTtBQUtBOztDQUFBO0FBTUE7O0NBQUE7QUFNQTs7Q0FBQTtBQU1BOztDQUFBO0FBWUE7O0NBQUE7QUFPQTs7Q0FBQTtBQU9BOztDQUFBO0FBS0E7O0NBQUE7QUFLQTs7Q0FBQTtBQU1BOztDQUFBO0FBT0E7O0NBQUE7QUFRQTs7Q0FBQTtBQU1BOztDQUFBO0FBT0E7O0NBQUE7QUFLQTs7Q0FBQTtBQU9BOztDQUFBO0FBTUE7O0NBQUE7QUFLQTs7Q0FBQTtBQUtBOztDQUFBO0FBTUE7Ozs7O0VBQUE7QUNuYkE7OztFQUFBO0FIR0E7Ozs7O0NBQUE7QUN3QkEsNkRBQUE7QUFRQSw0REFBQTtBQXlPQSx1RUFBQTtBQUdBLHVFQUFBO0FHM1FBOzs7RUFBQTtBQWNBOztFQUFBO0FBMkRBOztFQUFBO0FBdUZBOzs7O0VBQUE7QUFZQTs7Q0FBQTtBQXFDQTs7Q0FBQTtBQWlHQTs7Q0FBQTtBQStFQTs7O0NBQUE7QUFhQTs7Q0FBQTtBQVlBOztFQUFBO0FBU0E7Ozs7O0NBQUE7QUpwYUE7Ozs7O0NBQUE7QUFBQTs7Ozs7Q0FBQTtBQ3dCQSw2REFBQTtBQVFBLDREQUFBO0FBeU9BLHVFQUFBO0FBR0EsdUVBQUE7QUluUEE7Ozs7Ozs7Ozs7O0NBQUE7QUFnQkE7Ozs7Q0FBQTtBQTZEQTs7Ozs7Q0FBQTtBQW9CQTs7Ozs7Ozs7OztDQUFBO0FBK0ZBOzs7Ozs7Q0FBQTtBQzFOQTs7RUFFRSxzQkFBQTtFQUNBLGVKeUhhO0VJeEhiLFNBQUE7RUFDQSxvQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLHFEQUFBO0VBQ0Esa0NBQUE7QVI4U0Y7O0FRM1NBO0VBQ0Usb0RBQUE7RUFDQSxlQUFBO0FSOFNGO0FRNVNFO0VBQ0UsU0FBQTtFQUNBLG1DQUFBO0FSOFNKIiwiZmlsZSI6ImFwcC9hc3NldHMvc3R5bGVzaGVldHMvcGFnZV9idW5kbGVzL2NvbW1pdF9kZXNjcmlwdGlvbi5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gIFRoaXMgZmlsZSBjb250YWlucyBvbmx5IGltcG9ydHMgb2YgQm9vdHN0cmFwLCBHaXRMYWIgVUkgYW5kIEdpdExhYiBtaXhpbnMsXG4gIHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zLCBpbiB0aGUgY29ycmVjdCBvcmRlci5cblxuICBJdCBpcyBtZWFudCB0byBiZSB1c2VkIGluIHBhZ2VfYnVuZGxlcywgYnV0IFNIT1VMRCBOT1QgaW50cm9kdWNlIGFueVxuICBzdHlsZXMgb2YgaXQncyBvd24uIFdlIGFjdHVhbGx5IGNoZWNrIGluIENJIHRoYXQgY29tcGlsaW5nIF90aGlzXyBmaWxlIGRvZXNuJ3RcbiAgcmVzdWx0IGluIGFueSBhZGRpdGlvbmFsIHN0eWxlcy5cblxuICBTZWU6IHNjcmlwdHMvZnJvbnRlbmQvY2hlY2tfcGFnZV9idW5kbGVfbWl4aW5zX2Nzc19mb3Jfc2lkZWVmZmVjdHMuanNcbiAqL1xuLypcbiogU0FTUyBwcmVzZXJ2ZXMgdW5pdHMgaW4gYXJpdGhtZXRpYyBvcGVyYXRpb25zLiBGb3IgZXhhbXBsZTpcbiogMTJlbSAqIDAgPSAwZW0uIFRoaXMgZnVuY3Rpb24gcmV0dXJuIHRoZSB1bml0IG9mIGEgbnVtZXJpYyB2YWx1ZS5cbipcbiogRm9yIG1vcmUgZXhhbXBsZXMsIHNlZTogaHR0cHM6Ly9jb2RlcGVuLmlvL3BhdWxndi9wZW4vWFdycU1nUVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIEBnaXRsYWIvbm8tZ2wtZGVwcmVjYXRlZC1kZXNpZ24tdG9rZW5zICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlIEBnaXRsYWIvbm8tZ2wtZGVwcmVjYXRlZC1kZXNpZ24tdG9rZW5zICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGdpdGxhYi9uby1nbC1kZXByZWNhdGVkLWRlc2lnbi10b2tlbnMgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBAZ2l0bGFiL25vLWdsLWRlcHJlY2F0ZWQtZGVzaWduLXRva2VucyAqL1xuLypcbiAqIExheW91dFxuICovXG4vKipcbiAg8J+aqCBEbyBub3QgdXNlIHRoaXMgc3BhY2luZyBzY2FsZSDigJQgaXQgaXMgZGVwcmVjYXRlZCBhbmQgYmVpbmcgcmVtb3ZlZC4g8J+aqFxuICBTZWUgaHR0cHM6Ly9naXRsYWIuY29tL2dpdGxhYi1vcmcvZ2l0bGFiL2lzc3Vlcy8zNjg1NyBmb3IgbW9yZSBkZXRhaWxzLlxuXG4gIEluc3RlYWQsIGlmIHlvdSBuZWVkIGEgc3BhY2luZyBjbGFzcywgYWRkIGl0IHRvIGFwcC9hc3NldHMvc3R5bGVzaGVldHMvZnJhbWV3b3JrL2NvbW1vbi5zY3NzLFxuICB1c2luZyB0aGUgZm9sbG93aW5nIHZhbHVlcy5cblxuICAgICRnbC1zcGFjaW5nLXNjYWxlLTA6IDA7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtMTogMnB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTI6IDRweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS0zOiA4cHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtNDogMTJweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS01OiAxNnB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTY6IDI0cHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtNzogMzJweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS04OiA0MHB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTk6IDQ4cHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtMTA6IDU2cHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtMTE6IDY0cHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtMTI6IDgwcHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtMTM6IDk2cHg7XG5cbiAgRS5nLiwgYSBwYWRkaW5nIHRvcCBvZiA5NnB4IGNhbiBiZSBhZGRlZCB1c2luZzpcbiAgLmdsLXNoaW0tcHQtMTMge1xuICAgIHBhZGRpbmctdG9wOiA5NnB4O1xuICB9XG5cbiAgUGxlYXNlIHVzZSAtc2hpbS0gc28gaXQgY2FuIGJlIGRpZmZlcmVudGlhdGVkIGZyb20gdGhlIG9sZCBzY2FsZSBjbGFzc2VzLlxuXG4gIFRoZXNlIHdpbGwgYmUgcmVwbGFjZWQgd2hlbiB0aGUgR2l0bGFiIFVJIHV0aWxpdGllcyBhcmUgaW5jbHVkZWQuXG4qKi9cbi8qIFdpbGwgYmUgbW92ZWQgdG8gQGdpdGxhYi91aSBieSBodHRwczovL2dpdGxhYi5jb20vZ2l0bGFiLW9yZy9naXRsYWItc2VydmljZXMvZGVzaWduLmdpdGxhYi5jb20vLS9pc3N1ZXMvMjc5MiAqL1xuLyogRW5kIGdpdGxhYi11aSMxNzA5ICovXG4vKlxuICogVGV4dFxuICovXG4vKlxuICogTGlzdHNcbiAqL1xuLypcbiAqIENvZGVcbiAqL1xuLypcbiAqIFRvb2x0aXBzXG4gKi9cbi8qXG4gKiBQYWRkaW5nXG4gKi9cbi8qXG4gKiBNaXNjXG4gKi9cbi8qXG4gKiBNZXJnZSByZXF1ZXN0c1xuICovXG4vKlxuICogQ2FsY3VsYXRlZCBoZWlnaHRzXG4gKi9cbi8qIHRhbnVraSBsb2dvIGNvbG9ycyAqL1xuLypcbiAqIFN0YXRlIGNvbG9yczpcbiAqL1xuLypcbiAqIENvbW1pdCBEaWZmIENvbG9yc1xuICovXG4vKlxuICogVGhlIHRyYW5zcGFyZW50IGNvbG9ycyBhcmUgdXNlZCBpbiBNb25hY28gZWRpdG9yLiBVc2luZyBmdWxsIG9wYWNpdHkgY29sb3JzXG4gKiB3b3VsZCBoaWRlIG90aGVyIGxheWVycyAoc2VsZWN0ZWQgdGV4dCwgbWF0Y2hpbmcgYnJhY2tldHMpLlxuICpcbiAqIFdoZW4gdGhlIHRyYW5zcGFyZW50IGNvbG9ycyBnZXQgbGF5ZXJlZCBvbiB3aGl0ZSBiYWNrZ3JvdW5kLCB0aGV5IGNyZWF0ZSB0aGVpclxuICogZnVsbCBvcGFjaXR5IGNvdW50ZXJwYXJ0czpcbiAqXG4gKiAgLSB3aGl0ZSArICRsaW5lLWFkZGVkLXRyYW5zcGFyZW50ID0gJGxpbmUtYWRkZWRcbiAqICAtIHdoaXRlICsgJGxpbmUtYWRkZWQtdHJhbnNwYXJlbnQgKyAkbGluZS1hZGRlZC1kYXJrLXRyYW5zcGFyZW50ID0gJGxpbmUtYWRkZWQtZGFya1xuICpcbiAqIE1vcmUgZGV0YWlsczogaHR0cHM6Ly9naXRsYWIuY29tL2dpdGxhYi1vcmcvZ2l0bGFiLy0vbWVyZ2VfcmVxdWVzdHMvNDE1NTNcbiAqL1xuLypcbiAqIEZvbnRzXG4gKiBUaGUgLS1kZWZhdWx0LW1vbm8tZm9udCBhbmQgLS1kZWZhdWx0LXJlZ3VsYXItZm9udCB2YXJpYWJsZXMgZ2l2ZSB1c2Vyc1xuICogYSB3YXkgdG8gb3ZlcnJpZGUgb3VyIGZvbnQgY2hvaWNlcyBmb3IgdGhlbS5cbiAqL1xuLypcbiogRHJvcGRvd25zXG4qL1xuLypcbiogU2lkZWJhclxuKi9cbi8qXG4qIEJ1dHRvbnNcbiovXG4vKlxuKiBCYWRnZXNcbiovXG4vKlxuICogIEF3YXJkIGVtb2ppXG4gKi9cbi8qXG4gKiBTZWFyY2ggQm94XG4gKi9cbi8qXG4gKiAgTm90ZXNcbiAqL1xuLypcbiogQm9hcmRzXG4qL1xuLypcbiogQnVpbGRzXG4qL1xuLypcbiogQ29tbWl0IFBhZ2VcbiovXG4vKlxuKiBGaWxlc1xuKi9cbi8qXG4qIEZvcm1zXG4qL1xuLypcbiogTGFiZWxcbiovXG4vKlxuKiBBbmltYXRpb25cbiovXG4vKlxuKiBMb2dpblxuKi9cbi8qXG4qIFR5cG9ncmFwaHlcbiovXG4vKlxuUGlwZWxpbmUgR3JhcGhcbiovXG4vKlxuR2l0TGFiIFBsYW5zXG4qL1xuLypcblBlcmZvcm1hbmNlIEJhclxuKi9cbi8qXG5JbWFnZSBDb21tZW50aW5nIGN1cnNvclxuKi9cbi8qXG5Qb3B1cFxuKi9cbi8qXG5EcmF3ZXJzXG4qL1xuLypcbk1vZGFsc1xuKi9cbi8qXG5Qb3BvdmVyc1xuKi9cbi8qXG5NZXJnZSByZXF1ZXN0c1xuKi9cbi8qXG5Cb2FyZCBTd2ltbGFuZXNcbiovXG4vKlxuU291cmNlIEVkaXRvciB0aGVtZSBvdmVycmlkZXNcbiovXG4vKipcbiBCb290c3RyYXAgNC4yLjAgaW50cm9kdWNlZCBuZXcgaWNvbnMgZm9yIHZhbGlkYXRpbmcgZm9ybXMuXG4gT3VyIGRlc2lnbiBzeXN0ZW0gZG9lcyBub3QgdXNlIHRob3NlLCBzbyB3ZSBhcmUgZGlzYWJsaW5nIHRoZW0gZm9yIG5vdzpcbiAtIERvY3M6IGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS9kb2NzLzQuMy9jb21wb25lbnRzL2Zvcm1zLyNzZXJ2ZXItc2lkZVxuIC0gSXNzdWU6IGh0dHBzOi8vZ2l0bGFiLmNvbS9naXRsYWItb3JnL2Rlc2lnbi5naXRsYWIuY29tL2lzc3Vlcy8yNDJcbiAqL1xuLypcbiAqIFRoaXMgZmlsZSBpcyBvbmx5IGZvciBvdmVycmlkaW5nIEJvb3RzdHJhcCA0IHZhcmlhYmxlcy5cbiAqIFBsZWFzZSBhZGQgYW55IG5ldyB2YXJpYWJsZXMgdG8gdmFyaWFibGVzLnNjc3NcbiAqL1xuLypcbiogU0FTUyBwcmVzZXJ2ZXMgdW5pdHMgaW4gYXJpdGhtZXRpYyBvcGVyYXRpb25zLiBGb3IgZXhhbXBsZTpcbiogMTJlbSAqIDAgPSAwZW0uIFRoaXMgZnVuY3Rpb24gcmV0dXJuIHRoZSB1bml0IG9mIGEgbnVtZXJpYyB2YWx1ZS5cbipcbiogRm9yIG1vcmUgZXhhbXBsZXMsIHNlZTogaHR0cHM6Ly9jb2RlcGVuLmlvL3BhdWxndi9wZW4vWFdycU1nUVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIEBnaXRsYWIvbm8tZ2wtZGVwcmVjYXRlZC1kZXNpZ24tdG9rZW5zICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlIEBnaXRsYWIvbm8tZ2wtZGVwcmVjYXRlZC1kZXNpZ24tdG9rZW5zICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGdpdGxhYi9uby1nbC1kZXByZWNhdGVkLWRlc2lnbi10b2tlbnMgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBAZ2l0bGFiL25vLWdsLWRlcHJlY2F0ZWQtZGVzaWduLXRva2VucyAqL1xuLyoqXG4gKiBQcmVmaWxsZWQgbWl4aW5zXG4gKiBNaXhpbnMgd2l0aCBmaXhlZCB2YWx1ZXNcbiAqL1xuLypcbiAqIEJhc2UgbWl4aW4gZm9yIGxpc3RzIGluIEdpdExhYlxuICovXG4vKlxuICogTWl4aW4gZm9yIHN0YXR1cyBiYWRnZXMsIGFzIHVzZWQgZm9yIHBpcGVsaW5lcyBhbmQgY29tbWl0IHNpZ25hdHVyZXNcbiAqL1xuLypcbiAqIE1peGluIHRoYXQgZml4ZXMgd3JhcHBpbmcgaXNzdWVzIHdpdGggbG9uZyBzdHJpbmdzIChlLmcuIFVSTHMpXG4gKlxuICogTm90ZTogdGhlIHdpZHRoIG5lZWRzIHRvIGJlIHNldCBmb3IgaXQgdG8gd29yayBpbiBGaXJlZm94XG4gKi9cbi8qXG4qIE1peGluIHRoYXQgaGFuZGxlcyB0aGUgY29udGFpbmVyIGZvciB0aGUgam9iIGxvZ3MgKENJL0NEIGFuZCBrdWJlcm5ldGVzIHBvZCBsb2dzKVxuKi9cbi8qXG4qIE1peGluIHRoYXQgaGFuZGxlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbnRyb2xzIHBsYWNlZCBvbiB0aGUgdG9wIGJhclxuKi9cbi8qXG4qIE1peGluIHRoYXQgaGFuZGxlcyB0aGUgc2l6ZSBhbmQgcmlnaHQgbWFyZ2luIG9mIGF2YXRhcnMuXG4qL1xuLyoqXG4qIFN0eWxlIHRvIGFwcGx5IHRvLCBmb3IgZXhhbXBsZSwgc2VhcmNoIHJlc3VsdHMgbWF0Y2hlcyBvciB0ZXh0IHdyYXBwZWRcbiogYXJvdW5kIDxtYXJrPiAoYWxsb3dlZCBpbiBNYXJrZG93bikuXG4qL1xuLyoqXG4qIExpbmUgY29ubmVjdGluZyBhY3Rpdml0eSBlbnRyaWVzLCB1c2VkIGluIGlzc3VhYmxlcywgd29yayBpdGVtcyBldGNcbiovXG4vKipcbiAqIERlcHJlY2F0ZWQgbWl4aW4gZm9yIGRhcmsgbW9kZVxuICovXG4vKipcbiogQ0kvQ0QgSm9iIGl0ZW0gZmFpbGVkIHN0YXR1cyBiYWNrZ3JvdW5kXG4qXG4qIFNldHMgYmFja2dyb3VuZCBjb2xvciBvZiBpdGVtcyB0byB2aXN1YWxseVxuKiBoaWdobGlnaHQgZmFpbGVkIGpvYnMgaW4gdGhlIFVJLlxuKi9cbi8qXG4qIFNBU1MgcHJlc2VydmVzIHVuaXRzIGluIGFyaXRobWV0aWMgb3BlcmF0aW9ucy4gRm9yIGV4YW1wbGU6XG4qIDEyZW0gKiAwID0gMGVtLiBUaGlzIGZ1bmN0aW9uIHJldHVybiB0aGUgdW5pdCBvZiBhIG51bWVyaWMgdmFsdWUuXG4qXG4qIEZvciBtb3JlIGV4YW1wbGVzLCBzZWU6IGh0dHBzOi8vY29kZXBlbi5pby9wYXVsZ3YvcGVuL1hXcnFNZ1FcbiovXG4vKlxuKiBTQVNTIHByZXNlcnZlcyB1bml0cyBpbiBhcml0aG1ldGljIG9wZXJhdGlvbnMuIEZvciBleGFtcGxlOlxuKiAxMmVtICogMCA9IDBlbS4gVGhpcyBmdW5jdGlvbiByZXR1cm4gdGhlIHVuaXQgb2YgYSBudW1lcmljIHZhbHVlLlxuKlxuKiBGb3IgbW9yZSBleGFtcGxlcywgc2VlOiBodHRwczovL2NvZGVwZW4uaW8vcGF1bGd2L3Blbi9YV3JxTWdRXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgQGdpdGxhYi9uby1nbC1kZXByZWNhdGVkLWRlc2lnbi10b2tlbnMgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgQGdpdGxhYi9uby1nbC1kZXByZWNhdGVkLWRlc2lnbi10b2tlbnMgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBAZ2l0bGFiL25vLWdsLWRlcHJlY2F0ZWQtZGVzaWduLXRva2VucyAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIEBnaXRsYWIvbm8tZ2wtZGVwcmVjYXRlZC1kZXNpZ24tdG9rZW5zICovXG4vKipcbiogRGVjbGFyZXMgYSBwcm9wZXJ0eSB3aXRoIGEgZmx1aWQgdmFsdWUgdGhhdCBkZWNyZWFzZXMgb3JcbiogcmlzZXMgZGVwZW5kaW5nIG9uIHRoZSB2aWV3cG9ydOKAmXMgc2l6ZS4gVGhlIHByb3BlcnR5IHR5cGVcbiogc2hvdWxkIGJlIG51bWVyaWMuXG4qXG4qIFZhbHVlcyBhcmUgZXhwZWN0ZWQgaW4gcmVtIHVuaXRzLlxuKiBGbHVpZCByYW5nZTogYmV0d2VlbiA0OHJlbSAoNzY4cHgpIOKAkyA3NXJlbSAoMTIwMHB4KS5cbipcbiogQHBhcmFtICRwcm9wZXJ0eSBQcm9wZXJ0eSBuYW1lLCBpLmUuIGxpbmUtaGVpZ2h0LCBmb250LXNpemUsIHdpZHRoLCBoZWlnaHQsIGV0Yy5cbiogQHBhcmFtICRtaW4gUHJvcGVydHkgdmFsdWUgbG93ZXIgYm91bmQuXG4qIEBwYXJhbSAkbWF4IFByb3BlcnR5IHZhbHVlIHVwcGVyIGJvdW5kLlxuKi9cbi8qKlxuKiBIZWxwZXIgZnVuY3Rpb24gZm9yIDpmb2N1c1xuKlxuKiBAcGFyYW0gJHNpemUgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGFueW1vcmVcbiovXG4vKipcbiogSGVscGVyIGZ1bmN0aW9uIGZvciBAbWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW1cbiogYnJlYWtwb2ludCB3aWR0aC5cbipcbiogQHBhcmFtICRuYW1lIEJyZWFrcG9pbnQgbmFtZSwgc3VjaCBhcyBgc21gIG9yIGBtZGAuXG4qL1xuLyoqXG4qIEhlbHBlciBmdW5jdGlvbiBmb3IgQG1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW1cbiogYnJlYWtwb2ludCB3aWR0aC5cbipcbiogTm90ZTogQmVmb3JlIHVzaW5nLCBjb25zaWRlciB1c2luZyBhIG1vYmlsZS1maXJzdFxuKiBhcHByb2FjaCwgYW5kIGRlZmluZSBAbWVkaWEgZm9yIGxhcmdlciBicmVha3BvaW50c1xuKiB1c2luZyBgZ2wtbWVkaWEtYnJlYWtwb2ludC11cGAgd2hpbGUgdXNpbmcgdGhpcyBydWxlIGFzXG4qIHRoZSBzdGFydGluZyBwb2ludCBpbnN0ZWFkLlxuKlxuKiBAcGFyYW0gJG5hbWUgQnJlYWtwb2ludCwgc3VjaCBhcyBgc21gIG9yIGBtZGAuIGB4c2AgaXMgbm90IHZhbGlkXG4qL1xuLyoqXG4qIEhlbHBlciBmdW5jdGlvbiB0byByZXNvbHZlIGZvbnQtc2l6ZSB2YWx1ZSBmcm9tICRnbC1mb250LXNpemVzIGFuZFxuKiAkZ2wtZm9udC1zaXplcy1maXhlZCBtYXBzLlxuKlxuKiBAcGFyYW0gJHNpemUgTnVtYmVyIGZvbnQtc2l6ZSBzY2FsZVxuKiBAcGFyYW0gJGZpeGVkIEJvb2xlYW4gdG9nZ2xlIGRlZmF1bHQgYW5kIGZpeGVkIGZvbnQgc2l6ZSBzY2FsZXNcbiovXG4uY29tbWl0LWRlc2NyaXB0aW9uLFxuLmNvbW1pdC1yb3ctZGVzY3JpcHRpb24ge1xuICBwYWRkaW5nOiA4cHggMCA4cHggOHB4O1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogdW5zZXQ7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1nbC1ib3JkZXItY29sb3ItZGVmYXVsdCk7XG4gIGNvbG9yOiB2YXIoLS1nbC10ZXh0LWNvbG9yLXN1YnRsZSk7XG59XG5cbi5jb21taXQtYm94IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWdsLWJvcmRlci1jb2xvci1kZWZhdWx0KTtcbiAgcGFkZGluZzogMTZweCAwO1xufVxuLmNvbW1pdC1ib3ggLmNvbW1pdC10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IHZhcigtLWdsLXRleHQtY29sb3ItZGVmYXVsdCk7XG59IiwiLyoqXG4gIFRoaXMgZmlsZSBjb250YWlucyBvbmx5IGltcG9ydHMgb2YgQm9vdHN0cmFwLCBHaXRMYWIgVUkgYW5kIEdpdExhYiBtaXhpbnMsXG4gIHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zLCBpbiB0aGUgY29ycmVjdCBvcmRlci5cblxuICBJdCBpcyBtZWFudCB0byBiZSB1c2VkIGluIHBhZ2VfYnVuZGxlcywgYnV0IFNIT1VMRCBOT1QgaW50cm9kdWNlIGFueVxuICBzdHlsZXMgb2YgaXQncyBvd24uIFdlIGFjdHVhbGx5IGNoZWNrIGluIENJIHRoYXQgY29tcGlsaW5nIF90aGlzXyBmaWxlIGRvZXNuJ3RcbiAgcmVzdWx0IGluIGFueSBhZGRpdGlvbmFsIHN0eWxlcy5cblxuICBTZWU6IHNjcmlwdHMvZnJvbnRlbmQvY2hlY2tfcGFnZV9idW5kbGVfbWl4aW5zX2Nzc19mb3Jfc2lkZWVmZmVjdHMuanNcbiAqL1xuQGltcG9ydCAnZnJhbWV3b3JrL2Z1bmN0aW9ucyc7XG5AaW1wb3J0ICdmcmFtZXdvcmsvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2ZyYW1ld29yay92YXJpYWJsZXNfb3ZlcnJpZGVzJztcbkBpbXBvcnQgJ2ZyYW1ld29yay9taXhpbnMnO1xuXG5AaW1wb3J0ICdib290c3RyYXAvc2Nzcy9mdW5jdGlvbnMnO1xuQGltcG9ydCAnYm9vdHN0cmFwL3Njc3MvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2Jvb3RzdHJhcC9zY3NzL21peGlucyc7XG5cbkBpbXBvcnQgJ0BnaXRsYWIvdWkvc3JjL3Njc3MvZnVuY3Rpb25zJztcbkBpbXBvcnQgJ0BnaXRsYWIvdWkvc3JjL3Njc3MvdmFyaWFibGVzJztcbkBpbXBvcnQgJ0BnaXRsYWIvdWkvc3JjL3Njc3MvbWl4aW5zJztcbiIsIkB1c2UgXCJzYXNzOm1hdGhcIjtcbkB1c2UgXCJzYXNzOm1ldGFcIjtcblxuLypcbiogU0FTUyBwcmVzZXJ2ZXMgdW5pdHMgaW4gYXJpdGhtZXRpYyBvcGVyYXRpb25zLiBGb3IgZXhhbXBsZTpcbiogMTJlbSAqIDAgPSAwZW0uIFRoaXMgZnVuY3Rpb24gcmV0dXJuIHRoZSB1bml0IG9mIGEgbnVtZXJpYyB2YWx1ZS5cbipcbiogRm9yIG1vcmUgZXhhbXBsZXMsIHNlZTogaHR0cHM6Ly9jb2RlcGVuLmlvL3BhdWxndi9wZW4vWFdycU1nUVxuKi9cbkBmdW5jdGlvbiBleHRyYWN0LXVuaXQoJG51bWJlcikge1xuICBAcmV0dXJuICRudW1iZXIgKiAwICsgMTtcbn1cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bWJlcikge1xuICBAaWYgbWV0YS50eXBlLW9mKCRudW1iZXIpID09IFwibnVtYmVyXCIgYW5kIG5vdCBtYXRoLmlzLXVuaXRsZXNzKCRudW1iZXIpIHtcbiAgICBAcmV0dXJuIG1hdGguZGl2KCRudW1iZXIsIGV4dHJhY3QtdW5pdCgkbnVtYmVyKSk7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXI7XG59XG5cbkBmdW5jdGlvbiBzaW5nbGUtdW5pdC1yZW0oJHZhbHVlLCAkZm9udC1zaXplLWJhc2UpIHtcbiAgQGlmIChleHRyYWN0LXVuaXQoJHZhbHVlKSAhPSAxcHgpIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuXG4gICRjb252ZXJ0ZWQ6IG1hdGguZGl2KCR2YWx1ZSwgJGZvbnQtc2l6ZS1iYXNlKTtcblxuICBAcmV0dXJuIHN0cmlwLXVuaXQoJGNvbnZlcnRlZCkgKiAxcmVtO1xufVxuXG5AZnVuY3Rpb24gbXVsdGlwbGUtdW5pdHMtcmVtKCR2YWx1ZXMsICRmb250LXNpemUtYmFzZSkge1xuICAkcmVtLXZhbHVlczogKCk7XG5cbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgICRyZW0tdmFsdWVzOiBhcHBlbmQoJHJlbS12YWx1ZXMsIHNpbmdsZS11bml0LXJlbSgkdmFsdWUsICRmb250LXNpemUtYmFzZSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVtLXZhbHVlcztcbn1cblxuQGZ1bmN0aW9uIHB4LXRvLXJlbSgkcHgsICRmb250LXNpemUtYmFzZTogMTZweCkge1xuICBAaWYgbWV0YS50eXBlLW9mKCRweCkgPT0gXCJudW1iZXJcIiB7XG4gICAgQHJldHVybiBzaW5nbGUtdW5pdC1yZW0oJHB4LCAkZm9udC1zaXplLWJhc2UpO1xuICB9IEBlbHNlIGlmIG1ldGEudHlwZS1vZigkcHgpID09IFwibGlzdFwiIHtcbiAgICBAcmV0dXJuIG11bHRpcGxlLXVuaXRzLXJlbSgkcHgsICRmb250LXNpemUtYmFzZSk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHB4O1xuICB9XG59XG5cbkBmdW5jdGlvbiBpZi1pbXBvcnRhbnQoJGltcG9ydGFudCkge1xuICBAcmV0dXJuICN7aWYoJGltcG9ydGFudCwgXCIhaW1wb3J0YW50XCIsIFwiXCIpfTtcbn1cblxuQGZ1bmN0aW9uIGNsYW1wLWJldHdlZW4oJG1pbiwgJG1heCwgJG1pbi13aWR0aDogJGJyZWFrcG9pbnQtbWQsICRtYXgtd2lkdGg6ICRicmVha3BvaW50LXhsKSB7XG4gICRtaW4td2lkdGg6IHB4LXRvLXJlbSgkbWluLXdpZHRoKTtcbiAgJG1heC13aWR0aDogcHgtdG8tcmVtKCRtYXgtd2lkdGgpO1xuXG4gICRzbG9wZTogbWF0aC5kaXYoJG1heCAtICRtaW4sICRtYXgtd2lkdGggLSAkbWluLXdpZHRoKTtcbiAgJGludGVyc2VjdGlvbjogKC0kbWluLXdpZHRoICogJHNsb3BlKSArICRtaW47XG5cbiAgQHJldHVybiBjbGFtcCgjeyRtaW59LCAjeyRpbnRlcnNlY3Rpb259ICsgI3skc2xvcGUgKiAxMDB2d30sICN7JG1heH0pO1xufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vdG9rZW5zL2J1aWxkL3Njc3MvdG9rZW5zXCI7XG5cbi8vIExheW91dFxuJGdyaWQtc2l6ZTogcHgtdG8tcmVtKDhweCk7XG5cbi8vIFJlc3BvbnNpdmUgYnJlYWtwb2ludHNcblxuJGJyZWFrcG9pbnQtc206IDU3NnB4O1xuJGJyZWFrcG9pbnQtbWQ6IDc2OHB4O1xuJGJyZWFrcG9pbnQtbGc6IDk5MnB4O1xuJGJyZWFrcG9pbnQteGw6IDEyMDBweDtcblxuJGJyZWFrcG9pbnRzOiAoXG4gIHhzOiAwLFxuICBzbTogJGJyZWFrcG9pbnQtc20sXG4gIG1kOiAkYnJlYWtwb2ludC1tZCxcbiAgbGc6ICRicmVha3BvaW50LWxnLFxuICB4bDogJGJyZWFrcG9pbnQteGwsXG4pO1xuXG4vLyBNYXggd2lkdGhzXG4kbGltaXRlZC1sYXlvdXQtd2lkdGg6IDk5MHB4ICFkZWZhdWx0O1xuJGNvbnRhaW5lci14bDogMTI4MHB4ICFkZWZhdWx0O1xuXG4vLyBDb2xvciBzY2hlbWFcbi8qIHN0eWxlbGludC1kaXNhYmxlIEBnaXRsYWIvbm8tZ2wtZGVwcmVjYXRlZC1kZXNpZ24tdG9rZW5zICovXG4kYmxhY2stbm9ybWFsOiAjMzMzICFkZWZhdWx0O1xuXG4kd2hpdGUtY29udHJhc3Q6ICNmZmYgIWRlZmF1bHQ7XG4kd2hpdGUtbm9ybWFsOiAjZjBmMGYwICFkZWZhdWx0O1xuJHdoaXRlLWRhcms6ICNlYWVhZWEgIWRlZmF1bHQ7XG4kd2hpdGUtdHJhbnNwYXJlbnQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1yZ2JhOiByZ2JhKCR3aGl0ZSwgMCk7XG4vKiBzdHlsZWxpbnQtZW5hYmxlIEBnaXRsYWIvbm8tZ2wtZGVwcmVjYXRlZC1kZXNpZ24tdG9rZW5zICovXG5cbi8vIFRleHRcbiRnbC10ZXh0LWNvbG9yOiAkZ2wtdGV4dC1jb2xvci1kZWZhdWx0ICFkZWZhdWx0O1xuJGdsLXRleHQtY29sb3Itc2Vjb25kYXJ5OiAkZ2wtdGV4dC1jb2xvci1zdWJ0bGUgIWRlZmF1bHQ7XG5cbiRnbC1mb250LXdlaWdodC1saWdodDogMzAwO1xuJGdsLWZvbnQtd2VpZ2h0LW5vcm1hbDogNDAwO1xuJGdsLWZvbnQtd2VpZ2h0LXNlbWlib2xkOiA1MDA7XG4kZ2wtZm9udC13ZWlnaHQtYm9sZDogNjAwO1xuXG4kZ2wtZm9udC13ZWlnaHRzOiAoXG4gIFwibm9ybWFsXCI6ICRnbC1mb250LXdlaWdodC1ub3JtYWwsXG4gIFwiYm9sZFwiOiAkZ2wtZm9udC13ZWlnaHQtYm9sZCxcbik7XG5cbi8vIEZvbnRzXG4kZ2wtbW9ub3NwYWNlLWZvbnQ6XG4gIFwiR2l0TGFiIE1vbm9cIiwgXCJKZXRCcmFpbnMgTW9ub1wiLCBcIk1lbmxvXCIsIFwiRGVqYVZ1IFNhbnMgTW9ub1wiLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkNvbnNvbGFzXCIsXG4gIFwiVWJ1bnR1IE1vbm9cIiwgXCJDb3VyaWVyIE5ld1wiLCBcImFuZGFsZSBtb25vXCIsIFwibHVjaWRhIGNvbnNvbGVcIiwgbW9ub3NwYWNlICFkZWZhdWx0O1xuJGdsLXJlZ3VsYXItZm9udDpcbiAgXCJHaXRMYWIgU2Fuc1wiLFxuICAtYXBwbGUtc3lzdGVtLFxuICBCbGlua01hY1N5c3RlbUZvbnQsXG4gIFwiU2Vnb2UgVUlcIixcbiAgUm9ib3RvLFxuICBcIk5vdG8gU2Fuc1wiLFxuICBVYnVudHUsXG4gIENhbnRhcmVsbCxcbiAgXCJIZWx2ZXRpY2EgTmV1ZVwiLFxuICBzYW5zLXNlcmlmLFxuICBcIkFwcGxlIENvbG9yIEVtb2ppXCIsXG4gIFwiU2Vnb2UgVUkgRW1vamlcIixcbiAgXCJTZWdvZSBVSSBTeW1ib2xcIixcbiAgXCJOb3RvIENvbG9yIEVtb2ppXCIgIWRlZmF1bHQ7XG5cbiRnbC1mb250czogKFxuICBcIm1vbm9zcGFjZVwiOiAkZ2wtbW9ub3NwYWNlLWZvbnQsXG4gIFwicmVndWxhclwiOiAkZ2wtcmVndWxhci1mb250LFxuKTtcblxuLy8gTmV3IFVJIHR5cGUgc2NhbGVcbi8vIEltcGxlbWVudHMgdGhlIHR5cGUgc2NhbGUgZnJvbSBodHRwczovL2dpdGxhYi5jb20vZ3JvdXBzL2dpdGxhYi1vcmcvZ2l0bGFiLXNlcnZpY2VzLy0vZXBpY3MvMTVcbi8vIE9sZCB2YXJpYWJsZXMgYW5kIHN0eWxlcyBuZWVkIHRvIGJlIHJlbW92ZWQgYWZ0ZXIgaW50ZXJncmF0aW9uXG5cbi8vIEZvbnQgc2l6ZSBzY2FsZVxuXG4vLyBmaXhlZCBzY2FsZSAoY29tcGFjdCBtYXJrZG93bilcbiRnbC1mb250LXNpemVzLWZpeGVkOiAoXG4gIDEwMDogcHgtdG8tcmVtKDEycHgpLFxuICAyMDA6IHB4LXRvLXJlbSgxM3B4KSxcbiAgMzAwOiBweC10by1yZW0oMTRweCksXG4gIDQwMDogcHgtdG8tcmVtKDE2cHgpLFxuICA1MDA6IHB4LXRvLXJlbSgxOHB4KSxcbiAgNjAwOiBweC10by1yZW0oMjFweCksXG4gIDcwMDogcHgtdG8tcmVtKDI0cHgpLFxuICA4MDA6IHB4LXRvLXJlbSgyOHB4KSxcbik7XG5cbi8vIGR5bmFtaWMgc2NhbGUgKGRlZmF1bHQpIHJlc2l6ZXMgYmFzZWQgb24gdmlld3BvcnQgd2lkdGhcbiRnbC1mb250LXNpemVzOiAoXG4gIDEwMDogbWFwLmdldCgkZ2wtZm9udC1zaXplcy1maXhlZCwgMTAwKSxcbiAgMjAwOiBtYXAuZ2V0KCRnbC1mb250LXNpemVzLWZpeGVkLCAyMDApLFxuICAzMDA6IG1hcC5nZXQoJGdsLWZvbnQtc2l6ZXMtZml4ZWQsIDMwMCksXG4gIDQwMDogbWFwLmdldCgkZ2wtZm9udC1zaXplcy1maXhlZCwgNDAwKSxcbiAgNTAwOiBjbGFtcC1iZXR3ZWVuKG1hcC5nZXQoJGdsLWZvbnQtc2l6ZXMtZml4ZWQsIDUwMCksIHB4LXRvLXJlbSgyMHB4KSksXG4gIDYwMDogY2xhbXAtYmV0d2VlbihtYXAuZ2V0KCRnbC1mb250LXNpemVzLWZpeGVkLCA2MDApLCBweC10by1yZW0oMjVweCkpLFxuICA3MDA6IGNsYW1wLWJldHdlZW4obWFwLmdldCgkZ2wtZm9udC1zaXplcy1maXhlZCwgNzAwKSwgcHgtdG8tcmVtKDMwcHgpKSxcbiAgODAwOiBjbGFtcC1iZXR3ZWVuKG1hcC5nZXQoJGdsLWZvbnQtc2l6ZXMtZml4ZWQsIDgwMCksIHB4LXRvLXJlbSgzNnB4KSksXG4pO1xuXG4vLyBIZWFkaW5nIHZhcmlhYmxlc1xuLy8gTm90IGFsbCBhcmUgY3VycmVudGx5IHVzZWQsIGJ1dCBkb2N1bWVudGVkIGhlcmUgdG8gY2FwdHVyZSBpbnRlbnRcbiRnbC1mb250LWhlYWRpbmc6ICRnbC1yZWd1bGFyLWZvbnQ7XG4kZ2wtZm9udC13ZWlnaHQtaGVhZGluZzogNjAwO1xuJGdsLWxldHRlci1zcGFjaW5nLWhlYWRpbmc6IGluaGVyaXQ7XG4kZ2wtbGV0dGVyLXNwYWNpbmctaGVhZGluZy1yZWR1Y2VkOiAtMC4wMWVtO1xuJGdsLWxpbmUtaGVpZ2h0LWhlYWRpbmc6IDEuMjU7XG4kZ2wtbGluZS1oZWlnaHQtaGVhZGluZy1kaXNwbGF5OiAxLjEyNTtcbiRnbC1tYi1oZWFkaW5nOiAkZ2wtc3BhY2luZy1zY2FsZS01O1xuJGdsLW1iLWhlYWRpbmctZGlzcGxheTogJGdsLXNwYWNpbmctc2NhbGUtNjtcbiRnbC10ZXh0LWNvbG9yLWhlYWRpbmc6ICRnbC10ZXh0LWNvbG9yO1xuLy8gTm90IHlldCBzdXBwb3J0ZWQsIGJ1dCB3ZSdsbCBiZSByZWFkeVxuJGdsLXRleHQtd3JhcC1oZWFkaW5nOiBwcmV0dHk7XG5cbi8vIEVORCBOZXcgVUkgdHlwZSBzY2FsZVxuXG4vLyBVSSB0eXBlc2NhbGVcblxuLy8gZGVmYXVsdCAobWluLXdpZHRoOiAwKVxuJGdsLWZvbnQtc2l6ZTogcHgtdG8tcmVtKDE0cHgpO1xuXG4kZ2wtZm9udC1zaXplLWgtZGlzcGxheTogcHgtdG8tcmVtKDI4cHgpO1xuJGdsLWZvbnQtc2l6ZS1oMTogcHgtdG8tcmVtKDIzcHgpO1xuJGdsLWZvbnQtc2l6ZS1oMjogcHgtdG8tcmVtKDE5cHgpO1xuXG4vLyBicmVha3BvaW50IChtaW4td2lkdGg6IDc2OHB4KVxuJGdsLWZvbnQtc2l6ZS1oLWRpc3BsYXktbWQ6IHB4LXRvLXJlbSgzMXB4KTtcbiRnbC1mb250LXNpemUtaDEtbWQ6IHB4LXRvLXJlbSgyNXB4KTtcbiRnbC1mb250LXNpemUtaDItbWQ6IHB4LXRvLXJlbSgyMHB4KTtcblxuLy8gYnJlYWtwb2ludCAobWluLXdpZHRoOiAxMjAwcHgpXG4kZ2wtZm9udC1zaXplLWgtZGlzcGxheS14bDogcHgtdG8tcmVtKDQ1cHgpO1xuJGdsLWZvbnQtc2l6ZS1oMS14bDogcHgtdG8tcmVtKDMycHgpO1xuJGdsLWZvbnQtc2l6ZS1oMi14bDogcHgtdG8tcmVtKDIzcHgpO1xuXG4vLyBNYXJrZG93biB0eXBlc2NhbGVcblxuLy8gZGVmYXVsdCAobWluLXdpZHRoOiAwKVxuJGdsLWZvbnQtc2l6ZS1tYXJrZG93bjogcHgtdG8tcmVtKDE2cHgpO1xuJGdsLWZvbnQtc2l6ZS1tYXJrZG93bi1zbTogcHgtdG8tcmVtKDE0cHgpO1xuXG4kZ2wtZm9udC1zaXplLW1hcmtkb3duLWgxOiBweC10by1yZW0oMjhweCk7XG4kZ2wtZm9udC1zaXplLW1hcmtkb3duLWgyOiBweC10by1yZW0oMjNweCk7XG4kZ2wtZm9udC1zaXplLW1hcmtkb3duLWgzOiBweC10by1yZW0oMTlweCk7XG5cbi8vIGJyZWFrcG9pbnQgKG1pbi13aWR0aDogNzY4cHgpXG4kZ2wtZm9udC1zaXplLW1hcmtkb3duLWgxLW1kOiBweC10by1yZW0oMzFweCk7XG4kZ2wtZm9udC1zaXplLW1hcmtkb3duLWgyLW1kOiBweC10by1yZW0oMjVweCk7XG4kZ2wtZm9udC1zaXplLW1hcmtkb3duLWgzLW1kOiBweC10by1yZW0oMjBweCk7XG5cbi8vIGJyZWFrcG9pbnQgKG1pbi13aWR0aDogMTIwMHB4KVxuJGdsLWZvbnQtc2l6ZS1tYXJrZG93bi1oMS14bDogcHgtdG8tcmVtKDQ1cHgpO1xuJGdsLWZvbnQtc2l6ZS1tYXJrZG93bi1oMi14bDogcHgtdG8tcmVtKDMycHgpO1xuJGdsLWZvbnQtc2l6ZS1tYXJrZG93bi1oMy14bDogcHgtdG8tcmVtKDIzcHgpO1xuXG4vLyBDb21wYWN0IG1hcmtkb3duIHR5cGVzY2FsZVxuXG4vLyBkZWZhdWx0IChtaW4td2lkdGg6IDApXG4kZ2wtZm9udC1zaXplLWNvbXBhY3QtbWFya2Rvd24taDE6IHB4LXRvLXJlbSgxOXB4KTtcblxuLy8gbWVkaWEtbWQ6IG1pbi13aWR0aDogNzY4cHhcbiRnbC1mb250LXNpemUtY29tcGFjdC1tYXJrZG93bi1oMS1tZDogcHgtdG8tcmVtKDIwcHgpO1xuXG4vLyBtZWRpYSB4bCAobWluLXdpZHRoOiAxMjAwcHgpXG4kZ2wtZm9udC1zaXplLWNvbXBhY3QtbWFya2Rvd24taDEteGw6IHB4LXRvLXJlbSgyM3B4KTtcblxuJGJvcmRlci1jb2xvcjogJGdsLWJvcmRlci1jb2xvci1kZWZhdWx0ICFkZWZhdWx0O1xuXG4vLyB1c2UgcHggZm9yIGJvcmRlcnMgcmF0aGVyIHRoYW4gcmVtXG4vLyB3ZSBkb24ndCB3YW50IGJvcmRlcnMgdG8gc2NhbGUgd2l0aCBmb250IHNpemVcbi8vIDFweCBjYW4gZW5kIHVwIGJlaW5nIHJvdW5kZWQgdG8gMCBhZnRlclxuLy8gY29udmVyc2lvbiB0by9mcm9tIHJlbVxuJGdsLWJvcmRlci1zaXplLTE6IDFweDtcbiRnbC1ib3JkZXItc2l6ZS0yOiAycHg7XG4kZ2wtYm9yZGVyLXNpemUtMzogM3B4O1xuJGdsLWJvcmRlci1zaXplLTQ6IDRweDtcbiRnbC1ib3JkZXItc2l6ZS01OiA1cHg7XG4kZ2wtYm9yZGVyLXNpemUtODogOHB4O1xuXG4vLyBib3JkZXIgcm91bmRuZXNzXG4kZ2wtYm9yZGVyLXJhZGl1cy1zbWFsbDogJGdsLXNwYWNpbmctc2NhbGUtMTtcbiRnbC1ib3JkZXItcmFkaXVzLWJhc2U6ICRnbC1zcGFjaW5nLXNjYWxlLTI7XG4kZ2wtYm9yZGVyLXJhZGl1cy1sYXJnZTogJGdsLXNwYWNpbmctc2NhbGUtMztcbiRnbC1ib3JkZXItcmFkaXVzLTY6ICRnbC1zcGFjaW5nLXNjYWxlLTY7XG4kZ2wtYm9yZGVyLXJhZGl1cy03OiAkZ2wtc3BhY2luZy1zY2FsZS03O1xuXG4vLyBjb21wb25lbnQgaGVpZ2h0XG4kZ2wtYnV0dG9uLXNtYWxsLXNpemU6IHB4LXRvLXJlbSgyNHB4KTtcbiRnbC1idXR0b24tbWVkaXVtLXNpemU6IHB4LXRvLXJlbSgzMnB4KTtcblxuLy8gdHJhbnNpdGlvbiBwYXJhbWV0ZXJzXG4kZ2wtdHJhbnNpdGlvbi1kdXJhdGlvbi1zbG93OiAwLjRzO1xuJGdsLXRyYW5zaXRpb24tZHVyYXRpb24tbWVkaXVtOiAwLjJzO1xuJGdsLXRyYW5zaXRpb24tZHVyYXRpb24tZmFzdDogMC4xcztcblxuLy8gQW5pbWF0aW9uIGVhc2luZ3NcbiRnbC1lYXNpbmctbGluZWFyOiBsaW5lYXI7XG4kZ2wtZWFzaW5nLWRlZmF1bHQ6IGVhc2U7XG4kZ2wtZWFzaW5nLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuMjIsIDAuNjEsIDAuMzYsIDEpO1xuXG4vLyBGb2N1cyByaW5nXG4kb3V0bGluZS1vZmZzZXQ6IDFweDtcbiRvdXRsaW5lLXdpZHRoOiAycHg7XG4kb3V0bGluZTogI3skb3V0bGluZS1vZmZzZXQgKyAkb3V0bGluZS13aWR0aH07XG4kZm9jdXMtcmluZzpcbiAgMCAwIDAgJG91dGxpbmUtb2Zmc2V0IHZhcigtLWdsLWZvY3VzLXJpbmctaW5uZXItY29sb3IpLFxuICAwIDAgMCAjeyRvdXRsaW5lLW9mZnNldCArICRvdXRsaW5lLXdpZHRofSB2YXIoLS1nbC1mb2N1cy1yaW5nLW91dGVyLWNvbG9yKTtcbiRmb2N1cy1yaW5nLWluc2V0OlxuICBpbnNldCAwIDAgMCAjeyRvdXRsaW5lLXdpZHRoICsgJG91dGxpbmUtb2Zmc2V0fSB2YXIoLS1nbC1mb2N1cy1yaW5nLWlubmVyLWNvbG9yKSxcbiAgaW5zZXQgMCAwIDAgJG91dGxpbmUtb2Zmc2V0IHZhcigtLWdsLWZvY3VzLXJpbmctaW5uZXItY29sb3IpO1xuJGZvY3VzLXJpbmctb3V0bGluZTogJG91dGxpbmUtd2lkdGggc29saWQgdmFyKC0tZ2wtZm9jdXMtcmluZy1vdXRlci1jb2xvcik7XG5cbi8vIFRvYXN0c1xuJHRvYXN0LW1heC13aWR0aDogcHgtdG8tcmVtKDU4NnB4KTtcbiR0b2FzdC1wYWRkaW5nLXJpZ2h0OiBweC10by1yZW0oNDJweCk7XG5cbi8vIENoYXJ0IHRvb2x0aXBcbiRjaGFydC10b29sdGlwLW1heC13aWR0aDogcHgtdG8tcmVtKDUxMnB4KTtcblxuJGdsLWljb24tY2hldnJvbi1sZWZ0OiAnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUuMjkzIDcuMjkzYTEgMSAwIDAgMCAwIDEuNDE0bDMgM2ExIDEgMCAwIDAgMS40MTQtMS40MTRMNy40MTQgOGwyLjI5My0yLjI5M2ExIDEgMCAwIDAtMS40MTQtMS40MTRsLTMgM3pcIi8+PC9zdmc+JztcbiRnbC1pY29uLWNoZXZyb24tcmlnaHQ6ICdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTAuNzA3IDcuMjkzYTEgMSAwIDAgMSAwIDEuNDE0bC0zIDNhMSAxIDAgMCAxLTEuNDE0LTEuNDE0TDguNTg2IDggNi4yOTMgNS43MDdhMSAxIDAgMCAxIDEuNDE0LTEuNDE0bDMgM3pcIi8+PC9zdmc+JztcbiRnbC1pY29uLWNoZXZyb24tZG93bjogJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgdmlld0JveD1cIjAgMCAxNiAxNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk03LjI5MyAxMC43MDdhMSAxIDAgMCAwIDEuNDE0IDBsMy0zYTEgMSAwIDAgMC0xLjQxNC0xLjQxNEw4IDguNTg2IDUuNzA3IDYuMjkzYTEgMSAwIDAgMC0xLjQxNCAxLjQxNGwzIDN6XCIvPjwvc3ZnPic7XG4kZ2wtaWNvbi1zZWxlY3QtY2hldnJvbi1kb3duOiAnZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD1cIjhcIiBoZWlnaHQ9XCI1XCIgdmlld0JveD1cIjAgMCA4IDVcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiUzRSUzQ3BhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTAuMjE5NjcgMC4yMTk2N0MwLjUxMjU2MyAtMC4wNzMyMjMyIDAuOTg3NDM3IC0wLjA3MzIyMzIgMS4yODAzMyAwLjIxOTY3TDQgMi45MzkzNEw2LjcxOTY3IDAuMjE5NjdDNy4wMTI1NiAtMC4wNzMyMjMgNy40ODc0NCAtMC4wNzMyMjI5IDcuNzgwMzMgMC4yMTk2N0M4LjA3MzIyIDAuNTEyNTYzIDguMDczMjIgMC45ODc0MzcgNy43ODAzMyAxLjI4MDMzTDQuNTMwMzMgNC41MzAzM0M0LjIzNzQ0IDQuODIzMjIgMy43NjI1NiA0LjgyMzIyIDMuNDY5NjcgNC41MzAzM0wwLjIxOTY3IDEuMjgwMzNDLTAuMDczMjIzMyAwLjk4NzQzNyAtMC4wNzMyMjMzIDAuNTEyNTYzIDAuMjE5NjcgMC4yMTk2N1pcIiBmaWxsPVwiJTIzNjY2NjY2XCIvJTNFJTNDL3N2ZyUzRSUwQSc7XG4kZ2wtaWNvbi1jaGVjazogJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9XCIxMFwiIGhlaWdodD1cIjhcIiB2aWV3Qm94PVwiMCAwIDEwIDhcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiUzRSUzQ3BhdGggZD1cIk0wLjc1IDQuNzYyODlMMy4xNTMxMiA3LjI0Njc4TDkuMjUgMS4xNDk5XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8lM0UlM0Mvc3ZnJTNFJTBBJztcbiRnbC1pY29uLWluZGV0ZXJtaW5hdGU6ICdkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPVwiMTBcIiBoZWlnaHQ9XCIyXCIgdmlld0JveD1cIjAgMCAxMCAyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIlM0UlM0NwYXRoIGQ9XCJNMS43NSAxSDguMjVcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLyUzRSUzQy9zdmclM0UlMEEnO1xuJGdsLWljb24tcmFkaW86ICdkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPVwiNlwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDYgNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiJTNFJTNDY2lyY2xlIGN4PVwiM1wiIGN5PVwiM1wiIHI9XCIzXCIgZmlsbD1cIndoaXRlXCIvJTNFJTNDL3N2ZyUzRSUwQSc7XG5cbi8vIEljb25zXG4kZGVmYXVsdC1pY29uLXNpemU6IHB4LXRvLXJlbSgxNnB4KTtcbiRnbC1pY29uLXNpemVzOiA4IDEyIDE0IDE2IDI0IDMyIDQ4IDcyO1xuXG4vLyBEcm9wZG93bnNcbiRnbC1kcm9wZG93bi13aWR0aDogcHgtdG8tcmVtKDI0MHB4KTtcbiRnbC1uZXctZHJvcGRvd24tbWluLXdpZHRoOiBweC10by1yZW0oMjQ4cHgpO1xuJGdsLW5ldy1kcm9wZG93bi1tYXgtd2lkdGg6IHB4LXRvLXJlbSg0NTZweCk7XG4kZ2wtZHJvcGRvd24td2lkdGgtbmFycm93OiBweC10by1yZW0oMTYwcHgpO1xuJGdsLWRyb3Bkb3duLXdpZHRoLXdpZGU6IHB4LXRvLXJlbSg0MDBweCk7XG4kZ2wtbWF4LWRyb3Bkb3duLW1heC1oZWlnaHQ6IHB4LXRvLXJlbSgzMTJweCk7XG5cbi8vIEJyb2FkY2FzdCBtZXNzYWdlc1xuJGdsLWJyb2FkY2FzdC1tZXNzYWdlLW5vdGlmaWNhdGlvbi1tYXgtd2lkdGg6IHB4LXRvLXJlbSgzMDBweCk7XG5cbi8vIE1vZGFsIFdpZHRoc1xuJGdsLW1vZGFsLXNtYWxsLXdpZHRoOiBweC10by1yZW0oNTEycHgpO1xuJGdsLW1vZGFsLW1lZGl1bS13aWR0aDogcHgtdG8tcmVtKDc2OHB4KTtcbiRnbC1tb2RhbC1sYXJnZS13aWR0aDogcHgtdG8tcmVtKDk5MHB4KTtcblxuLy8gTW9kYWwgYm9vdHN0cmFwIHZhcmlhYmxlc1xuJG1vZGFsLWhlYWRlci1ib3JkZXItY29sb3I6ICRnbC1ib3JkZXItY29sb3Itc3Ryb25nO1xuJG1vZGFsLWZvb3Rlci1ib3JkZXItY29sb3I6ICRnbC1ib3JkZXItY29sb3Itc3Ryb25nO1xuJG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0OiAkZ2wtbGluZS1oZWlnaHQtMjA7XG4kbW9kYWwtYmFja2Ryb3AtYmc6ICMwMDA7XG4kbW9kYWwtYmFja2Ryb3Atb3BhY2l0eTogMC42NDtcblxuLy8gQm9vdHN0cmFwIG92ZXJyaWRlc1xuLy8gdGhlc2Ugc2hvdWxkIGlkZWFsbHkgYmUgbW92ZWQgZnVydGhlciB1cCBpbiB0aGUgZmlsZSB0byB0aGUgY29tcG9lbnQtcmVsZXZhbnQgc2VjdGlvbnNcbi8vIGJ1dCB0aGV5IGNhbiB3YWl0IGhlcmUgZm9yIG5vd1xuJGJvZHktY29sb3I6ICRnbC10ZXh0LWNvbG9yICFkZWZhdWx0O1xuJGVuYWJsZS12YWxpZGF0aW9uLWljb25zOiBmYWxzZTtcblxuLy8gTm90IG1vdmVkIHRvIGEgZGVzaWduIHRva2VuIGFzIGl0J3MgYSB2YWd1ZSBCb290c3RyYXAgdmFyaWFibGUgdGhhdCBtaWdodCBoYXZlIGZhci1yZWFjaGluZywgdW5pbnRlbmRlZCBjb25zZXF1ZW5jZXMuXG4vLyBJZGVhbGx5LCB0aGlzIHZhcmlhYmxlIHdvdWxkIGp1c3QgYmUgcmVtb3ZlZCBvbmNlIHdlIGtub3cgaXQgaXMgbm90IHVzZWQgYW55d2hlcmUuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGdpdGxhYi9uby1nbC1kZXByZWNhdGVkLWRlc2lnbi10b2tlbnMgKi9cbiRzZWNvbmRhcnk6ICRncmF5LTUwO1xuJHN1Y2Nlc3M6ICRnbC10ZXh0LWNvbG9yLXN1Y2Nlc3M7XG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGdpdGxhYi9uby1nbC1kZXByZWNhdGVkLWRlc2lnbi10b2tlbnMgKi9cbiRpbmZvOiAkYmx1ZS01MDA7XG4kd2FybmluZzogJGdsLXRleHQtY29sb3Itd2FybmluZztcbiRkYW5nZXI6ICRnbC10ZXh0LWNvbG9yLWRhbmdlcjtcblxuJGZvbnQtd2VpZ2h0LWJvbGQ6ICRnbC1mb250LXdlaWdodC1ib2xkO1xuXG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZjogJGdsLXJlZ3VsYXItZm9udCAhZGVmYXVsdDtcbiRmb250LWZhbWlseS1tb25vc3BhY2U6ICRnbC1tb25vc3BhY2UtZm9udCAhZGVmYXVsdDtcblxuJGgxLWZvbnQtc2l6ZTogJGdsLWZvbnQtc2l6ZSAqIDIuNTtcbiRoMi1mb250LXNpemU6ICRnbC1mb250LXNpemUgKiAyO1xuJGgzLWZvbnQtc2l6ZTogJGdsLWZvbnQtc2l6ZSAqIDEuNzU7XG4kaDQtZm9udC1zaXplOiAkZ2wtZm9udC1zaXplICogMS41O1xuJGg1LWZvbnQtc2l6ZTogJGdsLWZvbnQtc2l6ZSAqIDEuMjU7XG4kaDYtZm9udC1zaXplOiAkZ2wtZm9udC1zaXplO1xuXG4kc3BhY2VyOiAkZ3JpZC1zaXplO1xuJHNwYWNlcnM6IChcbiAgMTogJGdsLXNwYWNpbmctc2NhbGUtMixcbiAgMjogJGdsLXNwYWNpbmctc2NhbGUtMyxcbiAgMzogJGdsLXNwYWNpbmctc2NhbGUtNSxcbiAgNDogJGdsLXNwYWNpbmctc2NhbGUtNixcbiAgNTogJGdsLXNwYWNpbmctc2NhbGUtNyxcbiAgNjogJGdsLXNwYWNpbmctc2NhbGUtOCxcbiAgNzogJGdsLXNwYWNpbmctc2NhbGUtOSxcbiAgODogJGdsLXNwYWNpbmctc2NhbGUtMTAsXG4gIDk6ICRnbC1zcGFjaW5nLXNjYWxlLTExLFxuKTtcblxuJHRhYmxlLWFjY2VudC1iZzogdmFyKC0tZ2wtYmFja2dyb3VuZC1jb2xvci1zdWJ0bGUpO1xuJGNhcmQtYm9yZGVyLWNvbG9yOiAkZ2wtYm9yZGVyLWNvbG9yLWRlZmF1bHQ7XG4kY2FyZC1jYXAtYmc6ICRnbC1iYWNrZ3JvdW5kLWNvbG9yLXN1YnRsZSAhZGVmYXVsdDtcblxuLy8gRm9ybSBpbnB1dCBzaXplc1xuJGdsLWZvcm0taW5wdXQtc2l6ZXM6IChcbiAgeHM6ICRncmlkLXNpemUgKiAxMCxcbiAgc206ICRncmlkLXNpemUgKiAyMCxcbiAgbWQ6ICRncmlkLXNpemUgKiAzMCxcbiAgbGc6ICRncmlkLXNpemUgKiA0MCxcbiAgeGw6ICRncmlkLXNpemUgKiA3MCxcbik7XG5cbiRwb3BvdmVyLWFycm93LXdpZHRoOiAwLjVyZW07XG4kcG9wb3Zlci1hcnJvdy1oZWlnaHQ6IDAuMjVyZW07XG4kcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjogJGdsLWJvcmRlci1jb2xvci1kZWZhdWx0O1xuXG4kdG9vbHRpcC1vcGFjaXR5OiAxO1xuIiwiQGltcG9ydCAnQGdpdGxhYi91aS9zcmMvdG9rZW5zL2J1aWxkL3Njc3MvdG9rZW5zJztcbkBpbXBvcnQgJ0BnaXRsYWIvdWkvc3JjL3Njc3MvdmFyaWFibGVzJztcblxuLypcbiAqIExheW91dFxuICovXG4kZ3JpZC1zaXplOiA4cHg7XG4kcmlnaHQtc2lkZWJhci1jb2xsYXBzZWQtd2lkdGg6IDYycHg7XG4kcmlnaHQtc2lkZWJhci13aWR0aDogMjkwcHg7XG4kcmlnaHQtc2lkZWJhci1pbm5lci13aWR0aDogMjUwcHg7XG4kd2lraS1zaWRlYmFyLWlubmVyLXdpZHRoOiAyMjBweDtcbiRzaWRlYmFyLWJyZWFrcG9pbnQ6IDEwMjRweDtcbiRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzO1xuJHRvZ2dsZS1zaWRlYmFyLWhlaWdodDogNDhweDtcbiRzdXBlci1zaWRlYmFyLXdpZHRoOiAxNXJlbTtcbiRzdXBlci1zaWRlYmFyLXotaW5kZXg6IDYwMDtcbiRzdXBlci1zaWRlYmFyLXNraXAtdG8tei1pbmRleDogNjAxO1xuJHN1cGVyLXNpZGViYXItb3ZlcmxheS16LWluZGV4OiA1OTk7XG4kc3VwZXItc2lkZWJhci1uYXYtZmxheW91dC1tZW51LXotaW5kZXg6IDgwMDtcbiRzdXBlci1zaWRlYmFyLW5hdi1pdGVtLW1lbnUtei1pbmRleDogJHN1cGVyLXNpZGViYXItbmF2LWZsYXlvdXQtbWVudS16LWluZGV4ICsgMTtcbiRzdXBlci1zaWRlYmFyLW5hdi1pdGVtLXotaW5kZXg6ICRzdXBlci1zaWRlYmFyLW5hdi1pdGVtLW1lbnUtei1pbmRleCArIDE7XG4kZmxhc2gtei1pbmRleDogMjUxO1xuJHNpZGViYXItei1pbmRleDogJGZsYXNoLXotaW5kZXg7XG4vLyBXaGVuIHJlbmRlcmVkIGFib3ZlIHRoZSBzdGF0aWMgcGFuZWxcbi8vIHNldCB0aGUgei1pbmRleCB0byArMSBvZiAkZmxhc2gtei1pbmRleCB0byBjbGVhciBmbGFzaCBtZXNzYWdlc1xuLy8gdGhhdCBtaWdodCBiZSBkaXNwbGF5ZWQgaW4gdGhlIHBhZ2UgYW5kIHRoYXQgaGF2ZSBhIHotaW5kZXggb2YgMjUxXG4kZHluYW1pYy1wYW5lbC16LWluZGV4OiAkZmxhc2gtei1pbmRleCArIDE7XG4kcGFuZWwtaGVhZGVyLWlubmVyLXotaW5kZXg6IDk5O1xuLy8gVGhlIER1byBjaGF0IHN1cmZhY2Ugc2l0cyBhdCA5OTksIHNvIHRoZSBBSSBwYW5lbCBoZWFkZXIgaGFzIHRvIGNsZWFyIGl0XG4vLyBvciBjaGF0IGNvbnRlbnQgc3dhbGxvd3MgY2xpY2tzIG9uIHRoZSBoZWFkZXIncyBtZW51cy5cbiRhaS1wYW5lbC1oZWFkZXItaW5uZXItei1pbmRleDogMTAwMDtcbiRiYXNlLWxheW91dC1zdGlja3ktaGVhZGVyLXotaW5kZXg6ICRwYW5lbC1oZWFkZXItaW5uZXItei1pbmRleCAtIDE7XG4kcGFuZWwtaGVhZGVyLWlubmVyLWhlaWdodDogMi4yNXJlbTsgLy89IDM2cHhcbiR0b3AtYmFyLXotaW5kZXg6IDIxMDtcbiRzZXR0aW5ncy1zdGlja3ktaGVhZGVyLWhlaWdodDogM3JlbTtcbiRzZXR0aW5ncy1zdGlja3ktaGVhZGVyLXotaW5kZXg6IDk4O1xuJHNldHRpbmdzLXN0aWNreS1mb290ZXItaGVpZ2h0OiAyLjVyZW07XG4kc2V0dGluZ3Mtc3RpY2t5LWZvb3Rlci16LWluZGV4OiAjeyRzZXR0aW5ncy1zdGlja3ktaGVhZGVyLXotaW5kZXggKyAxfTtcbiRwYW5lbGVkLWxheW91dC11bHRyYS13aWRlLWJyZWFrcG9pbnQ6IDI1NjBweDtcblxuLyoqXG4gIPCfmqggRG8gbm90IHVzZSB0aGlzIHNwYWNpbmcgc2NhbGUg4oCUIGl0IGlzIGRlcHJlY2F0ZWQgYW5kIGJlaW5nIHJlbW92ZWQuIPCfmqhcbiAgU2VlIGh0dHBzOi8vZ2l0bGFiLmNvbS9naXRsYWItb3JnL2dpdGxhYi9pc3N1ZXMvMzY4NTcgZm9yIG1vcmUgZGV0YWlscy5cblxuICBJbnN0ZWFkLCBpZiB5b3UgbmVlZCBhIHNwYWNpbmcgY2xhc3MsIGFkZCBpdCB0byBhcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2ZyYW1ld29yay9jb21tb24uc2NzcyxcbiAgdXNpbmcgdGhlIGZvbGxvd2luZyB2YWx1ZXMuXG5cbiAgICAkZ2wtc3BhY2luZy1zY2FsZS0wOiAwO1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTE6IDJweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS0yOiA0cHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtMzogOHB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTQ6IDEycHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtNTogMTZweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS02OiAyNHB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTc6IDMycHg7XG4gICAgJGdsLXNwYWNpbmctc2NhbGUtODogNDBweDtcbiAgICAkZ2wtc3BhY2luZy1zY2FsZS05OiA0OHB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTEwOiA1NnB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTExOiA2NHB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTEyOiA4MHB4O1xuICAgICRnbC1zcGFjaW5nLXNjYWxlLTEzOiA5NnB4O1xuXG4gIEUuZy4sIGEgcGFkZGluZyB0b3Agb2YgOTZweCBjYW4gYmUgYWRkZWQgdXNpbmc6XG4gIC5nbC1zaGltLXB0LTEzIHtcbiAgICBwYWRkaW5nLXRvcDogOTZweDtcbiAgfVxuXG4gIFBsZWFzZSB1c2UgLXNoaW0tIHNvIGl0IGNhbiBiZSBkaWZmZXJlbnRpYXRlZCBmcm9tIHRoZSBvbGQgc2NhbGUgY2xhc3Nlcy5cblxuICBUaGVzZSB3aWxsIGJlIHJlcGxhY2VkIHdoZW4gdGhlIEdpdGxhYiBVSSB1dGlsaXRpZXMgYXJlIGluY2x1ZGVkLlxuKiovXG4kc3BhY2luZy1zY2FsZTogKFxuICAwOiAwLFxuICAxOiAjezAuNSAqICRncmlkLXNpemV9LFxuICAyOiAkZ3JpZC1zaXplLFxuICAzOiAjezIgKiAkZ3JpZC1zaXplfSxcbiAgNDogI3szICogJGdyaWQtc2l6ZX0sXG4gIDU6ICN7NCAqICRncmlkLXNpemV9XG4pO1xuXG4vKiBXaWxsIGJlIG1vdmVkIHRvIEBnaXRsYWIvdWkgYnkgaHR0cHM6Ly9naXRsYWIuY29tL2dpdGxhYi1vcmcvZ2l0bGFiLXNlcnZpY2VzL2Rlc2lnbi5naXRsYWIuY29tLy0vaXNzdWVzLzI3OTIgKi9cbiRnbC1zcGFjaW5nLXNjYWxlLTQ4OiA0OCAqICRncmlkLXNpemU7XG4kZ2wtc3BhY2luZy1zY2FsZS03NTogNzUgKiAkZ3JpZC1zaXplO1xuLyogRW5kIGdpdGxhYi11aSMxNzA5ICovXG5cbi8vIENvbG9yIHNjaGVtYVxuJHB1cnBsZTogIzZkNDljYiAhZGVmYXVsdDtcbiRwdXJwbGUtbGlnaHQ6ICNlZGU4ZmIgIWRlZmF1bHQ7XG5cbi8qXG4gKiBUZXh0XG4gKi9cbiRnbC1mb250LXNpemU6IDE0cHg7XG4kZ2wtZm9udC1zaXplLXNtYWxsOiAxMnB4O1xuJGdsLWZvbnQtc2l6ZS1sYXJnZTogMTZweDtcbiRnbC1mb250LXdlaWdodC1ub3JtYWw6IDQwMDtcbiRnbC1mb250LXdlaWdodC1ib2xkOiA2MDA7XG4kZ2wtdGV4dC1jb2xvci10ZXJ0aWFyeTogJGdyYXktNDAwO1xuJGxpbmstY29sb3I6IHZhcigtLWdsLXRleHQtY29sb3ItbGluaykgIWRlZmF1bHQ7XG4kbGluay1ob3Zlci1jb2xvcjogdmFyKC0tZ2wtdGV4dC1jb2xvci1saW5rKSAhZGVmYXVsdDtcbiRnbC1mb250LXNpemUtMTI6IDEycHg7XG4kZ2wtZm9udC1zaXplLTE0OiAxNHB4O1xuJGdsLWZvbnQtc2l6ZS0xNjogMTZweDtcblxuLypcbiAqIExpc3RzXG4gKi9cbiRsaXN0LXRleHQtaGVpZ2h0OiA0MnB4O1xuXG4vKlxuICogQ29kZVxuICovXG4kY29kZS1mb250LXNpemU6IDkwJTtcbiRjb2RlLWxpbmUtaGVpZ2h0OiAxLjY7XG4kY29kZS1mb250LXNpemUtZml4ZWQ6IDEzcHg7XG5cbi8qXG4gKiBUb29sdGlwc1xuICovXG4kdG9vbHRpcC1mb250LXNpemU6IDEycHg7XG5cbi8qXG4gKiBQYWRkaW5nXG4gKi9cbiRnbC1wYWRkaW5nLTQ6IDRweDtcbiRnbC1wYWRkaW5nLTY6IDZweDtcbiRnbC1wYWRkaW5nLTg6IDhweDtcbiRnbC1wYWRkaW5nLTEyOiAxMnB4O1xuJGdsLXBhZGRpbmc6IDE2cHg7XG4kZ2wtcGFkZGluZy0yNDogMjRweDtcbiRnbC1wYWRkaW5nLTMyOiAzMnB4O1xuJGdsLWlucHV0LXBhZGRpbmc6IDEwcHg7XG4kZ2wtdmVydC1wYWRkaW5nOiA2cHg7XG4kZ2wtcGFkZGluZy10b3A6IDEwcHg7XG4kZ2wtc2lkZWJhci1wYWRkaW5nOiAyMnB4O1xuJGlucHV0LWhvcml6b250YWwtcGFkZGluZzogMTJweDtcbiRicm93c2VyLXNjcm9sbGJhci1zaXplOiAxMHB4O1xuXG4vKlxuICogTWlzY1xuICovXG4kaGVhZGVyLWhlaWdodDogY2FsYygzcmVtICsgMXB4KTsgLy89IDQ4cHggKyAxcHggYm9yZGVyXG4kY29udGVudC13cmFwcGVyLXBhZGRpbmc6IDU2cHg7XG4kaGVhZGVyLXppbmRleDogMTAwMDtcbiR6aW5kZXgtZHJvcGRvd24tbWVudTogMzAwO1xuJGlkZS1zdGF0dXNiYXItaGVpZ2h0OiAyNXB4O1xuJGxpbWl0ZWQtbGF5b3V0LXdpZHRoOiAxMDA2cHg7XG4kZml4ZWQtbGF5b3V0LXdpZHRoOiAxMjk2cHg7XG4kd2lraS1jb250ZW50LWRlZmF1bHQtd2lkdGg6IDk0MHB4O1xuJHdpa2ktY29udGVudC1tYXgtd2lkdGg6IDE2MDBweDtcbiRpbW1lcnNpdmUtZWRpdG9yLXRleHQtd2lkdGg6IDc2OHB4O1xuJGNvbnRhaW5lci1tYXJnaW46ICRnbC1wYWRkaW5nO1xuJGNvbnRhaW5lci1tYXJnaW4teGw6ICRnbC1wYWRkaW5nLTI0O1xuJGdsLWJvcmRlci1yYWRpdXMtYmFzZTogMC4yNXJlbTtcbiRnbC1ib3JkZXItcmFkaXVzLWJhc2UtaW5uZXI6IGNhbGMoI3skZ2wtYm9yZGVyLXJhZGl1cy1iYXNlfSAtIDFweCk7XG4kZ2wtYm9yZGVyLXJhZGl1cy1sZzogMC41cmVtO1xuJGdsLWJvcmRlci1yYWRpdXMtbGctaW5uZXI6IGNhbGMoI3skZ2wtYm9yZGVyLXJhZGl1cy1sZ30gLSAxcHgpO1xuJGJvcmRlci1yYWRpdXMtc21hbGw6IDJweDtcbiRib3JkZXItcmFkaXVzLWxhcmdlOiA4cHg7XG4kZGVmYXVsdC1pY29uLXNpemU6IDE2cHg7XG4kYnRuLXNpZGUtbWFyZ2luOiAkZ3JpZC1zaXplO1xuJGdlbmVyYWwtaG92ZXItdHJhbnNpdGlvbi1kdXJhdGlvbjogMTAwbXM7XG4kZ2VuZXJhbC1ob3Zlci10cmFuc2l0aW9uLWN1cnZlOiBsaW5lYXI7XG4kcGVyZm9ybWFuY2UtYmFyLWhlaWdodDogMi41cmVtO1xuJHN5c3RlbS1oZWFkZXItaGVpZ2h0OiAxNnB4O1xuJHN5c3RlbS1mb290ZXItaGVpZ2h0OiAkc3lzdGVtLWhlYWRlci1oZWlnaHQ7XG4kdG9wLWJhci1oZWlnaHQ6IDNyZW07IC8vPSA0OHB4XG4kaG9tZS1wYW5lbC10aXRsZS1yb3ctaGVpZ2h0OiA0OHB4O1xuJGhvbWUtcGFuZWwtYXZhdGFyLW1vYmlsZS1zaXplOiAyNHB4O1xuJGlzc3VhYmxlLXRpdGxlLW1heC13aWR0aDogMzUwcHg7XG4kbWlsZXN0b25lLXRpdGxlLW1heC13aWR0aDogNzVweDtcbiRnbC1saW5lLWhlaWdodDogMTZweDtcbiRnbC1saW5lLWhlaWdodC0xODogMThweDtcbiRnbC1saW5lLWhlaWdodC0yMDogMjBweDtcbiRnbC1saW5lLWhlaWdodC0yNDogMjRweDtcbiRmaWxlLWhlYWRlci1oZWlnaHQ6IDQycHg7XG5cbi8qXG4gKiBNZXJnZSByZXF1ZXN0c1xuICovXG4kbXItc3RpY2t5LWhlYWRlci10aXRsZS1oZWlnaHQ6IG1heCgkZ2wtYnV0dG9uLXNtYWxsLXNpemUsICRnbC1mb250LXNpemUtYmFzZSAqIDEuNSk7XG4kbXItc3RhdGljLXRhYnMtaGVpZ2h0OiAkZ2wtc3BhY2luZy1zY2FsZS05O1xuJG1yLXN0aWNreS10YWJzLWhlaWdodDogJGdsLXNwYWNpbmctc2NhbGUtODtcbiRtci1zdGlja3ktZGVzY3JpcHRpb24tcGFkZGluZzogJGdsLXNwYWNpbmctc2NhbGUtMjtcbiRtci1zdGlja3ktaGVhZGVyLWhlaWdodDogY2FsYygjeyRtci1zdGlja3ktdGFicy1oZWlnaHR9ICsgI3skbXItc3RpY2t5LWhlYWRlci10aXRsZS1oZWlnaHR9ICsgI3skbXItc3RpY2t5LWRlc2NyaXB0aW9uLXBhZGRpbmd9ICsgI3skZ2wtYm9yZGVyLXNpemUtMX0pO1xuJG1yLXJldmlldy1iYXItaGVpZ2h0OiBjYWxjKDJyZW0gKyAxNnB4KTtcblxuLypcbiAqIENhbGN1bGF0ZWQgaGVpZ2h0c1xuICovXG4kY2FsYy1zeXN0ZW0taGVhZGVycy1oZWlnaHQ6IGNhbGModmFyKC0tc3lzdGVtLWhlYWRlci1oZWlnaHQpICsgdmFyKC0tcGVyZm9ybWFuY2UtYmFyLWhlaWdodCkpO1xuJGNhbGMtYXBwbGljYXRpb24tYmFycy1oZWlnaHQ6IGNhbGModmFyKC0taGVhZGVyLWhlaWdodCkgKyAjeyRjYWxjLXN5c3RlbS1oZWFkZXJzLWhlaWdodH0pO1xuJGNhbGMtYXBwbGljYXRpb24taGVhZGVyLWhlaWdodDogY2FsYygjeyRjYWxjLWFwcGxpY2F0aW9uLWJhcnMtaGVpZ2h0fSArIHZhcigtLXRvcC1iYXItaGVpZ2h0KSk7XG4kY2FsYy1hcHBsaWNhdGlvbi1mb290ZXItaGVpZ2h0OiB2YXIoLS1zeXN0ZW0tZm9vdGVyLWhlaWdodCk7XG4kY2FsYy1hcHBsaWNhdGlvbi12aWV3cG9ydC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRjYWxjLWFwcGxpY2F0aW9uLWhlYWRlci1oZWlnaHR9IC0gI3skY2FsYy1hcHBsaWNhdGlvbi1mb290ZXItaGVpZ2h0fSk7XG5cbi8qIHRhbnVraSBsb2dvIGNvbG9ycyAqL1xuJHRhbnVraS1yZWQ6ICNlMjQzMjk7XG4kdGFudWtpLW9yYW5nZTogI2ZjNmQyNjtcbiR0YW51a2kteWVsbG93OiAjZmNhMzI2O1xuXG4vKlxuICogU3RhdGUgY29sb3JzOlxuICovXG4kZ3JlZW4tNTAwLWZvY3VzOiByZ2JhKCRncmVlbi01MDAsIDAuNCk7XG4kZ2wtYnRuLWFjdGl2ZS1iYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTYpO1xuXG4vKlxuICogQ29tbWl0IERpZmYgQ29sb3JzXG4gKi9cbiRsaW5lLWFkZGVkOiAjZWNmZGYwO1xuJGxpbmUtYWRkZWQtZGFyazogI2M3ZjBkMiAhZGVmYXVsdDtcbiRsaW5lLXJlbW92ZWQ6ICNmYmU5ZWI7XG4kbGluZS1yZW1vdmVkLWRhcms6ICNmYWM1Y2QgIWRlZmF1bHQ7XG5cbi8qXG4gKiBUaGUgdHJhbnNwYXJlbnQgY29sb3JzIGFyZSB1c2VkIGluIE1vbmFjbyBlZGl0b3IuIFVzaW5nIGZ1bGwgb3BhY2l0eSBjb2xvcnNcbiAqIHdvdWxkIGhpZGUgb3RoZXIgbGF5ZXJzIChzZWxlY3RlZCB0ZXh0LCBtYXRjaGluZyBicmFja2V0cykuXG4gKlxuICogV2hlbiB0aGUgdHJhbnNwYXJlbnQgY29sb3JzIGdldCBsYXllcmVkIG9uIHdoaXRlIGJhY2tncm91bmQsIHRoZXkgY3JlYXRlIHRoZWlyXG4gKiBmdWxsIG9wYWNpdHkgY291bnRlcnBhcnRzOlxuICpcbiAqICAtIHdoaXRlICsgJGxpbmUtYWRkZWQtdHJhbnNwYXJlbnQgPSAkbGluZS1hZGRlZFxuICogIC0gd2hpdGUgKyAkbGluZS1hZGRlZC10cmFuc3BhcmVudCArICRsaW5lLWFkZGVkLWRhcmstdHJhbnNwYXJlbnQgPSAkbGluZS1hZGRlZC1kYXJrXG4gKlxuICogTW9yZSBkZXRhaWxzOiBodHRwczovL2dpdGxhYi5jb20vZ2l0bGFiLW9yZy9naXRsYWIvLS9tZXJnZV9yZXF1ZXN0cy80MTU1M1xuICovXG4kbGluZS1hZGRlZC10cmFuc3BhcmVudDogcmdiYSgxNjAsIDI0NSwgMTgwLCAwLjIpO1xuJGxpbmUtYWRkZWQtZGFyay10cmFuc3BhcmVudDogcmdiYSg1MSwgMTg4LCA5MCwgMC4yKTtcbiRsaW5lLXJlbW92ZWQtdHJhbnNwYXJlbnQ6IHJnYmEoMjM1LCAxNDUsIDE1NSwgMC4yKTtcbiRsaW5lLXJlbW92ZWQtZGFyay10cmFuc3BhcmVudDogcmdiYSgyNDYsIDUzLCA4NSwgMC4yKTtcbiRsaW5lLW51bWJlci1vbGQ6ICNmOWQ3ZGM7XG4kbGluZS1udW1iZXItbmV3OiAjZGRmYmU2O1xuJGRhcmstZGlmZi1tYXRjaC1iZzogcmdiYSgkd2hpdGUsIDAuMyk7XG4kZGFyay1kaWZmLW1hdGNoLWNvbG9yOiByZ2JhKCR3aGl0ZSwgMC4xKTtcbiRkaWZmLWphZ2dlZC1ib3JkZXItZ3JhZGllbnQtY29sb3I6ICRncmF5LTIwMDtcbiRkaWZmLWphZ2dlZC1iZy1jb2xvcjogdmFyKC0tZ2wtYmFja2dyb3VuZC1jb2xvci1zdWJ0bGUpO1xuXG4vKlxuICogRm9udHNcbiAqIFRoZSAtLWRlZmF1bHQtbW9uby1mb250IGFuZCAtLWRlZmF1bHQtcmVndWxhci1mb250IHZhcmlhYmxlcyBnaXZlIHVzZXJzXG4gKiBhIHdheSB0byBvdmVycmlkZSBvdXIgZm9udCBjaG9pY2VzIGZvciB0aGVtLlxuICovXG4kbW9ub3NwYWNlLWZvbnQ6IHZhcigtLWRlZmF1bHQtbW9uby1mb250LCAnR2l0TGFiIE1vbm8nKSwgJ0pldEJyYWlucyBNb25vJywgJ01lbmxvJywgJ0RlamFWdSBTYW5zIE1vbm8nLCAnTGliZXJhdGlvbiBNb25vJywgJ0NvbnNvbGFzJyxcbiAgJ1VidW50dSBNb25vJywgJ0NvdXJpZXIgTmV3JywgJ2FuZGFsZSBtb25vJywgJ2x1Y2lkYSBjb25zb2xlJywgbW9ub3NwYWNlO1xuJHJlZ3VsYXItZm9udDogdmFyKC0tZGVmYXVsdC1yZWd1bGFyLWZvbnQsICdHaXRMYWIgU2FucycpLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgJ05vdG8gU2FucycsXG4gIFVidW50dSwgQ2FudGFyZWxsLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmLCAnQXBwbGUgQ29sb3IgRW1vamknLCAnU2Vnb2UgVUkgRW1vamknLFxuICAnU2Vnb2UgVUkgU3ltYm9sJywgJ05vdG8gQ29sb3IgRW1vamknO1xuJGdsLW1vbm9zcGFjZS1mb250OiAkbW9ub3NwYWNlLWZvbnQ7XG4kZ2wtcmVndWxhci1mb250OiAkcmVndWxhci1mb250O1xuXG4vKlxuKiBEcm9wZG93bnNcbiovXG4kZHJvcGRvd24td2lkdGg6IDMwMHB4O1xuJGRyb3Bkb3duLW1pbi1oZWlnaHQ6IDQwcHg7XG4kZHJvcGRvd24tbWF4LWhlaWdodDogMzEycHg7XG4kZHJvcGRvd24tbWF4LWhlaWdodC1sZzogNDQ1cHg7XG4kZHJvcGRvd24tdmVydGljYWwtb2Zmc2V0OiA0cHg7XG4kZHJvcGRvd24tdGl0bGUtYnRuLWNvbG9yOiAjYmZiZmJmO1xuJGRyb3Bkb3duLWxvYWRpbmctYmc6IHJnYmEoJHdoaXRlLCAwLjYpO1xuJGRyb3Bkb3duLWZhZGUtbWFzay1oZWlnaHQ6IDMycHg7XG4kZHJvcGRvd24tbWVtYmVyLWZvcm0tY29udHJvbC13aWR0aDogMTYzcHg7XG5cbi8qXG4qIFNpZGViYXJcbiovXG4kc2lkZWJhci10b2dnbGUtaGVpZ2h0OiA2MHB4O1xuJHNpZGViYXItdG9nZ2xlLXdpZHRoOiA0MHB4O1xuJHNpZGViYXItbWlsZXN0b25lLXRvZ2dsZS1ib3R0b20tbWFyZ2luOiAxMHB4O1xuXG4vKlxuKiBCdXR0b25zXG4qL1xuJGJ0bi1hY3RpdmUtZ3JheTogJGdyYXktNTA7XG4kYnRuLWFjdGl2ZS1ncmF5LWxpZ2h0OiAkZ3JheS01MDtcbiRnbC1idG4tcGFkZGluZzogMTBweDtcbiRnbC1idG4tbGluZS1oZWlnaHQ6IDE2cHg7XG4kZ2wtYnRuLXZlcnQtcGFkZGluZzogOHB4O1xuJGdsLWJ0bi1ob3J6LXBhZGRpbmc6IDEycHg7XG4kZ2wtYnRuLXNtYWxsLWZvbnQtc2l6ZTogMTNweDtcbiRnbC1idG4tc21hbGwtbGluZS1oZWlnaHQ6IDE4cHg7XG5cbi8qXG4qIEJhZGdlc1xuKi9cbiRiYWRnZS1iZzogcmdiYSgkYmxhY2ssIDAuMDcpO1xuXG4vKlxuICogIEF3YXJkIGVtb2ppXG4gKi9cbiRhd2FyZC1lbW9qaS1tZW51LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjE3NSk7XG4kYXdhcmQtZW1vamktcG9zaXRpdmUtYWRkLWxpbmVzOiAjYmI5YzEzO1xuJGF3YXJkLWVtb2ppLXdpZHRoOiAzNzZweDtcbiRhd2FyZC1lbW9qaS13aWR0aC14czogOTAlO1xuXG4vKlxuICogU2VhcmNoIEJveFxuICovXG4kc2VhcmNoLWlucHV0LXdpZHRoOiAyMDBweDtcbiRzZWFyY2gtaW5wdXQteGwtd2lkdGg6IDMyMHB4O1xuXG4vKlxuICogIE5vdGVzXG4gKi9cbiRub3RlLXNwYWNpbmctbGVmdDogMi41cmVtO1xuJG5vdGUtc3BhY2luZy1yZXBseS1sZWZ0OiAycmVtO1xuXG4vKlxuKiBCb2FyZHNcbiovXG4kaXNzdWUtYm9hcmRzLWNhcmQtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cbi8qXG4qIEJ1aWxkc1xuKi9cbiRidWlsZHMtbG9nLWJnOiAjMTExO1xuJGpvYi1saW5lLW51bWJlci13aWR0aDogNTBweDtcblxuLypcbiogQ29tbWl0IFBhZ2VcbiovXG4kY29tbWl0LW1heC13aWR0aC1tYXJrZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4kY29tbWl0LW1lc3NhZ2UtdGV4dC1hcmVhLWJnOiByZ2JhKDAsIDAsIDAsIDApO1xuXG4vKlxuKiBGaWxlc1xuKi9cbiRsb2dzLWxpLWNvbG9yOiAjODg4O1xuJGxvZ3MtcC1jb2xvcjogIzMzMztcblxuLypcbiogRm9ybXNcbiovXG4kaW5wdXQtaGVpZ2h0OiAzMnB4O1xuJGlucHV0LWRhbmdlci1iZzogI2YyZGVkZTtcbiRnbC1maWVsZC1mb2N1cy1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuJGdsLWZpZWxkLWZvY3VzLXNoYWRvdy1lcnJvcjogcmdiYSgkcmVkLTUwMCwgMC42KTtcbiRpbnB1dC1zaG9ydC13aWR0aDogMjAwcHg7XG4kaW5wdXQtc2hvcnQtbWQtd2lkdGg6IDI4MHB4O1xuJGlucHV0LW1kLXdpZHRoOiAyNDBweDtcbiRpbnB1dC1sZy13aWR0aDogMzIwcHg7XG5cbi8qXG4qIExhYmVsXG4qL1xuJGxhYmVsLWZvbnQtc2l6ZTogMTJweDtcbiRsYWJlbC1wYWRkaW5nOiA3cHg7XG4kbGFiZWwtYm9yZGVyLXJhZGl1czogMTAwcHg7XG5cbi8qXG4qIEFuaW1hdGlvblxuKi9cbiRmYWRlLWluLWR1cmF0aW9uOiAyMDBtcztcbiRmYWRlLW1hc2stdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xcztcbiRmYWRlLW1hc2stdHJhbnNpdGlvbi1jdXJ2ZTogZWFzZS1pbi1vdXQ7XG5cbi8qXG4qIExvZ2luXG4qL1xuJGxvZ2luLWJyYW5kLWhvbGRlci1jb2xvcjogIzg4ODtcblxuLypcbiogVHlwb2dyYXBoeVxuKi9cbiRib2R5LXRleHQtc2hhZG93OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDEpO1xuXG4vKlxuUGlwZWxpbmUgR3JhcGhcbiovXG4kY2ktYWN0aW9uLWRyb3Bkb3duLWJ1dHRvbi1zaXplOiAyNHB4O1xuJGNpLWFjdGlvbi1kcm9wZG93bi1zdmctc2l6ZTogMTZweDtcblxuLypcbkdpdExhYiBQbGFuc1xuKi9cbiRnbC11bHRpbWF0ZS1wbGFuOiAjZDRhZjM3O1xuJGdsLXByZW1pdW0tcGxhbjogIzkxYTFhYjtcbiRnbC1icm9uemUtcGxhbjogI2NkN2YzMjtcblxuLypcblBlcmZvcm1hbmNlIEJhclxuKi9cbiRwZXJmLWJhci1idWNrZXQtYmc6ICRibGFjaztcbiRwZXJmLWJhci1idWNrZXQtYm94LXNoYWRvdy1mcm9tOiByZ2JhKCR3aGl0ZSwgMC4yKTtcbiRwZXJmLWJhci1idWNrZXQtYm94LXNoYWRvdy10bzogcmdiYSgkYmxhY2ssIDAuMjUpO1xuJHBlcmYtYmFyLWNhbmFyeS10ZXh0OiAkb3JhbmdlLTQwMDtcblxuLypcbkltYWdlIENvbW1lbnRpbmcgY3Vyc29yXG4qL1xuJGltYWdlLWNvbW1lbnQtY3Vyc29yLWxlZnQtb2Zmc2V0OiAxMjtcbiRpbWFnZS1jb21tZW50LWN1cnNvci10b3Atb2Zmc2V0OiAxMjtcblxuLypcblBvcHVwXG4qL1xuJHBvcHVwLXRyaWFuZ2xlLXNpemU6IDE1cHg7XG4kcG9wdXAtdHJpYW5nbGUtYm9yZGVyLXNpemU6IDFweDtcbiRwb3B1cC1ib3gtc2hhZG93LWNvbG9yOiByZ2JhKDkwLCA5MCwgOTAsIDAuMDUpO1xuXG4vKlxuRHJhd2Vyc1xuKi9cbiR3aWRlLWRyYXdlcjogNTAwcHg7XG5cbi8qXG5Nb2RhbHNcbiovXG4kbW9kYWwtYm9keS1oZWlnaHQ6IDgwcHg7XG5cbiRwcmlvcml0eS1sYWJlbC1lbXB0eS1zdGF0ZS13aWR0aDogMTE0cHg7XG5cbi8qXG5Qb3BvdmVyc1xuKi9cbiRwb3BvdmVyLW1heC13aWR0aDogMzg0cHg7XG4kcG9wb3Zlci1ib3gtc2hhZG93OiAwIDJweCAzcHggMXB4ICRncmF5LTEwMDtcblxuLypcbk1lcmdlIHJlcXVlc3RzXG4qL1xuJG1yLXRhYnMtaGVpZ2h0OiA0OHB4O1xuXG4vKlxuQm9hcmQgU3dpbWxhbmVzXG4qL1xuJGJvYXJkLXN3aW1sYW5lcy1oZWFkZXJzLWhlaWdodDogNDhweDtcblxuLypcblNvdXJjZSBFZGl0b3IgdGhlbWUgb3ZlcnJpZGVzXG4qL1xuJHNvdXJjZS1lZGl0b3ItaG92ZXItbGlnaHQtdGV4dC1jb2xvcjogJGdsLWNvbG9yLW5ldXRyYWwtNTA7XG4kc291cmNlLWVkaXRvci1ob3Zlci1kYXJrLXRleHQtY29sb3I6ICRnbC1jb2xvci1uZXV0cmFsLTkwMDtcblxuLyoqXG4gQm9vdHN0cmFwIDQuMi4wIGludHJvZHVjZWQgbmV3IGljb25zIGZvciB2YWxpZGF0aW5nIGZvcm1zLlxuIE91ciBkZXNpZ24gc3lzdGVtIGRvZXMgbm90IHVzZSB0aG9zZSwgc28gd2UgYXJlIGRpc2FibGluZyB0aGVtIGZvciBub3c6XG4gLSBEb2NzOiBodHRwczovL2dldGJvb3RzdHJhcC5jb20vZG9jcy80LjMvY29tcG9uZW50cy9mb3Jtcy8jc2VydmVyLXNpZGVcbiAtIElzc3VlOiBodHRwczovL2dpdGxhYi5jb20vZ2l0bGFiLW9yZy9kZXNpZ24uZ2l0bGFiLmNvbS9pc3N1ZXMvMjQyXG4gKi9cbiRlbmFibGUtdmFsaWRhdGlvbi1pY29uczogZmFsc2U7XG4iLCIvKlxuICogVGhpcyBmaWxlIGlzIG9ubHkgZm9yIG92ZXJyaWRpbmcgQm9vdHN0cmFwIDQgdmFyaWFibGVzLlxuICogUGxlYXNlIGFkZCBhbnkgbmV3IHZhcmlhYmxlcyB0byB2YXJpYWJsZXMuc2Nzc1xuICovXG5cbiRzZWNvbmRhcnk6ICRncmF5LTEwO1xuJGlucHV0LWRpc2FibGVkLWJnOiAkZ3JheS0xMDtcbiRpbnB1dC1ib3JkZXItY29sb3I6ICRncmF5LTQwMDtcbiRpbnB1dC1jb2xvcjogJGdsLXRleHQtY29sb3ItZGVmYXVsdDtcbiRpbnB1dC1mb250LXNpemU6ICRnbC1mb250LXNpemU7XG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZjogJHJlZ3VsYXItZm9udDtcbiRmb250LWZhbWlseS1tb25vc3BhY2U6ICRtb25vc3BhY2UtZm9udDtcbiRidG4tbGluZS1oZWlnaHQ6IDIwcHg7XG4kdGFibGUtYWNjZW50LWJnOiAkZ3JheS0xMDtcbiR0YWJsZS1ib3JkZXItY29sb3I6ICRnbC1ib3JkZXItY29sb3ItZGVmYXVsdDtcbiRjYXJkLWJvcmRlci1jb2xvcjogJGdsLWJvcmRlci1jb2xvci1kZWZhdWx0O1xuJGNhcmQtY2FwLWJnOiAkZ3JheS0xMCAhZGVmYXVsdDtcbiRzdWNjZXNzOiAkZ3JlZW4tNTAwO1xuJGluZm86ICRibHVlLTUwMDtcbiR3YXJuaW5nOiAkb3JhbmdlLTUwMDtcbiRkYW5nZXI6ICRyZWQtNTAwO1xuJHppbmRleC1tb2RhbC1iYWNrZHJvcDogMTA0MDtcbiR6aW5kZXgtZHVvLWNoYXQ6IDEwNDA7XG4kemluZGV4LWR1by1jYWxsb3V0OiA2MDA7XG4kbmF2LWRpdmlkZXItbWFyZ2luLXk6ICgkZ3JpZC1zaXplICogMC41KTtcbiRkcm9wZG93bi1pdGVtLXBhZGRpbmcteTogOHB4O1xuJGRyb3Bkb3duLWl0ZW0tcGFkZGluZy14OiAxMnB4O1xuJHBvcG92ZXItbWF4LXdpZHRoOiAzMDBweDtcbiRwb3BvdmVyLWJvcmRlci13aWR0aDogMXB4O1xuJHBvcG92ZXItYm9yZGVyLWNvbG9yOiAkZ2wtYm9yZGVyLWNvbG9yLWRlZmF1bHQ7XG4kcG9wb3Zlci1ib3gtc2hhZG93OiAwICRib3JkZXItcmFkaXVzLXNtYWxsICRnbC1ib3JkZXItcmFkaXVzLWJhc2UgMCAkZ2wtY29sb3ItYWxwaGEtZGFyay04O1xuJHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I6ICRnbC1jb2xvci1hbHBoYS1kYXJrLTg7XG4kaDEtZm9udC1zaXplOiAxNHB4ICogMi41O1xuJGgyLWZvbnQtc2l6ZTogMTRweCAqIDI7XG4kaDMtZm9udC1zaXplOiAxNHB4ICogMS43NTtcbiRoNC1mb250LXNpemU6IDE0cHggKiAxLjU7XG4kaDUtZm9udC1zaXplOiAxNHB4ICogMS4yNTtcbiRoNi1mb250LXNpemU6IDE0cHg7XG4kaGVhZGluZ3MtY29sb3I6ICRnbC10ZXh0LWNvbG9yLWhlYWRpbmc7XG4kaGVhZGluZ3MtZm9udC13ZWlnaHQ6ICRnbC1mb250LXdlaWdodC1ib2xkO1xuJHNwYWNlcjogJGdyaWQtc2l6ZTtcbiRzcGFjZXJzOiAoXG4gIDA6IDAsXG4gIDE6ICgkc3BhY2VyICogMC41KSxcbiAgMjogKCRzcGFjZXIpLFxuICAzOiAoJHNwYWNlciAqIDIpLFxuICA0OiAoJHNwYWNlciAqIDMpLFxuICA1OiAoJHNwYWNlciAqIDQpLFxuICA2OiAoJHNwYWNlciAqIDUpLFxuICA3OiAoJHNwYWNlciAqIDYpLFxuICA4OiAoJHNwYWNlciAqIDcpLFxuICA5OiAoJHNwYWNlciAqIDgpXG4pO1xuJHRvb2x0aXAtcGFkZGluZy15OiAwLjVyZW07XG4kdG9vbHRpcC1wYWRkaW5nLXg6IDAuNzVyZW07XG4kdG9vbHRpcC1hcnJvdy1oZWlnaHQ6IDAuNXJlbTtcbiR0b29sdGlwLWFycm93LXdpZHRoOiAxcmVtO1xuIiwiQHVzZSAnc2FzczpsaXN0JztcbkB1c2UgJ3Nhc3M6bWFwJztcbkBpbXBvcnQgJ0BnaXRsYWIvdWkvc3JjL3Njc3MvdmFyaWFibGVzJztcblxuLyoqXG4gKiBQcmVmaWxsZWQgbWl4aW5zXG4gKiBNaXhpbnMgd2l0aCBmaXhlZCB2YWx1ZXNcbiAqL1xuXG5AbWl4aW4gc3RyLXRydW5jYXRlZCgkbWF4LXdpZHRoOiA4MiUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xufVxuXG4vKlxuICogQmFzZSBtaXhpbiBmb3IgbGlzdHMgaW4gR2l0TGFiXG4gKi9cbkBtaXhpbiBiYXNpYy1saXN0IHtcbiAgbWFyZ2luOiA1cHggMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICA+IGxpIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICBAYXBwbHkgZ2wtYm9yZGVyLWI7XG4gICAgQGFwcGx5IGdsLWJvcmRlci1iLXN1YnRsZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDA7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBAYXBwbHkgZ2wtYmctc3VidGxlO1xuXG4gICAgICBhIHtcbiAgICAgICAgQGFwcGx5IGdsLWZvbnQtYm9sZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmhpZGUge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmxpZ2h0IHtcbiAgICAgIGEge1xuICAgICAgICBAYXBwbHkgZ2wtdGV4dC1kZWZhdWx0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gd2Via2l0LXByZWZpeCgkcHJvcGVydHksICR2YWx1ZSkge1xuICAjeyctd2Via2l0LScgKyAkcHJvcGVydHl9OiAkdmFsdWU7XG4gICN7JHByb3BlcnR5fTogJHZhbHVlO1xufVxuXG5AbWl4aW4ga2V5ZnJhbWVzKCRhbmltYXRpb24tbmFtZSkge1xuICBAa2V5ZnJhbWVzICN7JGFuaW1hdGlvbi1uYW1lfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGluY2x1ZGUta2V5ZnJhbWVzKCRhbmltYXRpb24tbmFtZSkge1xuICBAaW5jbHVkZSB3ZWJraXQtcHJlZml4KGFuaW1hdGlvbi1uYW1lLCAkYW5pbWF0aW9uLW5hbWUpO1xuICBAaW5jbHVkZSBrZXlmcmFtZXMoJGFuaW1hdGlvbi1uYW1lKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLypcbiAqIE1peGluIGZvciBzdGF0dXMgYmFkZ2VzLCBhcyB1c2VkIGZvciBwaXBlbGluZXMgYW5kIGNvbW1pdCBzaWduYXR1cmVzXG4gKi9cbkBtaXhpbiBzdGF0dXMtY29sb3IoJGNvbG9yLWxpZ2h0LCAkY29sb3ItbWFpbiwgJGNvbG9yLWRhcmspIHtcbiAgY29sb3I6ICRjb2xvci1tYWluO1xuICBib3JkZXItY29sb3I6ICRjb2xvci1tYWluO1xuXG4gICY6bm90KHNwYW4pOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItbGlnaHQ7XG4gICAgY29sb3I6ICRjb2xvci1kYXJrO1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWRhcms7XG4gIH1cbn1cblxuQG1peGluIGZhZGUoJGdyYWRpZW50LWRpcmVjdGlvbiwgJGdyYWRpZW50LWNvbG9yKSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogMjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEycHg7XG4gIHdpZHRoOiA0M3B4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvICRncmFkaWVudC1kaXJlY3Rpb24sXG4gICRncmFkaWVudC1jb2xvciA0NSUsXG4gIHJnYmEoJGdyYWRpZW50LWNvbG9yLCAwLjQpKTtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuXG4gICY6aG92ZXIge1xuICAgIEBhcHBseSBnbC1mb2N1cztcbiAgfVxuXG4gICYuc2Nyb2xsaW5nIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zcztcbiAgfVxuXG4gIHN2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTJweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gIH1cbn1cblxuQG1peGluIHNjcm9sbGluZy1saW5rcygpIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbkBtaXhpbiB0cmlhbmdsZSgkY29sb3IsICRib3JkZXItY29sb3IsICRzaXplLCAkYm9yZGVyLXNpemUpIHtcbiAgJjo6YmVmb3JlLFxuICAmOjphZnRlciB7XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBib3JkZXI6IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGhlaWdodDogMDtcbiAgICB3aWR0aDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGJvcmRlci1jb2xvcjtcbiAgICBib3JkZXItd2lkdGg6ICgkc2l6ZSArICRib3JkZXItc2l6ZSk7XG4gICAgbWFyZ2luLWxlZnQ6IC0oJHNpemUgKyAkYm9yZGVyLXNpemUpO1xuICB9XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGNvbG9yO1xuICAgIGJvcmRlci13aWR0aDogJHNpemU7XG4gICAgbWFyZ2luLWxlZnQ6IC0kc2l6ZTtcbiAgfVxufVxuXG4vKlxuICogTWl4aW4gdGhhdCBmaXhlcyB3cmFwcGluZyBpc3N1ZXMgd2l0aCBsb25nIHN0cmluZ3MgKGUuZy4gVVJMcylcbiAqXG4gKiBOb3RlOiB0aGUgd2lkdGggbmVlZHMgdG8gYmUgc2V0IGZvciBpdCB0byB3b3JrIGluIEZpcmVmb3hcbiAqL1xuQG1peGluIG92ZXJmbG93LWJyZWFrLXdvcmQge1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLypcbiogTWl4aW4gdGhhdCBoYW5kbGVzIHRoZSBjb250YWluZXIgZm9yIHRoZSBqb2IgbG9ncyAoQ0kvQ0QgYW5kIGt1YmVybmV0ZXMgcG9kIGxvZ3MpXG4qL1xuQG1peGluIGJ1aWxkLWxvZygkYmFja2dyb3VuZDogJGJsYWNrKSB7XG4gIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICBAYXBwbHkgZ2wtdGV4dC1kaXNhYmxlZDtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6ICRncmlkLXNpemU7XG5cbiAgLmJhc2gge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbkBtaXhpbiBqb2ItbG9nLXRvcC1iYXIge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gIHBhZGRpbmc6ICRncmlkLXNpemU7XG4gIEBhcHBseSBnbC1iZy1zZWN0aW9uO1xuICBAYXBwbHkgZ2wtYm9yZGVyO1xuICBAYXBwbHkgZ2wtYm9yZGVyLXNlY3Rpb247XG4gIEBhcHBseSBnbC10ZXh0LWRlZmF1bHQ7XG4gIHotaW5kZXg6IDI7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMzJweDtcbiAgQGFwcGx5IGdsLXJvdW5kZWQtdC1sZztcblxuICAmLmlzLXN0dWNrIHtcbiAgICBAYXBwbHkgZ2wtYm9yZGVyLXQtZGVmYXVsdDtcbiAgICBAYXBwbHkgZ2wtcm91bmRlZC10LW5vbmU7XG4gIH1cbn1cblxuLypcbiogTWl4aW4gdGhhdCBoYW5kbGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udHJvbHMgcGxhY2VkIG9uIHRoZSB0b3AgYmFyXG4qL1xuQG1peGluIGJ1aWxkLWNvbnRyb2xsZXJzKCRjb250cm9sLWZvbnQtc2l6ZSwgJGZsZXgtZGlyZWN0aW9uLCAkd2l0aC1ncm93LCAkZmxleC1ncm93LXNpemUsICRzdmctZGlzcGxheTogYmxvY2ssICRzdmctdG9wOiAycHgpIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZm9udC1zaXplOiAkY29udHJvbC1mb250LXNpemU7XG4gIGp1c3RpZnktY29udGVudDogJGZsZXgtZGlyZWN0aW9uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBhbGlnbi1zZWxmOiBiYXNlbGluZTtcbiAgQGlmICR3aXRoLWdyb3cge1xuICAgIGZsZXgtZ3JvdzogJGZsZXgtZ3Jvdy1zaXplO1xuICB9XG5cbiAgc3ZnIHtcbiAgICB3aWR0aDogMTVweDtcbiAgICBoZWlnaHQ6IDE1cHg7XG4gICAgZGlzcGxheTogJHN2Zy1kaXNwbGF5O1xuICAgIHRvcDogJHN2Zy10b3A7XG4gIH1cbn1cblxuQG1peGluIGJ1aWxkLWxvYWRlci1hbmltYXRpb24ge1xuICBAa2V5ZnJhbWVzIGJsaW5raW5nLWRvdCB7XG4gICAgMCUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAyNSUge1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgIH1cblxuICAgIDc1JSB7XG4gICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2hpdGUtc3BhY2U6IGluaXRpYWw7XG5cbiAgLmRvdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiA2cHg7XG4gICAgaGVpZ2h0OiA2cHg7XG4gICAgbWFyZ2luOiBhdXRvIGF1dG8gMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYW5pbWF0aW9uOiBibGlua2luZy1kb3QgMXMgbGluZWFyIGluZmluaXRlO1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcblxuICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4zM3M7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjY2cztcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGVtb2ppLW1lbnUtdG9nZ2xlLWJ1dHRvbiB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nOiAwO1xuICBtaW4td2lkdGg6IDE2cHg7XG5cbiAgLmF3YXJkLWNvbnRyb2wtaWNvbi1wb3NpdGl2ZSxcbiAgLmF3YXJkLWNvbnRyb2wtaWNvbi1zdXBlci1wb3NpdGl2ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmLmlzLWFjdGl2ZSB7XG4gICAgLmF3YXJkLWNvbnRyb2wtaWNvbi1uZXV0cmFsIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgLmF3YXJkLWNvbnRyb2wtaWNvbi1wb3NpdGl2ZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gICYuaXMtYWN0aXZlIHtcbiAgICAuYXdhcmQtY29udHJvbC1pY29uLXBvc2l0aXZlIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgLmF3YXJkLWNvbnRyb2wtaWNvbi1zdXBlci1wb3NpdGl2ZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxufVxuXG4vKlxuKiBNaXhpbiB0aGF0IGhhbmRsZXMgdGhlIHNpemUgYW5kIHJpZ2h0IG1hcmdpbiBvZiBhdmF0YXJzLlxuKi9cbkBtaXhpbiBhdmF0YXItc2l6ZSgkc2l6ZSwgJG1hcmdpbi1yaWdodCkge1xuICB3aWR0aDogJHNpemU7XG4gIGhlaWdodDogJHNpemU7XG4gIG1hcmdpbi1yaWdodDogJG1hcmdpbi1yaWdodDtcbn1cblxuQG1peGluIGNvZGUtaWNvbi1zaXplKCkge1xuICB3aWR0aDogJGdsLWZvbnQtc2l6ZSAqICRjb2RlLWxpbmUtaGVpZ2h0ICogMC45O1xuICBoZWlnaHQ6ICRnbC1mb250LXNpemUgKiAkY29kZS1saW5lLWhlaWdodCAqIDAuOTtcbn1cblxuQG1peGluIGVtYWlsLWNvZGUtYmxvY2sge1xuICAuY29kZS5sYW5ndWFnZS1lbWFpbCB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuXG4gICAgY29kZSB7XG4gICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcblxuICAgICAgLy8gUm91Z2UgYE5hbWUuVGFnYCBhbmQgYE9wZXJhdG9yYCB0b2tlbiAoZW1haWwgaGVhZGVyIGtleSArICc6JylcbiAgICAgIC5udCxcbiAgICAgIC5vIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgfVxuXG4gICAgICAvLyBSb3VnZSBgTmFtZS5BdHRyaWJ1dGVgIHRva2VuIChlbWFpbCBoZWFkZXIgdmFsdWUpXG4gICAgICAubmEge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIH1cblxuICAgICAgLy8gUm91Z2UgYENvbW1lbnRgIHRva2VuIChxdW90ZWQgdGV4dCBpbiBlbWFpbCBib2R5KVxuICAgICAgLmMge1xuICAgICAgICBjb2xvcjogJGdsLXRleHQtY29sb3Itc3VidGxlO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBhdmF0YXItY291bnRlcigkYm9yZGVyLXJhZGl1czogMWVtKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRncmF5LTQwMDtcbiAgY29sb3I6ICR3aGl0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgJGdyYXktNTA7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICBmb250LWZhbWlseTogJHJlZ3VsYXItZm9udDtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtaXhpbiBkZXZpc2UtZXJyb3JzIHtcbiAgaDIge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgZm9udC1zaXplOiAkZ2wtZm9udC1zaXplO1xuICAgIGNvbG9yOiB2YXIoLS1yZWQtNzAwLCAkcmVkLTcwMCk7XG4gIH1cbn1cblxuQG1peGluIG5vdGVzLW1lZGlhKCRicmVha3BvaW50LW5hbWUpIHtcbiAgQGluY2x1ZGUgZ2wtY29udGFpbmVyLXdpZHRoLWRvd24oJGJyZWFrcG9pbnQtbmFtZSkgeyBAY29udGVudDsgfVxuXG4gIC8vIERpZmYgaXMgc2lkZSBieSBzaWRlXG4gIC5ub3Rlcy1jb250ZW50LnBhcmFsbGVsICYge1xuICAgICRicmVha3BvaW50LWtleXM6IG1hcC5rZXlzKCRncmlkLWJyZWFrcG9pbnRzKTtcbiAgICAkY3VycmVudC1pbmRleDogbGlzdC5pbmRleCgkYnJlYWtwb2ludC1rZXlzLCAkYnJlYWtwb2ludC1uYW1lKTtcblxuICAgIEBpZiAkY3VycmVudC1pbmRleCA8IGxpc3QubGVuZ3RoKCRicmVha3BvaW50LWtleXMpIHtcbiAgICAgICRwYXJhbGxlbC1icmVha3BvaW50OiBsaXN0Lm50aCgkYnJlYWtwb2ludC1rZXlzLCAkY3VycmVudC1pbmRleCArIDEpO1xuXG4gICAgICBAaW5jbHVkZSBnbC1jb250YWluZXItd2lkdGgtZG93bigkcGFyYWxsZWwtYnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiogU3R5bGUgdG8gYXBwbHkgdG8sIGZvciBleGFtcGxlLCBzZWFyY2ggcmVzdWx0cyBtYXRjaGVzIG9yIHRleHQgd3JhcHBlZFxuKiBhcm91bmQgPG1hcms+IChhbGxvd2VkIGluIE1hcmtkb3duKS5cbiovXG5AbWl4aW4gc3RyLWhpZ2hsaWdodGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tb3JhbmdlLTEwMCk7XG4gIGJveC1zaGFkb3c6IDAgMCAwICRnbC1zcGFjaW5nLXNjYWxlLTEgdmFyKC0tb3JhbmdlLTEwMCk7XG4gIGNvbG9yOiB2YXIoLS1nbC10ZXh0LWNvbG9yLWRlZmF1bHQpO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IC0xO1xufVxuXG4vKipcbiogTGluZSBjb25uZWN0aW5nIGFjdGl2aXR5IGVudHJpZXMsIHVzZWQgaW4gaXNzdWFibGVzLCB3b3JrIGl0ZW1zIGV0Y1xuKi9cbkBtaXhpbiB2ZXJ0aWNhbC1saW5lKCR0b3AsICRsZWZ0LCAkb2Zmc2V0OiAkdG9wKSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAycHg7XG4gIGxlZnQ6ICRsZWZ0O1xuICB0b3A6ICR0b3A7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gI3skb2Zmc2V0fSk7XG59XG5cbi8qKlxuICogRGVwcmVjYXRlZCBtaXhpbiBmb3IgZGFyayBtb2RlXG4gKi9cbkBtaXhpbiBnbC1kYXJrLWludmVydC1rZWVwLWh1ZSB7XG4gIC5nbC1kYXJrICYge1xuICAgIGZpbHRlcjogaW52ZXJ0KDAuOCkgaHVlLXJvdGF0ZSgxODBkZWcpO1xuICB9XG59XG5cbi8qKlxuKiBDSS9DRCBKb2IgaXRlbSBmYWlsZWQgc3RhdHVzIGJhY2tncm91bmRcbipcbiogU2V0cyBiYWNrZ3JvdW5kIGNvbG9yIG9mIGl0ZW1zIHRvIHZpc3VhbGx5XG4qIGhpZ2hsaWdodCBmYWlsZWQgam9icyBpbiB0aGUgVUkuXG4qL1xuQG1peGluIGNpLWpvYi1pdGVtLWZhaWxlZC1zdGF0dXMtYmcge1xuICAtLWNpLWpvYi1pdGVtLWZhaWxlZDogdmFyKC0tZ2wtY29sb3ItcmVkLTUwKTtcblxuICAuZ2wtZGFyayAmIHtcbiAgICAtLWNpLWpvYi1pdGVtLWZhaWxlZDogdmFyKC0tZ2wtYWN0aW9uLWRhbmdlci1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaS1qb2ItaXRlbS1mYWlsZWQpO1xufVxuXG5AbWl4aW4gbWFrZS1jb250YWluZXItZ3JpZC1jb2x1bW5zKCRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zLCAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgLy8gQ29tbW9uIHByb3BlcnRpZXMgZm9yIGFsbCBicmVha3BvaW50c1xuICAlZ3JpZC1jb2x1bW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyICogLjU7XG4gICAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyICogLjU7XG4gIH1cblxuICAuZ2wtcm93IHtcbiAgICBAaW5jbHVkZSBtYWtlLXJvdygpO1xuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBuZWdhdGl2ZSBtYXJnaW4gZnJvbSBkZWZhdWx0IC5yb3csIHRoZW4gdGhlIGhvcml6b250YWwgcGFkZGluZ1xuICAvLyBmcm9tIGFsbCBpbW1lZGlhdGUgY2hpbGRyZW4gY29sdW1ucyAodG8gcHJldmVudCBydW5hd2F5IHN0eWxlIGluaGVyaXRhbmNlKS5cbiAgLmdsLW5vLWd1dHRlcnMge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcblxuICAgID4gLmdsLWNvbCxcbiAgICA+IFtjbGFzcyo9XCJnbC1jb2wtXCJdIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLmtleXMoJGJyZWFrcG9pbnRzKSB7XG4gICAgJGJyZWFrcG9pbnQtdmFsdWU6IGJyZWFrcG9pbnQtbWluKCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcblxuICAgIEBpZiAkY29sdW1ucyA+IDAge1xuICAgICAgLy8gQWxsb3cgY29sdW1ucyB0byBzdHJldGNoIGZ1bGwgd2lkdGggYmVsb3cgdGhlaXIgYnJlYWtwb2ludHNcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvbHVtbnMge1xuICAgICAgICAuZ2wtY29sI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICBAZXh0ZW5kICVncmlkLWNvbHVtbjsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBhdC1ydWxlLWRpc2FsbG93ZWQtbGlzdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmdsLWNvbCN7JGluZml4fSxcbiAgICAuZ2wtY29sI3skaW5maXh9LWF1dG8ge1xuICAgICAgQGV4dGVuZCAlZ3JpZC1jb2x1bW47IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgYXQtcnVsZS1kaXNhbGxvd2VkLWxpc3RcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBnbC1jb250YWluZXItd2lkdGgtdXAoJGJyZWFrcG9pbnQpIHtcbiAgICAgIC8vIFByb3ZpZGUgYmFzaWMgYC5nbC1jb2wte2JwfWAgY2xhc3NlcyBmb3IgZXF1YWwtd2lkdGggZmxleGJveCBjb2x1bW5zXG4gICAgICAuZ2wtY29sI3skaW5maXh9IHtcbiAgICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkZ3JpZC1yb3ctY29sdW1ucyA+IDAge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLXJvdy1jb2x1bW5zIHtcbiAgICAgICAgICAuZ2wtcm93LWNvbHMjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgcm93LWNvbHMoJGkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZ2wtY29sI3skaW5maXh9LWF1dG8ge1xuICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbC1hdXRvKCk7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkY29sdW1ucyA+IDAge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgICAgICAuZ2wtY29sI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sKCRpLCAkY29sdW1ucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgLmdsLW9yZGVyI3skaW5maXh9LWZpcnN0IHsgb3JkZXI6IC0xOyB9XG5cbiAgICAgLmdsLW9yZGVyI3skaW5maXh9LWxhc3QgeyBvcmRlcjogJGNvbHVtbnMgKyAxOyB9XG5cbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJGNvbHVtbnMge1xuICAgICAgIC5nbC1vcmRlciN7JGluZml4fS0jeyRpfSB7IG9yZGVyOiAkaTsgfVxuICAgICAgfVxuXG4gICAgICBAaWYgJGNvbHVtbnMgPiAwIHtcbiAgICAgICAgLy8gYCRjb2x1bW5zIC0gMWAgYmVjYXVzZSBvZmZzZXR0aW5nIGJ5IHRoZSB3aWR0aCBvZiBhbiBlbnRpcmUgcm93IGlzbid0IHBvc3NpYmxlXG4gICAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggKCRjb2x1bW5zIC0gMSkge1xuICAgICAgICAgIEBpZiBub3QgKCRpbmZpeCA9PSBcIlwiIGFuZCAkaSA9PSAwKSB7IC8vIEF2b2lkIGVtaXR0aW5nIHVzZWxlc3MuZ2wtb2Zmc2V0LTBcbiAgICAgICAgICAgLmdsLW9mZnNldCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sLW9mZnNldCgkaSwgJGNvbHVtbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gY2hlY2tlcmJvYXJkLWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2wtYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgICAgNDVkZWcsXG4gICAgICB2YXIoLS1nbC1iYWNrZ3JvdW5kLWNvbG9yLXN0cm9uZykgMjUlLFxuICAgICAgdHJhbnNwYXJlbnQgMjUlLFxuICAgICAgdHJhbnNwYXJlbnQgNzUlLFxuICAgICAgdmFyKC0tZ2wtYmFja2dyb3VuZC1jb2xvci1zdHJvbmcpIDc1JSxcbiAgICAgIHZhcigtLWdsLWJhY2tncm91bmQtY29sb3Itc3Ryb25nKSAxMDAlXG4gICAgKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoXG4gICAgICA0NWRlZyxcbiAgICAgIHZhcigtLWdsLWJhY2tncm91bmQtY29sb3Itc3Ryb25nKSAyNSUsXG4gICAgICB0cmFuc3BhcmVudCAyNSUsXG4gICAgICB0cmFuc3BhcmVudCA3NSUsXG4gICAgICB2YXIoLS1nbC1iYWNrZ3JvdW5kLWNvbG9yLXN0cm9uZykgNzUlLFxuICAgICAgdmFyKC0tZ2wtYmFja2dyb3VuZC1jb2xvci1zdHJvbmcpIDEwMCVcbiAgICApO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwcHggMTBweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwLCA1cHggNXB4O1xufVxuIiwiQHVzZSBcInNhc3M6bWFwXCI7XG5cbkBtaXhpbiBzdHItdHJ1bmNhdGVkKCRtYXgtd2lkdGg6IDgyJSkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3cteDogY2xpcDtcbiAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1heC13aWR0aDogJG1heC13aWR0aDtcbn1cblxuQG1peGluIG1hc2stY2hldnJvbi1kb3duIHtcbiAgbWFzay1pbWFnZTogdXJsKFwiI3skZ2wtaWNvbi1jaGV2cm9uLWRvd259XCIpO1xuICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gIG1hc2stc2l6ZTogY292ZXI7XG59XG5cbkBtaXhpbiBnbC1mbHVpZC1mb250LXNpemUoJG1pbiwgJG1heCkge1xuICBAaW5jbHVkZSBnbC1yZXNwb25zaXZlLXByb3BlcnR5KFwiZm9udC1zaXplXCIsICRtaW4sICRtYXgpO1xufVxuXG5AbWl4aW4gZ2wtZmx1aWQtbGluZS1oZWlnaHQoJG1pbiwgJG1heCkge1xuICBAaW5jbHVkZSBnbC1yZXNwb25zaXZlLXByb3BlcnR5KFwibGluZS1oZWlnaHRcIiwgJG1pbiwgJG1heCk7XG59XG5cbi8qKlxuKiBEZWNsYXJlcyBhIHByb3BlcnR5IHdpdGggYSBmbHVpZCB2YWx1ZSB0aGF0IGRlY3JlYXNlcyBvclxuKiByaXNlcyBkZXBlbmRpbmcgb24gdGhlIHZpZXdwb3J04oCZcyBzaXplLiBUaGUgcHJvcGVydHkgdHlwZVxuKiBzaG91bGQgYmUgbnVtZXJpYy5cbipcbiogVmFsdWVzIGFyZSBleHBlY3RlZCBpbiByZW0gdW5pdHMuXG4qIEZsdWlkIHJhbmdlOiBiZXR3ZWVuIDQ4cmVtICg3NjhweCkg4oCTIDc1cmVtICgxMjAwcHgpLlxuKlxuKiBAcGFyYW0gJHByb3BlcnR5IFByb3BlcnR5IG5hbWUsIGkuZS4gbGluZS1oZWlnaHQsIGZvbnQtc2l6ZSwgd2lkdGgsIGhlaWdodCwgZXRjLlxuKiBAcGFyYW0gJG1pbiBQcm9wZXJ0eSB2YWx1ZSBsb3dlciBib3VuZC5cbiogQHBhcmFtICRtYXggUHJvcGVydHkgdmFsdWUgdXBwZXIgYm91bmQuXG4qL1xuQG1peGluIGdsLXJlc3BvbnNpdmUtcHJvcGVydHkoJHByb3BlcnR5LCAkbWluLCAkbWF4KSB7XG4gICN7JHByb3BlcnR5fTogY2xhbXAtYmV0d2VlbigkbWluLCAkbWF4KTtcbn1cblxuLyoqXG4qIEhlbHBlciBmdW5jdGlvbiBmb3IgOmZvY3VzXG4qXG4qIEBwYXJhbSAkc2l6ZSBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgYW55bW9yZVxuKi9cbkBtaXhpbiBnbC1mb2N1cyhcbiAgJHNpemU6IG51bGwsXG4gICRjb2xvcjogZmFsc2UsXG4gICRpbXBvcnRhbnQ6IGZhbHNlLFxuICAkaW5zZXQ6IGZhbHNlLFxuICAkZm9jdXMtcmluZzogJGZvY3VzLXJpbmcsXG4gICRvdXRsaW5lOiBmYWxzZSxcbiAgJG91dGxpbmUtb2Zmc2V0OiAkb3V0bGluZS1vZmZzZXRcbikge1xuICBAaWYgJGluc2V0ID09IHRydWUge1xuICAgIEBpZiAkY29sb3Ige1xuICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgaW5zZXQgMCAwIDAgJG91dGxpbmUtd2lkdGggdmFyKC0tZ2wtZm9jdXMtcmluZy1vdXRlci1jb2xvciksXG4gICAgICAgIGluc2V0IDAgMCAwICN7JG91dGxpbmUtd2lkdGggKyAkb3V0bGluZS1vZmZzZXR9IHZhcigtLWdsLWZvY3VzLXJpbmctaW5uZXItY29sb3IpLFxuICAgICAgICBpbnNldCAwIDAgMCAjeyRvdXRsaW5lLXdpZHRoICsgJG91dGxpbmUtb2Zmc2V0ICsgMXB4fSAkY29sb3IsXG4gICAgICAgICRmb2N1cy1yaW5nLWluc2V0IGlmLWltcG9ydGFudCgkaW1wb3J0YW50KTtcbiAgICAgIG91dGxpbmU6IG5vbmUgaWYtaW1wb3J0YW50KCRpbXBvcnRhbnQpO1xuICAgICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIExpbmtUZXh0IGlmLWltcG9ydGFudCgkaW1wb3J0YW50KTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRvdXRsaW5lID09IHRydWUge1xuICAgICAgb3V0bGluZTogJGZvY3VzLXJpbmctb3V0bGluZSBpZi1pbXBvcnRhbnQoJGltcG9ydGFudCk7XG4gICAgICBvdXRsaW5lLW9mZnNldDogJG91dGxpbmUtb2Zmc2V0O1xuICAgIH0gQGVsc2Uge1xuICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgaW5zZXQgMCAwIDAgJG91dGxpbmUtd2lkdGggdmFyKC0tZ2wtZm9jdXMtcmluZy1vdXRlci1jb2xvciksXG4gICAgICAgICRmb2N1cy1yaW5nLWluc2V0IGlmLWltcG9ydGFudCgkaW1wb3J0YW50KTtcbiAgICAgIG91dGxpbmU6IG5vbmUgaWYtaW1wb3J0YW50KCRpbXBvcnRhbnQpO1xuICAgICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIExpbmtUZXh0IGlmLWltcG9ydGFudCgkaW1wb3J0YW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH0gQGVsc2UgaWYgJGNvbG9yIHtcbiAgICBib3gtc2hhZG93OlxuICAgICAgaW5zZXQgMCAwIDAgJGdsLWJvcmRlci1zaXplLTEgJGNvbG9yLFxuICAgICAgJGZvY3VzLXJpbmcgaWYtaW1wb3J0YW50KCRpbXBvcnRhbnQpO1xuICAgIG91dGxpbmU6IG5vbmUgaWYtaW1wb3J0YW50KCRpbXBvcnRhbnQpO1xuICAgIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICBvdXRsaW5lOiAycHggc29saWQgTGlua1RleHQgaWYtaW1wb3J0YW50KCRpbXBvcnRhbnQpO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkb3V0bGluZSA9PSB0cnVlIHtcbiAgICBvdXRsaW5lOiAkZm9jdXMtcmluZy1vdXRsaW5lIGlmLWltcG9ydGFudCgkaW1wb3J0YW50KTtcbiAgICBvdXRsaW5lLW9mZnNldDogJG91dGxpbmUtb2Zmc2V0O1xuICB9IEBlbHNlIHtcbiAgICBib3gtc2hhZG93OiAkZm9jdXMtcmluZyBpZi1pbXBvcnRhbnQoJGltcG9ydGFudCk7XG4gICAgb3V0bGluZTogbm9uZSBpZi1pbXBvcnRhbnQoJGltcG9ydGFudCk7XG4gICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgIG91dGxpbmU6IDJweCBzb2xpZCBMaW5rVGV4dCBpZi1pbXBvcnRhbnQoJGltcG9ydGFudCk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBnbC1iZy1ncmFkaWVudC1ibHVyKCRkaXJlY3Rpb24sICRjb2xvcikge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gJGRpcmVjdGlvbiwgJHRyYW5zcGFyZW50LXJnYmEsICRjb2xvciAzMyUpO1xufVxuXG4vKipcbiogSGVscGVyIGZ1bmN0aW9uIGZvciBAbWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW1cbiogYnJlYWtwb2ludCB3aWR0aC5cbipcbiogQHBhcmFtICRuYW1lIEJyZWFrcG9pbnQgbmFtZSwgc3VjaCBhcyBgc21gIG9yIGBtZGAuXG4qL1xuQG1peGluIGdsLW1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUpIHtcbiAgJG1pbjogbWFwLmdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGVycm9yIFwiI3skbmFtZX0gaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludCBmb3IgdGhpcyBAbWVkaWEgcXVlcnkuXCI7XG4gIH1cbiAgQGlmICRtaW4gIT0gMCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLyoqXG4qIEhlbHBlciBmdW5jdGlvbiBmb3IgQG1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW1cbiogYnJlYWtwb2ludCB3aWR0aC5cbipcbiogTm90ZTogQmVmb3JlIHVzaW5nLCBjb25zaWRlciB1c2luZyBhIG1vYmlsZS1maXJzdFxuKiBhcHByb2FjaCwgYW5kIGRlZmluZSBAbWVkaWEgZm9yIGxhcmdlciBicmVha3BvaW50c1xuKiB1c2luZyBgZ2wtbWVkaWEtYnJlYWtwb2ludC11cGAgd2hpbGUgdXNpbmcgdGhpcyBydWxlIGFzXG4qIHRoZSBzdGFydGluZyBwb2ludCBpbnN0ZWFkLlxuKlxuKiBAcGFyYW0gJG5hbWUgQnJlYWtwb2ludCwgc3VjaCBhcyBgc21gIG9yIGBtZGAuIGB4c2AgaXMgbm90IHZhbGlkXG4qL1xuQG1peGluIGdsLW1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSkge1xuICAkbWF4OiBtYXAuZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAaWYgKCRtYXggPT0gbnVsbCBvciAkbWF4ID09IDApIHtcbiAgICBAZXJyb3IgXCIjeyRuYW1lfSBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50IGZvciB0aGlzIEBtZWRpYSBxdWVyeS5cIjtcbiAgfVxuICAvLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2ZcbiAgLy8gYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHdpdGggZnJhY3Rpb25hbCB2aWV3cG9ydCBzaXplcy5cbiAgLy8gU2VlOiBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbiAgLy8gVXNlIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4gIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4gICRicmVha3BvaW50LW1heC1yYW5nZS1wcmVjaXNpb246IDAuMDJweDtcblxuICBAbWVkaWEgKG1heC13aWR0aDogJG1heCAtICRicmVha3BvaW50LW1heC1yYW5nZS1wcmVjaXNpb24pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gZ2wtY29udGFpbmVyLXdpZHRoLXVwKCRuYW1lLCAkY29udGFpbmVyTmFtZTogXCJcIiwgJGluY2x1ZGVNUUZhbGxiYWNrOiB0cnVlKSB7XG4gICRtaW46IG1hcC5nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEBpZiAkbWluID09IG51bGwge1xuICAgIEBlcnJvciBcIiN7JG5hbWV9IGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQgZm9yIHRoaXMgQGNvbnRhaW5lciBxdWVyeS5cIjtcbiAgfVxuICBAaWYgJG1pbiAhPSAwIHtcbiAgICBAY29udGFpbmVyICN7JGNvbnRhaW5lck5hbWV9ICh3aWR0aCA+PSAjeyRtaW59KSB7XG4gICAgICBAaWYgJiB7XG4gICAgICAgIDp3aGVyZShodG1sLndpdGgtZ2wtY29udGFpbmVyLXF1ZXJpZXMpICYge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgOndoZXJlKGh0bWwud2l0aC1nbC1jb250YWluZXItcXVlcmllcykge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBpZiAkaW5jbHVkZU1RRmFsbGJhY2sge1xuICAgICAgQG1lZGlhICh3aWR0aCA+PSAkbWluKSB7XG4gICAgICAgIEBpZiAmIHtcbiAgICAgICAgICA6d2hlcmUoaHRtbDpub3QoLndpdGgtZ2wtY29udGFpbmVyLXF1ZXJpZXMpKSAmIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgOndoZXJlKGh0bWw6bm90KC53aXRoLWdsLWNvbnRhaW5lci1xdWVyaWVzKSkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gZ2wtY29udGFpbmVyLXdpZHRoLWRvd24oJG5hbWUsICRjb250YWluZXJOYW1lOiBcIlwiLCAkaW5jbHVkZU1RRmFsbGJhY2s6IHRydWUpIHtcbiAgJG1heDogbWFwLmdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQGlmICgkbWF4ID09IG51bGwgb3IgJG1heCA9PSAwKSB7XG4gICAgQGVycm9yIFwiI3skbmFtZX0gaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludCBmb3IgdGhpcyBAY29udGFpbmVyIHF1ZXJ5LlwiO1xuICB9XG5cbiAgQGNvbnRhaW5lciAjeyRjb250YWluZXJOYW1lfSAod2lkdGggPCAjeyRtYXh9KSB7XG4gICAgQGlmICYge1xuICAgICAgOndoZXJlKGh0bWwud2l0aC1nbC1jb250YWluZXItcXVlcmllcykgJiB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgOndoZXJlKGh0bWwud2l0aC1nbC1jb250YWluZXItcXVlcmllcykge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGlmICRpbmNsdWRlTVFGYWxsYmFjayB7XG4gICAgQG1lZGlhICh3aWR0aCA8ICRtYXgpIHtcbiAgICAgIEBpZiAmIHtcbiAgICAgICAgOndoZXJlKGh0bWw6bm90KC53aXRoLWdsLWNvbnRhaW5lci1xdWVyaWVzKSkgJiB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA6d2hlcmUoaHRtbDpub3QoLndpdGgtZ2wtY29udGFpbmVyLXF1ZXJpZXMpKSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4qIEhlbHBlciBmdW5jdGlvbiB0byByZXNvbHZlIGZvbnQtc2l6ZSB2YWx1ZSBmcm9tICRnbC1mb250LXNpemVzIGFuZFxuKiAkZ2wtZm9udC1zaXplcy1maXhlZCBtYXBzLlxuKlxuKiBAcGFyYW0gJHNpemUgTnVtYmVyIGZvbnQtc2l6ZSBzY2FsZVxuKiBAcGFyYW0gJGZpeGVkIEJvb2xlYW4gdG9nZ2xlIGRlZmF1bHQgYW5kIGZpeGVkIGZvbnQgc2l6ZSBzY2FsZXNcbiovXG5AZnVuY3Rpb24gZ2V0LWZvbnQtc2l6ZS12YXJpYWJsZSgkc2l6ZSwgJGZpeGVkKSB7XG4gIEBpZiAkZml4ZWQgPT0gdHJ1ZSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRnbC1mb250LXNpemVzLWZpeGVkLCAkc2l6ZSkge1xuICAgICAgQHJldHVybiBtYXAuZ2V0KCRnbC1mb250LXNpemVzLWZpeGVkLCAkc2l6ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAZXJyb3IgXCIjeyRzaXplfSBpcyBub3QgYSB2YWxpZCBmaXhlZCBmb250IHNpemUgcHJvcGVydHlcIjtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkZ2wtZm9udC1zaXplcywgJHNpemUpIHtcbiAgICAgIEByZXR1cm4gbWFwLmdldCgkZ2wtZm9udC1zaXplcywgJHNpemUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQGVycm9yIFwiI3skc2l6ZX0gaXMgbm90IGEgdmFsaWQgZm9udCBzaXplIHByb3BlcnR5XCI7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBnbC1wcmVmZXJzLXJlZHVjZWQtbW90aW9uLXRyYW5zaXRpb24ge1xuICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjAxbXMgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwbXMgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZ2wtcHJlZmVycy1yZWR1Y2VkLW1vdGlvbi1hbmltYXRpb24ge1xuICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pIHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMDFtcyAhaW1wb3J0YW50O1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24tZGVsYXk6IDBtcyAhaW1wb3J0YW50O1xuICB9XG59XG5cbkBtaXhpbiBnbC1hY3Rpb24tc2VsZWN0ZWQtY29sb3JzIHtcbiAgY29sb3I6IHZhcigtLWdsLWFjdGlvbi1zZWxlY3RlZC1mb3JlZ3JvdW5kLWNvbG9yLWRlZmF1bHQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nbC1hY3Rpb24tc2VsZWN0ZWQtYmFja2dyb3VuZC1jb2xvci1kZWZhdWx0KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1nbC1hY3Rpb24tc2VsZWN0ZWQtYm9yZGVyLWNvbG9yLWRlZmF1bHQpO1xuXG4gICY6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1nbC1hY3Rpb24tc2VsZWN0ZWQtZm9yZWdyb3VuZC1jb2xvci1ob3Zlcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2wtYWN0aW9uLXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3ItaG92ZXIpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ2wtYWN0aW9uLXNlbGVjdGVkLWJvcmRlci1jb2xvci1ob3Zlcik7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIGNvbG9yOiB2YXIoLS1nbC1hY3Rpb24tc2VsZWN0ZWQtZm9yZWdyb3VuZC1jb2xvci1mb2N1cyk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2wtYWN0aW9uLXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3ItZm9jdXMpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ2wtYWN0aW9uLXNlbGVjdGVkLWJvcmRlci1jb2xvci1mb2N1cyk7XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6IHZhcigtLWdsLWFjdGlvbi1zZWxlY3RlZC1mb3JlZ3JvdW5kLWNvbG9yLWFjdGl2ZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ2wtYWN0aW9uLXNlbGVjdGVkLWJhY2tncm91bmQtY29sb3ItYWN0aXZlKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWdsLWFjdGlvbi1zZWxlY3RlZC1ib3JkZXItY29sb3ItYWN0aXZlKTtcbiAgfVxufVxuIiwiQGltcG9ydCAnbWl4aW5zX2FuZF92YXJpYWJsZXNfYW5kX2Z1bmN0aW9ucyc7XG5cbi5jb21taXQtZGVzY3JpcHRpb24sXG4uY29tbWl0LXJvdy1kZXNjcmlwdGlvbiB7XG4gIHBhZGRpbmc6ICRnbC1wYWRkaW5nLTggMCAkZ2wtcGFkZGluZy04ICRnbC1wYWRkaW5nLTg7XG4gIG1hcmdpbi10b3A6ICRnbC1wYWRkaW5nLTg7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogdW5zZXQ7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1nbC1ib3JkZXItY29sb3ItZGVmYXVsdCk7XG4gIGNvbG9yOiB2YXIoLS1nbC10ZXh0LWNvbG9yLXN1YnRsZSk7XG59XG5cbi5jb21taXQtYm94IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWdsLWJvcmRlci1jb2xvci1kZWZhdWx0KTtcbiAgcGFkZGluZzogJGdsLXBhZGRpbmcgMDtcblxuICAuY29tbWl0LXRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IHZhcigtLWdsLXRleHQtY29sb3ItZGVmYXVsdCk7XG4gIH1cbn1cbiJdfQ== */
