/*------------------------------------*    #BORDER BOX
\*------------------------------------*/
/**
 * Apply global border box.
 */
*, *:before, *:after {
    box-sizing: inherit; }

html {
    box-sizing: border-box; }

/*------------------------------------*    #CUSTOM FONTS
\*------------------------------------*/
/**
 * List custom fonts
 */
/*------------------------------------*    #PAGE
\*------------------------------------*/
/**
 * Body
 */
html {
    background: #000 url(/images/body-bg.jpg) center;
    color: #ccc;
    font-family: "Oswald", sans-serif;
    font-size: 18px;
    font-weight: 300;
    line-height: 1.4;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }

body {
    min-height: 100vh;
    text-align: center; }

/*------------------------------------*    #TYPOGRAPY
\*------------------------------------*/
/**
 * Headings
 *
 * In most cases you should avoid styling a specific heading type to have
 * custom distinct styles that would apply to all headings of that type.
 * Instead create a new component like c-heading or c-title. This may not
 * be the case when a CMS needs default headings to appear a specific way.
 */
h1, h2, h3, h4, h5, h6 {
    margin: 0 0 20px;
    font-size: 1.2rem;
    line-height: 1.4; }

/**
 * Paragraphs
 */
p {
    margin: 0 0 20px; }

/**
 * Lists
 */
ul,
ol,
dl {
    margin: 0 0 20px; }

/**
 * Link Styles
 */
a {
    color: #d00000;
    text-decoration: none; }
