/*
                                                ,,            ,,                          ,,
 .M"""bgd mm                                    db          `7MM        mm         mm   `7MM                                    OO OO OO
,MI    "Y MM                                                  MM        MM         MM     MM                                    88 88 88
`MMb.   mmMMmm ,pW"Wq.`7MMpdMAo.     `7Mb,od8 `7MM  .P"Ybmmm  MMpMMMb.mmMMmm     mmMMmm   MMpMMMb.  .gP"Ya `7Mb,od8 .gP"Ya      || || ||
  `YMMNq. MM  6W'   `Wb MM   `Wb       MM' "'   MM :MI  I8    MM    MM  MM         MM     MM    MM ,M'   Yb  MM' "',M'   Yb     || || ||
.     `MM MM  8M     M8 MM    M8       MM       MM  WmmmP"    MM    MM  MM         MM     MM    MM 8M""""""  MM    8M""""""     `' `' `'
Mb     dM MM  YA.   ,A9 MM   ,AP       MM       MM 8M         MM    MM  MM         MM     MM    MM YM.    ,  MM    YM.    ,     ,, ,, ,,
P"Ybmmd"  `Mbmo`Ybmd9'  MMbmmd'      .JMML.   .JMML.YMMMMMb .JMML  JMML.`Mbmo      `Mbmo.JMML  JMML.`Mbmmd'.JMML.   `Mbmmd'     db db db
                        MM                         6'     dP
                      .JMML.                       Ybmmmd'

Pattern Lab doesn't have any CSS requirements, which means you can write your styles however you want. Hooray!
You can use Sass, Less, vanilla CSS, or some other crazy thing I haven't heard of yet.
So please don't use these styles. They're just here to put together the demo, and nothing more.
They're intentionally gray, boring, and crappy because you're supposed to do this stuff yourself.

Atomic design is philosophically complimentary with these CSS approaches:

* SMACSS by Jonathan Snook http://smacss.com/
* OOCSS by Nicole Sullivan http://oocss.org/
* BEM CSS Methology : http://bem.info/method/
* CSS Guidelines by Harry Roberts : https://github.com/csswizardry/CSS-Guidelines

So feel free to use any of these approaches. Or don't. It's totally up to you.

*/
/*------------------------------------*\
    $TABLE OF CONTENTS
    based generally on Harry Roberts excellent CSS Guidelines https://github.com/csswizardry/CSS-Guidelines
\*------------------------------------*/
/**
 * VARIABLES..............................Declarations of Sass variables
 * .....Colors
 * .....Typography
 * .....Layout
 * .....Defaults
 * .....Breakpoints
 * MIXINS.................................Sass mixins
 * RESET..................................Set reset defaults
 * GLOBAL CLASSES.........................Set reset defaults
 * GLOBAL ELEMENTS........................Establish global styles
 * .....Main
 * .....Headings
 * .....Text-related elements (p, blockquote, lists)
 * .....Defaults
 * .....Breakpoints
 * TYPOGRAPHY------------------------------
 * MEDIA------------------------------
 * LAYOUT------------------------------
 * NAVIGATION------------------------------
 * TOC To Be Continued
 */
/*------------------------------------*\
    $VARIABLES
\*------------------------------------*/
/*------------------------------------*\
    $MIXINS
\*------------------------------------*/
/* CSS Transition
	Usage: @include transition(width,0.3s,ease-out);
 */
/* Rem Unit font sizes with relative fallback http:/seesparkbox.com/foundry/scss_rem_mixin_now_with_a_better_fallback  
	Usage: @include font-size(1, large);
*/
/*------------------------------------*\
    $GLOBAL ELEMENTS
\*------------------------------------*/
/*------------------------------------*\
    $TEXT Styles
\*------------------------------------*/
/*------------------------------------*\
    $COMPONENTS
\*------------------------------------*/
.sg-label {
  font-weight: bold; }

.animate-fade {
  -webkit-transition: opacity 0.3s ease-out;
  -moz-transition: opacity 0.3s ease-out;
  -ms-transition: opacity 0.3s ease-out;
  -o-transition: opacity 0.3s ease-out;
  transition: opacity 0.3s ease-out; }
  .animate-fade:hover {
    opacity: 0; }

.animate-move > .demo-shape {
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -ms-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out; }

.animate-move:hover > .demo-shape {
  padding-top: 1em; }

.demo-animate {
  background-color: #d9d9d9;
  border-radius: 8px;
  cursor: pointer;
  padding: 1em;
  text-align: center; }

/* Headings */
/*Further Reading: http:/csswizardry.com/2012/02/pragmatic-practical-font-sizing-in-css/ */
h1,
.alpha {
  font-size: 2.25rem;
  line-height: normal; }

h2,
.beta {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: normal; }

h3,
.gamma {
  font-size: 1.125rem;
  font-weight: 600;
  line-height: normal; }

h4,
.delta {
  font-size: 1.0625rem;
  font-weight: 500;
  line-height: normal; }

h5,
.epsilon {
  font-size: 1.0625rem;
  font-weight: 400;
  line-height: normal; }

h6,
.zeta {
  font-size: 1rem;
  font-weight: 600;
  line-height: normal; }