a:hover, a:active, a:focus {
    text-decoration: underline;
    color: #fff; }

small {
    font-size: 0.77778em; }

/**
 * Horizontal Rule
 */
hr {
    margin: 15px auto;
    width: 100%;
    max-width: 1208px;
    height: 8px;
    border: 0;
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLgAAAAICAYAAAD6IEYwAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTg1QjdCMzgxQUNBMTFFNjhCRDU4RDZFNTc0NzQ0MEYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTg1QjdCMzcxQUNBMTFFNjhCRDU4RDZFNTc0NzQ0MEYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEMERENzY2MDFBQzQxMUU2OEJENThENkU1NzQ3NDQwRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEMERENzY2MTFBQzQxMUU2OEJENThENkU1NzQ3NDQwRiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnbHNl4AAAWOSURBVHja7FwNc6woEBxwX/Lu///Xq8uLOpetYyptZ0BN9vLZXWW5i4AICHQ7THF3EwRBEARBEARBeEeUp8M74QFP/o/yy+LVdl5bnF68QuXylpbLyb+xjCJWgiAIH4iLqkAQBEEQBEH45ihwhAjx6+m4a+fajqn9j7AQLmpbN1fIB68LgnBbhHi4tvPUwud2rBDneiwtbIH3E9OXlke8s2s7YnxYWr5xr+u1PxDmthUwI68Z8rEknkE5MuA44smY1cuvJ7oWilMO1PNREfknzx9YN2WnzlSHH9lYsuASBEEQBEH4FIvnXjiKKYUI1gTkDkkXp72KM3f2/HHT2+9LS1OBQAb5K3ANSWLplPkniz3eIZcZQQpiXYFIPxIxNyLVFdr6oZ3vWrzHRrI5LbZZhAdht0QAqBA2Q5/qkfRCwgIT8rVTR56IDChIYD9D6yuDOrAB0VzpXXC4x+gdrBS3Jm07UdtUiMdlincWBZqJhI1Kz3j9HeLqYn0hdaKyVSovv6ee1Gc5OR4dIf6W3PNW79aZa0fD/YZpX5O3n4jvN7jmnXM2Zvkgvlsu+tkgHAVFP3E/t1zsOzIP+YE+XZJ3eFSv3unfbtsPKCzQSnR5rwWVBC5BEAThC4sBuHi5EGFAYnFppGEioWCCA8MjfgHiGUIAkklegE1w37n9vwAJLERwsgVaRvSmlt+fljeXmYlOEFRPyrQQ2b3+//103Lf4j8mCDsUTJluVRBVPRBkm0YGlUw/Fjn0hzRa+WZ26BJkvIxKxkBb9dqa+FX31oZ3XQRomHCjesIAiCMLnnv8zMfmtawmjuYS3sx4RvTJBNJsXC405dVC+M5Zd2Voge96SPD+XKxPas7LzfXGexzL6oOyj50TB2pO4ewJU1lY9sUmiyHcZJCRwCYLwPy5CRgsDJsEVCC9/1Z5AvDAQGhwIfFgmFJhc72Eiri3OZFurBEsm0CMTXe0sFDyZfJmEL/AcnpD8o18/y6BceyTSaKHiA7HlluRVooIgvB+OWAes9F7GNp2VSEYISo8wpsb4MduzEGw01i2Wf8lfBoRGEARBEAThPAGVwPUuJP/o4rMMSOBoAVgO3Csj3a99lqxcmco/JUT9Aotbs631RAFhA/OrIGgUEAb+sue974ttfcqx2fdPJzeZlUN9RT5n+7cgfHT/3yPM2Rj2Gft2z0dG+eT1/5axwpPx5myefmIu7eWJecRWLN5WxF+zY25Ci7sCcTF+iPX/2H/WSLhVMASi2FYW25dim9pqL33KhEBldN/lYB2bSWQSBEEQBOEL4ipwfeTi+DWL1bPk+sz+8pL87lkz9NKXwTN6suDMFpRYJyssYGPbSeajgRfMGXnjfcAjfxrZHuIsbzZBPUse/WAfGN0jK3PZWcS/pc/ukaZP/94nbXELwRN9d2RmxJVIWCZAYhj6sECLrcW2fjUcrvNzVdv6OvlFBPXOtlZgU5Ke++lZAlg65eKwktSF2XaLHToznTr1zSbmZmN/KHvm7UcEd7OX2+/mnTEJnzEsP9DvyJzEQwew0eZX4v83tGnmPLZCvg8tTljzoRAQ/Qot7CYQKe5bWIgOuKXRk3aZbes3Z90RpspOf8F0EwkbRn2gZ5232NZfTiXhhdMvNFdNLezRth8tOB4LLlGfFeKuEDa3tglrzGIvHQD3rCAL9ZkKbbvAGJKVE/sl9gVL6oqfaaU5cEnauNcObvLJIQiCIAiCcHOBS7UgCMK3H+uAxPZEhKMYWS32RKnYopM5a86Eqp5PmMyZZZbW4Z6YZu2UHUUOI0HFE4GERQdPBCWz3NnvnLSJ2di/RCY0fmT/sZP95y1ick/4jPYs1M/WpA8tlH7k/2LdqfPe87MPrLN1UAZ5jur+SL2NRFxBEARBEAThm+BfAQYAobKAFTy7wwUAAAAASUVORK5CYII=) no-repeat center;
    background-size: 100% auto; }
@media (min-width: 768px) {
    hr {
        margin: 30px auto; } }

/*------------------------------------*    #IMAGES
\*------------------------------------*/
/**
 * [1] remove spacing below inline images.
 */
img {
    vertical-align: middle;
    margin: 0 0 20px; }

/**
 * Figure
 */
figure {
    display: inline-block;
    vertical-align: middle;
    margin: 0 0 20px; }

figcaption {
    font-size: 0.55556rem;
    text-align: right; }

svg {
    fill: currentColor; }

/*------------------------------------*    #WRAP
\*------------------------------------*/
/**
 * A simple wrapper that crops all content that bleeds out of it
 * Usefull for preventing scrolling on the body.
 */
.o-wrap {
    overflow: hidden; }

/*------------------------------------*    #CONTAINER
\*------------------------------------*/
/**
 * An outer container for site content. A container should never be a child of
 * instance of it's self.
 */
.o-container {
    padding: 0 20px;
    margin: 0 auto;
    width: 100%;
    max-width: 1090px; }
@media (min-width: 768px) {
    .o-container {
        width: 90%; } }

.o-container--wide {
    max-width: 1400px; }

/*------------------------------------*    #COLUMNS
\*------------------------------------*/
.o-columns {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
    flex-direction: column;
    -ms-flex-pack: center;
    justify-content: center;
    -ms-flex-align: stretch;
    align-items: stretch; }
@media (min-width: 768px) {
    .o-columns {
        -ms-flex-direction: row;
        flex-direction: row;
        margin: 0 -10px; } }
@media (min-width: 1024px) {
    .o-columns {
        margin: 0 -20px; } }

.o-columns__panel {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-pack: stretch;
    justify-content: stretch;
    -ms-flex-align: stretch;
    align-items: stretch; }
@media (min-width: 768px) {
    .o-columns__panel {
        -ms-flex: 0 0 50%;
        flex: 0 0 50%;
        padding: 0 10px; } }
@media (min-width: 1024px) {
    .o-columns__panel {
        padding: 0 20px; } }

/*------------------------------------*    #GRID
\*------------------------------------*/
/**
 * Layout row
 *
 * [1] Additional modifier classes for layout gutters.
 */
.o-grid {
    margin-right: -3px;
    margin-left: -3px; }
.o-grid:before, .o-grid:after {
    content: ' ';
    display: table; }
.o-grid:after {
    clear: both; }
@media (min-width: 1024px) {
    .o-grid {
        margin-right: -5px;
        margin-left: -5px; } }

/**
 * A layout item, used like a column
 *
 * [1] Additional modifier classes for layout gutters.
 */
.o-grid__column {
    position: relative;
    padding-right: 3px;
    padding-left: 3px;
    width: 100%;
    min-height: 1px;
    float: left; }
@media (min-width: 1024px) {
    .o-grid__column {
        padding-right: 5px;
        padding-left: 5px; } }

/**
 * Layout Columns
 */
.o-grid__column--1 {
    width: 8.33333%; }

.o-grid__column--2 {
    width: 16.66667%; }

.o-grid__column--3 {
    width: 25%; }

.o-grid__column--4 {
    width: 33.33333%; }

.o-grid__column--5 {
    width: 41.66667%; }

.o-grid__column--6 {
    width: 50%; }

.o-grid__column--7 {
    width: 58.33333%; }

.o-grid__column--8 {
    width: 66.66667%; }

.o-grid__column--9 {
    width: 75%; }

.o-grid__column--10 {
    width: 83.33333%; }

.o-grid__column--11 {
    width: 91.66667%; }

.o-grid__column--12 {
    width: 100%; }

@media (min-width: 768px) {
    .o-grid__column--1\@sm {
        width: 8.33333%; }
    .o-grid__column--2\@sm {
        width: 16.66667%; }
    .o-grid__column--3\@sm {
        width: 25%; }
    .o-grid__column--4\@sm {
        width: 33.33333%; }
    .o-grid__column--5\@sm {
        width: 41.66667%; }
    .o-grid__column--6\@sm {
        width: 50%; }
    .o-grid__column--7\@sm {
        width: 58.33333%; }
    .o-grid__column--8\@sm {
        width: 66.66667%; }
    .o-grid__column--9\@sm {
        width: 75%; }
    .o-grid__column--10\@sm {
        width: 83.33333%; }
    .o-grid__column--11\@sm {
        width: 91.66667%; }
    .o-grid__column--12\@sm {
        width: 100%; } }

@media (min-width: 1024px) {
    .o-grid__column--1\@md {
        width: 8.33333%; }
    .o-grid__column--2\@md {
        width: 16.66667%; }
    .o-grid__column--3\@md {
        width: 25%; }
    .o-grid__column--4\@md {
        width: 33.33333%; }
    .o-grid__column--5\@md {
        width: 41.66667%; }
    .o-grid__column--6\@md {
        width: 50%; }
    .o-grid__column--7\@md {
        width: 58.33333%; }
    .o-grid__column--8\@md {
        width: 66.66667%; }
    .o-grid__column--9\@md {
        width: 75%; }
    .o-grid__column--10\@md {
        width: 83.33333%; }
    .o-grid__column--11\@md {
        width: 91.66667%; }
    .o-grid__column--12\@md {
        width: 100%; } }

@media (min-width: 1200px) {
    .o-grid__column--1\@lg {
        width: 8.33333%; }
    .o-grid__column--2\@lg {
        width: 16.66667%; }
    .o-grid__column--3\@lg {
        width: 25%; }
    .o-grid__column--4\@lg {
        width: 33.33333%; }
    .o-grid__column--5\@lg {
        width: 41.66667%; }
    .o-grid__column--6\@lg {
        width: 50%; }
    .o-grid__column--7\@lg {
        width: 58.33333%; }
    .o-grid__column--8\@lg {
        width: 66.66667%; }
    .o-grid__column--9\@lg {
        width: 75%; }
    .o-grid__column--10\@lg {
        width: 83.33333%; }
    .o-grid__column--11\@lg {
        width: 91.66667%; }
    .o-grid__column--12\@lg {
        width: 100%; } }

/*------------------------------------*    #ISLAND
\*------------------------------------*/
/**
 * Add a nice gap below a block of content.
 */
.o-island {
    margin-bottom: 20px; }
@media (min-width: 768px) {
    .o-island {
        margin-bottom: 50px; } }

/*------------------------------------*    #INSET
\*------------------------------------*/
@media (min-width: 768px) {
    .o-inset {
        padding: 0 15%; } }

/*------------------------------------*    #ASPECT
\*------------------------------------*/
/**
 * Enforce an aspect ratio on a responsive image before the page loads. Uses
 * the same trick as responsive videos.
 *
 * [1] Hide any access overflow of the image in case it doesn't quite fit.
 * [2] Padding 100% creates a square by default.
 */
.o-aspect {
    overflow: hidden;
    margin-bottom: 20px;
    padding-top: 100%;
    width: 100%;
    position: relative; }
.o-aspect > img,
.o-aspect > iframe {
    margin: 0;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0; }

/**
 * Loop throught the config and build out aditional sizes.
 */
.o-aspect--2x1 {
    padding-top: 50%; }

.o-aspect--16x9 {
    padding-top: 56.25%; }

/*------------------------------------*    #LIST UNSTYLED
\*------------------------------------*/
/**
 * Remove list styling from list
 */
.o-list-unstyled {
    list-style: none;
    padding: 0; }

/*------------------------------------*    #LIST INLINE
\*------------------------------------*/
/**
 * List with direct children displaying inline.
 * [1] All items except the first have padding.
 */
.o-list-inline {
    list-style: none;
    padding: 0;
    margin: 20px 0; }
.o-list-inline > li {
    display: inline-block;
    vertical-align: middle;
    padding: 0 5px; }

/*------------------------------------*    #LOGOS
\*------------------------------------*/
/**
 * Logo base class. Applies shared properties for all logos.
 *
 * [1] Relies on background-size to shrink large logos to smaller sizes.
 */
.c-logo {
    border: 0;
    font: 0/0 a;
    text-shadow: none;
    color: transparent;
    display: inline-block;
    vertical-align: middle;
    background: center no-repeat;
    background-size: contain; }

.c-logo--sample {
    width: 150px;
    height: 75px;
    background-image: url("http://satyr.io/150x75?text=Logo"); }

.c-logo--responsive {
    width: 80px;
    height: 48px;
    background-image: url("http://satyr.io/200x120?text=Logo"); }
@media (min-width: 768px) {
    .c-logo--responsive {
        width: 150px;
        height: 90px; } }
@media (min-width: 1024px) {
    .c-logo--responsive {
        width: 200px;
        height: 120px; } }

/*------------------------------------*    #BUTTONS
\*------------------------------------*/
.c-btn {
    display: inline-block;
    vertical-align: middle;
    padding: 0.6em 3em 0.4em;
    border: 1px solid #eb221c;
    color: #fff;
    background: #eb221c;
    font-family: "Special Elite", cursive;
    font-size: 1.11111rem;
    text-transform: uppercase;
    line-height: 1;
    text-align: center;
    font-weight: normal;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    transition: 0.15s; }

span.c-btn {
    background: #ccc;
    border-color: #b3b3b3;
    color: #999999; }

a.c-btn {
    cursor: pointer; }
a.c-btn:hover, a.c-btn:active, a.c-btn:focus {
    background: #c31611;
    text-decoration: none; }

.c-btn--block {
    display: block;
    width: 100%; }

.c-btn--small {
    font-size: 0.77778rem;
    padding: 0.85714em 1.42857em 0.57143em; }

/**
 * Modifiers for the buttons
 */
.c-btn--stroke {
    background: transparent;
    color: #eb221c; }

a.c-btn--stroke:hover, a.c-btn--stroke:active, a.c-btn--stroke:focus {
    background: transparent;
    color: #c31611;
    border-color: #c31611; }

/*------------------------------------*    #HEADINGS
\*------------------------------------*/
.c-heading-page {
    color: #fff;
    font-size: 1.33333rem;
    font-weight: 300;
    line-height: 1.27778em; }
@media (min-width: 1024px) {
    .c-heading-page {
        font-size: 2rem; } }
.c-heading-page strong {
    font-weight: 400; }

.c-heading-section {
    color: #fff;
    font-family: "Special Elite", cursive;
    font-size: 1.66667rem;
    font-weight: 300;
    line-height: 1;
    text-transform: uppercase; }
@media (min-width: 1024px) {
    .c-heading-section {
        font-size: 2.77778rem; } }

.c-heading-title {
    font-size: 1.11111rem;
    font-weight: 300;
    line-height: 1.38462em; }
@media (min-width: 1024px) {
    .c-heading-title {
        font-size: 1.44444rem; } }
.c-heading-title strong {
    color: #fff;
    font-weight: 400; }

.c-heading-subtitle {
    color: #fff;
    font-size: 1.11111rem;
    font-weight: 400;
    line-height: 1.41667em; }
@media (min-width: 1024px) {
    .c-heading-subtitle {
        font-size: 1.33333rem; } }

.c-heading-lead {
    font-size: 1.05556rem; }
@media (min-width: 1024px) {
    .c-heading-lead {
        font-size: 1.22222rem; } }

.c-heading-elite {
    font-family: "Special Elite", cursive;
    font-size: 1.66667rem;
    font-weight: normal;
    line-height: 1.2; }
@media (min-width: 768px) {
    .c-heading-elite {
        font-size: 2.77778rem; } }

/*------------------------------------*    #SCHEDULE
\*------------------------------------*/
.c-schedule {
    padding-top: 8px;
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLgAAAAICAYAAAD6IEYwAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTg1QjdCMzgxQUNBMTFFNjhCRDU4RDZFNTc0NzQ0MEYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTg1QjdCMzcxQUNBMTFFNjhCRDU4RDZFNTc0NzQ0MEYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEMERENzY2MDFBQzQxMUU2OEJENThENkU1NzQ3NDQwRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEMERENzY2MTFBQzQxMUU2OEJENThENkU1NzQ3NDQwRiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnbHNl4AAAWOSURBVHja7FwNc6woEBxwX/Lu///Xq8uLOpetYyptZ0BN9vLZXWW5i4AICHQ7THF3EwRBEARBEARBeEeUp8M74QFP/o/yy+LVdl5bnF68QuXylpbLyb+xjCJWgiAIH4iLqkAQBEEQBEH45ihwhAjx6+m4a+fajqn9j7AQLmpbN1fIB68LgnBbhHi4tvPUwud2rBDneiwtbIH3E9OXlke8s2s7YnxYWr5xr+u1PxDmthUwI68Z8rEknkE5MuA44smY1cuvJ7oWilMO1PNREfknzx9YN2WnzlSHH9lYsuASBEEQBEH4FIvnXjiKKYUI1gTkDkkXp72KM3f2/HHT2+9LS1OBQAb5K3ANSWLplPkniz3eIZcZQQpiXYFIPxIxNyLVFdr6oZ3vWrzHRrI5LbZZhAdht0QAqBA2Q5/qkfRCwgIT8rVTR56IDChIYD9D6yuDOrAB0VzpXXC4x+gdrBS3Jm07UdtUiMdlincWBZqJhI1Kz3j9HeLqYn0hdaKyVSovv6ee1Gc5OR4dIf6W3PNW79aZa0fD/YZpX5O3n4jvN7jmnXM2Zvkgvlsu+tkgHAVFP3E/t1zsOzIP+YE+XZJ3eFSv3unfbtsPKCzQSnR5rwWVBC5BEAThC4sBuHi5EGFAYnFppGEioWCCA8MjfgHiGUIAkklegE1w37n9vwAJLERwsgVaRvSmlt+fljeXmYlOEFRPyrQQ2b3+//103Lf4j8mCDsUTJluVRBVPRBkm0YGlUw/Fjn0hzRa+WZ26BJkvIxKxkBb9dqa+FX31oZ3XQRomHCjesIAiCMLnnv8zMfmtawmjuYS3sx4RvTJBNJsXC405dVC+M5Zd2Voge96SPD+XKxPas7LzfXGexzL6oOyj50TB2pO4ewJU1lY9sUmiyHcZJCRwCYLwPy5CRgsDJsEVCC9/1Z5AvDAQGhwIfFgmFJhc72Eiri3OZFurBEsm0CMTXe0sFDyZfJmEL/AcnpD8o18/y6BceyTSaKHiA7HlluRVooIgvB+OWAes9F7GNp2VSEYISo8wpsb4MduzEGw01i2Wf8lfBoRGEARBEAThPAGVwPUuJP/o4rMMSOBoAVgO3Csj3a99lqxcmco/JUT9Aotbs631RAFhA/OrIGgUEAb+sue974ttfcqx2fdPJzeZlUN9RT5n+7cgfHT/3yPM2Rj2Gft2z0dG+eT1/5axwpPx5myefmIu7eWJecRWLN5WxF+zY25Ci7sCcTF+iPX/2H/WSLhVMASi2FYW25dim9pqL33KhEBldN/lYB2bSWQSBEEQBOEL4ipwfeTi+DWL1bPk+sz+8pL87lkz9NKXwTN6suDMFpRYJyssYGPbSeajgRfMGXnjfcAjfxrZHuIsbzZBPUse/WAfGN0jK3PZWcS/pc/ukaZP/94nbXELwRN9d2RmxJVIWCZAYhj6sECLrcW2fjUcrvNzVdv6OvlFBPXOtlZgU5Ke++lZAlg65eKwktSF2XaLHToznTr1zSbmZmN/KHvm7UcEd7OX2+/mnTEJnzEsP9DvyJzEQwew0eZX4v83tGnmPLZCvg8tTljzoRAQ/Qot7CYQKe5bWIgOuKXRk3aZbes3Z90RpspOf8F0EwkbRn2gZ5232NZfTiXhhdMvNFdNLezRth8tOB4LLlGfFeKuEDa3tglrzGIvHQD3rCAL9ZkKbbvAGJKVE/sl9gVL6oqfaaU5cEnauNcObvLJIQiCIAiCcHOBS7UgCMK3H+uAxPZEhKMYWS32RKnYopM5a86Eqp5PmMyZZZbW4Z6YZu2UHUUOI0HFE4GERQdPBCWz3NnvnLSJ2di/RCY0fmT/sZP95y1ick/4jPYs1M/WpA8tlH7k/2LdqfPe87MPrLN1UAZ5jur+SL2NRFxBEARBEAThm+BfAQYAobKAFTy7wwUAAAAASUVORK5CYII=) no-repeat center top;
    background-size: 100% auto;
    width: 100%;
    text-align: left; }
@media (min-width: 768px) {
    .c-schedule {
        font-size: 1.11111rem; } }

.c-schedule__item {
    width: 100%;
    padding-bottom: 8px;
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABLgAAAAICAYAAAD6IEYwAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTg1QjdCMzgxQUNBMTFFNjhCRDU4RDZFNTc0NzQ0MEYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTg1QjdCMzcxQUNBMTFFNjhCRDU4RDZFNTc0NzQ0MEYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpEMERENzY2MDFBQzQxMUU2OEJENThENkU1NzQ3NDQwRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpEMERENzY2MTFBQzQxMUU2OEJENThENkU1NzQ3NDQwRiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnbHNl4AAAWOSURBVHja7FwNc6woEBxwX/Lu///Xq8uLOpetYyptZ0BN9vLZXWW5i4AICHQ7THF3EwRBEARBEARBeEeUp8M74QFP/o/yy+LVdl5bnF68QuXylpbLyb+xjCJWgiAIH4iLqkAQBEEQBEH45ihwhAjx6+m4a+fajqn9j7AQLmpbN1fIB68LgnBbhHi4tvPUwud2rBDneiwtbIH3E9OXlke8s2s7YnxYWr5xr+u1PxDmthUwI68Z8rEknkE5MuA44smY1cuvJ7oWilMO1PNREfknzx9YN2WnzlSHH9lYsuASBEEQBEH4FIvnXjiKKYUI1gTkDkkXp72KM3f2/HHT2+9LS1OBQAb5K3ANSWLplPkniz3eIZcZQQpiXYFIPxIxNyLVFdr6oZ3vWrzHRrI5LbZZhAdht0QAqBA2Q5/qkfRCwgIT8rVTR56IDChIYD9D6yuDOrAB0VzpXXC4x+gdrBS3Jm07UdtUiMdlincWBZqJhI1Kz3j9HeLqYn0hdaKyVSovv6ee1Gc5OR4dIf6W3PNW79aZa0fD/YZpX5O3n4jvN7jmnXM2Zvkgvlsu+tkgHAVFP3E/t1zsOzIP+YE+XZJ3eFSv3unfbtsPKCzQSnR5rwWVBC5BEAThC4sBuHi5EGFAYnFppGEioWCCA8MjfgHiGUIAkklegE1w37n9vwAJLERwsgVaRvSmlt+fljeXmYlOEFRPyrQQ2b3+//103Lf4j8mCDsUTJluVRBVPRBkm0YGlUw/Fjn0hzRa+WZ26BJkvIxKxkBb9dqa+FX31oZ3XQRomHCjesIAiCMLnnv8zMfmtawmjuYS3sx4RvTJBNJsXC405dVC+M5Zd2Voge96SPD+XKxPas7LzfXGexzL6oOyj50TB2pO4ewJU1lY9sUmiyHcZJCRwCYLwPy5CRgsDJsEVCC9/1Z5AvDAQGhwIfFgmFJhc72Eiri3OZFurBEsm0CMTXe0sFDyZfJmEL/AcnpD8o18/y6BceyTSaKHiA7HlluRVooIgvB+OWAes9F7GNp2VSEYISo8wpsb4MduzEGw01i2Wf8lfBoRGEARBEAThPAGVwPUuJP/o4rMMSOBoAVgO3Csj3a99lqxcmco/JUT9Aotbs631RAFhA/OrIGgUEAb+sue974ttfcqx2fdPJzeZlUN9RT5n+7cgfHT/3yPM2Rj2Gft2z0dG+eT1/5axwpPx5myefmIu7eWJecRWLN5WxF+zY25Ci7sCcTF+iPX/2H/WSLhVMASi2FYW25dim9pqL33KhEBldN/lYB2bSWQSBEEQBOEL4ipwfeTi+DWL1bPk+sz+8pL87lkz9NKXwTN6suDMFpRYJyssYGPbSeajgRfMGXnjfcAjfxrZHuIsbzZBPUse/WAfGN0jK3PZWcS/pc/ukaZP/94nbXELwRN9d2RmxJVIWCZAYhj6sECLrcW2fjUcrvNzVdv6OvlFBPXOtlZgU5Ke++lZAlg65eKwktSF2XaLHToznTr1zSbmZmN/KHvm7UcEd7OX2+/mnTEJnzEsP9DvyJzEQwew0eZX4v83tGnmPLZCvg8tTljzoRAQ/Qot7CYQKe5bWIgOuKXRk3aZbes3Z90RpspOf8F0EwkbRn2gZ5232NZfTiXhhdMvNFdNLezRth8tOB4LLlGfFeKuEDa3tglrzGIvHQD3rCAL9ZkKbbvAGJKVE/sl9gVL6oqfaaU5cEnauNcObvLJIQiCIAiCcHOBS7UgCMK3H+uAxPZEhKMYWS32RKnYopM5a86Eqp5PmMyZZZbW4Z6YZu2UHUUOI0HFE4GERQdPBCWz3NnvnLSJ2di/RCY0fmT/sZP95y1ick/4jPYs1M/WpA8tlH7k/2LdqfPe87MPrLN1UAZ5jur+SL2NRFxBEARBEAThm+BfAQYAobKAFTy7wwUAAAAASUVORK5CYII=) no-repeat center bottom;
    background-size: 100% auto; }
@media (min-width: 768px) {
    .c-schedule__item {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-align: center;
        align-items: center;
        margin: 0 -5px; } }

.c-schedule__item-block {
    display: block;
    padding: 5px; }
@media (min-width: 768px) {
    .c-schedule__item-block {
        padding: 10px 5px; } }

.c-schedule__item-block--date {
    -ms-flex: 0 0 15%;
    flex: 0 0 15%;
    font-size: 1.2em; }

.c-schedule__item-block--city {
    -ms-flex: 0 0 20%;
    flex: 0 0 20%; }

.c-schedule__item-block--location {
    -ms-flex-positive: 1;
    flex-grow: 1; }

.c-schedule__item-block--cta {
    -ms-flex: 0 0 160px;
    flex: 0 0 160px; }

/*------------------------------------*    #HEADER
\*------------------------------------*/
.c-header {
    padding: 20px 0;
    margin-bottom: 20px; }

.countdown {
    font-family: sans-serif;
    color: #fff;
    width: 260px;
    margin: 0 auto;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-pack: center;
    justify-content: center;
    font-weight: 100;
    text-align: center;
    font-size: 30px; }
@media (min-width: 768px) {
    .countdown {
        width: 350px; } }

.countdown > div {
    padding: 10px;
    width: 20%;
    background: rgba(0, 0, 0, 0.2); }

.countdown div > span {
    border-radius: 3px;
    display: block;
    font-family: 'Special Elite', cursive;
    font-size: 30px;
    line-height: 36px;
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum'; }
@media (min-width: 768px) {
    .countdown div > span {
        font-size: 40px;
        line-height: 42px; } }

.smalltext {
    color: #aaa;
    text-transform: uppercase;
    font-family: "Oswald", sans-serif;
    text-align: center;
    font-size: 14px; }
@media (min-width: 768px) {
    .smalltext {
        font-size: 18px; } }

/*------------------------------------*    #PANELS
\*------------------------------------*/
.c-panel {
    width: 100%;
    padding: 20px;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.3) 0%, transparent 70%), url(../img/panel-bg.jpg) center;
    box-shadow: 3px 3px 23px 8px rgba(0, 0, 0, 0.5); }
@media (min-width: 768px) {
    .c-panel {
        padding: 20px; } }

/**
 * Flex column wrapper fixes IE10 min-hieght flex support
 * https://github.com/philipwalton/flexbugs#3-min-height-on-a-flex-container-wont-apply-to-its-flex-items
 */
@media (min-width: 768px) {
    .c-panel__cta-wrap {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-direction: column;
        flex-direction: column; } }

.c-panel__cta {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-pack: center;
    justify-content: center;
    margin: 20px -10px;
    padding: 10px 10px;
    background: #f00 url(../img/panel-cta-bg.jpg) center; }
@media (min-width: 768px) {
    .c-panel__cta {
        min-height: 80px;
        margin: 20px -20px;
        padding: 5px 20px; } }

/*------------------------------------*    #IMAGE UTILITIES
\*------------------------------------*/
/**
 * Image's max width conforms to the parent's width.
 */
.u-img-respond {
    max-width: 100%;
    height: auto; }

/**
 * Image matches it's containers width
 */
.u-img-full {
    width: 100%;
    height: auto; }

/*------------------------------------*    #COLOR UTILITES
\*------------------------------------*/
/**
 * Color utilities to force a specific color.
 */
.u-color-red {
    color: #eb221c; }

/*------------------------------------*    #VISIBILITY UTILITIES
\*------------------------------------*/
/**
 * Visibility classes for all breakpoints
 */
.u-hidden {
    display: none; }

@media (min-width: 480px) {
    .u-hidden\@xs {
        display: none; } }

@media (max-width: 479px) {
    .u-hidden\@less-than-xs {
        display: none; } }

@media (min-width: 768px) {
    .u-hidden\@sm {
        display: none; } }

@media (max-width: 767px) {
    .u-hidden\@less-than-sm {
        display: none; } }

@media (min-width: 1024px) {
    .u-hidden\@md {
        display: none; } }

@media (max-width: 1023px) {
    .u-hidden\@less-than-md {
        display: none; } }

@media (min-width: 1200px) {
    .u-hidden\@lg {
        display: none; } }

@media (max-width: 1199px) {
    .u-hidden\@less-than-lg {
        display: none; } }

@media (min-width: 1500px) {
    .u-hidden\@xl {
        display: none; } }

@media (max-width: 1499px) {
    .u-hidden\@less-than-xl {
        display: none; } }

/**
 * Hide the entire tag and it's contents except for screen readers
 */
.u-sr-only {
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    width: 1px;
    padding: 0;
    border: 0;
    position: absolute; }

/*------------------------------------*    #TEXT UTILITES
\*------------------------------------*/
/**
 * Text Alignment
 */
.u-text-center {
    text-align: center; }

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

.u-text-caps {
    text-transform: uppercase; }

.u-text-special {
    font-family: "Special Elite", cursive;
    text-transform: uppercase;
    line-height: 1.2; }

/*------------------------------------*    #SPACING UTILITIES
\*------------------------------------*/
.u-flush {
    margin-bottom: 0; }

.u-close {
    margin-bottom: 10px; }

.u-space {
    margin-bottom: 20px; }

/*------------------------------------*    #CARBONITE
\*------------------------------------*/
/*above the dashboard*/
.carbonlite-tophtml {
    margin: 0;
    padding: 0; }

/*above the dashboard*/
.carbonlite-dashboard {
    height: 83px;
    width: 260px;
    margin: 0 auto;
    padding: 10px 0;
    background: rgba(0, 0, 0, 0.2); }
@media (min-width: 768px) {
    .carbonlite-dashboard {
        width: 350px; } }

.carbonlite-dash {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    justify-content: center;
    width: 20%;
    height: 64px;
    margin: 0;
    float: left;
    padding-left: 0;
    padding-top: 0;
    position: relative;
    color: #FFF; }

.carbonlite-tripdash {
    width: 62px;
    height: 44px;
    float: left;
    padding-left: 2px;
    padding-top: 10px;
    position: relative;
    color: #FFF;
    text-align: center; }

.carbonlite-hours_dash, .carbonlite-minutes_dash, .carbonlite-seconds_dash {
    background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0UxNTUxRUQxQTY3MTFFNjhCRDU4RDZFNTc0NzQ0MEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0UxNTUxRUUxQTY3MTFFNjhCRDU4RDZFNTc0NzQ0MEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NDFDOTY3NjE5RkUxMUU2OEJENThENkU1NzQ3NDQwRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozRTE1NTFFQzFBNjcxMUU2OEJENThENkU1NzQ3NDQwRiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pn47EH4AAAAQSURBVHjaYvj//z8DQIABAAj8Av7bok0WAAAAAElFTkSuQmCC) 0 0 no-repeat; }

.carbonlite-days_dash {
    background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0UxNTUxRUQxQTY3MTFFNjhCRDU4RDZFNTc0NzQ0MEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0UxNTUxRUUxQTY3MTFFNjhCRDU4RDZFNTc0NzQ0MEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NDFDOTY3NjE5RkUxMUU2OEJENThENkU1NzQ3NDQwRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozRTE1NTFFQzFBNjcxMUU2OEJENThENkU1NzQ3NDQwRiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pn47EH4AAAAQSURBVHjaYvj//z8DQIABAAj8Av7bok0WAAAAAElFTkSuQmCC) 0 0 no-repeat; }

.carbonlite-days_trip_dash {
    background: transparent url("images/bg_trip_dash.png") 0 0 no-repeat; }

.carbonlite-weeks_dash {
    background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6M0UxNTUxRUQxQTY3MTFFNjhCRDU4RDZFNTc0NzQ0MEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6M0UxNTUxRUUxQTY3MTFFNjhCRDU4RDZFNTc0NzQ0MEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1NDFDOTY3NjE5RkUxMUU2OEJENThENkU1NzQ3NDQwRiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozRTE1NTFFQzFBNjcxMUU2OEJENThENkU1NzQ3NDQwRiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pn47EH4AAAAQSURBVHjaYvj//z8DQIABAAj8Av7bok0WAAAAAElFTkSuQmCC) 0 0 no-repeat; }

.carbonlite-weeks_trip_dash {
    background: transparent url("images/bg_trip_dash.png") 0 0 no-repeat; }

.carbonlite-digit {
    height: 36px;
    font-family: 'Special Elite', cursive;
    width: 18px;
    font-size: 30px;
    line-height: 36px;
    text-align: center;
    position: relative;
    float: none; }
@media (min-width: 768px) {
    .carbonlite-digit {
        height: 38px;
        width: 24px;
        -ms-flex: 0 0 24px;
        flex: 0 0 24px;
        font-size: 40px;
        line-height: 42px; } }

.carbonlite-dash .carbonlite-dash_title {
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    display: block;
    position: absolute;
    text-transform: uppercase;
    width: 100%;
    top: 40px;
    left: 0;
    color: #ccc;
    font-family: "Oswald", sans-serif;
    text-align: center;
    font-size: 14px; }
@media (min-width: 768px) {
    .carbonlite-dash .carbonlite-dash_title {
        font-size: 18px; } }

.carbonlite-tripdash .carbonlite-dash_title {
    display: block;
    position: absolute;
    text-transform: uppercase;
    top: 33px;
    left: 17px;
    color: #AAA;
    text-align: center;
    font-size: 9px; }

/*below the dashboard*/
.carbonlite-bothtml {
    margin: 0;
    padding: 0; }
#btnTmSignup {
    background-color: #00d514;
    border: 0 none;
    box-sizing: border-box;
    color: #fff;
    cursor: pointer;
    font-family: "Special Elite",Georgia,serif !important;
    font-size: 14px;
    font-weight: 400;
    height: 34px;
    letter-spacing: 0.05em;
    line-height: 34px;
    margin: 0;
    outline: medium none;
    padding: 0;
    position: relative;
    text-transform: uppercase;
    width: 165px;
    z-index: 5;
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLmNzcyIsInNvdXJjZXMiOlsiZ2xvYmFsLnNjc3MiLCJnbG9iYWwvX3MtdmFyaWFibGVzLnNjc3MiLCJnbG9iYWwvX3MtYnJlYWtwb2ludHMuc2NzcyIsImdsb2JhbC9fcWEtZGVidWcuc2NzcyIsImdsb2JhbC9fdC1mbi1zcGFjZXIuc2NzcyIsImdsb2JhbC9fdC1mbi1tYXRoLnNjc3MiLCJnbG9iYWwvX3QtZm4tdGltZXIuc2NzcyIsImdsb2JhbC9fdC1mbi16LWluZGV4LnNjc3MiLCJnbG9iYWwvX3QtZm4tY29sb3Iuc2NzcyIsImdsb2JhbC9fdC1mbi1lbS5zY3NzIiwiZ2xvYmFsL190LWZuLXJlbS5zY3NzIiwiZ2xvYmFsL190LWZuLXZpZXdwb3J0LnNjc3MiLCJnbG9iYWwvX3QtbXgtbWVkaWEtcXVlcmllcy5zY3NzIiwiZ2xvYmFsL190LW14LWNsZWFyZml4LnNjc3MiLCJnbG9iYWwvX3QtbXgtaGlkZS10ZXh0LnNjc3MiLCJnbG9iYWwvX3QtbXgtc3Itb25seS5zY3NzIiwiZ2xvYmFsL190LW14LWhlYWRpbmdzLnNjc3MiLCJnbG9iYWwvX3QtbXgtbGluay1zdGF0ZXMuc2NzcyIsImdsb2JhbC9fdC1teC1saXN0LXVuc3R5bGVkLnNjc3MiLCJnbG9iYWwvX2ctYm9yZGVyLWJveC5zY3NzIiwiZ2xvYmFsL19nLWZvbnRzLnNjc3MiLCJnbG9iYWwvX2UtcGFnZS5zY3NzIiwiZ2xvYmFsL19lLXR5cGUuc2NzcyIsImdsb2JhbC9fZS1pbWFnZXMuc2NzcyIsImdsb2JhbC9fby13cmFwLnNjc3MiLCJnbG9iYWwvX28tY29udGFpbmVyLnNjc3MiLCJnbG9iYWwvX28tY29sdW1ucy5zY3NzIiwiZ2xvYmFsL19vLWdyaWQuc2NzcyIsImdsb2JhbC9fby1pc2xhbmQuc2NzcyIsImdsb2JhbC9fby1pbnNldC5zY3NzIiwiZ2xvYmFsL19vLWFzcGVjdC5zY3NzIiwiZ2xvYmFsL19vLWxpc3QtdW5zdHlsZWQuc2NzcyIsImdsb2JhbC9fby1saXN0LWlubGluZS5zY3NzIiwiZ2xvYmFsL19jLWxvZ29zLnNjc3MiLCJnbG9iYWwvX2MtYnV0dG9ucy5zY3NzIiwiZ2xvYmFsL19jLWhlYWRpbmdzLnNjc3MiLCJnbG9iYWwvX2Mtc2NoZWR1bGUuc2NzcyIsImdsb2JhbC9fYy1oZWFkZXIuc2NzcyIsImdsb2JhbC9fYy1wYW5lbC5zY3NzIiwiZ2xvYmFsL191LWltYWdlcy5zY3NzIiwiZ2xvYmFsL191LWNvbG9ycy5zY3NzIiwiZ2xvYmFsL191LXZpc2liaWxpdHkuc2NzcyIsImdsb2JhbC9fdS10ZXh0LnNjc3MiLCJnbG9iYWwvX3Utc3BhY2luZy5zY3NzIiwiZ2xvYmFsL192LWNhcmJvbmxpdGUuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLy9cbi8vIENPTlRFTlRTXG4vL1xuLy8gU0VUVElOR1Ncbi8vIFZhcmlhYmxlcy4uLi4uLi4uLi4uLi5HbG9iYWwgVmFyaWFibGVzXG4vL1xuLy8gUUFcbi8vIERlYnVnLi4uLi4uLi4uLi4uLi4uLi5IZWxwZnVsIGRlYnVnIHN0eWxlcy5cbi8vXG4vLyBUT09MU1xuLy8gRnVuY3Rpb25zXG4vLyBTcGFjZXIuLi4uLi4uLi4uLi4uLi4uU3BhY2VyIEZ1bmN0aW9uLlxuLy8gTWF0aC4uLi4uLi4uLi4uLi4uLi4uLlVzZWZ1bCBNYXRoIEZ1bmN0aW9ucy5cbi8vIFogSW5kZXguLi4uLi4uLi4uLi4uLi5UcmFjayB6LWluZGV4IG9uIGdsb2JhbCBzY2FsZS5cbi8vIFRpbWVyLi4uLi4uLi4uLi4uLi4uLi5TdG9yZSBhbmQgcmV0cmlldmUgdGltZXJzLlxuLy8gQ29sb3IuLi4uLi4uLi4uLi4uLi4uLlJldHVybiBjb2xvcnMgZnJvbSBhIG1hcC5cbi8vIEVtLi4uLi4uLi4uLi4uLi4uLi4uLi5Db252ZXJ0IHRvIGVtJ3MuXG4vL1xuLy8gTWl4aW5zXG4vLyBNZWRpYSBRdWVyaWVzLi4uLi4uLi4uQ29udHJvbCBNZWRpYSBxdWVyaWVzIGZyb20gb25lIHBsYWNlLlxuLy8gQ2xlYXJmaXguLi4uLi4uLi4uLi4uLkNsZWFyZml4IG1peGluLlxuLy8gSGlkZS4uLi4uLi4uLi4uLi4uLi4uLkFjY2Vzc2libGUgaGlkZSBjb250ZW50LlxuLy8gU2NyZWVuIFJlYWRlciBPbmx5Li4uLkFjY2Vzc2libGUgaGlkZSB0ZXh0LlxuLy8gRm9udCBTaXplLi4uLi4uLi4uLi4uLkNvbnRyb2wgRm9udCBTaXplcyBpbiBhbiBlYXN5IHdheS5cbi8vIEhlYWRpbmdzLi4uLi4uLi4uLi4uLi5Mb29wIHRocm91Z2ggaGVhZGluZyB0YWdzLlxuLy8gTGluayBTdGF0ZXMuLi4uLi4uLi4uLkFzc2lnbiBjb250ZW50IHRvIGFsbCBsaW5rIHN0YXRlcyBvZiBwYXJlbnQuXG4vLyBMaXN0IFVuc3R5bGVkLi4uLi4uLi4uUmVtb3ZlIGRlZmF1bHQgbGlzdCBzdHlsZXMuXG4vL1xuLy8gR0VORVJJQ1xuLy8gQm94LXNpemluZy4uLi4uLi4uLi4uLkJldHRlciBkZWZhdWx0IGBib3gtc2l6aW5nYC5cbi8vIEZvbnRzLi4uLi4uLi4uLi4uLi4uLi5AZm9udC1mYWNlJ3MuXG4vL1xuLy8gRUxFTUVOVFNcbi8vIFBhZ2UuLi4uLi4uLi4uLi4uLi4uLi5UaGUgUGFnZS5cbi8vIFR5cGUuLi4uLi4uLi4uLi4uLi4uLi5UeXBlcG9ncmFwaHkuXG4vLyBJbWFnZS4uLi4uLi4uLi4uLi4uLi4uSW1hZ2UgdGFnLlxuLy8gRm9ybXMuLi4uLi4uLi4uLi4uLi4uLkZvcm0gRWxlbWVudHMgZGVmYXVsdCBzdHlsZXMuXG4vL1xuLy8gT0JKRUNUU1xuLy8gV3JhcC4uLi4uLi4uLi4uLi4uLi4uLldyYXBwaW5nIGNvbnRhaW5lciB0aGF0IGhpZGVzIG92ZXJmbG93cy5cbi8vIENvbnRhaW5lci4uLi4uLi4uLi4uLi5PdXRlciBDb250YWluZXIuXG4vLyBMaXN0IFVuc3R5bGVkLi4uLi4uLi4uVW5zdHlsZWQgbGlzdC5cbi8vIExpc3QgSW5saW5lLi4uLi4uLi4uLi5JbmxpbmUgbGlzdC5cbi8vIEdyaWQuLi4uLi4uLi4uLi4uLi4uLi5Sb3cgYW5kIENvbHVtbnMuXG4vLyBJc2xhbmQuLi4uLi4uLi4uLi4uLi4uQWRkIHNwYWNlIGJlbG93IGNvbnRlbnQuXG4vLyBNZWRpYS4uLi4uLi4uLi4uLi4uLi4uVGhlIE1lZGlhIE9iamVjdC5cbi8vXG4vLyBDT01QT05FTlRTXG4vLyBMb2dvcy4uLi4uLi4uLi4uLi4uLi4uUm9idXN0IExvZ28gY3JlYXRpb24uXG4vLyBGb3JtIEdyb3VwLi4uLi4uLi4uLi4uRm9ybSBncm91cCB3aXRoIGxhYmVsLCBpbnB1dHMsIGFuZCBtZXNzYWdpbmcuXG4vLyBCdXR0b25zLi4uLi4uLi4uLi4uLi4uQnV0dG9uIGVsZW1lbnRzLlxuLy8gTmF2Li4uLi4uLi4uLi4uLi4uLi4uLk1haW4gTmF2aWdhdGlvbi5cbi8vIEhlYWRlci4uLi4uLi4uLi4uLi4uLi5UaGUgbWFpbiBwYWdlIGhlYWRlci5cbi8vIEZvb3Rlci4uLi4uLi4uLi4uLi4uLi5UaGUgbWFpbiBwYWdlIGZvb3Rlci5cbi8vXG4vLyBVVElMSVRJRVNcbi8vIFRleHQgVXRpbGl0aWVzLi4uLi4uLi5cbi8vIEltYWdlIFV0aWxpdGllcy4uLi4uLi5cbi8vIFZpc2liaWxpdHkgVXRpbGl0aWVzLi5cbi8vIENvbG9yIFV0aWxpdGllcy4uLi4uLi5cbi8vL1xuXG5cblxuXG5cbi8vXG4vLyBTZXR0aW5nc1xuLy9cbkBpbXBvcnQgJ2dsb2JhbC9zLXZhcmlhYmxlcyc7XG5AaW1wb3J0ICdnbG9iYWwvcy1icmVha3BvaW50cyc7XG5cblxuLy9cbi8vIFFBXG4vL1xuQGltcG9ydCAnZ2xvYmFsL3FhLWRlYnVnJztcblxuXG4vL1xuLy8gVG9vbHNcbi8vXG5AaW1wb3J0ICdnbG9iYWwvdC1mbi1zcGFjZXInO1xuQGltcG9ydCAnZ2xvYmFsL3QtZm4tbWF0aCc7XG5AaW1wb3J0ICdnbG9iYWwvdC1mbi10aW1lcic7XG5AaW1wb3J0ICdnbG9iYWwvdC1mbi16LWluZGV4JztcbkBpbXBvcnQgJ2dsb2JhbC90LWZuLWNvbG9yJztcbkBpbXBvcnQgJ2dsb2JhbC90LWZuLWVtJztcbkBpbXBvcnQgJ2dsb2JhbC90LWZuLXJlbSc7XG5AaW1wb3J0ICdnbG9iYWwvdC1mbi12aWV3cG9ydCc7XG5AaW1wb3J0ICdnbG9iYWwvdC1teC1tZWRpYS1xdWVyaWVzJztcbkBpbXBvcnQgJ2dsb2JhbC90LW14LWNsZWFyZml4JztcbkBpbXBvcnQgJ2dsb2JhbC90LW14LWhpZGUtdGV4dCc7XG5AaW1wb3J0ICdnbG9iYWwvdC1teC1zci1vbmx5JztcbkBpbXBvcnQgJ2dsb2JhbC90LW14LWhlYWRpbmdzJztcbkBpbXBvcnQgJ2dsb2JhbC90LW14LWxpbmstc3RhdGVzJztcbkBpbXBvcnQgJ2dsb2JhbC90LW14LWxpc3QtdW5zdHlsZWQnO1xuXG5cbi8vXG4vLyBHZW5lcmljXG4vL1xuQGltcG9ydCAnZ2xvYmFsL2ctYm9yZGVyLWJveCc7XG5AaW1wb3J0ICdnbG9iYWwvZy1mb250cyc7XG5cblxuLy9cbi8vIEVsZW1lbnRzXG4vL1xuQGltcG9ydCAnZ2xvYmFsL2UtcGFnZSc7XG5AaW1wb3J0ICdnbG9iYWwvZS10eXBlJztcbkBpbXBvcnQgJ2dsb2JhbC9lLWltYWdlcyc7XG5cblxuLy9cbi8vIE9iamVjdHNcbi8vXG5AaW1wb3J0ICdnbG9iYWwvby13cmFwJztcbkBpbXBvcnQgJ2dsb2JhbC9vLWNvbnRhaW5lcic7XG5AaW1wb3J0ICdnbG9iYWwvby1jb2x1bW5zJztcbkBpbXBvcnQgJ2dsb2JhbC9vLWdyaWQnO1xuQGltcG9ydCAnZ2xvYmFsL28taXNsYW5kJztcbkBpbXBvcnQgJ2dsb2JhbC9vLWluc2V0JztcbkBpbXBvcnQgJ2dsb2JhbC9vLWFzcGVjdCc7XG5AaW1wb3J0ICdnbG9iYWwvby1saXN0LXVuc3R5bGVkJztcbkBpbXBvcnQgJ2dsb2JhbC9vLWxpc3QtaW5saW5lJztcblxuXG4vL1xuLy8gQ29tcG9uZW50c1xuLy9cbkBpbXBvcnQgJ2dsb2JhbC9jLWxvZ29zJztcbkBpbXBvcnQgJ2dsb2JhbC9jLWJ1dHRvbnMnO1xuQGltcG9ydCAnZ2xvYmFsL2MtaGVhZGluZ3MnO1xuQGltcG9ydCAnZ2xvYmFsL2Mtc2NoZWR1bGUnO1xuQGltcG9ydCAnZ2xvYmFsL2MtaGVhZGVyJztcbkBpbXBvcnQgJ2dsb2JhbC9jLXBhbmVsJztcblxuLy9cbi8vIFV0aWxpdGllc1xuLy9cbkBpbXBvcnQgJ2dsb2JhbC91LWltYWdlcyc7XG5AaW1wb3J0ICdnbG9iYWwvdS1jb2xvcnMnO1xuQGltcG9ydCAnZ2xvYmFsL3UtdmlzaWJpbGl0eSc7XG5AaW1wb3J0ICdnbG9iYWwvdS10ZXh0JztcbkBpbXBvcnQgJ2dsb2JhbC91LXNwYWNpbmcnO1xuXG5cbi8vXG4vLyBWZW5kb3Jcbi8vXG5AaW1wb3J0ICdnbG9iYWwvdi1jYXJib25saXRlJztcbiIsIi8vLy9cbi8vLyBWQVJJQUJMRVNcbi8vLy9cblxuXG4vLy9cbi8vIEJhc2UgZ2xvYmFsIGRlZmF1bHRzXG4vLy9cbiRmb250LXNwZWNpYWwtZWxpdGU6ICdTcGVjaWFsIEVsaXRlJywgY3Vyc2l2ZTtcblxuJGJhc2UtY29sb3I6ICAgICAgICAjY2NjO1xuJGJhc2UtZm9udC1mYW1pbHk6ICAnT3N3YWxkJywgc2Fucy1zZXJpZjtcbiRiYXNlLWZvbnQtc2l6ZTogICAgMThweDtcbiRiYXNlLWxpbmUtaGVpZ2h0OiAgMS40O1xuXG5cblxuXG5cbi8vLyBHZW5lcmljIHNwYWNpbmcgdW5pdFxuJHNwYWNpbmctdW5pdDogICAgICAyMHB4O1xuXG5cblxuXG5cbi8vL1xuLy8gQ29sb3JzXG4vLy9cbiRjb2xvci1jb25maWc6IChcbiAgICAnYm9keSc6ICAgICAgICAgI2NjYyxcbiAgICAnaGVhZGluZ3MnOiAgICAgIzAwNTg3ZCxcbiAgICAncHJpbWFyeSc6ICAgICAgIzMzN2FiNyxcbiAgICAncmVkJzogICAgICAgICAgI2ViMjIxYyxcbiAgICAnbGluayc6ICAgICAgICAgI2QwMDAwMCxcbiAgICAnZ3JleSc6IChcbiAgICAgICAgJ2RlZmF1bHQnOiAgIzdmN2Y3ZixcbiAgICAgICAgJzI1JzogICAgICAgI2JmYmZiZixcbiAgICAgICAgJzc1JzogICAgICAgIzQ3NDc0N1xuICAgIClcbik7XG5cblxuXG5cblxuLy8vXG4vLyBUaW1lciBNYXAgZm9yIEBmdW5jdGlvbiB0aW1lcigpO1xuLy8vXG4kdGltZXItY29uZmlnOiAoXG4gICAgJ25vcm1hbCc6ICAgMC40cyxcbiAgICAnc2xvdyc6ICAgIDAuNzVzLFxuICAgICdmYXN0JzogICAgMC4xNXNcbik7XG5cblxuXG5cblxuLy8vXG4vLyBaLWluZGV4IE1hcCBmb3IgQGZ1bmN0aW9uIHooKTtcbi8vL1xuJHotaW5kZXgtY29uZmlnOiAoXG4gICAgJ2V4YW1wbGUnOiAgIDEwMDBcbik7XG4iLCIvLy9cbi8vIEJyZWFrcG9pbnRzXG4vL1xuLy8gQWRkIHZlcnRpY2FsIG1lZGlhIHF1ZXJpZXMgYnkgYWRkaW5nIGEgJ3ZlcnRpY2FsJyBwcm9wZXJ0eSB0byB0aGUgbGlzdFxuLy9cbi8vICdzaG9ydCc6ICAgNDgwcHggdmVydGljYWwsXG4vLyAnbWVkaXVtJzogIDc2OHB4IHZlcnRpY2FsLFxuLy8gJ3RhbGwnOiAgIDEwMjRweCB2ZXJ0aWNhbFxuLy9cbi8vL1xuJGJyZWFrcG9pbnRzLWNvbmZpZzogKFxuICAgICd4cyc6ICAgICAgNDgwcHgsXG4gICAgJ3NtJzogICAgICA3NjhweCxcbiAgICAnbWQnOiAgICAgMTAyNHB4LFxuICAgICdsZyc6ICAgICAxMjAwcHgsXG4gICAgJ3hsJzogICAgIDE1MDBweFxuKTtcblxuXG4vLyBPbmx5IGdlbmVyYXRlICctb25seScgbW9kaWZpZXJzIGlmIHRoZXkncmUgd2FudGVkLiBQcmV2ZW50cyBjb2RlIGJsb2F0LlxuJGdlbmVyYXRlLW9ubHktbW9kaWZpZXJzOiAgICAgZmFsc2U7XG5cblxuXG5cblxuLy8vXG4vLyBUd2Vha3BvaW50c1xuLy9cbi8vIEV4dHJhIGNvbXBvbmVudCBzcGVjaWZpYyBicmVha3BvaW50cyBvbmx5IGF2YWlsYWJsZSB0aHJvdWdoIHRoZSBAbWVkaWEgbWl4aW4uXG4vLy9cbiR0d2Vha3BvaW50cy1jb25maWc6IChcbiAgICAnaGVhZGVyJzogJyhtaW4td2lkdGg6IDIwMHB4KSdcbik7XG5cblxuXG5cbi8vL1xuLy9cbi8vIEJlY2F1c2UgdGhlIGJyZWFrcG9pbnRzIHRoZSBwcm9qZWN0IGhhcyBhcmUgc28gaW1wb3J0YW50IHdlIG5lZWQgdG9cbi8vIGdlbmVyYXRlIHR3byBtYXBzIHRoYXQgY29udGFpbiBvdXIgbWVkaWEgcXVlcmllIHN0cmluZ3MuXG4vL1xuLy9cbi8vIDEpICRicmVha3BvaW50cy1sYXlvdXQtY29uZmlnOiBgbWluLXdpZHRoYCAobW9iaWxlIHVwKSBjb25maWd1cmF0aW9uIG1hcFxuLy8gZm9yIHRoZSBsYXlvdXRzLlxuLy9cbi8vICRicmVha3BvaW50cy1sYXlvdXQtY29uZmlnOiAoXG4vLyAgICAgJ3hzJzogJyhtaW4td2lkdGg6IDQ4MHB4KScsXG4vLyAgICAgJ3NtJzogJyhtaW4td2lkdGg6IDc2OHB4KScsXG4vLyAgICAgJ21kJzogJyhtaW4td2lkdGg6IDEwMjRweCknLFxuLy8gICAgICdsZyc6ICcobWluLXdpZHRoOiAxMjAwcHgpJyxcbi8vICAgICAneGwnOiAnKG1pbi13aWR0aDogMTUwMHB4KSdcbi8vICk7XG4vL1xuLy9cbi8vIDIpICRicmVha3BvaW50cy1leHRlbmRlZC1jb25maWc6IEV4dGVuZHMgYCRicmVha3BvaW50cy1sYXlvdXQtY29uZmlnYCBieVxuLy8gYWRkaW5nIGBtYXgtd2lkdGhgIChkZXNrdG9wIGRvd24pLCB2aWV3cG9ydCBzcGVjaWZpYyBgb25seWAsIHZlcnRpY2FsXG4vLyBtZWRpYSBxdWVyaWVzLCBwcmludCwgcmV0aW5hLCBhbmQgc2NyZWVuIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gJGJyZWFrcG9pbnRzLWV4dGVuZGVkLWNvbmZpZzogKFxuLy8gICAgICdzY3JlZW4nOiAnc2NyZWVuJyxcbi8vICAgICAncHJpbnQnOiAncHJpbnQnLFxuLy8gICAgICdoaWdoLXJlcyc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJyxcbi8vXG4vLyAgICAgJ3hzJzogJyhtaW4td2lkdGg6IDQ4MHB4KScsXG4vLyAgICAgJ2xlc3MtdGhhbi14cyc6ICcobWF4LXdpZHRoOiA0NzlweCknLFxuLy8gICAgICd4cy1vbmx5JzogJ3NjcmVlbiBhbmQgKG1pbi13aWR0aDogNDgwcHgpIGFuZCAobWF4LXdpZHRoOiA3NjdweCknLFxuLy9cbi8vICAgICAnc20nOiAnKG1pbi13aWR0aDogNzY4cHgpJyxcbi8vICAgICAnbGVzcy10aGFuLXNtJzogJyhtYXgtd2lkdGg6IDc2N3B4KScsXG4vLyAgICAgJ3NtLW9ubHknOiAnc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDEwMjNweCknLFxuLy9cbi8vICAgICAnbWQnOiAnKG1pbi13aWR0aDogMTAyNHB4KScsXG4vLyAgICAgJ2xlc3MtdGhhbi1tZCc6ICcobWF4LXdpZHRoOiAxMDIzcHgpJyxcbi8vICAgICAnbWQtb25seSc6ICdzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCknLFxuLy9cbi8vICAgICAnbGcnOiAnKG1pbi13aWR0aDogMTIwMHB4KScsXG4vLyAgICAgJ2xlc3MtdGhhbi1sZyc6ICcobWF4LXdpZHRoOiAxMTk5cHgpJyxcbi8vICAgICAnbGctb25seSc6ICdzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyMDBweCkgYW5kIChtYXgtd2lkdGg6IDE0OTlweCknLFxuLy9cbi8vICAgICAneGwnOiAnKG1pbi13aWR0aDogMTUwMHB4KScsXG4vLyAgICAgJ2xlc3MtdGhhbi14bCc6ICcobWF4LXdpZHRoOiAxNDk5cHgpJyxcbi8vXG4vLyAgICAgJ3Nob3J0JzogJyhtaW4taGVpZ2h0OiA0ODBweCknLFxuLy8gICAgICdsZXNzLXRoYW4tc2hvcnQnOiAnKG1heC1oZWlnaHQ6IDQ3OXB4KScsXG4vLyAgICAgJ3Nob3J0LW9ubHknOiAnc2NyZWVuIGFuZCAobWluLWhlaWdodDogNDgwcHgpIGFuZCAobWF4LWhlaWdodDogNzY3cHgpJyxcbi8vXG4vLyAgICAgJ21lZGl1bSc6ICcobWluLWhlaWdodDogNzY4cHgpJyxcbi8vICAgICAnbGVzcy10aGFuLW1lZGl1bSc6ICcobWF4LWhlaWdodDogNzY3cHgpJyxcbi8vICAgICAnbWVkaXVtLW9ubHknOiAnc2NyZWVuIGFuZCAobWluLWhlaWdodDogNzY4cHgpIGFuZCAobWF4LWhlaWdodDogMTAyM3B4KScsXG4vL1xuLy8gICAgICd0YWxsJzogJyhtaW4taGVpZ2h0OiAxMDI0cHgpJyxcbi8vICAgICAnbGVzcy10aGFuLXRhbGwnOiAnKG1heC1oZWlnaHQ6IDEwMjNweCknXG4vLyApO1xuLy8vXG5cblxuXG5cblxuLy8gQ29udGFpbmVyIGZvciBnZW5lcmF0ZWQgbWVkaWEgcXVlcmllcyBiYXNlZCBvZiB0aG9zZSBsaXN0ZWQgaW4gJGJyZWFrcG9pbnRzXG4kYnJlYWtwb2ludHMtbGF5b3V0LWNvbmZpZzogKCk7XG5cbi8vIEV4dGVuZGVkIGJyZWFrcG9pbnRzIGZvciBnZW5lcmF0aW5nIHV0aWxpdHkgY2xhc3Nlcy4gSW5jbHVkZXMgc29tZSBkZWZhdWx0cy5cbiRicmVha3BvaW50cy1leHRlbmRlZC1jb25maWc6ICgpO1xuXG4kYnJlYWtwb2ludHMtbWFzdGVyLWNvbmZpZzogKFxuICAgICdzY3JlZW4nOiAgICdzY3JlZW4nLFxuICAgICdwcmludCc6ICAgICdwcmludCcsXG4gICAgJ2hpZ2gtcmVzJzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAnICtcbiAgICAgICAgICAgICAgICAnKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAnICtcbiAgICAgICAgICAgICAgICAnKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknXG4pO1xuXG5cblxuXG4vLyBHZXQgdGhlIGtleXMgZm9yIHRoZSBicmVha3BvaW50cy5cbiRicmVha3BvaW50LWtleXM6IG1hcC1rZXlzKCRicmVha3BvaW50cy1jb25maWcpO1xuXG4vLyBHZXQgYSBsaXN0IG9mIHRoZSBicmVha3BvaW50cyBwcm9wZXJ0aWVzLlxuJGJyZWFrcG9pbnQtcHJvcHM6IG1hcC12YWx1ZXMoJGJyZWFrcG9pbnRzLWNvbmZpZyk7XG5cbkBlYWNoICRicmVha3BvaW50IGluICRicmVha3BvaW50LWtleXMge1xuXG4gICAgLy8gSW5kZXggb2YgcG9zaXRpb24gaW4gbGlzdFxuICAgICRpbmRleDogaW5kZXgoJGJyZWFrcG9pbnQta2V5cywgJGJyZWFrcG9pbnQpO1xuXG4gICAgLy8gUHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBicmVha3BvaW50XG4gICAgJHByb3BzOiBudGgoJGJyZWFrcG9pbnQtcHJvcHMsICRpbmRleCk7XG5cbiAgICAvLyBUaGUgc2l6ZSBzaG91bGQgYmUgdGhlIGZpcnN0IG9uZS5cbiAgICAkc2l6ZTogbnRoKCRwcm9wcywgMSk7XG5cbiAgICAvLyBBc3N1bWUgYSB3aWR0aFxuICAgICRkaXJlY3Rpb246ICd3aWR0aCc7XG5cbiAgICAvLyBMb29wIHRocm91Z2ggYW5kIGNoZWNrIGlkIHRoZSBicmVha3BvaW50IGhhcyBhIHZlcnRpY2FsIHByb3BlcnR5LlxuICAgIEBlYWNoICRpdGVtIGluICRwcm9wcyB7XG4gICAgICAgIEBpZigkaXRlbSA9PSB2ZXJ0aWNhbCkge1xuXG4gICAgICAgICAgICAvLyBJZiBzbyBjaGFuZ2UgdG8gaGVpZ2h0XG4gICAgICAgICAgICAkZGlyZWN0aW9uOiAnaGVpZ2h0JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkZCB0aGlzIGJyZWFrcG9pbnQgdG8gdGhlIGxheW91dCBicmVha3BvaW50c1xuICAgIEBpZiAkZGlyZWN0aW9uID09ICd3aWR0aCcge1xuICAgICAgICAkYnJlYWtwb2ludHMtbGF5b3V0LWNvbmZpZzogbWFwLW1lcmdlKCRicmVha3BvaW50cy1sYXlvdXQtY29uZmlnLCAoJyN7JGJyZWFrcG9pbnR9JzogJyhtaW4tI3skZGlyZWN0aW9ufTogI3skc2l6ZX0pJykpO1xuICAgIH1cblxuICAgIC8vIEdlbmVyYXRlIEV4dGVuZGVkIHNpemVzXG4gICAgJGJyZWFrcG9pbnQtbWluOiAoJyN7JGJyZWFrcG9pbnR9JzogJyhtaW4tI3skZGlyZWN0aW9ufTogI3skc2l6ZX0pJyk7XG4gICAgJGJyZWFrcG9pbnQtbGVzcy10aGFuOiAoJ2xlc3MtdGhhbi0jeyRicmVha3BvaW50fSc6ICcobWF4LSN7JGRpcmVjdGlvbn06ICN7JHNpemUgLSAxfSknKTtcblxuICAgIC8vIEFkZCB0aGUgZ2VuZXJhdGVkIHNpemVzIHRvIHRoZSBleHRlbmRlZCBjb25maWcgbWFwLlxuICAgICRicmVha3BvaW50cy1leHRlbmRlZC1jb25maWc6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMtZXh0ZW5kZWQtY29uZmlnLCAkYnJlYWtwb2ludC1taW4pO1xuICAgICRicmVha3BvaW50cy1leHRlbmRlZC1jb25maWc6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMtZXh0ZW5kZWQtY29uZmlnLCAkYnJlYWtwb2ludC1sZXNzLXRoYW4pO1xuXG4gICAgLy8gT25seSBnZW5lcmF0ZSAnLW9ubHknIG1vZGlmaWVycyBpZiB0aGV5J3JlIHdhbnRlZFxuICAgIEBpZiAkZ2VuZXJhdGUtb25seS1tb2RpZmllcnMge1xuXG4gICAgICAgIEBpZiAkaW5kZXggPCBsZW5ndGgoJGJyZWFrcG9pbnQta2V5cykge1xuXG4gICAgICAgICAgICAkbmV4dC1wcm9wczogbnRoKCRicmVha3BvaW50LXByb3BzLCAkaW5kZXggKyAxKTtcbiAgICAgICAgICAgICRuZXh0LXNpemU6IG50aCgkbmV4dC1wcm9wcywgMSk7XG5cbiAgICAgICAgICAgICRuZXh0LWRpcmVjdGlvbjogJ3dpZHRoJztcblxuICAgICAgICAgICAgQGVhY2ggJGl0ZW0gaW4gJG5leHQtcHJvcHMge1xuICAgICAgICAgICAgICAgIEBpZigkaXRlbSA9PSB2ZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgICAgICAkbmV4dC1kaXJlY3Rpb246ICdoZWlnaHQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQ2hlY2sgdG8gbWFrZSBzdXJlIHRoaXMgZGlyZWN0aW9uIG1hdGNoZXMgdGhlIG5leHQgaXRlbSdzIGRpcmVjdGlvbi5cbiAgICAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gbWl4IHZlcnRpY2FsIGFuZCBob3Jpem9udGFsXG4gICAgICAgICAgICBAaWYgJGRpcmVjdGlvbiA9PSAkbmV4dC1kaXJlY3Rpb24ge1xuXG4gICAgICAgICAgICAgICAgJGJyZWFrcG9pbnQtb25seTogKFxuICAgICAgICAgICAgICAgICAgICAnI3skYnJlYWtwb2ludH0tb25seSc6ICdzY3JlZW4gYW5kIChtaW4tI3skZGlyZWN0aW9ufTogI3skc2l6ZX0pIGFuZCAobWF4LSN7JGRpcmVjdGlvbn06ICN7JG5leHQtc2l6ZSAtIDF9KSdcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgJGJyZWFrcG9pbnRzLWV4dGVuZGVkLWNvbmZpZzogbWFwLW1lcmdlKCRicmVha3BvaW50cy1leHRlbmRlZC1jb25maWcsICRicmVha3BvaW50LW9ubHkpO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cblxuJGJyZWFrcG9pbnRzLW1hc3Rlci1jb25maWc6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMtbWFzdGVyLWNvbmZpZywgJGJyZWFrcG9pbnRzLWV4dGVuZGVkLWNvbmZpZyk7XG4kYnJlYWtwb2ludHMtbWFzdGVyLWNvbmZpZzogbWFwLW1lcmdlKCRicmVha3BvaW50cy1tYXN0ZXItY29uZmlnLCAkdHdlYWtwb2ludHMtY29uZmlnKTtcbiIsIi8vL1xuLy8vIERFQlVHXG4vLy9cbi8vLyBDaG9vc2UgaWYgeW91IHdhbnQgc3BlY2lmaWMgZXJyb3JzIG9yIGFsbC5cbi8vL1xuJGRlYnVnOiAoXG4gICAgJ2FsbCc6ICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICdkZXByZWNhdGVkLXNlbGVjdG9ycyc6ICAgICBmYWxzZSxcbiAgICAnbW9kaWZpZXItd2l0aG91dC1ibG9jayc6ICAgZmFsc2UsXG4gICAgJ2VtcHR5LWhyZWYnOiAgICAgICAgICAgICAgIGZhbHNlXG4pO1xuXG5cblxuXG5cbiRtZXNzYWdlOiAnV0FSTklORzogJztcblxuXG5cblxuLy8gQ3JlYXRlIGEgcGxhY2Vob2xkZXIgdG8gRFJZIG91dCBhbnkgb2Ygb3VyIHNoYXJlZCBzdHlsZXMuXG4lZGVidWctc2hhcmVkLXN0eWxlcyB7XG4gICAgb3V0bGluZTogMXB4IHNvbGlkICNmMDA7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjAwO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAgMDtcbiAgICAgICAgei1pbmRleDogMTAwMDAwMDAwO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgI2YwMDtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuXG5cblxuQGlmIChtYXAtZ2V0KCRkZWJ1ZywgJ2FsbCcpIG9yIG1hcC1nZXQoJGRlYnVnLCAnZGVwcmVjYXRlZC1zZWxlY3RvcnMnKSkge1xuXG5cbiAgICAvLy9cbiAgICAvLy8gTGlzdCBvZiBzZWxlY3RvcnMgdGhhdCB3ZeKAmXJlIGRlcHJlY2F0aW5nIChhbmQgdGhlaXIgcmVwbGFjZW1lbnRzLCBpZiBhbnkpLlxuICAgIC8vL1xuICAgIC8vLyBFeGFtcGxlICRkZXByZWNhdGVkLXNlbGVjdG9yczogKFxuICAgIC8vLyAgICAgJy5mb28nOiBudWxsLFxuICAgIC8vLyAgICAgJy5lcnJvcic6ICcuaGFzLWVycm9yJ1xuICAgIC8vLyApO1xuICAgIC8vL1xuICAgICRkZXByZWNhdGVkLXNlbGVjdG9yczogKFxuICAgICAgICAnLm8tbGF5b3V0JzogJy5vLWdyaWQnLFxuICAgICAgICAnLm8tbGF5b3V0X19pdGVtJzogJy5vLWdyaWRfX2NvbHVtbidcbiAgICApO1xuXG5cbiAgICBAZWFjaCAkc2VsZWN0b3IsICRyZXBsYWNlbWVudCBpbiAkZGVwcmVjYXRlZC1zZWxlY3RvcnMge1xuXG4gICAgICAgICN7JHNlbGVjdG9yfSB7XG5cbiAgICAgICAgICAgIC8vIFNoYXJlIHRoZSBjb3NtZXRpYyBzdHlsZXMgcmF0aGVyIHRoYW4gcmVwZWF0IHRoZW0gcGVyIHNlbGVjdG9yLlxuICAgICAgICAgICAgQGV4dGVuZCAlZGVidWctc2hhcmVkLXN0eWxlcztcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgQGlmICgkcmVwbGFjZW1lbnQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBhIHJlcGxhY2VtZW50IHNlbGVjdG9yLCB0ZWxsIHBlb3BsZSB3aGF0IGl0IGlzLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJG1lc3NhZ2UgKyAnU2VsZWN0b3IgYCN7JHNlbGVjdG9yfWAgaXMgZGVwcmVjYXRlZCwgdXNlIGAjeyRyZXBsYWNlbWVudH1gIGluc3RlYWQuJztcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIElmIHdlIGhhdmUgbm8gcmVwbGFjZW1lbnQsIGp1c3QgdGVsbCBwZW9wbGUgdG8gc3RvcCB1c2luZyB0aGVcbiAgICAgICAgICAgICAgICAgICAgICogc2VsZWN0b3IuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAkbWVzc2FnZSArICdTZWxlY3RvciBgI3skc2VsZWN0b3J9YCBpcyBkZXByZWNhdGVkLic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cblxuXG5cblxuXG5AaWYgKG1hcC1nZXQoJGRlYnVnLCAnYWxsJykgb3IgbWFwLWdldCgkZGVidWcsICdtb2RpZmllci13aXRob3V0LWJsb2NrJykpIHtcblxuXG4gICAgLy8vXG4gICAgLy8vIElmIGFuIGVsZW1lbnQgaGFzIGEgY2xhc3MgYXR0cmlidXRlIGNvbnRhaW5pbmcgdHdvIGh5cGhlbnMgYnV0IG5vIHNwYWNlXG4gICAgLy8vIChpLmUuIG9ubHkgb25lIGNsYXNzIGlzIGJlaW5nIHVzZWQsIGFuZCBpdOKAmXMgYSBNb2RpZmllciksIHByb3ZpZGUgdmlzdWFsXG4gICAgLy8vIGZlZWRiYWNrIGluIHRoZSBET00uXG4gICAgLy8vXG4gICAgLy8vIE4uQi4gVGhpcyBpc27igJl0IGJ1bGxldHByb29mOiBgY2xhc3M9XCJmb28tLWJhciBiYXpcImAgd291bGQgcGFzcywgYXMgd291bGRcbiAgICAvLy8gYGNsYXNzPVwiIGZvby0tYmFyXCJgLiBVc2Ugd2l0aCBhIHBpbmNoIG9mIHNhbHQuXG4gICAgLy8vXG4gICAgW2NsYXNzKj1cIi0tXCJdOm5vdChbY2xhc3MqPVwiIFwiXSkge1xuICAgICAgICBAZXh0ZW5kICVkZWJ1Zy1zaGFyZWQtc3R5bGVzO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJG1lc3NhZ2UgKyAnQ2FuIG5vdCBoYXZlIGEgTW9kaWZpZXIgKGkuZS4gYC4nIGF0dHIoY2xhc3MpICdgKSB3aXRob3V0IGEgQmxvY2suJztcbiAgICAgICAgfVxuXG4gICAgfVxuXG5cbn1cblxuXG5cblxuXG5AaWYgKG1hcC1nZXQoJGRlYnVnLCAnYWxsJykgb3IgbWFwLWdldCgkZGVidWcsICdlbXB0eS1ocmVmJykpIHtcblxuXG4gICAgLy8vXG4gICAgLy8vIEhpZ2hsaWdodCBhbiBhbmNob3IgdGFnIHRoYXQgaGFzIGFuIGVtcHR5IGhyZWYgYXR0cmlidXRlLlxuICAgIC8vL1xuICAgIFtocmVmPVwiXCJdIHtcbiAgICAgICAgQGV4dGVuZCAlZGVidWctc2hhcmVkLXN0eWxlcztcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRtZXNzYWdlICsgJ05vIHZhbHVlIGZvciB0aGUgYGhyZWZgIGF0dHJpYnV0ZSBwcm92aWRlZC4gQ29uc2lkZXIgdXNpbmcgYSA8YnV0dG9uPiBpZiB0aGlzIGlzIGZvciBKYXZhc2NyaXB0Lic7XG4gICAgICAgIH1cblxuICAgIH1cblxuXG5cbn1cbiIsIi8vLyBTcGFjZXIgRnVuY3Rpb25cbi8vLyBAcGFyYW0ge0xpc3R9ICRhcmdzIC0gTGlzdCBvZiBudW1iZXJzIG9yIG51bWJlcnNcbi8vLyBAcmV0dXJuIHtMaXN0fSAtIFJldHVybnMgYSBsaXN0IG9mIHVwIHRvIGZvdXIgbnVtYmVycy5cbkBmdW5jdGlvbiBzcGFjZXIoJGFyZ3MuLi4pIHtcblxuICAgIC8vIExpbWl0IG9mIDQgYXJncy5cbiAgICBAaWYgbGVuZ3RoKCRhcmdzKSA+IDUge1xuXG4gICAgICAgIEB3YXJuICdgc3BhY2VyKClgIGFjY2VwdHMgYSBtYXhpbXVtIG9mIGZvdXIgcHJvcGVydGllcyBqdXN0IGxpa2UgYHBhZGRpbmdgIGFuZCBgbWFyZ2luYCc7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcblxuICAgIH0gQGVsc2Uge1xuXG4gICAgICAgIC8vIE1ha2UgYSBsaXN0IHRvIGNvbnRhaW4gb3VyIHZhbHVlcy5cbiAgICAgICAgJHByb3BzOiAoKTtcblxuICAgICAgICAvLyBUaGUgdXNlciBjYW4gcGFzcyBubyBwYXJhbWV0ZXJzIGFuZCBqdXN0IGdldCBiYWNrICRzcGFjaW5nLXVuaXQuXG4gICAgICAgIEBpZiBsZW5ndGgoJGFyZ3MpID09IDAge1xuICAgICAgICAgICAgQHJldHVybiAkc3BhY2luZy11bml0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9yIGVhY2ggcGFyYW1ldGVyIHBhc3NlZCBjaGVjayBpZiBpdCdzIGEgdmFyaWFibGUgKGN1c3RvbSBhbW91bnQpIGFuZCB1c2UgdGhhdFxuICAgICAgICBAZWFjaCAkYXJnIGluICRhcmdzIHtcblxuICAgICAgICAgICAgLy8gSWYgdGhlIHBhc3NlZCBwcm9wZXR5IGhhcyB1bml0cywganVzdCB1c2UgaXQuXG4gICAgICAgICAgICBAaWYgdW5pdGxlc3MoJGFyZykge1xuICAgICAgICAgICAgICAgICRhcmc6ICRhcmcgKiAkc3BhY2luZy11bml0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAkcHJvcHM6IGFwcGVuZCgkcHJvcHMsICRhcmcpO1xuXG4gICAgICAgIH1cblxuICAgICAgICBAcmV0dXJuICRwcm9wcztcblxuICAgIH1cblxufVxuIiwiLy8vXG4vLy8gUmV0dXJucyB0aGUgbnVtYmVyIGFzIGEgbmVnYXRpdmUuXG4vLy9cbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bWJlclxuLy8vXG5AZnVuY3Rpb24gbmVnYXRpdmUoJG51bWJlcikge1xuICAgIEByZXR1cm4gLSgkbnVtYmVyKTtcbn1cblxuLy8vIEBhbGlhcyBuZWdhdGl2ZVxuQGZ1bmN0aW9uIG5lZygkYXJncy4uLikge1xuICAgIEByZXR1cm4gbmVnYXRpdmUoJGFyZ3MuLi4pO1xufVxuXG5cblxuXG5cbi8vL1xuLy8vIFJldHVybnMgbnVtYmVyIGFzIHJvdW5kZWQgaGFsZiB0aGUgbnVtYmVyIHBhc3NlZC5cbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtYmVyXG4vLy9cbkBmdW5jdGlvbiBoYWx2ZSgkbnVtYmVyKSB7XG4gICAgQHJldHVybiByb3VuZCgkbnVtYmVyIC8gMik7XG59XG5cbi8vLyBAYWxpYXMgaGFsdmVcbkBmdW5jdGlvbiBoYWxmKCRhcmdzLi4uKSB7XG4gICAgQHJldHVybiBoYWx2ZSgkYXJncy4uLik7XG59XG5cblxuXG5cblxuLy8vXG4vLy8gUmV0dXJucyBudW1iZXIgYXMgcm91bmRlZCBxdWFydGVyIHRoZSBudW1iZXIgcGFzc2VkLlxuLy8vXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRudW1iZXJcbi8vL1xuQGZ1bmN0aW9uIHF1YXJ0ZXIoJG51bWJlcikge1xuICAgIEByZXR1cm4gcm91bmQoJG51bWJlciAvIDQpO1xufVxuXG4vLy8gQGFsaWFzIHF1YXJ0ZXJcbkBmdW5jdGlvbiBmb3VydGgoJGFyZ3MuLi4pIHtcbiAgICBAcmV0dXJuIHF1YXJ0ZXIoJGFyZ3MuLi4pO1xufVxuXG5cblxuXG5cbi8vL1xuLy8vIFJldHVybnMgYXMgZG91YmxlIHRoZSBudW1iZXIgcGFzc2VkLlxuLy8vXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRudW1iZXJcbi8vL1xuQGZ1bmN0aW9uIGRvdWJsZSgkbnVtYmVyKSB7XG4gICAgQHJldHVybiAkbnVtYmVyICogMjtcbn1cblxuXG5cblxuXG4vLy9cbi8vLyBSZXR1cm5zIGFzIHRyaXBsZSB0aGUgbnVtYmVyIHBhc3NlZC5cbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyfSAkbnVtYmVyXG4vLy9cbkBmdW5jdGlvbiB0cmlwbGUoJG51bWJlcikge1xuICAgIEByZXR1cm4gJG51bWJlciAqIDM7XG59XG5cblxuXG5cblxuLy8vXG4vLy8gUmV0dXJucyBhcyBxdWFkcnVwbGUgdGhlIG51bWJlciBwYXNzZWQuXG4vLy9cbi8vLyBAcGFyYW0ge251bWJlcn0gJG51bWJlclxuLy8vXG5AZnVuY3Rpb24gcXVhZHJ1cGxlKCRudW1iZXIpIHtcbiAgICBAcmV0dXJuICRudW1iZXIgKiA0O1xufVxuIiwiLy8vXG4vLy8gUmV0cmlldmUgdGltZXIgdmFsdWUgZnJvbSBzYXNzIG1hcCAkdGltZXJcbi8vL1xuLy8vIEBwYXJhbSB7c3RyaW5nfSAkbmFtZSAtIHJldHVybiB0aW1lciB2YWx1ZSBmcm9tICR0aW1lci5cbi8vL1xuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHRpbWVyXG4vLy9cbi8vLyBAaWdub3JlXG4vLy8gWzFdIENoZWNrIGlmICRuYW1lIGV4aXN0cyBpbiAkdGltZXIuXG4vLy8gWzJdIElmIG5vdCBwYXNzIGFuIGVycm9yLlxuLy8vXG5AZnVuY3Rpb24gdGltZXIoJG5hbWU6ICdub3JtYWwnKSB7XG5cbiAgICAvLyBbMV1cbiAgICBAaWYgbWFwLWhhcy1rZXkoJHRpbWVyLWNvbmZpZywgJG5hbWUpIHtcblxuICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJHRpbWVyLWNvbmZpZywgJG5hbWUpO1xuXG4gICAgfSBAZWxzZSB7XG5cbiAgICAgICAgQHdhcm4gXCJgI3skbmFtZX1gIGRvZXMgbm90IGhhdmUgYSB2YWx1ZSBzZXQgaW4gYCN7JHRpbWVyLWNvbmZpZ31gLiAoS2V5czogI3ttYXAta2V5cygkdGltZXItY29uZmlnKX0pXCI7IC8vIFsyXVxuICAgICAgICBAcmV0dXJuIG51bGw7XG5cbiAgICB9XG5cbn1cbiIsIi8vL1xuLy8vIFJldHJpZXZlIHotaW5kZXggdmFsdWUgZnJvbSBzYXNzIG1hcCAkei1pbmRleC1jb25maWdcbi8vL1xuLy8vIEBwYXJhbSB7c3RyaW5nfSAkZWxlbWVudCAtIEVsZW1lbnQgdG8gcmV0dXJuIHotaW5kZXggdmFsdWUgZnJvbSAkei1pbmRleC1jb25maWcuXG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICR6LWluZGV4LWNvbmZpZ1xuLy8vXG4vLy8gQGlnbm9yZVxuLy8vIFsxXSBDaGVjayBpZiAkZWxlbWVudCBleGlzdHMgaW4gJHotaW5kZXgtY29uZmlnLlxuLy8vIFsyXSBJZiBub3QgcGFzcyBhbiBlcnJvci5cbi8vL1xuQGZ1bmN0aW9uIHotaW5kZXgoJGVsZW1lbnQpIHtcblxuICAgIC8vIFsxXVxuICAgIEBpZiBtYXAtaGFzLWtleSgkei1pbmRleC1jb25maWcsICRlbGVtZW50KSB7XG5cbiAgICAgICAgQHJldHVybiBtYXAtZ2V0KCR6LWluZGV4LWNvbmZpZywgJGVsZW1lbnQpO1xuXG4gICAgfSBAZWxzZSB7XG5cbiAgICAgICAgQHdhcm4gXCJgI3skZWxlbWVudH1gIGRvZXMgbm90IGhhdmUgYSB2YWx1ZSBzZXQgaW4gYCN7JHotaW5kZXgtY29uZmlnfWAuIChLZXlzOiAje21hcC1rZXlzKCR6LWluZGV4LWNvbmZpZyl9KVwiOyAvLyBbMl1cbiAgICAgICAgQHJldHVybiBudWxsO1xuXG4gICAgfVxuXG59XG5cblxuXG5cblxuLy8vXG4vLyBBbGlhcyBmb3Igei1pbmRleCgpXG4vLy9cbkBmdW5jdGlvbiB6KCRhcmdzLi4uKSB7XG4gICAgQHJldHVybiB6LWluZGV4KCRhcmdzLi4uKTtcbn1cbiIsIi8vL1xuLy8vIFJldHJpZXZlIGNvbG9yIGZyb20gc2FzcyBtYXAgJGNvbG9yLWNvbmZpZ1xuLy8vXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRjb2xvciAtIE5hbWUgb2YgY29sb3IgdG8gcmV0dXJuIGZyb20gYCRjb2xvci1jb25maWdgLlxuLy8vIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFudCAtIE5hbWUgb2YgYWx0ZXJuYXRlIHZlcnNpb24gb2YgYSBjb2xvciB0byByZXR1cm5cbi8vLyBmcm9tIGAkY29sb3JgIG1hcCBpbiBgJGNvbG9yLWNvbmZpZ2AuXG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRjb2xvci1jb25maWdcbi8vL1xuQGZ1bmN0aW9uIGNvbG9yKCRjb2xvciwgJHZhcmlhbnQ6ICdkZWZhdWx0Jykge1xuXG4gICAgQGlmIG1hcC1oYXMta2V5KCRjb2xvci1jb25maWcsICRjb2xvcikge1xuXG4gICAgICAgICRwYWxldHRlLWNvbmZpZzogbWFwLWdldCgkY29sb3ItY29uZmlnLCAkY29sb3IpO1xuXG4gICAgICAgIEBpZiAodHlwZS1vZigkcGFsZXR0ZS1jb25maWcpICE9ICdtYXAnKSB7XG5cbiAgICAgICAgICAgIEByZXR1cm4gbWFwLWdldCgkY29sb3ItY29uZmlnLCAkY29sb3IpO1xuXG4gICAgICAgIH0gQGVsc2Uge1xuXG4gICAgICAgICAgICBAcmV0dXJuIG1hcC1nZXQoJHBhbGV0dGUtY29uZmlnLCAkdmFyaWFudCk7XG5cbiAgICAgICAgfVxuXG4gICAgfSBAZWxzZSB7XG5cbiAgICAgICAgQHdhcm4gJ2AjeyRjb2xvcn1gIGlzIG5vdCBhbiBhdmFpbGFibGUgY29sb3Igb3IgcGFsZXR0ZSBpbiBgJGNvbG9yLWNvbmZpZ2AnO1xuICAgICAgICBAcmV0dXJuIG51bGw7XG5cbiAgICB9XG5cbn1cbiIsIi8vL1xuLy8vIFJldHVybiBFTSB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtwaXhlbH0gJHB4IC0gVGFyZ2V0IGVxdWl2YWxlbnQgcGl4ZWwgdmFsdWUgdG8gb3V0cHV0IGFzIGVtcy5cbi8vLyBAcGFyYW0ge3BpeGVsfSAkYmFzZSBbJGJhc2UtZm9udC1zaXplXSAtIEJhc2UgcGl4ZWwgdmFsdWUgdG8gY2FsY3VsYXRlIGFnYWluc3QuXG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRiYXNlLWNvbmZpZ1xuLy8vXG5AZnVuY3Rpb24gZW0oJHB4LCAkYmFzZTogJGJhc2UtZm9udC1zaXplKSB7XG5cbiAgICBAaWYgdHlwZS1vZigkcHgpID09ICdudW1iZXInIGFuZCBub3QgdW5pdGxlc3MoJHB4KSB7XG5cbiAgICAgICAgQHJldHVybiAoJHB4IC8gJGJhc2UpICogMWVtO1xuXG4gICAgfSBAZWxzZSB7XG5cbiAgICAgICAgQHdhcm4gJ2BlbSgpYCByZXF1aXJlcyBhIG51bWJlciBpbiBgcHhgIHVuaXRzLic7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcblxuICAgIH1cblxufVxuIiwiLy8vXG4vLy8gUmV0dXJuIFJFTSB2YWx1ZVxuLy8vXG4vLy8gU3VwcG9ydDogaHR0cDovL2Nhbml1c2UuY29tLyNzZWFyY2g9cmVtXG4vLy9cbi8vLyBAcGFyYW0ge3BpeGVsfSAkcHggLSBUYXJnZXQgZXF1aXZhbGVudCBwaXhlbCB2YWx1ZSB0byBvdXRwdXQgYXMgcmVtcy5cbi8vL1xuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJGJhc2UtZm9udC1zaXplXG4vLy9cbkBmdW5jdGlvbiByZW0oJHB4KSB7XG5cbiAgICBAaWYgdHlwZS1vZigkcHgpID09ICdudW1iZXInIGFuZCBub3QgdW5pdGxlc3MoJHB4KSB7XG5cbiAgICAgICAgQHJldHVybiAoJHB4IC8gJGJhc2UtZm9udC1zaXplKSAqIDFyZW07XG5cbiAgICB9IEBlbHNlIHtcblxuICAgICAgICBAd2FybiAnYHJlbSgpYCByZXF1aXJlcyBhIG51bWJlciBpbiBgcHhgIHVuaXRzLic7XG4gICAgICAgIEByZXR1cm4gbnVsbDtcblxuICAgIH1cblxufVxuIiwiLy8vXG4vLy8gQXNzaWduIHZpZXdwb3J0IHVuaXRzIGJhc2VkIG9mIGEgcGl4ZWwgdmFsdWUgYXNzdW1pbmcgYSB2aWV3cG9ydCBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRweCAtIFNpemUgd2Ugd2FudCB0aGUgZXF1aXZhbGVudCBvZi5cbi8vLyBAcGFyYW0ge3N0cmluZ30gJHZpZXdwb3J0IC0gVGhlIHNpemUgdGhlIHZpZXdwb3J0IHdpbGwgYmUgd2hlbiAkcHggbWF0Y2hlc1xuLy8vIGl0J3MgdGFyZ2V0LlxuLy8vXG5AZnVuY3Rpb24gdncoJHB4LCAkdmlld3BvcnQ6IDE2MDBweCkge1xuXG4gICAgQHJldHVybiAkcHggLyAkdmlld3BvcnQgKiAxMDB2dztcblxufVxuIiwiLy8vXG4vLy8gTWVkaWEgUXVlcmllc1xuLy8vXG4vLy8gQHBhcmFtIHtzdHJpbmd9ICRuYW1lIC0gJGtleSB0byB1c2UgZnJvbSAkYnJlYWtwb2ludHMtZXh0ZW5kZWQtY29uZmlnXG4vLy9cbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRicmVha3BvaW50cy1leHRlbmRlZC1jb25maWdcbi8vL1xuQG1peGluIG1lZGlhKCRuYW1lKSB7XG5cbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLW1hc3Rlci1jb25maWcsICRuYW1lKSB7XG4gICAgICAgIEBtZWRpYSAje21hcC1nZXQoJGJyZWFrcG9pbnRzLW1hc3Rlci1jb25maWcsICRuYW1lKX0ge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ0NvdWxkblxcJ3QgZmluZCBhIGJyZWFrcG9pbnQgbmFtZWQgYCN7JG5hbWV9YC4nO1xuICAgIH1cblxufVxuXG5cblxuXG5cbi8vL1xuLy8gQWxpYXMgdGhlIG1lZGlhIG1peGluLlxuLy8vXG5AbWl4aW4gYnJlYWtwb2ludCgkYXJncy4uLikge1xuXG4gICAgQHdhcm4gJ2BAaW5jbHVkZSBicmVha3BvaW50KClgIGFuZCBgQGluY2x1ZGUgYnAoKWAgaXMgZGVwcmljYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkLiBQbGVhc2UgdXNlIEBtZWRpYSc7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkYXJncy4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG5cbn1cblxuXG5AbWl4aW4gYnAoJGFyZ3MuLi4pIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRhcmdzLi4uKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuXG5cblxuXG4vLy9cbi8vLyBMb29wIHRocm91Z2ggdGhlIGJyZWFrcG9pbnRzIChsYXlvdXQvZXh0ZW5kZWQpLCBvdXRwdXQgdGhlIHBhcmVudCBzY29wZSBhbmRcbi8vLyBuZXN0IHRoZSBjb250ZW50IGluIGVhY2ggbWVkaWEgcXVlcnkuIFRoZSBtaXhpbiBtdXN0IGJlIG5lc3RlZCBpbiB0aGUgY2xhc3Ncbi8vLyB5b3Ugd2lzaCB0byBnZW5lcmF0ZSBhbGwgdGhlIGJyZWFrcG9pbnQgbW9kaWZpZXJzIGZvci5cbi8vL1xuLy8vIEBwYXJhbSB7Ym9vbGVhbn0gJGV4dGVuZGVkIC0gU2hvdWxkIHRoZSBtaXhpbiB1c2UgdGhlXG4vLy8gJGJyZWFrcG9pbnRzLWV4dGVuZGVkLWNvbmZpZ1xuLy8vXG5AbWl4aW4gbG9vcC1icmVha3BvaW50cygkZXh0ZW5kZWQ6IGZhbHNlKSB7XG5cbiAgICAvLyBPdXRwdXQgYSBub24tbmFtZXNwYWNlZCB2ZXJzaW9uLiBTbyB3ZSBkb24ndCBoYXZlIHRvIHJlcGVhdCBvdXJzZWx2ZXMuXG4gICAgJiB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIC8vIENoZWNrIHdoaWNoIGJyZWFrcG9pbnQgY29uZmlnIHdlJ3JlIHVzaW5nLlxuICAgICRfbG9vcC1icmVha3BvaW50cy1jb25maWc6IGlmKCRleHRlbmRlZCwgJGJyZWFrcG9pbnRzLWV4dGVuZGVkLWNvbmZpZywgJGJyZWFrcG9pbnRzLWxheW91dC1jb25maWcpO1xuXG4gICAgLy8gTG9vcCB0aHJvdWdoIHRoZSBicmVha3BvaW50cy5cbiAgICBAZWFjaCAkYnJlYWtwb2ludCwgJG1lZGlhLXF1ZXJpZSBpbiAkX2xvb3AtYnJlYWtwb2ludHMtY29uZmlnIHtcblxuICAgICAgICAvLyBBcHBlbmQgdGhlIGBAYnJlYWtwb2ludGAgbmFtZXNwYWNlXG4gICAgICAgICZcXEAjeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG59XG4iLCIvLy9cbi8vLyBDbGVhcmZpeCBmb3IgbW9kZXJuIGJyb3dzZXJzXG4vLy9cbi8vLyBAaWdub3JlXG4vLy8gWzFdIFRoZSBzcGFjZSBjb250ZW50IGlzIG9uZSB3YXkgdG8gYXZvaWQgYW4gT3BlcmEgYnVnIHdoZW4gdGhlXG4vLy8gICAgIGNvbnRlbnRlZGl0YWJsZSBhdHRyaWJ1dGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgZWxzZSBpbiB0aGUgZG9jdW1lbnQuXG4vLy8gICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuLy8vICAgICB0aGF0IGFyZSBjbGVhcmZpeGVkLlxuLy8vIFsyXSBUaGUgdXNlIG9mIGB0YWJsZWAgcmF0aGVyIHRoYW4gYGJsb2NrYCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB1c2luZ1xuLy8vICAgICBgOmJlZm9yZWAgdG8gY29udGFpbiB0aGUgdG9wLW1hcmdpbnMgb2YgY2hpbGQgZWxlbWVudHMuXG4vLy9cbkBtaXhpbiBjbGVhcmZpeCgpIHtcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnICc7IC8vIFsxXVxuICAgICAgICBkaXNwbGF5OiB0YWJsZTsgLy8gWzJdXG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxufVxuIiwiLy8vXG4vLy8gSGlkZSB0ZXh0IG9ubHksIGludGVuZGVkIGZvciBpbWFnZSByZXBsYWNlbWVudC5cbi8vL1xuQG1peGluIGhpZGUtdGV4dCgpIHtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udDogMC8wIGE7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuIiwiLy8vXG4vLy8gSGlkZSdzIGNvbnRlbnQgaW4gYSBzY3JlZW4gcmVhZGVyIGZyaWVuZGx5IHdheS5cbi8vL1xuQG1peGluIHNyLW9ubHkoKSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgd2lkdGg6IDFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4iLCIvLy9cbi8vLyBHZW5lcmF0ZSBhIGxpc3Qgb2YgaGVhZGluZyB0YWdzIGFuZCBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRmcm9tIFsxXSAtIEhpZ2hlc3QgaGVhZGluZyB2YWx1ZSB0byBzdGFydCBmcm9tLlxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkdG8gWzZdIC0gTG93ZXN0IGhlYWRpbmcgdmFsdWUgdG8gc3RhcnQgZnJvbS5cbi8vL1xuLy8vIEB0aHJvdyBFcnJvciByZWxhdGVkIG1lc3NhZ2Vcbi8vL1xuLy8vIEBpZ25vcmVcbi8vLyBbMV0gQ3JlYXRlIGEgcGxhY2Vob2xkZXIgdGhhdCB3ZSB3aWxsIGV4dGVuZCB0by5cbi8vLyBbMl0gQ2hlY2sgdGhhdCBvbmx5IDEtNiBpcyBiZWluZyByZXF1ZXN0ZWQgYW5kICRmcm9tIGlzIHNtYWxsZXIgdGhhbiAkdG8uXG4vLy8gWzNdIExvb3AgdGhyb3VnaCB0aGUgcmFuZ2Ugb2YgJGZyb20gYW5kICR0byB0byBnZW5lcmF0ZSBhbmQgQGV4dGVuZCB0aGVcbi8vLyAgICAgdGhlIGNvcnJlY3QgY2xhc3NlcyB0byB0aGUgcGxhY2Vob2xkZXIuXG4vLy8gWzRdICRoZWFkaW5ncy1jb3VudGVyIHByZXZlbnRzIG11bHRpcGxlIGhlYWRpbmdzKCkgY2FsbHMgZnJvbSBjb21iaW5pbmcgb24gYWxsXG4vLy8gICAgIHByZXZpb3VzICVfaGVhZGluZy1wbGFjZWhvbGRlciBieSBtYWtpbmcgaXQgdW5pcXVlIGZvciBlYWNoIGNhbGxcbi8vL1xuXG4kaGVhZGluZ3MtY291bnRlcjogMDsgLy8gWzRdXG5cbkBtaXhpbiBoZWFkaW5ncygkZnJvbTogMSwgJHRvOiA2KSB7XG5cbiAgICAvLyBbMSAmIDRdXG4gICAgJV9oZWFkaW5nLXBsYWNlaG9sZGVyLSN7JGhlYWRpbmdzLWNvdW50ZXJ9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLy8gWzJdXG4gICAgQGlmICRmcm9tID49IDEgYW5kICR0byA8PSA2IGFuZCAkZnJvbSA8PSAkdG8ge1xuXG4gICAgICAgIC8vIFszXVxuICAgICAgICBAZm9yICRoZWFkaW5nIGZyb20gJGZyb20gdGhyb3VnaCAkdG8ge1xuXG4gICAgICAgICAgICBoI3skaGVhZGluZ30ge1xuICAgICAgICAgICAgICAgIEBleHRlbmQgJV9oZWFkaW5nLXBsYWNlaG9sZGVyLSN7JGhlYWRpbmdzLWNvdW50ZXJ9OyAvLyBbNF1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ2BoZWFkaW5ncygpYCBvbmx5IGFjY2VwdHMgdHdvIG51bWJlcnMgYmV0d2VlbiAxICYgNi4nO1xuICAgICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgJGhlYWRpbmdzLWNvdW50ZXI6ICRoZWFkaW5ncy1jb3VudGVyICsgMTsgLy8gWzRdXG5cbn1cbiIsIi8vL1xuLy8vIExpbmsgUHN1ZWRvIFN0YXRlc1xuLy8vXG4vLy8gQHBhcmFtIHtib29sZWFufSAkcGFyZW50IFt0cnVlXSAtIENhbiBpbmNsdWRlIHRoZSBwYXJlbnQgc2VsZWN0b3IgdG9vIGlmIHNldCB0b1xuLy8vXG5AbWl4aW4gbGluay1zdGF0ZXMoJHBhcmVudDogZmFsc2UpIHtcblxuICAgIEBpZiAoJHBhcmVudCl7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgIH0gQGVsc2Uge1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6YWN0aXZlLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cbiIsIi8vL1xuLy8vIFVuc3R5bGVkIExpc3Rcbi8vL1xuQG1peGluIGxpc3QtdW5zdHlsZWQoKSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQk9SREVSIEJPWFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBBcHBseSBnbG9iYWwgYm9yZGVyIGJveC5cbiAqL1xuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG59XG5cblxuaHRtbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NVU1RPTSBGT05UU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBMaXN0IGN1c3RvbSBmb250c1xuICovXG5cbi8vIEV4YW1wbGVcbi8vIEBmb250LWZhY2Uge1xuLy8gICAgIGZvbnQtZmFtaWx5OiAnS2xhdmlrYSc7XG4vLyAgICAgc3JjOiB1cmwoJy4uL2ZvbnRzL0tsYXZpa2EtUmVndWxhci5lb3QnKTsgLyogSUU5IENvbXBhdCBNb2RlcyAqL1xuLy8gICAgIHNyYzogdXJsKCcuLi9mb250cy9LbGF2aWthLVJlZ3VsYXIuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwgLyogSUU2LUlFOCAqL1xuLy8gICAgICAgICAgdXJsKCcuLi9mb250cy9LbGF2aWthLVJlZ3VsYXIud29mZicpIGZvcm1hdCgnd29mZicpLCAvKiBNb2Rlcm4gQnJvd3NlcnMgKi9cbi8vICAgICAgICAgIHVybCgnLi4vZm9udHMvS2xhdmlrYS1SZWd1bGFyLnR0ZicpICBmb3JtYXQoJ3RydWV0eXBlJyksIC8qIFNhZmFyaSwgQW5kcm9pZCwgaU9TICovXG4vLyAgICAgICAgICB1cmwoJy4uL2ZvbnRzL0tsYXZpa2EtUmVndWxhci5zdmcjMWMwYTc3MTIzYzgzMzcyNGI1MzNlNjMyNzQ4N2MwMDgnKSBmb3JtYXQoJ3N2ZycpOyAvKiBMZWdhY3kgaU9TICovXG4vLyAgICAgZm9udC1zdHlsZTogICBub3JtYWw7XG4vLyAgICAgZm9udC13ZWlnaHQ6ICA0MDA7XG4vLyB9XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQQUdFXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIEJvZHlcbiAqL1xuaHRtbCB7XG4gICAgYmFja2dyb3VuZDogIzAwMCB1cmwoJy4uL2ltZy9ib2R5LWJnLmpwZycpIGNlbnRlcjtcbiAgICBjb2xvcjogJGJhc2UtY29sb3I7XG4gICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGluZS1oZWlnaHQ6ICRiYXNlLWxpbmUtaGVpZ2h0O1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbmJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1RZUE9HUkFQWVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBIZWFkaW5nc1xuICpcbiAqIEluIG1vc3QgY2FzZXMgeW91IHNob3VsZCBhdm9pZCBzdHlsaW5nIGEgc3BlY2lmaWMgaGVhZGluZyB0eXBlIHRvIGhhdmVcbiAqIGN1c3RvbSBkaXN0aW5jdCBzdHlsZXMgdGhhdCB3b3VsZCBhcHBseSB0byBhbGwgaGVhZGluZ3Mgb2YgdGhhdCB0eXBlLlxuICogSW5zdGVhZCBjcmVhdGUgYSBuZXcgY29tcG9uZW50IGxpa2UgYy1oZWFkaW5nIG9yIGMtdGl0bGUuIFRoaXMgbWF5IG5vdFxuICogYmUgdGhlIGNhc2Ugd2hlbiBhIENNUyBuZWVkcyBkZWZhdWx0IGhlYWRpbmdzIHRvIGFwcGVhciBhIHNwZWNpZmljIHdheS5cbiAqL1xuQGluY2x1ZGUgaGVhZGluZ3MoKSB7XG4gICAgbWFyZ2luOiAwIDAgc3BhY2VyKDEpO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcbn1cblxuXG5cblxuLyoqXG4gKiBQYXJhZ3JhcGhzXG4gKi9cbnAge1xuICAgIG1hcmdpbjogMCAwIHNwYWNlcigxKTtcbn1cblxuXG5cblxuXG4vKipcbiAqIExpc3RzXG4gKi9cbnVsLFxub2wsXG5kbCB7XG4gICAgbWFyZ2luOiAwIDAgc3BhY2VyKDEpO1xufVxuXG5cblxuXG5cbi8qKlxuICogTGluayBTdHlsZXNcbiAqL1xuYSB7XG4gICAgY29sb3I6IGNvbG9yKCdsaW5rJyk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgQGluY2x1ZGUgbGluay1zdGF0ZXMoKSB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG5cbn1cblxuXG5cbnNtYWxsIHtcbiAgICBmb250LXNpemU6IGVtKDE0cHgsIDE4cHgpO1xufVxuXG5cblxuXG5cbi8qKlxuICogSG9yaXpvbnRhbCBSdWxlXG4gKi9cbmhyIHtcbiAgICBtYXJnaW46IHNwYWNlcigwLjc1KSBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTIwOHB4O1xuICAgIGhlaWdodDogICA4cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2hyLWJnLnBuZycpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnc20nKSB7XG4gICAgICAgIG1hcmdpbjogc3BhY2VyKDEuNSkgYXV0bztcbiAgICB9XG5cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lNQUdFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBbMV0gcmVtb3ZlIHNwYWNpbmcgYmVsb3cgaW5saW5lIGltYWdlcy5cbiAqL1xuaW1nIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvLyBbMV1cbiAgICBtYXJnaW46IDAgMCBzcGFjZXIoMSk7XG59XG5cblxuXG5cblxuLyoqXG4gKiBGaWd1cmVcbiAqL1xuZmlndXJlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW46IDAgMCBzcGFjZXIoMSk7XG59XG5cblxuXG5cblxuZmlnY2FwdGlvbiB7XG4gICAgZm9udC1zaXplOiByZW0oMTBweCk7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cblxuXG5cbnN2ZyB7XG4gICAgZmlsbDogY3VycmVudENvbG9yO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjV1JBUFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBBIHNpbXBsZSB3cmFwcGVyIHRoYXQgY3JvcHMgYWxsIGNvbnRlbnQgdGhhdCBibGVlZHMgb3V0IG9mIGl0XG4gKiBVc2VmdWxsIGZvciBwcmV2ZW50aW5nIHNjcm9sbGluZyBvbiB0aGUgYm9keS5cbiAqL1xuLm8td3JhcCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NPTlRBSU5FUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLy8vIENvbnRhaW5lciBXaWR0aFxuJGNvbnRhaW5lci13aWR0aDogICAgICAgMTA1MHB4O1xuJGNvbnRhaW5lci13aWR0aC13aWRlOiAgMTM2MHB4O1xuXG4vLy8gQ29udGFpbmVyIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmdcbiRjb250YWluZXItcGFkZGluZzogICAgICAgMjBweDtcblxuXG5cblxuXG4vKipcbiAqIEFuIG91dGVyIGNvbnRhaW5lciBmb3Igc2l0ZSBjb250ZW50LiBBIGNvbnRhaW5lciBzaG91bGQgbmV2ZXIgYmUgYSBjaGlsZCBvZlxuICogaW5zdGFuY2Ugb2YgaXQncyBzZWxmLlxuICovXG4uby1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDAgJGNvbnRhaW5lci1wYWRkaW5nO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogJGNvbnRhaW5lci1wYWRkaW5nICsgJGNvbnRhaW5lci13aWR0aCArICRjb250YWluZXItcGFkZGluZztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCdzbScpIHtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICB9XG5cbn1cblxuXG4uby1jb250YWluZXItLXdpZGUge1xuICAgIG1heC13aWR0aDogJGNvbnRhaW5lci1wYWRkaW5nICsgJGNvbnRhaW5lci13aWR0aC13aWRlICsgJGNvbnRhaW5lci1wYWRkaW5nO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQ09MVU1OU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLm8tY29sdW1ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3NtJykge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBtYXJnaW46IDAgc3BhY2VyKC0wLjUpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCdtZCcpIHtcbiAgICAgICAgbWFyZ2luOiAwIHNwYWNlcigtMSk7XG4gICAgfVxuXG59XG5cbi5vLWNvbHVtbnNfX3BhbmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3NtJykge1xuICAgICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgICBwYWRkaW5nOiAwIHNwYWNlcigwLjUpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCdtZCcpIHtcbiAgICAgICAgcGFkZGluZzogMCBzcGFjZXIoMSk7XG4gICAgfVxuXG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNHUklEXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLy9cbi8vIEdyaWQgQ29uZmlndXJhdGlvblxuLy9cbi8vIFsxXSBOdW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZCBsYXlvdXRcbi8vIFsyXSBCcmVha3BvaW50cyBmcm9tICckYnJlYWtwb2ludHMtY29uZmlnJyB0byBidWlsZCB0aGUgZ3JpZCBzeXN0ZW0gd2l0aC5cbi8vICAgICBPbmx5IGluY2x1ZGUgdGhlIG9uZXMgeW91IHVzZS4gVXNlICdkZXByZWNhdGVkLXNlbGVjdG9ycycgaW4gcWEtZGVidWcgdG9cbi8vICAgICB0ZXN0IHdoZW4gcmVtb3ZpbmcgdGhlbS5cbi8vIFszXSBDb2x1bW4gZ3V0dGVycywgYW55dGhpbmcgYWRkaXRpb25hbCBpdGVtcyBvdGhlciB0aGFuIGBpbml0aWFsYCBidWlsZHNcbi8vICAgICBvdXQgbW9kaWZpZXIgY2xhc3Nlc1xuLy8gWzRdIEdlbmVyYXRlIG9mZnNldCBtb2RpZmllciBjbGFzc2VzIGZvciBsYXlvdXQgaXRlbXMgdGhhdCBwdXNoIGNvbnRlbnQgdG9cbi8vICAgICB0aGUgcmlnaHQgYXMgaWYgdGhlIHNldCBudW1iZXIgb2YgY29sdW1ucyB3YXMgdG8gdGhlIGxlZnQgb2YgaXQuXG4vLyBbNV0gR2VuZXJhdGUgc291cmNlIG9yZGVyaW5nIG1vZGlmaWVyIGNsYXNzZXMgZm9yIGxheW91dCBpdGVtcyBzbyB5b3UgY2FuXG4vLyAgICAgc3dhcCB0aGUgc3RhY2tpbmcgb24gbW9iaWxlIHZlcnNlcyBkZXNrdG9wLlxuLy8vXG5cbiRncmlkLWNvbmZpZzogKFxuICAgICdjb2x1bW5zJzogICAgICAgMTIsXG4gICAgJ2JyZWFrcG9pbnRzJzogKFxuICAgICAgICAnc20nLFxuICAgICAgICAnbWQnLFxuICAgICAgICAnbGcnXG4gICAgKSxcbiAgICAnZ3V0dGVycyc6IChcbiAgICAgICAgJ2luaXRpYWwnOiAgIDEwcHhcbiAgICApLFxuICAgICdvZmZzZXRzJzogICAgICAgZmFsc2UsXG4gICAgJ3B1c2gtYW5kLXB1bGwnOiBmYWxzZVxuKTtcblxuXG4vLyBTdG9yZSAkZ3JpZC1jb25maWcgbWFwIGFzIHZhcmlhYmxlcy4uLlxuJGdyaWQtYnJlYWtwb2ludHM6ICAgICAgbWFwLWdldCgkZ3JpZC1jb25maWcsICdicmVha3BvaW50cycpO1xuJGdyaWQtZ3V0dGVyczogICAgICAgICAgbWFwLWdldCgkZ3JpZC1jb25maWcsICdndXR0ZXJzJyk7XG4kZ3JpZC1ndXR0ZXJzLWluaXRpYWw6ICBtYXAtZ2V0KCRncmlkLWd1dHRlcnMsICdpbml0aWFsJyk7XG4kZ3JpZC1jb2x1bW5zOiAgICAgICAgICBtYXAtZ2V0KCRncmlkLWNvbmZpZywgJ2NvbHVtbnMnKTtcbiRncmlkLW9mZnNldHM6ICAgICAgICAgIG1hcC1nZXQoJGdyaWQtY29uZmlnLCAnb2Zmc2V0cycpO1xuJGdyaWQtcHVzaC1hbmQtcHVsbDogICAgbWFwLWdldCgkZ3JpZC1jb25maWcsICdwdXNoLWFuZC1wdWxsJyk7XG5cblxuXG5cblxuLyoqXG4gKiBMYXlvdXQgcm93XG4gKlxuICogWzFdIEFkZGl0aW9uYWwgbW9kaWZpZXIgY2xhc3NlcyBmb3IgbGF5b3V0IGd1dHRlcnMuXG4gKi9cbi5vLWdyaWQge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICAgIG1hcmdpbi1yaWdodDogbmVnKHF1YXJ0ZXIoJGdyaWQtZ3V0dGVycy1pbml0aWFsKSk7XG4gICAgbWFyZ2luLWxlZnQ6ICBuZWcocXVhcnRlcigkZ3JpZC1ndXR0ZXJzLWluaXRpYWwpKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKG1kKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogbmVnKGhhbHZlKCRncmlkLWd1dHRlcnMtaW5pdGlhbCkpO1xuICAgICAgICBtYXJnaW4tbGVmdDogIG5lZyhoYWx2ZSgkZ3JpZC1ndXR0ZXJzLWluaXRpYWwpKTtcbiAgICB9XG5cbn1cblxuLy8gWzFdXG5AZWFjaCAkZ3JpZC1ndXR0ZXIsICRncmlkLWd1dHRlci12YWx1ZSBpbiAkZ3JpZC1ndXR0ZXJzIHtcblxuICAgIC8vIFNraXAgdGhlIGluaXRpYWwgdmFsdWUuXG4gICAgQGlmICgkZ3JpZC1ndXR0ZXIgIT0gJ2luaXRpYWwnKSB7XG5cbiAgICAgICAgLm8tZ3JpZC0tI3skZ3JpZC1ndXR0ZXJ9IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogIG5lZyhoYWx2ZSgkZ3JpZC1ndXR0ZXItdmFsdWUpKTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAgIG5lZyhoYWx2ZSgkZ3JpZC1ndXR0ZXItdmFsdWUpKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cblxuXG5cblxuLyoqXG4gKiBBIGxheW91dCBpdGVtLCB1c2VkIGxpa2UgYSBjb2x1bW5cbiAqXG4gKiBbMV0gQWRkaXRpb25hbCBtb2RpZmllciBjbGFzc2VzIGZvciBsYXlvdXQgZ3V0dGVycy5cbiAqL1xuLm8tZ3JpZF9fY29sdW1uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1yaWdodDogIHF1YXJ0ZXIoJGdyaWQtZ3V0dGVycy1pbml0aWFsKTtcbiAgICBwYWRkaW5nLWxlZnQ6ICAgcXVhcnRlcigkZ3JpZC1ndXR0ZXJzLWluaXRpYWwpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKG1kKSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICBoYWx2ZSgkZ3JpZC1ndXR0ZXJzLWluaXRpYWwpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICAgaGFsdmUoJGdyaWQtZ3V0dGVycy1pbml0aWFsKTtcbiAgICB9XG5cbiAgICAvLyBbMV1cbiAgICBAZWFjaCAkZ3JpZC1ndXR0ZXIsICRncmlkLWd1dHRlci12YWx1ZSBpbiAkZ3JpZC1ndXR0ZXJzIHtcblxuICAgICAgICAvLyBTa2lwIHRoZSBpbml0aWFsIHZhbHVlLlxuICAgICAgICBAaWYgKCRncmlkLWd1dHRlciAhPSAnaW5pdGlhbCcpIHtcblxuICAgICAgICAgICAgLm8tZ3JpZC0tI3skZ3JpZC1ndXR0ZXJ9ID4gJiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogIGhhbHZlKCRncmlkLWd1dHRlci12YWx1ZSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAgIGhhbHZlKCRncmlkLWd1dHRlci12YWx1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG59XG5cblxuXG5cblxuLyoqXG4gKiBMYXlvdXQgQ29sdW1uc1xuICovXG5AZm9yICRncmlkLWl0ZW0tc3BhbiBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1jb2x1bW5zIHtcblxuICAgIC5vLWdyaWRfX2NvbHVtbi0tI3skZ3JpZC1pdGVtLXNwYW59IHtcbiAgICAgICAgd2lkdGg6ICgxMDAlIC8gJGdyaWQtY29sdW1ucykgKiAkZ3JpZC1pdGVtLXNwYW47XG4gICAgfVxuXG59XG5cbkBlYWNoICRicmVha3BvaW50IGluICRncmlkLWJyZWFrcG9pbnRzIHtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50KSB7XG5cbiAgICAgICAgQGZvciAkZ3JpZC1pdGVtLXNwYW4gZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG5cbiAgICAgICAgICAgIC5vLWdyaWRfX2NvbHVtbi0tI3skZ3JpZC1pdGVtLXNwYW59XFxAI3skYnJlYWtwb2ludH0ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAoMTAwJSAvICRncmlkLWNvbHVtbnMpICogJGdyaWQtaXRlbS1zcGFuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG5cblxuLy8gQ29uZGl0aW9uYWxseSBvdXRwdXQgbGF5b3V0IG9mZnNldHMuXG5AaWYgJGdyaWQtb2Zmc2V0cyB7XG5cbiAgICAvKipcbiAgICAgKiBPZmZzZXQgbW9kaWZpZXJzIGZvciBsYXlvdXQgaXRlbXMuXG4gICAgICovXG4gICAgQGZvciAkZ3JpZC1pdGVtLXNwYW4gZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG5cbiAgICAgICAgLm8tZ3JpZF9fY29sdW1uLS1vZmZzZXQtI3skZ3JpZC1pdGVtLXNwYW59IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAoMTAwJSAvICRncmlkLWNvbHVtbnMpICogJGdyaWQtaXRlbS1zcGFuO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBAZWFjaCAkYnJlYWtwb2ludCBpbiAkZ3JpZC1icmVha3BvaW50cyB7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQpIHtcblxuICAgICAgICAgICAgQGZvciAkZ3JpZC1pdGVtLXNwYW4gZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG5cbiAgICAgICAgICAgICAgICAuby1ncmlkX19jb2x1bW4tLW9mZnNldC0jeyRncmlkLWl0ZW0tc3Bhbn1cXEAjeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAoMTAwJSAvICRncmlkLWNvbHVtbnMpICogJGdyaWQtaXRlbS1zcGFuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuXG5cblxuXG5cbi8vIENvbmRpdGlvbmFsbHkgb3V0cHV0IGxheW91dCBzb3VyY2Ugb3JkZXJpbmcuXG5AaWYgJGdyaWQtcHVzaC1hbmQtcHVsbCB7XG5cbiAgICAvKipcbiAgICAgKiBQdXNoIGFuZCBQdWxsIG1vZGlmaWVycyBmb3IgbGF5b3V0IGl0ZW1zLlxuICAgICAqL1xuICAgIEBmb3IgJGdyaWQtaXRlbS1zcGFuIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbnMge1xuXG4gICAgICAgIC5vLWdyaWRfX2NvbHVtbi0tcHVzaC0jeyRncmlkLWl0ZW0tc3Bhbn0ge1xuICAgICAgICAgICAgbGVmdDogKDEwMCUgLyAkZ3JpZC1jb2x1bW5zKSAqICRncmlkLWl0ZW0tc3BhbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vLWdyaWRfX2NvbHVtbi0tcHVsbC0jeyRncmlkLWl0ZW0tc3Bhbn0ge1xuICAgICAgICAgICAgbGVmdDogbmVnKCgxMDAlIC8gJGdyaWQtY29sdW1ucykgKiAkZ3JpZC1pdGVtLXNwYW4pO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBAZWFjaCAkYnJlYWtwb2ludCBpbiAkZ3JpZC1icmVha3BvaW50cyB7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQpIHtcblxuICAgICAgICAgICAgQGZvciAkZ3JpZC1pdGVtLXNwYW4gZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1ucyB7XG5cbiAgICAgICAgICAgICAgICAuby1ncmlkX19jb2x1bW4tLXB1c2gtI3skZ3JpZC1pdGVtLXNwYW59XFxAI3skYnJlYWtwb2ludH0ge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAoMTAwJSAvICRncmlkLWNvbHVtbnMpICogJGdyaWQtaXRlbS1zcGFuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5vLWdyaWRfX2NvbHVtbi0tcHVsbC0jeyRncmlkLWl0ZW0tc3Bhbn1cXEAjeyRicmVha3BvaW50fSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IG5lZygoMTAwJSAvICRncmlkLWNvbHVtbnMpICogJGdyaWQtaXRlbS1zcGFuKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9XG5cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lTTEFORFxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBBZGQgYSBuaWNlIGdhcCBiZWxvdyBhIGJsb2NrIG9mIGNvbnRlbnQuXG4gKi9cbi5vLWlzbGFuZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogc3BhY2VyKDEpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3NtJykge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBzcGFjZXIoMi41KTtcbiAgICB9XG5cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lOU0VUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uby1pbnNldCB7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnc20nKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMTUlO1xuICAgIH1cblxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQVNQRUNUXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBDb25maWcgdG8gZWFzaWx5IGdlbmVyYXRlIG1vZGlmaWVycyBmb3IgZGlmZmVyZW50IGltYWdlIGFzcGVjdCByYXRpb3NcbiRhc3BlY3QtY29uZmlnOiAoXG4gICAgJzJ4MSc6IDUwJSxcbiAgICAnMTZ4OSc6IDkgLyAxNiAqIDEwMCVcbik7XG5cblxuLyoqXG4gKiBFbmZvcmNlIGFuIGFzcGVjdCByYXRpbyBvbiBhIHJlc3BvbnNpdmUgaW1hZ2UgYmVmb3JlIHRoZSBwYWdlIGxvYWRzLiBVc2VzXG4gKiB0aGUgc2FtZSB0cmljayBhcyByZXNwb25zaXZlIHZpZGVvcy5cbiAqXG4gKiBbMV0gSGlkZSBhbnkgYWNjZXNzIG92ZXJmbG93IG9mIHRoZSBpbWFnZSBpbiBjYXNlIGl0IGRvZXNuJ3QgcXVpdGUgZml0LlxuICogWzJdIFBhZGRpbmcgMTAwJSBjcmVhdGVzIGEgc3F1YXJlIGJ5IGRlZmF1bHQuXG4gKi9cbi5vLWFzcGVjdCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgLy8gWzFdXG4gICAgbWFyZ2luLWJvdHRvbTogc3BhY2VyKDEpO1xuICAgIHBhZGRpbmctdG9wOiAxMDAlOyAvLyBbMl1cbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmID4gaW1nLFxuICAgICYgPiBpZnJhbWUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAgMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogIDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG59XG5cblxuLyoqXG4gKiBMb29wIHRocm91Z2h0IHRoZSBjb25maWcgYW5kIGJ1aWxkIG91dCBhZGl0aW9uYWwgc2l6ZXMuXG4gKi9cbkBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJGFzcGVjdC1jb25maWcge1xuXG4gICAgLm8tYXNwZWN0LS0jeyRwcm9wfSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAkdmFsdWU7XG4gICAgfVxuXG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNMSVNUIFVOU1RZTEVEXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIFJlbW92ZSBsaXN0IHN0eWxpbmcgZnJvbSBsaXN0XG4gKi9cbi5vLWxpc3QtdW5zdHlsZWQge1xuICAgIEBpbmNsdWRlIGxpc3QtdW5zdHlsZWQoKTtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0xJU1QgSU5MSU5FXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIExpc3Qgd2l0aCBkaXJlY3QgY2hpbGRyZW4gZGlzcGxheWluZyBpbmxpbmUuXG4gKiBbMV0gQWxsIGl0ZW1zIGV4Y2VwdCB0aGUgZmlyc3QgaGF2ZSBwYWRkaW5nLlxuICovXG4uby1saXN0LWlubGluZSB7XG4gICAgQGluY2x1ZGUgbGlzdC11bnN0eWxlZCgpO1xuICAgIG1hcmdpbjogc3BhY2VyKDEpIDA7XG5cbiAgICAmID4gbGkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIH1cblxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjTE9HT1NcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vXG4vLyBNYXAgb2YgbG9nb3MsIGdvb2QgZm9yIGJ1aWxkaW5nIG91dCBzZXZlcmFsIGF0IGEgdGltZSBieSBwYXNzaW5nIGEgbGlzdCBvZlxuLy8gcHJvcGVydGllcyB0byB0aGlzIGNvbmZpZ3VyYXRpb24gbWFwLiBUaGV5IGhhdmUgYSBzaW5nbGUgaW5pdGlhbCBzaXplIGFuZFxuLy8gY2FuIHNldCBhZGRpdGlvbmFsIHNpemVzIGJhc2VkIG9uIHByb3ZpZGVkIGJyZWFrcG9pbnRzIGFuZCBzY2FsZXMuXG4kbG9nb3MtY29uZmlnOiAoXG4gICAgJ3NhbXBsZSc6IChcbiAgICAgICAgJ3dpZHRoJzogMTUwcHgsXG4gICAgICAgICdoZWlnaHQnOiA3NXB4LFxuICAgICAgICAndXJsJzogJ2h0dHA6Ly9zYXR5ci5pby8xNTB4NzU/dGV4dD1Mb2dvJ1xuICAgICksXG4gICAgJ3Jlc3BvbnNpdmUnOiAoXG4gICAgICAgICd3aWR0aCc6ICAyMDBweCxcbiAgICAgICAgJ2hlaWdodCc6IDEyMHB4LFxuICAgICAgICAndXJsJzogJ2h0dHA6Ly9zYXR5ci5pby8yMDB4MTIwP3RleHQ9TG9nbycsXG4gICAgICAgICdicmVha3BvaW50cyc6IChcbiAgICAgICAgICAgICdpbml0aWFsJzogMC40LFxuICAgICAgICAgICAgJ3NtJzogICAgICAwLjc1LFxuICAgICAgICAgICAgJ21kJzogICAgICAxXG4gICAgICAgIClcbiAgICApXG4pO1xuXG5cblxuXG5cbi8qKlxuICogTG9nbyBiYXNlIGNsYXNzLiBBcHBsaWVzIHNoYXJlZCBwcm9wZXJ0aWVzIGZvciBhbGwgbG9nb3MuXG4gKlxuICogWzFdIFJlbGllcyBvbiBiYWNrZ3JvdW5kLXNpemUgdG8gc2hyaW5rIGxhcmdlIGxvZ29zIHRvIHNtYWxsZXIgc2l6ZXMuXG4gKi9cblxuLmMtbG9nbyB7XG4gICAgQGluY2x1ZGUgaGlkZS10ZXh0KCk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYmFja2dyb3VuZDogY2VudGVyIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47IC8vIFsxXVxufVxuXG5cbi8vXG4vLyBMb29wIHRocm91Z2ggdGhlIGxvZ29zIGFuZCBnZW5lcmF0ZSBtb2RpZmllcnMuXG4vL1xuQGVhY2ggJGxvZ28sICRsb2dvLWNvbmZpZyBpbiAkbG9nb3MtY29uZmlnIHtcblxuICAgIC8vIExvZ28ncyBwcm9wZXJ0aWVzXG4gICAgJGxvZ28td2lkdGg6ICBtYXAtZ2V0KCRsb2dvLWNvbmZpZywgJ3dpZHRoJyk7XG4gICAgJGxvZ28taGVpZ2h0OiBtYXAtZ2V0KCRsb2dvLWNvbmZpZywgJ2hlaWdodCcpO1xuICAgICRsb2dvLXVybDogICAgbWFwLWdldCgkbG9nby1jb25maWcsICd1cmwnKTtcblxuICAgIC8vIERvZXMgdGhlIGxvZ28gaGF2ZSBhIGJyZWFrcG9pbnRzIG1hcFxuICAgICRsb2dvLWJyZWFrcG9pbnRzLWNvbmZpZzogaWYobWFwLWhhcy1rZXkoJGxvZ28tY29uZmlnLCAnYnJlYWtwb2ludHMnKSwgbWFwLWdldCgkbG9nby1jb25maWcsICdicmVha3BvaW50cycpLCBmYWxzZSk7XG5cbiAgICAkbG9nby1zY2FsZS1pbml0aWFsOiBpZigkbG9nby1icmVha3BvaW50cy1jb25maWcsIG1hcC1nZXQoJGxvZ28tYnJlYWtwb2ludHMtY29uZmlnLCAnaW5pdGlhbCcpLCAxKTtcblxuICAgIC5jLWxvZ28tLSN7JGxvZ299IHtcbiAgICAgICAgd2lkdGg6ICAkbG9nby13aWR0aCAqICRsb2dvLXNjYWxlLWluaXRpYWw7XG4gICAgICAgIGhlaWdodDogJGxvZ28taGVpZ2h0ICogJGxvZ28tc2NhbGUtaW5pdGlhbDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCRsb2dvLXVybCk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaXMgYSBicmVha3BvaW50cyBsaXN0IGlzIHByb3ZpZGVkXG4gICAgICAgIEBpZiAkbG9nby1icmVha3BvaW50cy1jb25maWcge1xuXG4gICAgICAgICAgICBAZWFjaCAkbG9nby1icmVha3BvaW50LCAkbG9nby1zY2FsZS1icmVha3BvaW50IGluICRsb2dvLWJyZWFrcG9pbnRzLWNvbmZpZyB7XG5cbiAgICAgICAgICAgICAgICBAaWYgJGxvZ28tYnJlYWtwb2ludCAhPSAnaW5pdGlhbCcge1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCN7JGxvZ28tYnJlYWtwb2ludH0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAgcm91bmQoJGxvZ28td2lkdGggKiAkbG9nby1zY2FsZS1icmVha3BvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogcm91bmQoJGxvZ28taGVpZ2h0ICogJGxvZ28tc2NhbGUtYnJlYWtwb2ludCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjQlVUVE9OU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBwYWRkaW5nOiBlbSgxMnB4LCAyMHB4KSBlbSg2MHB4LCAyMHB4KSBlbSg4cHgsIDIwcHgpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yKCdyZWQnKTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvcigncmVkJyk7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LXNwZWNpYWwtZWxpdGU7XG4gICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIHRyYW5zaXRpb246IHRpbWVyKCdmYXN0Jyk7XG5cbn1cblxuc3Bhbi5jLWJ0biB7XG4gICAgYmFja2dyb3VuZDogY29sb3IoJ2JvZHknKTtcbiAgICBib3JkZXItY29sb3I6IGRhcmtlbihjb2xvcignYm9keScpLCAxMCUpO1xuICAgIGNvbG9yOiBkYXJrZW4oY29sb3IoJ2JvZHknKSwgMjAlKTtcbn1cblxuYS5jLWJ0biB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgQGluY2x1ZGUgbGluay1zdGF0ZXMoKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGRhcmtlbihjb2xvcigncmVkJyksIDEwJSk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbn1cblxuXG4uYy1idG4tLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuXG4uYy1idG4tLXNtYWxsIHtcbiAgICBmb250LXNpemU6IHJlbSgxNHB4KTtcbiAgICBwYWRkaW5nOiBlbSgxMnB4LCAxNHB4KSBlbSgyMHB4LCAxNHB4KSBlbSg4cHgsIDE0cHgpO1xufVxuXG5cbi8qKlxuICogTW9kaWZpZXJzIGZvciB0aGUgYnV0dG9uc1xuICovXG4uYy1idG4tLXN0cm9rZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IGNvbG9yKCdyZWQnKTtcbn1cblxuYS5jLWJ0bi0tc3Ryb2tlIHtcblxuICAgIEBpbmNsdWRlIGxpbmstc3RhdGVzKCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGRhcmtlbihjb2xvcigncmVkJyksIDEwJSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKGNvbG9yKCdyZWQnKSwgMTAlKTtcbiAgICB9XG5cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0hFQURJTkdTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4uYy1oZWFkaW5nLXBhZ2Uge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogcmVtKDI0cHgpO1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGluZS1oZWlnaHQ6IGVtKDQ2cHgsIDM2cHgpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJ21kJykge1xuICAgICAgICBmb250LXNpemU6IHJlbSgzNnB4KTtcbiAgICB9XG5cbiAgICBzdHJvbmcge1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgIH1cblxufVxuXG5cbi5jLWhlYWRpbmctc2VjdGlvbiB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LXNwZWNpYWwtZWxpdGU7XG4gICAgZm9udC1zaXplOiByZW0oMzBweCk7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJ21kJykge1xuICAgICAgICBmb250LXNpemU6IHJlbSg1MHB4KTtcbiAgICB9XG5cbn1cblxuXG4uYy1oZWFkaW5nLXRpdGxlIHtcbiAgICBmb250LXNpemU6IHJlbSgyMHB4KTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGxpbmUtaGVpZ2h0OiBlbSgzNnB4LCAyNnB4KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCdtZCcpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMjZweCk7XG4gICAgfVxuXG4gICAgc3Ryb25nIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgfVxuXG59XG5cblxuXG4uYy1oZWFkaW5nLXN1YnRpdGxlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IHJlbSgyMHB4KTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiBlbSgzNHB4LCAyNHB4KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCdtZCcpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMjRweCk7XG4gICAgfVxuXG59XG5cblxuLmMtaGVhZGluZy1sZWFkIHtcbiAgICBmb250LXNpemU6IHJlbSgxOXB4KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCdtZCcpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMjJweCk7XG4gICAgfVxuXG59XG5cbi5jLWhlYWRpbmctZWxpdGUge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zcGVjaWFsLWVsaXRlO1xuICAgIGZvbnQtc2l6ZTogcmVtKDMwcHgpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCdzbScpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oNTBweCk7XG4gICAgfVxuXG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNTQ0hFRFVMRVxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtc2NoZWR1bGUge1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvaHItYmcucG5nJykgbm8tcmVwZWF0IGNlbnRlciB0b3A7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCdzbScpIHtcbiAgICAgICAgZm9udC1zaXplOiByZW0oMjBweCk7XG4gICAgfVxuXG59XG5cbi5jLXNjaGVkdWxlX19pdGVtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1nL2hyLWJnLnBuZycpIG5vLXJlcGVhdCBjZW50ZXIgYm90dG9tO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3NtJykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDAgc3BhY2VyKC0wLjI1KTtcbiAgICB9XG5cbn1cblxuLmMtc2NoZWR1bGVfX2l0ZW0tYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IHNwYWNlcigwLjI1KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCdzbScpIHtcbiAgICAgICAgcGFkZGluZzogc3BhY2VyKDAuNSkgc3BhY2VyKDAuMjUpO1xuICAgIH1cblxufVxuXG4uYy1zY2hlZHVsZV9faXRlbS1ibG9jay0tZGF0ZSB7XG4gICAgZmxleDogMCAwIDE1JTtcbiAgICBmb250LXNpemU6IGVtKDI0cHgsIDIwcHgpO1xufVxuXG4uYy1zY2hlZHVsZV9faXRlbS1ibG9jay0tY2l0eSB7XG4gICAgZmxleDogMCAwIDIwJTtcbn1cblxuLmMtc2NoZWR1bGVfX2l0ZW0tYmxvY2stLWxvY2F0aW9uIHtcbiAgICBmbGV4LWdyb3c6IDE7XG59XG5cbi5jLXNjaGVkdWxlX19pdGVtLWJsb2NrLS1jdGEge1xuICAgIGZsZXg6IDAgMCAxNjBweDtcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0hFQURFUlxuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLmMtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiBzcGFjZXIoMSkgMDtcbiAgICBtYXJnaW4tYm90dG9tOiBzcGFjZXIoMSk7XG59XG5cblxuLmNvdW50ZG93biB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgd2lkdGg6IDI2MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogMTAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDMwcHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnc20nKSB7XG4gICAgICAgIHdpZHRoOiAzNTBweDtcbiAgICB9XG59XG5cblxuLmNvdW50ZG93biA+IGRpdntcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIHdpZHRoOiAyMCU7XG4gICAgYmFja2dyb3VuZDogZmFkZS1vdXQoIzAwMCwgMC44KTtcblxufVxuXG4uY291bnRkb3duIGRpdiA+IHNwYW57XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtZmFtaWx5OiAnU3BlY2lhbCBFbGl0ZScsIGN1cnNpdmU7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gICAgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3M6ICd0bnVtJztcbiAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6ICd0bnVtJztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCdzbScpIHtcbiAgICAgICAgZm9udC1zaXplOiA0MHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogNDJweDtcbiAgICB9XG5cbn1cblxuLnNtYWxsdGV4dHtcbiAgICBjb2xvcjogI2FhYTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJ3NtJykge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxuXG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNQQU5FTFNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi5jLXBhbmVsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiBzcGFjZXIoMSk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIGZhZGUtb3V0KCMwMDAsIDAuNykgMCUsIGZhZGUtb3V0KCMwMDAsIDEpIDcwJSksXG4gICAgICAgICAgICAgICAgdXJsKCcuLi9pbWcvcGFuZWwtYmcuanBnJykgY2VudGVyO1xuICAgIGJveC1zaGFkb3c6IDNweCAzcHggMjNweCA4cHggZmFkZS1vdXQoIzAwMCwgMC41KTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCdzbScpIHtcbiAgICAgICAgcGFkZGluZzogc3BhY2VyKDEpO1xuICAgIH1cblxufVxuXG4vKipcbiAqIEZsZXggY29sdW1uIHdyYXBwZXIgZml4ZXMgSUUxMCBtaW4taGllZ2h0IGZsZXggc3VwcG9ydFxuICogaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncyMzLW1pbi1oZWlnaHQtb24tYS1mbGV4LWNvbnRhaW5lci13b250LWFwcGx5LXRvLWl0cy1mbGV4LWl0ZW1zXG4gKi9cbi5jLXBhbmVsX19jdGEtd3JhcCB7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnc20nKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG59XG5cbi5jLXBhbmVsX19jdGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW46IHNwYWNlcigxKSBzcGFjZXIoLTAuNSk7XG4gICAgcGFkZGluZzogMTBweCBzcGFjZXIoMC41KTtcbiAgICBiYWNrZ3JvdW5kOiAjZjAwIHVybCgnLi4vaW1nL3BhbmVsLWN0YS1iZy5qcGcnKSBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnc20nKSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgICAgIG1hcmdpbjogc3BhY2VyKDEpIHNwYWNlcigtMSk7XG4gICAgICAgIHBhZGRpbmc6IDVweCBzcGFjZXIoMSk7XG4gICAgfVxuXG59XG5cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0lNQUdFIFVUSUxJVElFU1xuXFwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyoqXG4gKiBJbWFnZSdzIG1heCB3aWR0aCBjb25mb3JtcyB0byB0aGUgcGFyZW50J3Mgd2lkdGguXG4gKi9cbi51LWltZy1yZXNwb25kIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG5cblxuXG5cbi8qKlxuICogSW1hZ2UgbWF0Y2hlcyBpdCdzIGNvbnRhaW5lcnMgd2lkdGhcbiAqL1xuLnUtaW1nLWZ1bGwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI0NPTE9SIFVUSUxJVEVTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vLyBHZW5lcmF0ZSBjb2xvciBjbGFzc2VzIGZvciBlYWNoIGNvbG9yIGluICRjb2xvci11dGlsaXRlc1xuLy8gVGhpZCBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgdGhlIGNvbG9yIHZhcmlhdGlvbnMuXG4kY29sb3ItdXRpbGl0aWVzLWNvbmZpZzogKFxuICAgICdyZWQnXG4pO1xuXG5cbi8qKlxuICogQ29sb3IgdXRpbGl0aWVzIHRvIGZvcmNlIGEgc3BlY2lmaWMgY29sb3IuXG4gKi9cbkBlYWNoICRjb2xvciBpbiAkY29sb3ItdXRpbGl0aWVzLWNvbmZpZyB7XG5cbiAgICAudS1jb2xvci0jeyRjb2xvcn0ge1xuICAgICAgICBjb2xvcjogY29sb3IoJGNvbG9yKTtcbiAgICB9XG5cbn1cbiIsIi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG4gICAgI1ZJU0lCSUxJVFkgVVRJTElUSUVTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIFZpc2liaWxpdHkgY2xhc3NlcyBmb3IgYWxsIGJyZWFrcG9pbnRzXG4gKi9cbi51LWhpZGRlbiB7XG5cbiAgICBAaW5jbHVkZSBsb29wLWJyZWFrcG9pbnRzKHRydWUpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbn1cblxuXG5cblxuXG4vKipcbiAqIEhpZGUgdGhlIGVudGlyZSB0YWcgYW5kIGl0J3MgY29udGVudHMgZXhjZXB0IGZvciBzY3JlZW4gcmVhZGVyc1xuICovXG4udS1zci1vbmx5IHtcbiAgICBAaW5jbHVkZSBzci1vbmx5KCk7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNURVhUIFVUSUxJVEVTXG5cXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKipcbiAqIFRleHQgQWxpZ25tZW50XG4gKi9cbi51LXRleHQtY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi51LXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4udS10ZXh0LWNhcHMge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi51LXRleHQtc3BlY2lhbCB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LXNwZWNpYWwtZWxpdGU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xufVxuIiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXFxcbiAgICAjU1BBQ0lORyBVVElMSVRJRVNcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi51LWZsdXNoIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4udS1jbG9zZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogc3BhY2VyKDAuNSk7XG59XG5cbi51LXNwYWNlIHtcbiAgICBtYXJnaW4tYm90dG9tOiBzcGFjZXIoMSk7XG59XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcXFxuICAgICNDQVJCT05JVEVcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIGFsbFxuXG4vKmFib3ZlIHRoZSBkYXNoYm9hcmQqL1xuLmNhcmJvbmxpdGUtdG9waHRtbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8qYWJvdmUgdGhlIGRhc2hib2FyZCovXG4uY2FyYm9ubGl0ZS1kYXNoYm9hcmQge1xuICAgIGhlaWdodDogODNweDtcbiAgICB3aWR0aDogMjYwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMTBweCAwO1xuICAgIGJhY2tncm91bmQ6IGZhZGUtb3V0KCMwMDAsIDAuOCk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnc20nKSB7XG4gICAgICAgIHdpZHRoOiAzNTBweDtcbiAgICB9XG5cbn1cblxuLmNhcmJvbmxpdGUtZGFzaCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjAlO1xuICAgIGhlaWdodDogNjRweDtcbiAgICBtYXJnaW46IDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogI0ZGRjtcbn1cblxuLmNhcmJvbmxpdGUtdHJpcGRhc2gge1xuICAgIHdpZHRoOiA2MnB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDJweDtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6ICNGRkY7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY2FyYm9ubGl0ZS1ob3Vyc19kYXNoLCAuY2FyYm9ubGl0ZS1taW51dGVzX2Rhc2gsIC5jYXJib25saXRlLXNlY29uZHNfZGFzaCAge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnaW1hZ2VzL2JnX2Rhc2gucG5nJykgMCAwIG5vLXJlcGVhdDtcbn1cblxuLmNhcmJvbmxpdGUtZGF5c19kYXNoICB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdpbWFnZXMvYmdfZGFzaC5wbmcnKSAwIDAgbm8tcmVwZWF0O1xuXG59XG5cbi5jYXJib25saXRlLWRheXNfdHJpcF9kYXNoICB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCdpbWFnZXMvYmdfdHJpcF9kYXNoLnBuZycpIDAgMCBuby1yZXBlYXQ7XG59XG5cbi5jYXJib25saXRlLXdlZWtzX2Rhc2ggIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJ2ltYWdlcy9iZ19kYXNoLnBuZycpIDAgMCBuby1yZXBlYXQ7XG59XG5cbi5jYXJib25saXRlLXdlZWtzX3RyaXBfZGFzaCAge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnaW1hZ2VzL2JnX3RyaXBfZGFzaC5wbmcnKSAwIDAgbm8tcmVwZWF0O1xufVxuXG5cbi5jYXJib25saXRlLWRpZ2l0IHtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgZm9udC1mYW1pbHk6ICdTcGVjaWFsIEVsaXRlJywgY3Vyc2l2ZTtcbiAgICB3aWR0aDogMThweDtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbG9hdDogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCdzbScpIHtcbiAgICAgICAgaGVpZ2h0OiAzOHB4O1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgZmxleDogMCAwIDI0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQycHg7XG4gICAgfVxuXG59XG5cbi5jYXJib25saXRlLWRhc2ggLmNhcmJvbmxpdGUtZGFzaF90aXRsZSB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiA0MHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgY29sb3I6ICNjY2M7XG4gICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnc20nKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICB9XG5cbn1cblxuLmNhcmJvbmxpdGUtdHJpcGRhc2ggLmNhcmJvbmxpdGUtZGFzaF90aXRsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdG9wOiAzM3B4O1xuICAgIGxlZnQ6IDE3cHg7XG4gICAgY29sb3I6ICNBQUE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogOXB4O1xufVxuXG4vKmJlbG93IHRoZSBkYXNoYm9hcmQqL1xuLmNhcmJvbmxpdGUtYm90aHRtbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG4iXSwibWFwcGluZ3MiOiJBbUJBQTt3Q0FFd0M7QUFFeEM7O0dBRUc7QUFDSCxBQUFBLENBQUMsRUFBRSxBQUFDLENBQUEsQUFBQSxPQUFPLEVBQUUsQUFBQyxDQUFBLEFBQUEsTUFBTSxDQUFDO0VBQ2pCLFVBQVUsRUFBRSxPQUFRLEdBQ3ZCOztBQUdELEFBQUEsSUFBSSxDQUFDO0VBQ0QsVUFBVSxFQUFFLFVBQVcsR0FDMUI7O0FDZEQ7d0NBRXdDO0FBRXhDOztHQUVHO0FDTkg7d0NBRXdDO0FBRXhDOztHQUVHO0FB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RUFBRSxNQUFNO0VlZ0lkLEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLFFBQUksR0FDZjtFQUZELEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLFNBQUksR0FDZjtFQUZELEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLEdBQUksR0FDZjtFQUZELEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLFNBQUksR0FDZjtFQUZELEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLFNBQUksR0FDZjtFQUZELEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLEdBQUksR0FDZjtFQUZELEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLFNBQUksR0FDZjtFQUZELEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLFNBQUksR0FDZjtFQUZELEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLEdBQUksR0FDZjtFQUZELEFBQUEsdUJBQXVCLENBQXZCO0lBQ0ksS0FBSyxFQUFHLFNBQUksR0FDZjtFQUZELEFBQUEsdUJBQXVCLENBQXZCO0lBQ0ksS0FBSyxFQUFHLFNBQUksR0FDZjtFQUZELEFBQUEsdUJBQXVCLENBQXZCO0lBQ0ksS0FBSyxFQUFHLElBQUksR0FDZjs7QWZsSUwsTUFBTSxFQUFMLFNBQVMsRUFBRSxNQUFNO0VlZ0lkLEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLFFBQUksR0FDZjtFQUZELEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLFNBQUksR0FDZjtFQUZELEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLEdBQUksR0FDZjtFQUZELEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLFNBQUksR0FDZjtFQUZELEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLFNBQUksR0FDZjtFQUZELEFBQUEsc0JBQXNCLENBQXRCO0lBQ0ksS0FBSyxFQUFHLEdB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 */