/* Links */
.byline a,
.hentry a,
.entry-content a,
.status-message a {
  background-color: #ffff00;
  background-image: linear-gradient(#231f20, #231f20);
  background-position: 0% 100%;
  background-repeat: no-repeat;
  background-size: 0% 100%;
  padding: 3px;
  position: relative;
  transition: all 0.25s;
  transition-timing-function: cubic-bezier(0, 0.15, 0.1, 0); }
  .byline a:hover,
  .hentry a:hover,
  .entry-content a:hover,
  .status-message a:hover, .byline a:focus,
  .hentry a:focus,
  .entry-content a:focus,
  .status-message a:focus {
    background-size: 100% 100%;
    color: #fff; }

/* Blue Links */
/* Green Links */
/* White Links */
.byline h2 a,
.byline h3 a,
.hentry h2 a,
.hentry h3 a,
.entry-content h2 a,
.entry-content h3 a,
.status-message h2 a,
.status-message h3 a {
  background-color: transparent;
  padding: 0; }
  .byline h2 a:hover, .byline h2 a:focus,
  .byline h3 a:hover,
  .byline h3 a:focus,
  .hentry h2 a:hover,
  .hentry h2 a:focus,
  .hentry h3 a:hover,
  .hentry h3 a:focus,
  .entry-content h2 a:hover,
  .entry-content h2 a:focus,
  .entry-content h3 a:hover,
  .entry-content h3 a:focus,
  .status-message h2 a:hover,
  .status-message h2 a:focus,
  .status-message h3 a:hover,
  .status-message h3 a:focus {
    background-size: 0 0;
    background-color: transparent;
    color: #231f20;
    text-decoration: underline; }

.more {
  background-image: linear-gradient(#ffff00, #ffff00);
  background-position: 0% 100%;
  background-repeat: no-repeat;
  background-size: 0% 100%;
  transition: background-size 0.25s ease-in-out;
  display: inline-block;
  font-size: 1.125rem;
  font-weight: 500;
  overflow: hidden;
  padding: 3px;
  position: relative; }
  .more a::after {
    background-image: url("../../../library/images/rebrand-icons/more-arrow.svg");
    background-repeat: no-repeat;
    content: "";
    display: inline-block;
    height: rem-calc(10);
    margin-left: rem-calc(10);
    width: rem-calc(26);
    transition: margin-left 0.3s ease-out; }
  .more a:hover, .more a:focus {
    background-size: 100% 100%; }
  .more a:hover::after, .more a:focus::after {
    margin-left: 1.25rem; }

/* Text-Related Elements */
body,
p {
  font-size: 1rem;
  line-height: 1.625rem; }

p {
  margin-top: 16px;
  margin-bottom: 16px; }

/* Blockquote */
blockquote,
blockquote p {
  color: #231f20;
  font-size: 2.25rem;
  font-weight: 400;
  line-height: 2.875rem; }

blockquote {
  border: 0;
  margin: 0;
  padding: 0 0 0 2.25rem; }
  blockquote p::before,
  blockquote p::after {
    background-repeat: no-repeat;
    content: "";
    height: 2.25rem;
    margin-top: 6px;
    position: absolute;
    width: 1.5625rem; }
  blockquote p::before {
    background-image: url("../../../library/images/rebrand-icons/quotation-l.svg");
    background-repeat: no-repeat;
    left: 0;
    top: 0; }
  blockquote p::after {
    background-image: url("../../../library/images/rebrand-icons/quotation-r.svg"); }

.blockquote__info {
  font-size: 0.8125rem;
  line-height: normal;
  text-transform: uppercase;
  letter-spacing: 0.05em; }
  .blockquote__info::before {
    content: "- "; }

/* Horizontal Rule */
hr {
  border: 0;
  height: 2px;
  background: #eee;
  margin: 32px 0; }

abbr {
  border-bottom: 1px dotted #808080;
  cursor: help; }

.intro {
  font-size: 1.5rem;
  line-height: 2.25rem; }

.text ul ul {
  margin-bottom: 0; }

.text ol {
  list-style: decimal;
  margin: 0 0 16px 1.5em; }
  .text ol ol {
    margin-bottom: 0; }

mark {
  background: #ff9900; }

::selection {
  background: #ffff00; }

::-moz-selection {
  background-color: #ffff00; }

.entry-content ul {
  list-style: none;
  margin: 16px 0;
  padding: 0; }
  .entry-content ul li {
    font-size: 1rem;
    line-height: 1.5rem;
    margin-bottom: 0;
    position: relative;
    padding-left: 1.25rem; }
    .entry-content ul li::before {
      background-color: #231f20;
      content: "";
      display: inline-block;
      height: 0.4375rem;
      margin-left: -1.25rem;
      margin-right: 0;
      position: absolute;
      top: 0.5rem;
      width: 0.4375rem; }

ol {
  counter-reset: section;
  list-style-type: none;
  margin: 16px 0;
  padding-left: 0; }
  ol li {
    font-size: 1rem;
    line-height: 1.5rem;
    margin-bottom: 0;
    position: relative;
    padding-left: 1.25rem; }
    ol li::before {
      counter-increment: section;
      content: counters(section, ".") ". ";
      font-size: 0.875rem;
      left: 0;
      position: absolute;
      top: 0.0625rem; }
    ol li ol {
      margin: 16px 0; }
    ol li li {
      padding-left: 2.5rem; }

.options ul {
  list-style: none; }

input[type="text"],
input[type="password"],
input[type="date"],
input[type="datetime"],
input[type="datetime-local"],
input[type="month"],
input[type="week"],
input[type="email"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="time"],
input[type="url"],
textarea {
  border: 2px solid #231f20;
  box-shadow: inset 0 0 0 transparent;
  margin-left: 0;
  padding: 0.625rem;
  width: 100%; }
  input[type="text"]:focus, input[type="text"]:focus-within,
  input[type="password"]:focus,
  input[type="password"]:focus-within,
  input[type="date"]:focus,
  input[type="date"]:focus-within,
  input[type="datetime"]:focus,
  input[type="datetime"]:focus-within,
  input[type="datetime-local"]:focus,
  input[type="datetime-local"]:focus-within,
  input[type="month"]:focus,
  input[type="month"]:focus-within,
  input[type="week"]:focus,
  input[type="week"]:focus-within,
  input[type="email"]:focus,
  input[type="email"]:focus-within,
  input[type="number"]:focus,
  input[type="number"]:focus-within,
  input[type="search"]:focus,
  input[type="search"]:focus-within,
  input[type="tel"]:focus,
  input[type="tel"]:focus-within,
  input[type="time"]:focus,
  input[type="time"]:focus-within,
  input[type="url"]:focus,
  input[type="url"]:focus-within,
  textarea:focus,
  textarea:focus-within {
    border: 2px solid #231f20; }

select {
  background-color: #fff;
  border: 2px solid #231f20; }
  select:hover, select:focus, select:focus-within {
    background-color: #d9d9d9;
    border: 2px solid #231f20; }

.gform_body ul li::before {
  content: none; }

.btn,
.button,
a.button,
input.submit,
input[type="submit"] {
  background-color: #fff;
  background-image: linear-gradient(#231f20, #231f20);
  background-position: 0% 100%;
  background-repeat: no-repeat;
  background-size: 0% 100%;
  border: 2px solid #231f20;
  color: #231f20;
  cursor: pointer;
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.625rem;
  margin-top: 1em;
  padding: 0.1875rem 2.25rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-size 0.25s ease-in-out; }
  .btn:visited,
  .button:visited,
  a.button:visited,
  input.submit:visited,
  input[type="submit"]:visited {
    color: #231f20; }
  .btn:hover, .btn:focus,
  .button:hover,
  .button:focus,
  a.button:hover,
  a.button:focus,
  input.submit:hover,
  input.submit:focus,
  input[type="submit"]:hover,
  input[type="submit"]:focus {
    background-size: 100% 100%;
    color: #fff; }
  .btn:disabled,
  .button:disabled,
  a.button:disabled,
  input.submit:disabled,
  input[type="submit"]:disabled {
    background-color: #ccc;
    color: #231f20; }

.btn--disabled {
  background-color: #fff;
  background-image: linear-gradient(#231f20, #231f20);
  background-position: 0% 100%;
  background-repeat: no-repeat;
  background-size: 0% 100%;
  border: 2px solid #231f20;
  color: #231f20;
  cursor: pointer;
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  line-height: 1.625rem;
  margin-top: 1em;
  padding: 0.1875rem 2.25rem;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-size 0.25s ease-in-out;
  background-image: none;
  background-color: #666;
  border: 2px solid #666;
  color: #fff;
  cursor: default; }
  .btn--disabled:visited {
    color: #231f20; }
  .btn--disabled:hover, .btn--disabled:focus {
    background-size: 100% 100%;
    color: #fff; }
  .btn--disabled:disabled {
    background-color: #ccc;
    color: #231f20; }
  .btn--disabled:hover, .btn--disabled:focus {
    background-image: none;
    background-color: #666;
    color: #fff;
    cursor: default; }

.btn--contact,
a.btn--contact,
.wpcf7 .wpcf7-submit,
input.gform_button[type="submit"],
.btn--yellow,
a.btn--yellow {
  background-color: #ffff00; }


.btn--blue,
a.btn--blue {
  background-color: #00ffff; }

#inner-footer {
  border-top: 1px solid #231f20;
  max-width: 100rem; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiLi4vX3BhdHRlcm5zL2NvbW1vbi1zY3NzL2dlbmVyaWMvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vX3BhdHRlcm5zL2NvbW1vbi1zY3NzL2dlbmVyaWMvX21peGlucy5zY3NzIiwiLi4vX3BhdHRlcm5zLzAwLWF0b21zLzAxLWdsb2JhbC8wMC1jb2xvcnMuc2NzcyIsIi4uL19wYXR0ZXJucy8wMC1hdG9tcy8wMS1nbG9iYWwvMDEtZm9udHMuc2NzcyIsIi4uL19wYXR0ZXJucy8wMC1hdG9tcy8wMS1nbG9iYWwvMDItYW5pbWF0aW9ucy5zY3NzIiwiLi4vX3BhdHRlcm5zLzAwLWF0b21zLzAxLWdsb2JhbC8wMy11dGlsaXRpZXMuc2NzcyIsIi4uL19wYXR0ZXJucy8wMC1hdG9tcy8wMi10ZXh0L2hlYWRpbmdzLnNjc3MiLCIuLi9fcGF0dGVybnMvMDAtYXRvbXMvMDItdGV4dC9saW5rcy5zY3NzIiwiLi4vX3BhdHRlcm5zLzAwLWF0b21zLzAyLXRleHQvdGV4dC5zY3NzIiwiLi4vX3BhdHRlcm5zLzAwLWF0b21zLzAzLWxpc3RzL2xpc3RzLnNjc3MiLCIuLi9fcGF0dGVybnMvMDAtYXRvbXMvMDUtZm9ybXMvZm9ybXMuc2NzcyIsIi4uL19wYXR0ZXJucy8wMC1hdG9tcy8wNi1idXR0b25zL2J1dHRvbnMuc2NzcyIsIi4uL19wYXR0ZXJucy8wMi1vcmdhbmlzbXMvMDAtZ2xvYmFsLzAwLWhlYWRlci5zY3NzIiwiLi4vX3BhdHRlcm5zLzAyLW9yZ2FuaXNtcy8wMC1nbG9iYWwvMDEtZm9vdGVyLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwsICAgICAgICAgICAgLCwgICAgICAgICAgICAgICAgICAgICAgICAgICwsXG4gLk1cIlwiXCJiZ2QgbW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYiAgICAgICAgICBgN01NICAgICAgICBtbSAgICAgICAgIG1tICAgYDdNTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9PIE9PIE9PXG4sTUkgICAgXCJZIE1NICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTSAgICAgICAgTU0gICAgICAgICBNTSAgICAgTU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4OCA4OCA4OFxuYE1NYi4gICBtbU1NbW0gLHBXXCJXcS5gN01NcGRNQW8uICAgICBgN01iLG9kOCBgN01NICAuUFwiWWJtbW0gIE1NcE1NTWIubW1NTW1tICAgICBtbU1NbW0gICBNTXBNTU1iLiAgLmdQXCJZYSBgN01iLG9kOCAuZ1BcIllhICAgICAgfHwgfHwgfHxcbiAgYFlNTU5xLiBNTSAgNlcnICAgYFdiIE1NICAgYFdiICAgICAgIE1NJyBcIicgICBNTSA6TUkgIEk4ICAgIE1NICAgIE1NICBNTSAgICAgICAgIE1NICAgICBNTSAgICBNTSAsTScgICBZYiAgTU0nIFwiJyxNJyAgIFliICAgICB8fCB8fCB8fFxuLiAgICAgYE1NIE1NICA4TSAgICAgTTggTU0gICAgTTggICAgICAgTU0gICAgICAgTU0gIFdtbW1QXCIgICAgTU0gICAgTU0gIE1NICAgICAgICAgTU0gICAgIE1NICAgIE1NIDhNXCJcIlwiXCJcIlwiICBNTSAgICA4TVwiXCJcIlwiXCJcIiAgICAgYCcgYCcgYCdcbk1iICAgICBkTSBNTSAgWUEuICAgLEE5IE1NICAgLEFQICAgICAgIE1NICAgICAgIE1NIDhNICAgICAgICAgTU0gICAgTU0gIE1NICAgICAgICAgTU0gICAgIE1NICAgIE1NIFlNLiAgICAsICBNTSAgICBZTS4gICAgLCAgICAgLCwgLCwgLCxcblBcIllibW1kXCIgIGBNYm1vYFlibWQ5JyAgTU1ibW1kJyAgICAgIC5KTU1MLiAgIC5KTU1MLllNTU1NTWIgLkpNTUwgIEpNTUwuYE1ibW8gICAgICBgTWJtby5KTU1MICBKTU1MLmBNYm1tZCcuSk1NTC4gICBgTWJtbWQnICAgICBkYiBkYiBkYlxuICAgICAgICAgICAgICAgICAgICAgICAgTU0gICAgICAgICAgICAgICAgICAgICAgICAgNicgICAgIGRQXG4gICAgICAgICAgICAgICAgICAgICAgLkpNTUwuICAgICAgICAgICAgICAgICAgICAgICBZYm1tbWQnXG5cblBhdHRlcm4gTGFiIGRvZXNuJ3QgaGF2ZSBhbnkgQ1NTIHJlcXVpcmVtZW50cywgd2hpY2ggbWVhbnMgeW91IGNhbiB3cml0ZSB5b3VyIHN0eWxlcyBob3dldmVyIHlvdSB3YW50LiBIb29yYXkhXG5Zb3UgY2FuIHVzZSBTYXNzLCBMZXNzLCB2YW5pbGxhIENTUywgb3Igc29tZSBvdGhlciBjcmF6eSB0aGluZyBJIGhhdmVuJ3QgaGVhcmQgb2YgeWV0LlxuU28gcGxlYXNlIGRvbid0IHVzZSB0aGVzZSBzdHlsZXMuIFRoZXkncmUganVzdCBoZXJlIHRvIHB1dCB0b2dldGhlciB0aGUgZGVtbywgYW5kIG5vdGhpbmcgbW9yZS5cblRoZXkncmUgaW50ZW50aW9uYWxseSBncmF5LCBib3JpbmcsIGFuZCBjcmFwcHkgYmVjYXVzZSB5b3UncmUgc3VwcG9zZWQgdG8gZG8gdGhpcyBzdHVmZiB5b3Vyc2VsZi5cblxuQXRvbWljIGRlc2lnbiBpcyBwaGlsb3NvcGhpY2FsbHkgY29tcGxpbWVudGFyeSB3aXRoIHRoZXNlIENTUyBhcHByb2FjaGVzOlxuXG4qIFNNQUNTUyBieSBKb25hdGhhbiBTbm9vayBodHRwOi8vc21hY3NzLmNvbS9cbiogT09DU1MgYnkgTmljb2xlIFN1bGxpdmFuIGh0dHA6Ly9vb2Nzcy5vcmcvXG4qIEJFTSBDU1MgTWV0aG9sb2d5IDogaHR0cDovL2JlbS5pbmZvL21ldGhvZC9cbiogQ1NTIEd1aWRlbGluZXMgYnkgSGFycnkgUm9iZXJ0cyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9jc3N3aXphcmRyeS9DU1MtR3VpZGVsaW5lc1xuXG5TbyBmZWVsIGZyZWUgdG8gdXNlIGFueSBvZiB0aGVzZSBhcHByb2FjaGVzLiBPciBkb24ndC4gSXQncyB0b3RhbGx5IHVwIHRvIHlvdS5cblxuKi9cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkVEFCTEUgT0YgQ09OVEVOVFNcbiAgICBiYXNlZCBnZW5lcmFsbHkgb24gSGFycnkgUm9iZXJ0cyBleGNlbGxlbnQgQ1NTIEd1aWRlbGluZXMgaHR0cHM6Ly9naXRodWIuY29tL2Nzc3dpemFyZHJ5L0NTUy1HdWlkZWxpbmVzXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyoqXG4gKiBWQVJJQUJMRVMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5EZWNsYXJhdGlvbnMgb2YgU2FzcyB2YXJpYWJsZXNcbiAqIC4uLi4uQ29sb3JzXG4gKiAuLi4uLlR5cG9ncmFwaHlcbiAqIC4uLi4uTGF5b3V0XG4gKiAuLi4uLkRlZmF1bHRzXG4gKiAuLi4uLkJyZWFrcG9pbnRzXG4gKiBNSVhJTlMuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5TYXNzIG1peGluc1xuICogUkVTRVQuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uU2V0IHJlc2V0IGRlZmF1bHRzXG4gKiBHTE9CQUwgQ0xBU1NFUy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5TZXQgcmVzZXQgZGVmYXVsdHNcbiAqIEdMT0JBTCBFTEVNRU5UUy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLkVzdGFibGlzaCBnbG9iYWwgc3R5bGVzXG4gKiAuLi4uLk1haW5cbiAqIC4uLi4uSGVhZGluZ3NcbiAqIC4uLi4uVGV4dC1yZWxhdGVkIGVsZW1lbnRzIChwLCBibG9ja3F1b3RlLCBsaXN0cylcbiAqIC4uLi4uRGVmYXVsdHNcbiAqIC4uLi4uQnJlYWtwb2ludHNcbiAqIFRZUE9HUkFQSFktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIE1FRElBLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKiBMQVlPVVQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIE5BVklHQVRJT04tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIFRPQyBUbyBCZSBDb250aW51ZWRcbiAqL1xuXG5cblxuQGltcG9ydCBcIi4uL19wYXR0ZXJucy9jb21tb24tc2Nzcy9nZW5lcmljL3ZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIi4uL19wYXR0ZXJucy9jb21tb24tc2Nzcy9nZW5lcmljL21peGluc1wiO1xuLy9AaW1wb3J0IFwiLi4vX3BhdHRlcm5zL2NvbW1vbi1zY3NzL2dlbmVyaWMvcmVzZXRcIjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkR0xPQkFMIEVMRU1FTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLy9AaW1wb3J0IFwiLi4vX3BhdHRlcm5zL2NvbW1vbi1zY3NzL2Jhc2UvZ2xvYmFsLWNsYXNzZXNcIjtcbi8vQGltcG9ydCBcIi4uL19wYXR0ZXJucy9jb21tb24tc2Nzcy9iYXNlL21haW5cIjtcbi8vQGltcG9ydCBcIi4uL19wYXR0ZXJucy9jb21tb24tc2Nzcy9iYXNlL2xpbmtzXCI7XG4vL0BpbXBvcnQgXCIuLi9fcGF0dGVybnMvY29tbW9uLXNjc3MvYmFzZS9oZWFkaW5nc1wiO1xuLy9AaW1wb3J0IFwiLi4vX3BhdHRlcm5zL2NvbW1vbi1zY3NzL2Jhc2UvdGV4dFwiO1xuLy9AaW1wb3J0IFwiLi4vX3BhdHRlcm5zL2NvbW1vbi1zY3NzL2Jhc2UvbGlzdHNcIjtcbi8vQGltcG9ydCBcIi4uL19wYXR0ZXJucy9jb21tb24tc2Nzcy9iYXNlL21lZGlhXCI7XG4vL0BpbXBvcnQgXCIuLi9fcGF0dGVybnMvY29tbW9uLXNjc3MvYmFzZS9mb3Jtc1wiO1xuLy9AaW1wb3J0IFwiLi4vX3BhdHRlcm5zL2NvbW1vbi1zY3NzL2Jhc2UvdGFibGVzXCI7XG4vL0BpbXBvcnQgXCIuLi9fcGF0dGVybnMvY29tbW9uLXNjc3MvYmFzZS9hbmltYXRpb25cIjtcblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAkVEVYVCBTdHlsZXNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vL0BpbXBvcnQgXCIuLi9fcGF0dGVybnMvY29tbW9uLXNjc3MvdGV4dC8qLnNjc3NcIjtcblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICRDT01QT05FTlRTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLy9AaW1wb3J0IFwiLi4vX3BhdHRlcm5zL2NvbW1vbi1zY3NzL29iamVjdHMvKi5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FtYW5kYWx1a2VyL1NpdGVzL2Fkdm9tYXRpYy93cC1jb250ZW50L3RoZW1lcy9hZHZvbWF0aWMtam9pbnRzd3AvcGF0dGVybi1sYWIvc291cmNlL19wYXR0ZXJucy8wMC1hdG9tcy8wMS1nbG9iYWwvMDAtY29sb3JzLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYW1hbmRhbHVrZXIvU2l0ZXMvYWR2b21hdGljL3dwLWNvbnRlbnQvdGhlbWVzL2Fkdm9tYXRpYy1qb2ludHN3cC9wYXR0ZXJuLWxhYi9zb3VyY2UvX3BhdHRlcm5zLzAwLWF0b21zLzAxLWdsb2JhbC8wMS1mb250cy5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FtYW5kYWx1a2VyL1NpdGVzL2Fkdm9tYXRpYy93cC1jb250ZW50L3RoZW1lcy9hZHZvbWF0aWMtam9pbnRzd3AvcGF0dGVybi1sYWIvc291cmNlL19wYXR0ZXJucy8wMC1hdG9tcy8wMS1nbG9iYWwvMDItYW5pbWF0aW9ucy5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FtYW5kYWx1a2VyL1NpdGVzL2Fkdm9tYXRpYy93cC1jb250ZW50L3RoZW1lcy9hZHZvbWF0aWMtam9pbnRzd3AvcGF0dGVybi1sYWIvc291cmNlL19wYXR0ZXJucy8wMC1hdG9tcy8wMS1nbG9iYWwvMDMtdXRpbGl0aWVzLnNjc3NcIjtcbkBpbXBvcnQgXCIvVXNlcnMvYW1hbmRhbHVrZXIvU2l0ZXMvYWR2b21hdGljL3dwLWNvbnRlbnQvdGhlbWVzL2Fkdm9tYXRpYy1qb2ludHN3cC9wYXR0ZXJuLWxhYi9zb3VyY2UvX3BhdHRlcm5zLzAwLWF0b21zLzAyLXRleHQvaGVhZGluZ3Muc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbWFuZGFsdWtlci9TaXRlcy9hZHZvbWF0aWMvd3AtY29udGVudC90aGVtZXMvYWR2b21hdGljLWpvaW50c3dwL3BhdHRlcm4tbGFiL3NvdXJjZS9fcGF0dGVybnMvMDAtYXRvbXMvMDItdGV4dC9saW5rcy5zY3NzXCI7XG5AaW1wb3J0IFwiL1VzZXJzL2FtYW5kYWx1a2VyL1NpdGVzL2Fkdm9tYXRpYy93cC1jb250ZW50L3RoZW1lcy9hZHZvbWF0aWMtam9pbnRzd3AvcGF0dGVybi1sYWIvc291cmNlL19wYXR0ZXJucy8wMC1hdG9tcy8wMi10ZXh0L3RleHQuc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbWFuZGFsdWtlci9TaXRlcy9hZHZvbWF0aWMvd3AtY29udGVudC90aGVtZXMvYWR2b21hdGljLWpvaW50c3dwL3BhdHRlcm4tbGFiL3NvdXJjZS9fcGF0dGVybnMvMDAtYXRvbXMvMDMtbGlzdHMvbGlzdHMuc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbWFuZGFsdWtlci9TaXRlcy9hZHZvbWF0aWMvd3AtY29udGVudC90aGVtZXMvYWR2b21hdGljLWpvaW50c3dwL3BhdHRlcm4tbGFiL3NvdXJjZS9fcGF0dGVybnMvMDAtYXRvbXMvMDUtZm9ybXMvZm9ybXMuc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbWFuZGFsdWtlci9TaXRlcy9hZHZvbWF0aWMvd3AtY29udGVudC90aGVtZXMvYWR2b21hdGljLWpvaW50c3dwL3BhdHRlcm4tbGFiL3NvdXJjZS9fcGF0dGVybnMvMDAtYXRvbXMvMDYtYnV0dG9ucy9idXR0b25zLnNjc3NcIjtcblxuQGltcG9ydCBcIi9Vc2Vycy9hbWFuZGFsdWtlci9TaXRlcy9hZHZvbWF0aWMvd3AtY29udGVudC90aGVtZXMvYWR2b21hdGljLWpvaW50c3dwL3BhdHRlcm4tbGFiL3NvdXJjZS9fcGF0dGVybnMvMDItb3JnYW5pc21zLzAwLWdsb2JhbC8wMC1oZWFkZXIuc2Nzc1wiO1xuQGltcG9ydCBcIi9Vc2Vycy9hbWFuZGFsdWtlci9TaXRlcy9hZHZvbWF0aWMvd3AtY29udGVudC90aGVtZXMvYWR2b21hdGljLWpvaW50c3dwL3BhdHRlcm4tbGFiL3NvdXJjZS9fcGF0dGVybnMvMDItb3JnYW5pc21zLzAwLWdsb2JhbC8wMS1mb290ZXIuc2Nzc1wiO1xuXG5cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJFZBUklBQkxFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy9Db2xvcnNcbiRncmF5OiAjODA4MDgwO1xuJGdyYXktbGlnaHQ6ICNmOWY5Zjk7XG4kZ3JheS1saWdodC0yOiAjZWVlO1xuJGdyYXktbGlnaHQtMzogI2RkZDtcblxuJGdyYXktbWVkOiAjNjA2MDYwO1xuJGdyYXktZGFyazogIzQwNDA0MDtcblxuJGdyYXktZGFyay0yOiAjMTMxMzEzO1xuJHdoaXRlOiAjZmZmO1xuJGJsYWNrOiAjMDAwO1xuJGRpbTogcmdiYSgwLCAwLCAwLCAwLjUpO1xuXG4kYWR2by1ibGFjazogIzIzMWYyMDtcbiRhZHZvLWdyZXk6ICNkOWQ5ZDk7XG4kaGlsaXRlLXllbGxvdzogI2ZmZmYwMDtcbiRoaWxpdGUtZ3JlZW46ICMwMGZmMDA7XG4kaGlsaXRlLWJsdWU6ICMwMGZmZmY7XG4kaGlsaXRlLW9yYW5nZTogI2ZmOTkwMDtcblxuJGVycm9yOiAjZjAwO1xuJHZhbGlkOiAjMDg5ZTAwO1xuJHdhcm5pbmc6ICNmZmY2NjQ7XG4kaW5mb3JtYXRpb246ICMwMDBkYjU7XG5cbi8vJGZvbnQgOiAgXCJBbHRlSGFhc0dyb3Rlc2tcIiwgXCJIZWx2ZXRpY2FcIiwgXCJzYW5zLXNlcmlmXCI7XG4vLyRmb250LXNlY29uZGFyeSA6ICBcIkdlb3JnaWFcIiwgXCJUaW1lc1wiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcInNlcmlmXCI7XG4vL1xuXG4vLyRmb250LXNpemUtc21hbGwgOiAwLjc1ZW07XG4vLyRmb250LXNpemUtc21hbGwtMiA6IDAuODc1ZW07XG4vLyRmb250LXNpemUtbWVkIDogMWVtO1xuLy8kZm9udC1zaXplLW1lZC0yOiAxLjA2MjVlbTtcbi8vJGZvbnQtc2l6ZS1sYXJnZSA6IDEuNDM3NWVtO1xuXG4vL0xheW91dFxuJG1heC13aWR0aDogbm9uZTtcblxuLy9EZWZhdWx0c1xuJHNwYWNlOiAxNnB4O1xuJHNwYWNlLWFuZC1oYWxmOiAkc3BhY2UgKiAxLjU7XG4kc3BhY2UtZG91YmxlOiAkc3BhY2UgKiAyO1xuJHNwYWNlLXF1YWQ6ICRzcGFjZSAqIDQ7XG4kc3BhY2UtaGFsZjogJHNwYWNlLzI7XG4kcGFkOiAxZW07XG4kcGFkLWFuZC1oYWxmOiAkcGFkICogMS41O1xuJHBhZC1kb3VibGU6ICRwYWQgKiAyO1xuJHBhZC1oYWxmOiAkcGFkLzI7XG4kcGFkLXF1YXJ0ZXI6ICRwYWQvNDtcbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgJE1JWElOU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyogQ1NTIFRyYW5zaXRpb25cblx0VXNhZ2U6IEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGgsMC4zcyxlYXNlLW91dCk7XG4gKi9cbkBtaXhpbiB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLXByb3BlcnR5LCAkdHJhbnNpdGlvbi10aW1lLCAkbWV0aG9kKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tcHJvcGVydHkgJHRyYW5zaXRpb24tdGltZSAkbWV0aG9kO1xuICAtbW96LXRyYW5zaXRpb246ICR0cmFuc2l0aW9uLXByb3BlcnR5ICR0cmFuc2l0aW9uLXRpbWUgJG1ldGhvZDtcbiAgLW1zLXRyYW5zaXRpb246ICR0cmFuc2l0aW9uLXByb3BlcnR5ICR0cmFuc2l0aW9uLXRpbWUgJG1ldGhvZDtcbiAgLW8tdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tcHJvcGVydHkgJHRyYW5zaXRpb24tdGltZSAkbWV0aG9kO1xuICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1wcm9wZXJ0eSAkdHJhbnNpdGlvbi10aW1lICRtZXRob2Q7XG59XG5cbi8qIFJlbSBVbml0IGZvbnQgc2l6ZXMgd2l0aCByZWxhdGl2ZSBmYWxsYmFjayBodHRwOi9zZWVzcGFya2JveC5jb20vZm91bmRyeS9zY3NzX3JlbV9taXhpbl9ub3dfd2l0aF9hX2JldHRlcl9mYWxsYmFjayAgXG5cdFVzYWdlOiBAaW5jbHVkZSBmb250LXNpemUoMSwgbGFyZ2UpO1xuKi9cbkBtaXhpbiBmb250LXNpemUoJGRlY2ltYWwtc2l6ZSwgJGtleXdvcmQ6IG51bGwpIHtcbiAgQGlmICRrZXl3b3JkIHtcbiAgICBmb250LXNpemU6ICRrZXl3b3JkO1xuICB9IEBlbHNlIHtcbiAgICBmb250LXNpemU6ICRkZWNpbWFsLXNpemUgKiAkYmFzZS1mb250LW11bHRpcGxpZXIgKiAxNnB4O1xuICB9XG4gIGZvbnQtc2l6ZTogJGRlY2ltYWwtc2l6ZSAqIDFyZW07XG59XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cbiIsIi5zZy1sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuIiwiLy9cbi8vIEZvbnQgZmFjZXMgYW5kIHN0YWNrcy5cbi8vXG5cbi8vIFRoZSBmb2xsb3dpbmcgZm9udCBmYW1pbHkgZGVjbGFyYXRpb25zIGFyZSBiYXNlZCBvbiB0aGUgTWljcm9zb2Z0IGNvcmUgd2ViXG4vLyBmb250cyB3aGljaCBhcmUgY29tbW9uIGZvbnRzIGF2YWlsYWJsZSBvbiBtb3N0IGNvbXB1dGVyIHN5c3RlbXMuIFRoZSBEZWphVnVcbi8vIGFuZCBOaW1idXMgU2FucyBmb250cyBhcmUgY29tbW9ubHkgYXZhaWxhYmxlIG9uIExpbnV4IHN5c3RlbXMgd2hlcmUgdGhlIE1TXG4vLyBmb250cyBhcmUgbGVzcyBjb21tb24uIFRhaG9tYSBhbmQgSGVsdmV0aWNhIGFyZSBhbHNvIHhsYXJnZWx5IGF2YWlsYWJsZS5cbi8vXG4vLyBBIHVzZXIncyB3ZWIgYnJvd3NlciB3aWxsIGxvb2sgYXQgdGhlIGNvbW1hLXNlcGFyYXRlZCBsaXN0IGFuZCB3aWxsXG4vLyBhdHRlbXB0IHRvIHVzZSBlYWNoIGZvbnQgaW4gdHVybiB1bnRpbCBpdCBmaW5kcyBvbmUgdGhhdCBpcyBhdmFpbGFibGVcbi8vIG9uIHRoZSB1c2VyJ3MgY29tcHV0ZXIuIFRoZSBmaW5hbCBcImdlbmVyaWNcIiBmb250IChzYW5zLXNlcmlmLCBzZXJpZiBvclxuLy8gbW9ub3NwYWNlKSBoaW50cyBhdCB3aGF0IHR5cGUgb2YgZm9udCB0byB1c2UgaWYgdGhlIHdlYiBicm93c2VyIGRvZXNuJ3Rcbi8vIGZpbmQgYW55IG9mIHRoZSBmb250cyBpbiB0aGUgbGlzdC5cblxuLy8gRmlyc3QsIGxldCdzIGNyZWF0ZSBzb21lIGZvbnQgc3RhY2tzLlxuJHRpbWVzLW5ldy1yb21hbjogXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIEdlb3JnaWEsIFwiRGVqYVZ1IFNlcmlmXCIsIHNlcmlmO1xuJHRpbWVzOiBUaW1lcywgXCJUaW1lcyBOZXcgUm9tYW5cIiwgR2VvcmdpYSwgXCJEZWphVnUgU2VyaWZcIiwgc2VyaWY7XG4kZ2VvcmdpYTogR2VvcmdpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgXCJEZWphVnUgU2VyaWZcIiwgc2VyaWY7XG5cbiR2ZXJkYW5hOiBWZXJkYW5hLCBUYWhvbWEsIFwiRGVqYVZ1IFNhbnNcIiwgc2Fucy1zZXJpZjtcbiR0YWhvbWE6IFRhaG9tYSwgVmVyZGFuYSwgXCJEZWphVnUgU2Fuc1wiLCBzYW5zLXNlcmlmO1xuJGhlbHZldGljYTogSGVsdmV0aWNhLCBBcmlhbCwgXCJOaW1idXMgU2FucyBMXCIsIHNhbnMtc2VyaWY7XG4kYXJpYWw6IEFyaWFsLCBIZWx2ZXRpY2EsIFwiTmltYnVzIFNhbnMgTFwiLCBzYW5zLXNlcmlmO1xuXG4vLyBGb3IgYW4gZXhwbGFuYXRpb24gb2Ygd2h5IFwic2Fucy1zZXJpZlwiIGlzIGF0IHRoZSBlbmQgb2YgdGhpcyBsaXN0LCBzZWVcbi8vIGh0dHA6Ly9tZXllcndlYi5jb20vZXJpYy90aG91Z2h0cy8yMDEwLzAyLzEyL2ZpeGVkLW1vbm9zcGFjZS1zaXppbmcvXG4kY291cmllcjogXCJDb3VyaWVyIE5ld1wiLCBcIkRlamFWdSBTYW5zIE1vbm9cIiwgbW9ub3NwYWNlLCBzYW5zLXNlcmlmO1xuJGdvdGhpYzogXCJHb3RoaWMgQTFcIiwgc2Fucy1zZXJpZjtcblxuLy8gTm93IGNyZWF0ZSBzb21lIHZhcmlhYmxlcyBmb3IgdGhlIGZvbnQgc3RhY2tzIHdlIHdhbnQgdG8gdXNlIG9uIHRoaXMgc2l0ZS5cbiRmZi0tcmVndWxhcjogJGdvdGhpYzsgLy8gVGhlIGZvbnQgZmFtaWx5IHNldCBvbiB0aGUgaHRtbCBlbGVtZW50LlxuJGZmLS1hbHRlcm5hdGU6ICRhcmlhbDtcbiRmZi0tbW9ub3NwYWNlOiAkY291cmllcjtcblxuLy8gQmFzZSBmb250cy5cbiRmb250LWJvZHk6ICRmZi0tcmVndWxhcjtcbiRmb250LWhlYWRpbmc6ICRmZi0tcmVndWxhcjtcblxuLy9cbi8vIEZvbnQgd2VpZ2h0cyAmIHNpemVzXG4vL1xuXG4kZnctLTEwMDogMTAwOyAvLyB0aGluL2hhaXJsaW5lXG4kZnctLTIwMDogMjAwOyAvLyBleHRyYS1saWdodC91bHRyYS1saWdodFxuJGZ3LS0zMDA6IDMwMDsgLy8gbGlnaHQqXG4kZnctLTQwMDogNDAwOyAvLyBub3JtYWwvcmVndWxhci9ib29rL3JvbWFuKlxuJGZ3LS01MDA6IDUwMDsgLy8gbWVkaXVtXG4kZnctLTYwMDogNjAwOyAvLyBzZW1pLWJvbGQvZGVtaS1ib2xkXG4kZnctLTcwMDogNzAwOyAvLyBib2xkKlxuJGZ3LS04MDA6IDgwMDsgLy8gZXh0cmEtYm9sZC91bHRyYS1ib2xkXG4kZnctLTkwMDogOTAwOyAvLyBibGFjay9oZWF2eVxuXG4kZnMtLTM2cHg6IHJlbSgzNnB4KTtcbiRmcy0tMjRweDogcmVtKDI0cHgpO1xuJGZzLS0yMHB4OiByZW0oMjBweCk7XG4kZnMtLTE2cHg6IHJlbSgxNnB4KTtcbiRmcy0tMTNweDogcmVtKDEzcHgpO1xuIiwiLy8vIE1peGluIC0gVHJhbnNpdGlvblxuQG1peGluIHRyYW5zaXRpb24oJHRyYW5zaXRpb24tcHJvcGVydHksICR0cmFuc2l0aW9uLXRpbWUsICRtZXRob2QpIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1wcm9wZXJ0eSAkdHJhbnNpdGlvbi10aW1lICRtZXRob2Q7XG4gIC1tb3otdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tcHJvcGVydHkgJHRyYW5zaXRpb24tdGltZSAkbWV0aG9kO1xuICAtbXMtdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tcHJvcGVydHkgJHRyYW5zaXRpb24tdGltZSAkbWV0aG9kO1xuICAtby10cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1wcm9wZXJ0eSAkdHJhbnNpdGlvbi10aW1lICRtZXRob2Q7XG4gIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLXByb3BlcnR5ICR0cmFuc2l0aW9uLXRpbWUgJG1ldGhvZDtcbn1cblxuLmFuaW1hdGUtZmFkZSB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgMC4zcywgZWFzZS1vdXQpO1xuXG4gICY6aG92ZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmFuaW1hdGUtbW92ZSB7XG4gID4gLmRlbW8tc2hhcGUge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLCAwLjNzLCBlYXNlLWluLW91dCk7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICA+IC5kZW1vLXNoYXBlIHtcbiAgICAgIHBhZGRpbmctdG9wOiAxZW07XG4gICAgfVxuICB9XG59XG5cbi5kZW1vLWFuaW1hdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWR2by1ncmV5O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMWVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCIvLyBGdW5jdGlvbiBmb3IgY29udmVydGluZyBhIHB4IGJhc2VkIGZvbnQtc2l6ZSB0byByZW0uXG5AZnVuY3Rpb24gcmVtKCRzaXplKSB7XG4gIC8vIERlZmF1bHQgZm9udCBzaXplIG9uIGh0bWwgZWxlbWVudCBpcyAxMDAlLCBlcXVpdmFsZW50IHRvIHJlbSgxNnB4KTtcbiAgJHJlbVNpemU6ICRzaXplIC8gMTZweDtcblxuICBAcmV0dXJuICN7JHJlbVNpemV9cmVtO1xufVxuXG4vLyBGdW5jdGlvbiBmb3IgY29udmVydGluZyB0cmFja2luZyBpbiBQU0QgdG8gZW1zIGluIENTUyBsZXR0ZXItc3BhY2luZ1xuQGZ1bmN0aW9uIHRyYWNraW5nKCRzaXplKSB7XG4gICR0cmFja2luZ1NpemU6ICRzaXplIC8gMTAwMDtcblxuICBAcmV0dXJuICN7JHRyYWNraW5nU2l6ZX1lbTtcbn1cblxuLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBhY2Nlc3NpYmxlLlxuLy8gQHNlZSBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHdpZHRoOiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbn1cblxuLy8gVHVybnMgb2ZmIHRoZSBlbGVtZW50LWludmlzaWJsZSBlZmZlY3QuXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUtb2ZmIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICBjbGlwOiBhdXRvO1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4gYnkgZGVmYXVsdCwgYnV0IHZpc2libGUgd2hlbiBmb2N1c2VkLlxuQG1peGluIGVsZW1lbnQtZm9jdXNhYmxlIHtcbiAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgfVxufVxuXG4vLyBIaWRlIHRleHRcblxuQG1peGluIGhpZGUtdGV4dCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiLyogSGVhZGluZ3MgKi9cbi8qRnVydGhlciBSZWFkaW5nOiBodHRwOi9jc3N3aXphcmRyeS5jb20vMjAxMi8wMi9wcmFnbWF0aWMtcHJhY3RpY2FsLWZvbnQtc2l6aW5nLWluLWNzcy8gKi9cbmgxLFxuLmFscGhhIHtcbiAgZm9udC1zaXplOiByZW0oMzZweCk7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbmgyLFxuLmJldGEge1xuICBmb250LXNpemU6IHJlbSgyNHB4KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuaDMsXG4uZ2FtbWEge1xuICBmb250LXNpemU6IHJlbSgxOHB4KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuaDQsXG4uZGVsdGEge1xuICBmb250LXNpemU6IHJlbSgxN3B4KTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuaDUsXG4uZXBzaWxvbiB7XG4gIGZvbnQtc2l6ZTogcmVtKDE3cHgpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogbm9ybWFsO1xufVxuXG5oNixcbi56ZXRhIHtcbiAgZm9udC1zaXplOiByZW0oMTZweCk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG4iLCIvKiBMaW5rcyAqL1xuJWxpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlsaXRlLXllbGxvdztcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRhZHZvLWJsYWNrLCAkYWR2by1ibGFjayk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMCUgMTAwJTtcbiAgcGFkZGluZzogM3B4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLjE1LCAwLjEsIDApO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cbn1cblxuLyogQmx1ZSBMaW5rcyAqL1xuJWxpbmstLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlsaXRlLWJsdWU7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cbn1cblxuLyogR3JlZW4gTGlua3MgKi9cbiVsaW5rLS1ncmVlbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRoaWxpdGUtZ3JlZW47XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cbn1cblxuLyogV2hpdGUgTGlua3MgKi9cbiVsaW5rLS13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRhZHZvLWJsYWNrO1xuICB9XG59XG5cbi5ieWxpbmUsXG4uaGVudHJ5LFxuLmVudHJ5LWNvbnRlbnQsXG4uc3RhdHVzLW1lc3NhZ2Uge1xuICBhIHtcbiAgICBAZXh0ZW5kICVsaW5rO1xuICB9XG5cbiAgaDIgYSxcbiAgaDMgYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDAgMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICRhZHZvLWJsYWNrO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICB9XG59XG5cbi5tb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRoaWxpdGUteWVsbG93LCAkaGlsaXRlLXllbGxvdyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMCUgMTAwJTtcblxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLXNpemUgMC4yNXMgZWFzZS1pbi1vdXQ7XG5cbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IHJlbSgxOHB4KTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogM3B4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgYSB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vLi4vbGlicmFyeS9pbWFnZXMvcmVicmFuZC1pY29ucy9tb3JlLWFycm93LnN2Z1wiKTtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgaGVpZ2h0OiByZW0tY2FsYygxMCk7XG4gICAgICBtYXJnaW4tbGVmdDogcmVtLWNhbGMoMTApO1xuICAgICAgd2lkdGg6IHJlbS1jYWxjKDI2KTtcbiAgICAgIHRyYW5zaXRpb246IG1hcmdpbi1sZWZ0IDAuM3MgZWFzZS1vdXQ7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuICAgIH1cblxuICAgICY6aG92ZXI6OmFmdGVyLFxuICAgICY6Zm9jdXM6OmFmdGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiByZW0oMjBweCk7XG4gICAgfVxuICB9XG59XG4iLCIvKiBUZXh0LVJlbGF0ZWQgRWxlbWVudHMgKi9cbmJvZHksXG5wIHtcbiAgZm9udC1zaXplOiByZW0oMTZweCk7XG4gIGxpbmUtaGVpZ2h0OiByZW0oMjZweCk7XG59XG5cbnAge1xuICBtYXJnaW4tdG9wOiAkc3BhY2U7XG4gIG1hcmdpbi1ib3R0b206ICRzcGFjZTtcbn1cblxuLyogQmxvY2txdW90ZSAqL1xuYmxvY2txdW90ZSxcbmJsb2NrcXVvdGUgcCB7XG4gIGNvbG9yOiAkYWR2by1ibGFjaztcbiAgZm9udC1zaXplOiByZW0oMzZweCk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiByZW0oNDZweCk7XG59XG5cbmJsb2NrcXVvdGUge1xuICBib3JkZXI6IDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAwIDAgcmVtKDM2cHgpO1xuXG4gIHA6OmJlZm9yZSxcbiAgcDo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBoZWlnaHQ6IHJlbSgzNnB4KTtcbiAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiByZW0oMjVweCk7XG4gIH1cblxuICBwOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uLy4uL2xpYnJhcnkvaW1hZ2VzL3JlYnJhbmQtaWNvbnMvcXVvdGF0aW9uLWwuc3ZnXCIpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gIH1cblxuICBwOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vLi4vbGlicmFyeS9pbWFnZXMvcmVicmFuZC1pY29ucy9xdW90YXRpb24tci5zdmdcIik7XG4gIH1cbn1cblxuLmJsb2NrcXVvdGVfX2luZm8ge1xuICBmb250LXNpemU6IHJlbSgxM3B4KTtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IHRyYWNraW5nKDUwKTtcbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIi0gXCI7XG4gIH1cbn1cblxuLyogSG9yaXpvbnRhbCBSdWxlICovXG5ociB7XG4gIGJvcmRlcjogMDtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQ6ICRncmF5LWxpZ2h0LTI7XG4gIG1hcmdpbjogJHNwYWNlLWRvdWJsZSAwO1xufVxuXG5hYmJyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAkZ3JheTtcbiAgY3Vyc29yOiBoZWxwO1xufVxuXG4vL0ludHJvIHRleHRcbi5pbnRybyB7XG4gIGZvbnQtc2l6ZTogcmVtKDI0cHgpO1xuICBsaW5lLWhlaWdodDogcmVtKDM2cHgpO1xufVxuXG4vL1B1bGxxdW90ZVxuLnB1bGxxdW90ZSB7XG59XG5cbi8vQ2FwdGlvblxuLmNhcHRpb24ge1xufVxuXG4vL1Bhc3NhZ2VzIG9mIHRleHRcbi50ZXh0IHtcbiAgYSB7XG4gIH1cblxuICB1bCB7XG4gICAgdWwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICBvbCB7XG4gICAgbGlzdC1zdHlsZTogZGVjaW1hbDtcbiAgICBtYXJnaW46IDAgMCAkc3BhY2UgMS41ZW07XG5cbiAgICBvbCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuXG5tYXJrIHtcbiAgYmFja2dyb3VuZDogJGhpbGl0ZS1vcmFuZ2U7XG59XG5cbjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogJGhpbGl0ZS15ZWxsb3c7XG59XG5cbjo6LW1vei1zZWxlY3Rpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlsaXRlLXllbGxvdztcbn1cbiIsIi8vLyBNaXhpbiAtIGxpc3QtcmVzZXRcbi8vLyBSZXNldCBsaXN0IGl0ZW0gZGVmYXVsdHMgd2hlbiBubyBtYXJnaW4sIHBhZGRpbmcsIGxpc3Qgc3R5bGVzIG5lZWRlZFxuQG1peGluIGxpc3QtcmVzZXQge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbkBtaXhpbiBsaXN0LWl0ZW0ge1xuICBmb250LXNpemU6IHJlbSgxNnB4KTtcbiAgbGluZS1oZWlnaHQ6IHJlbSgyNHB4KTtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5AbWl4aW4gbGlzdC1pdGVtLXVsIHtcbiAgcGFkZGluZy1sZWZ0OiByZW0oMjBweCk7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWR2by1ibGFjaztcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IHJlbSg3cHgpO1xuICAgIG1hcmdpbi1sZWZ0OiByZW0oLTIwcHgpO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiByZW0oOHB4KTtcbiAgICB3aWR0aDogcmVtKDdweCk7XG4gIH1cbn1cblxuQG1peGluIGxpc3QtaXRlbS1vbCB7XG4gIHBhZGRpbmctbGVmdDogcmVtKDIwcHgpO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY291bnRlci1pbmNyZW1lbnQ6IHNlY3Rpb247XG4gICAgY29udGVudDogY291bnRlcnMoc2VjdGlvbiwgXCIuXCIpIFwiLiBcIjtcbiAgICBmb250LXNpemU6IHJlbSgxNHB4KTtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHJlbSgxcHgpO1xuICB9XG59XG5cbnVsIHtcbiAgLmVudHJ5LWNvbnRlbnQgJiB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46ICRzcGFjZSAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBsaSB7XG4gICAgICBAaW5jbHVkZSBsaXN0LWl0ZW07XG4gICAgICBAaW5jbHVkZSBsaXN0LWl0ZW0tdWw7XG4gICAgfVxuICB9XG59XG5cbm9sIHtcbiAgY291bnRlci1yZXNldDogc2VjdGlvbjtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBtYXJnaW46ICRzcGFjZSAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgbGkge1xuICAgIEBpbmNsdWRlIGxpc3QtaXRlbTtcbiAgICBAaW5jbHVkZSBsaXN0LWl0ZW0tb2w7XG5cbiAgICBvbCB7XG4gICAgICBtYXJnaW46ICRzcGFjZSAwO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIHBhZGRpbmctbGVmdDogcmVtKDQwcHgpO1xuICAgIH1cbiAgfVxufVxuIiwiLm9wdGlvbnMge1xuICB1bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgfVxufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbmlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbmlucHV0W3R5cGU9XCJkYXRlXCJdLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuaW5wdXRbdHlwZT1cIndlZWtcIl0sXG5pbnB1dFt0eXBlPVwiZW1haWxcIl0sXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbmlucHV0W3R5cGU9XCJ0ZWxcIl0sXG5pbnB1dFt0eXBlPVwidGltZVwiXSxcbmlucHV0W3R5cGU9XCJ1cmxcIl0sXG50ZXh0YXJlYSB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICRhZHZvLWJsYWNrO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCB0cmFuc3BhcmVudDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmc6IHJlbSgxMHB4KTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpmb2N1cyxcbiAgJjpmb2N1cy13aXRoaW4ge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRhZHZvLWJsYWNrO1xuICB9XG59XG5cbnNlbGVjdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMnB4IHNvbGlkICRhZHZvLWJsYWNrO1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMsXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWR2by1ncmV5O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRhZHZvLWJsYWNrO1xuICB9XG59XG5cbi5nZm9ybV9ib2R5IHVsIGxpOjpiZWZvcmUge1xuICBjb250ZW50OiBub25lO1xufVxuIiwiQG1peGluIGJ1dHRvbihcbiAgJGJnOiAkd2hpdGUsXG4gICRjb2xvcjogJGFkdm8tYmxhY2ssXG4gICRob3ZlckJnOiAkYWR2by1ibGFjayxcbiAgJGhvdmVyQ29sb3I6ICR3aGl0ZVxuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRhZHZvLWJsYWNrLCAkYWR2by1ibGFjayk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogMCUgMTAwJTtcbiAgYm9yZGVyOiAycHggc29saWQgJGFkdm8tYmxhY2s7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IHJlbSgxMnB4KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IHRyYWNraW5nKDE1MCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjYyNXJlbTtcbiAgbWFyZ2luLXRvcDogMWVtO1xuICBwYWRkaW5nOiByZW0oM3B4KSByZW0oMzZweCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLXNpemUgMC4yNXMgZWFzZS1pbi1vdXQ7XG5cbiAgJjp2aXNpdGVkIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICAgIGNvbG9yOiAkYWR2by1ibGFjaztcbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLWRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY2NjtcbiAgYm9yZGVyOiAycHggc29saWQgIzY2NjtcbiAgY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogZGVmYXVsdDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjY7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG59XG5cbi5idG4sXG4uYnV0dG9uLFxuYS5idXR0b24sXG5pbnB1dC5zdWJtaXQsXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgQGluY2x1ZGUgYnV0dG9uO1xufVxuXG4uYnRuLS1kaXNhYmxlZCB7XG4gIEBpbmNsdWRlIGJ1dHRvbjtcbiAgQGluY2x1ZGUgYnV0dG9uLWRpc2FibGVkO1xufVxuXG4lYnRuLS15ZWxsb3csXG4uYnRuLS15ZWxsb3csXG5hLmJ0bi0teWVsbG93IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGhpbGl0ZS15ZWxsb3c7XG59XG5cbiVidG4tLWJsdWUsXG4uYnRuLS1ibHVlLFxuYS5idG4tLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGlsaXRlLWJsdWU7XG59XG5cblxuLmJ0bi0tY29udGFjdCxcbmEuYnRuLS1jb250YWN0LFxuLndwY2Y3IC53cGNmNy1zdWJtaXQsXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLmdmb3JtX2J1dHRvbiB7XG4gIEBleHRlbmQgJWJ0bi0teWVsbG93O1xufVxuIiwiIiwiI2lubmVyLWZvb3RlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYWR2by1ibGFjaztcbiAgbWF4LXdpZHRoOiByZW0oMTYwMHB4KTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEwQkU7QUFFRjs7O3dDQUd3QztBQUN4Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FDckRIOzt3Q0FFd0M7QUNGeEM7O3dDQUV3QztBQUV4Qzs7R0FFRztBQVNIOztFQUVFO0FGNENGOzt3Q0FFd0M7QUFZeEM7O3dDQUV3QztBQUl4Qzs7d0NBRXdDO0FHbkZ4QyxBQUFBLFNBQVMsQ0FBQztFQUNSLFdBQVcsRUFBRSxJQUFJLEdBQ2xCOztBRU9ELEFBQUEsYUFBYSxDQUFD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 */
