/* Font & Heading Variables */

/* Misc. Variables that Bootstrap needs (but are NOT present???) */

/* Billboard with filters - main class landing page */
#billboard {
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

#billboard #billboard-overlay {
	background: rgba(0,0,0,.6) !important;
}

body.detail-page #billboard .page-title {
    display: none;
}

.classfinder1updated-wrap {
	background-color: #e2e2e2;
}

.classfinder1updated-wrap .container {
	position: relative;
}
.results-title-wrap {
	margin-bottom: 1.5rem;
}

.results-title {
	text-align: center;
	color: #3da5fe;
}

@media (min-width: 992px) {
	.results-title {
		text-align: left;
		padding-right: 4rem;
	}
}

.results-title a {
	display: inline-block;
	text-transform: none;
	color: #000000;
	font-size: .875rem;
	font-weight: normal;
	border-left: 1px solid #000000;
	padding-left: .5rem;
	margin-left: .5rem;
}

.results-title a i {
	margin-left: .25rem;
}

.results-title a:first-of-type {
	border-left: 0;
	padding-left: 0;
}

.classfinder1updated-toggle {
	text-align: center;
	margin-bottom: 1rem;
}

.classfinder1updated-toggle a {
	color: #434343 !important;
}

@media (min-width: 992px) {
	.classfinder1updated-toggle {
		position: absolute;
		right: 15px;
		z-index: 100;
		text-align: right;
		margin: 0;
	}
}

.classfinder1updated-results-list article {
	
}

.classfinder1updated-results-list article .categories {
	background-color: #111421;
	color: #ffffff;
}

.classfinder1updated-results-list article .categories p {
	line-height: 1.05;
}

.classfinder1updated-results-list article .categories p span {
	display: inline-block;
	font-weight: 700;
	padding-right: .5rem;
	margin-right: .5rem;
	border-right: 1px solid #ffffff;
}

.classfinder1updated-results-list article .categories p span:last-of-type {
	padding-right: 0;
	margin-right: 0;
	border-right: 0;
}

.classfinder1updated-results-list article .info {
	background-color: #ffffff;
	box-shadow: 0px 0px 2px rgba(0,0,0,.15);
}

.classfinder1updated-results-list article .info .event-sep {
	display: none;
}

.classfinder1updated-results-list article .info .eventTime {
	display: block;
}

#classfinder1updated-filter {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,.5);
	z-index: 2999;
}

#classfinder1updated-filter-form  {
	position: relative;
	top: 50%;
	transform: translateY(-50%);
	width: 100%;
	max-width: 770px;
	margin: 0 auto;
}

#classfinder1updated-filter-form .classfinder1updated-filter-inner {
	position: relative;
	max-height: 70vh;
	overflow-x: hidden;
	overflow-y: auto;
	background-color: #e2e2e2;
}

#classfinder1updated-filter-form .classfinder1updated-filter-toggle {
	position: absolute;
	right: 1rem;
	top: 0;
	transform: translateY(-30px);
	color: #ffffff;
}

@media (min-width: 992px) {
	#classfinder1updated-filter-form .classfinder1updated-filter-toggle {
		right: 0;
	}
}

#classfinder1updated-filter-form .filter-menu {
	background-color: #ffffff;
	padding: 1rem;
	margin: 30px;
}

.filter-select-heading {
	display: flex;
	justify-content: space-between;
	padding-bottom: 1rem;
	margin-bottom: 1rem;
	border-bottom: 1px solid #eaeaea;
}

.filter-select-heading h4 {
	margin: 0;
}

.filter-select-heading button {
	font-size: .75rem;
	background: none;
	border: 0;
	outline: none;
	color: #000000;
	
}

#classfinder1updated-filter-form .filter-menu ul {
	list-style: none !important;
	list-style-type: none !important;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
}

#classfinder1updated-filter-form .filter-menu ul li {
	list-style: none !important;
	list-style-type: none !important;
	margin: 0;
	padding: 0;
	width: 100%;
	flex: 0 0 50%; max-width: 50%;
}

@media (min-width: 992px) {
	#classfinder1updated-filter-form .filter-menu ul li {
		 flex: 0 0 33.33333%; max-width: 33.33333%;
	}
}

#classfinder1updated-filter-form .filter-menu ul li:before {
	display: none;
}

#classfinder1updated-filter-form .filter-menu ul li input {
	display: none;
}

#classfinder1updated-filter-form .filter-menu ul li label {
	position: relative;
	font-size: 14px;
	color: #000000;
	display: block;
    position: relative;
    padding: 0 0 0 20px;
    cursor: pointer;
    overflow: hidden;
    border: none;
}

#classfinder1updated-filter-form .filter-menu ul li label:before {
	content: "";
	display: block;
    position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 12px;
	height: 12px;
	background-color: #eaeaea;
}

#classfinder1updated-filter-form .filter-menu ul li input:checked+label:before {
    background-color: #18979f;
}

#classfinder1updated-filter-form .filter-menu ul li label:after {
    font-family: FontAwesome !important;
    content: "\f00c";
    speak: none;
    font-weight: normal !important;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-style: normal;
    font-variant: normal;
	font-size: 10px;
    text-rendering: auto;
    line-height: 1;
    position: absolute;
	left: 1px;
	top: 50%;
	transform: translateY(-50%);
	color: #ffffff;
}

#classfinder1updated-filter-form .input-buttons {
	text-align: center;
	padding: 0 1rem 1rem 1rem;
}

#classfinder1updated-filter-form .input-buttons button {
	display: inline-block;
	font-size: 1rem;
	margin: 0 .5rem;
	padding-top: .15rem;
	background: none;
	outline: 0;
	box-shadow: none;
	border: none;
	border-top: 1px solid #18979f;
	text-transform: uppercase;
	font-weight: 700;
	color: #18979f;
}

/* Content section, misc. */

.content-section .content-text>h2:first-child {
    margin-top: -.2em;
}

.content-main>*:last-child,
.content-section .content-text>*:last-child {
    margin-bottom: 0;
}

.content-section .content-section-inner.jarallax {
    z-index: 1;
}

/* This Week Monklet */

#cf1-this-week {
    padding-top: .75em;
}

#cf1-this-week .cf1-this-week {
    margin-bottom: -1rem;
}

#cf1-this-week .cf1-this-week article {
    margin-bottom: 1rem;
}

#cf1-this-week .cf1-this-week .article-row {
    position: relative;
    width: 100%;
    max-width: 100%;
    height: 100%;
    display: -webkit-box;
    display: flex;
}

#cf1-this-week .cf1-this-week .date {
    position: relative;
    width: 100%;
    -webkit-box-flex: 0;
    flex: 0 0 66px;
    max-width: 66px;
    min-height: 1px;
    text-align: center;
    font-weight: 700;
    text-transform: uppercase;
}

#cf1-this-week .cf1-this-week .date>div {
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}

#cf1-this-week .cf1-this-week .date .day {
    display: block;
    font-weight: 800;
    letter-spacing: .1em;
    margin-right: -.1em;
    font-size: 24px;
    line-height: 1.1;
    margin-top: .2rem;
}

#cf1-this-week .cf1-this-week .date .month {
    display: block;
    text-transform: uppercase;
    text-align: center;
    font-weight: 300;
}

#cf1-this-week .cf1-this-week .info {
    position: relative;
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
    min-height: 1px;
}

#cf1-this-week .cf1-this-week .info-inner {
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    padding: 1rem 1.75rem;
}

#cf1-this-week .cf1-this-week .info .title {
    margin-bottom: .125rem;
}

#cf1-this-week .cf1-this-week .info .time {
    margin: 0 0 -.25em !important;
}

.cf1-this-week-more {
    text-align: center;
    margin: 0;
}

.cf1-this-week-more a {
    display: inline-block;
    padding: .5rem 1rem;
    border-radius: .5rem;
}

/* Starting Soon Monklet*/

#cf1-starting-soon {
    margin-top: 2rem;
}

#cf1-starting-soon .cf1-starting-soon {
    margin-bottom: -2rem;
}

#cf1-starting-soon .cf1-starting-soon article {
    margin-bottom: 2rem;
}

#cf1-starting-soon .cf1-starting-soon a {
    display: block;
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 56.25%;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    overflow: hidden;
    transition: all .25s ease-in-out;
    -moz-transition: all .25s ease-in-out;
    -webkit-transition: all .25s ease-in-out;
}

@media (hover: hover) {
    #cf1-starting-soon .cf1-starting-soon a {
        filter: grayscale(0.9);
    }
    #cf1-starting-soon .cf1-starting-soon a:hover {
        filter: grayscale(0);
    }
    #cf1-starting-soon .cf1-starting-soon a:hover>.info {
        background-color: rgba(25, 155, 255, 0.85);
    }
    #cf1-starting-soon .cf1-starting-soon a:hover>.info .title {
        color: #ffffff;
    }
}

#cf1-starting-soon .cf1-starting-soon .info {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    padding: .5rem 0;
}

#cf1-starting-soon .cf1-starting-soon .title {
    margin: 0 !important;
    padding: 0 1rem;
    text-align: center;
    transition: .25s ease-in-out;
}

/* Classfinder Loading Styles */

#cf1-filter,
#cf1-layout {
    position: relative;
}

#cf1-filter.preloading,
#cf1-layout.preloading {
    min-height: 10rem;
}

#cf1-filter.preloading:after,
#cf1-layout.preloading:after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 64px 64px;
}

/* Classfinder Filters */


/* Detail - Left Side */

.upper-cf1-detail {
    background-color: #ffffff;
}

.cf1-detail-left>*:last-child {
    margin-bottom: 0;
}

.cf1-detail-left .cf1-detail-heading {
    text-align: left;
    margin-bottom: 1em;
}

.cf1-detail-left .article-row {
    position: relative;
    width: 100%;
    max-width: 100%;
    /* height: 100%; */
    display: -webkit-box;
    display: flex;
}

.cf1-detail-left .date {
    position: relative;
    width: 100%;
    -webkit-box-flex: 0;
    flex: 0 0 66px;
    max-width: 66px;
    min-height: 1px;
    text-align: center;
    font-weight: 700;
    text-transform: uppercase;
}

.cf1-detail-left .date>div {
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}

.cf1-detail-left .date .day {
    display: block;
    font-weight: 800;
    letter-spacing: .1em;
    margin-right: -.1em;
    font-size: 24px;
    line-height: 1.25;
}

.cf1-detail-left .date .month {
    display: block;
    font-size: 1rem;
    line-height: 1.5;
    font-weight: 300;
}

.cf1-detail-left .info {
    position: relative;
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
    min-height: 1px;
    background-color: #f1f1f1;
}

.cf1-detail-left .info-inner {
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    padding: 1rem 1.75rem .8rem;
}

.cf1-detail-left .info .time {
    margin: 0 !important;
}

.cf1-detail-left .info .add {
    margin: 0 !important;
}

.cf1-detail-left {
    width: 100%;
    margin: 0;
}

.cf1-detail-left .info>*:last-child {
    margin-bottom: 0;
}

/* Detail - Right Side */

#content .upper-cf1-detail .content-sidebar:before {
    position: absolute;
    top: 0;
    left: -2rem;
    right: -100%;
    bottom: 0;
    content: "";
    background-color: #e2e2e2;
    z-index: 0;
    opacity: 0.0;
}

@media (min-width: 992px) {
    #content .upper-cf1-detail .content-sidebar:before {
        opacity: 1.0;
    }
}

.cf1-detail-right.info,
.cf1-detail-right.more article {
    margin: 0 auto;
}

@media (min-width: 992px) {
    .cf1-detail-right.info,
    .cf1-detail-right.more article {
        margin: 0;
    }
}

.cf1-detail-right.info>*:last-child,
.cf1-detail-right.more article>*:last-child {
    margin-bottom: 0 !important;
}

.cf1-detail-right.info>.registration {
    transform: translate(0);
}

.cf1-detail-right.more {
    text-align: left;
}

.cf1-detail-right.more>div:last-child {
    margin-bottom: 0;
}

.cf1-detail-right.info .cf1-detail-meta {
    margin: 1rem 0 1rem 0;
    padding: 0;
}

.cf1-detail-right.info .cf1-detail-meta li {
    position: relative;
    margin: 0 0 .25rem;
    padding: 0;
    list-style: none !important;
}

.cf1-detail-right.info .cf1-detail-meta li.meta-heading {
    font-weight: 700;
    text-transform: uppercase;
}

.cf1-detail-right.info .cf1-detail-meta li.meta-heading h5 {
    position: unset;
}

.cf1-detail-right.info .cf1-detail-meta li.meta-heading .icon {
    position: absolute;
    left: 0;
    top: 1px;
}

.cf1-detail-right.info .cf1-detail-meta li.meta-heading .icon .icon-location {
    font-size: 23px;
}

.cf1-detail-right article .registration {
    margin: 0 !important;
}

.cf1-detail-right article .registration a {
    display: block;
    border-radius: 4px;
    padding: .7rem .75rem;
    text-align: center;
    font-size: 14px;
}

.cf1-detail-left.text .cf1-share-wrap {
    display: none;
    padding-top: 3rem;
    text-align: left;
}

@media (min-width: 992px) {
    .cf1-detail-left.text .cf1-share-wrap {
        display: block;
    }
}

.cf1-share {
    margin-bottom: 0;
}

.cf1-share h6 {
    text-transform: uppercase;
    margin-bottom: .5rem !important;
}

.cf1-share ul {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.cf1-share ul li {
    display: inline-block;
    margin: 0 1rem 0 0;
}

.cf1-share ul li a {
    font-size: 20px;
}

.cf1-detail-coord {
    text-align: left;
    margin-bottom: 2rem;
}

.cf1-detail-coord .title {
    margin-top: -.2em;
    margin-bottom: 0;
}

.cf1-detail-coord-image {
    text-align: left;
    max-width: 265px;
    width: 100%;
}

.cf1-detail-coord-image img {
    display: block;
    width: 100%;
    max-width: 160px;
    margin: 0 auto;
}

.cf1-detail-coord-info {
    margin-bottom: .25rem;
}

.cf1-detail-coord-info>*:last-child {
    margin-bottom: 0;
}

.cf1-detail-coord-info h3,
.cf1-detail-coord-info h4,
.cf1-detail-coord-info h5 {
    margin: 0 0 .25rem 0;
}

.cf1-detail-coord-info p {
    margin: 0;
    padding: 0;
    line-height: 1.3;
}

.cf1-detail-coord-social {
    list-style: none;
    margin: 0 !important;
    padding: 0 !important;
}

.cf1-detail-coord-social li {
    list-style: none;
    margin: 0 .25rem !important;
    padding: 0 !important;
    display: inline-block;
}

.cf1-detail-coord-social li a {
    display: block;
    font-size: 1rem;
}

.cf1-detail-filter-item {
    margin-bottom: 2rem;
}

.cf1-detail-filter-item h6 {
    text-transform: uppercase;
}

.cf1-detail-filter-item p {
    margin-bottom: .5rem !important;
}

.cf1-detail-filter-item p i {
    font-style: italic;
}

.cf1-detail-filter-item ul {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    text-align: left;
}

.cf1-detail-filter-item ul li {
    display: inline-block;
    margin: 0 .25rem .5rem 0;
    padding: 0;
}

.cf1-detail-filter-item ul li a {
    display: block;
}

.cf1-detail-prev-pg {
    width: 100%;
    margin: 0;
    padding: 0;
}

/* Misc. Extra Styles */

#cf1-filter.preloading:after,
#cf1-layout.preloading:after {
    background-color: rgba(255, 255, 255, 0.94);
    background-image: url("/_assets/img/loaders/preloader.svg");
}

#cf1-layout .more-classes a {
    box-shadow: 0 0 1px rgba(255, 255, 255, 0.25);
}

#cf1-starting-soon .cf1-starting-soon .info {
    background-color: rgba(0, 0, 0, 0.4);
}

.cf1-this-week-more a {
    box-shadow: 0 0 1px rgba(0, 0, 0, 0.4);
}

#cf1-layout .more-classes a {
    border-width: 1px;
    border-style: solid;
}

#cf1-layout .cf1-layout article .info .registration a:hover,
.cf1-detail-right article .registration a:hover,
.cf1-this-week-more a:hover,
#cf1-layout .more-classes a:hover {
    opacity: .91;
}

#cf1-search-term::-webkit-input-placeholder {
    opacity: 1 !important;
}

#cf1-search-term::-moz-placeholder {
    opacity: 1 !important;
}

#cf1-search-term:-ms-input-placeholder {
    opacity: 1 !important;
}

#cf1-search-term:focus::-webkit-input-placeholder {
    color: transparent;
}

#cf1-search-term:focus::-moz-placeholder {
    color: transparent;
}

#cf1-search-term:focus:-ms-input-placeholder {
    color: transparent;
}

.text-wrap .cf1-detail-left {
    position: relative;
    width: 100%;
    min-height: 1px;
    -webkit-box-flex: 0;
    flex: 0 0 100%;
    max-width: 100%;
    padding: 0 30px;
    box-sizing: border-box;
}

@media (min-width: 576px) {
    .text-wrap .cf1-detail-left {
        padding: 0 calc(50vw - 255px + 15px);
    }
}

@media (min-width: 768px) {
    .text-wrap .cf1-detail-left {
        padding: 0 calc(50vw - 345px + 15px);
    }
}

@media (min-width: 992px) {
    .text-wrap .cf1-detail-left {
        padding-left: calc(50vw - 465px + 15px);
        flex: 0 0 67%;
        max-width: 67%;
        padding-right: 4rem;
        padding-top: 0;
        padding-bottom: 0;
    }
}

@media (min-width: 1200px) {
    .text-wrap .cf1-detail-left {
        padding-left: calc(50vw - 555px + 15px);
    }
}

.text-wrap .cf1-detail-left article {
    max-width: none;
}

.text-wrap .cf1-detail-right {
    position: relative;
    width: 100%;
    min-height: 1px;
    -webkit-box-flex: 0;
    flex: 0 0 100%;
    max-width: 100%;
    padding: 0 30px;
    box-sizing: border-box;
}

@media (min-width: 576px) {
    .text-wrap .cf1-detail-right {
        padding: 0 calc(50vw - 255px + 15px);
    }
}

@media (min-width: 768px) {
    .text-wrap .cf1-detail-right {
        padding: 0 calc(50vw - 345px + 15px);
    }
}

@media (min-width: 992px) {
    .text-wrap .cf1-detail-right {
        flex: 0 0 33%;
        max-width: 33%;
        padding: 0 4rem 0 0;
        text-align: left;
    }
}

/* Classfinder 1 Layout */

.dark #cf1-search-term,
#cf1-search-term {
    color: #434343;
}

#cf1-filters-main.is-sticky:before,
#cf1-filters-main.is-sticky #cf1-filters-form:before,
#cf1-filters-main.on:before,
#cf1-filters-main.on #cf1-filters-form:before {
    /* $headeralt */
    background-color: rgba(16, 20, 33, 0.82);
}

#cf1-search-term::-webkit-input-placeholder,
#cf1-search-term::-moz-placeholder,
#cf1-search-term:-ms-input-placeholder,
#cf1-search-submit {
    color: #434343;
}

#cf1-filters-form .cf1-filter-item-heading,
#cf1-filters-form .cf1-filter-item.childcare {
    background-color: #18979f;
}

#cf1-filters-form .cf1-filter-item-heading,
#cf1-filters-form .cf1-filter-item.childcare ul,
#cf1-filters-form .cf1-filter-item-heading:hover,
#cf1-filters-form .cf1-filter-item.childcare:hover {
    color: #ffffff;
}

#cf1-filters-form .cf1-filter-item-heading:hover {
    background-color: #017fe0;
}

#cf1-filters-submit {
    color: #18979f;
    border-color: #18979f;
}

#cf1-filters-submit:hover {
    color: #017fe0;
}

#cf1-filters-submit:hover {
    border-color: #017fe0;
}

.cf1-section .cf1-section-inner {
    background-color: #e2e2e2;
}

.cf1-this-week-more a,
#cf1-layout .more-classes a {
    color: #18979f;
}

.lower-cf1-detail {
    background-color: #f1f1f1;
}

#cf1-this-week .cf1-this-week .info,
#cf1-this-week .cf1-this-week .info-inner,
#cf1-layout .cf1-layout article .article-row,
.cf1-detail-left article .info {
    background-color: #ffffff;
}

#cf1-filters-toggle,
.cf1-section .cf1-section-inner.dark,
#cf1-starting-soon .cf1-starting-soon a,
#cf1-this-week .cf1-this-week .date,
.cf1-detail-left .date {
    background-color: #101421;
}

#cf1-filters-toggle:hover,
.dark #cf1-filters-toggle:hover {
    background-color: #017fe0;
}

#cf1-filters-toggle:hover,
.dark #cf1-filters-toggle:hover {
    color: #ffffff;
}

#cf1-search fieldset,
#cf1-filters-form .cf1-filter-item ul,
.cf1-detail-prev-pg {
    background-color: #ffffff;
}

.dark #cf1-filters-toggle,
#cf1-filters-toggle {
    background-color: #18979f;
}

#cf1-this-week .cf1-this-week .date,
#cf1-starting-soon .cf1-starting-soon .title,
.dark #cf1-layout .more-classes a,
.cf1-detail-left .date,
.cf1-detail-right.dark article .registration a {
    color: #ffffff;
}

#cf1-filters-reset,
.dark #cf1-filters-toggle,
#cf1-filters-toggle {
    color: #ffffff;
}

#cf1-filters-form .cf1-filter-item:not(.childcare) ul,
.dark #cf1-filters-form .cf1-filter-item:not(.childcare) ul li label,
#cf1-filters-form .cf1-filter-item:not(.childcare) ul li label,
#cf1-filters-form .cf1-filter-item:not(.childcare) ul li input:checked+label:before {
    /* $text1 */
    color: #434343;
}

#cf1-filters-form .cf1-filter-item:not(.childcare) ul li input+label:before,
#cf1-filters-form .cf1-filter-item ul.filter-childcare li input+label:before {
    color: #e2e2e2;
}

#cf1-filters-form .cf1-filter-item:not(.childcare) ul li input:checked+label:before {
    color: #18979f;
}

#cf1-filters-form .cf1-filter-item ul.filter-childcare li input:checked+label:before {
    color: #434343;
}

/* End Classfinder 1 */

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0cy9tY21zX2NsYXNzZmluZGVyXzEuY3NzIiwic291cmNlcyI6WyJsYXlvdXRzL21jbXNfY2xhc3NmaW5kZXJfMS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19mdW5jdGlvbnMuc2NzcyIsIl92YXJpYWJsZXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fbWl4aW5zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvdmVuZG9yL19yZnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2RlcHJlY2F0ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2hvdmVyLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19pbWFnZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYmFkZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3Jlc2l6ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fc2NyZWVuLXJlYWRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fc2l6ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fcmVzZXQtdGV4dC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fdGV4dC1lbXBoYXNpcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fdGV4dC1oaWRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL190ZXh0LXRydW5jYXRlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL192aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19hbGVydC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fY2FyZXQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3BhZ2luYXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2xpc3RzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19saXN0LWdyb3VwLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19uYXYtZGl2aWRlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fZm9ybXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3RhYmxlLXJvdy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYmFja2dyb3VuZC12YXJpYW50LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19ib3JkZXItcmFkaXVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19ib3gtc2hhZG93LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19ncmFkaWVudHMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3RyYW5zaXRpb24uc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19ncmlkLWZyYW1ld29yay5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fZ3JpZC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fZmxvYXQuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvL0NvcmUgdmFyaWFibGVzIGFuZCBtaXhpbnNcbkBpbXBvcnQgXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGluc1wiO1xuXG4vKiBCaWxsYm9hcmQgd2l0aCBmaWx0ZXJzIC0gbWFpbiBjbGFzcyBsYW5kaW5nIHBhZ2UgKi9cblxuYm9keTpub3QoLmRldGFpbC1wYWdlKSAjYmlsbGJvYXJkIHsgZGlzcGxheTogYmxvY2s7IGFsaWduLWl0ZW1zOiBpbml0aWFsOyAtd2Via2l0LXBlcnNwZWN0aXZlOiBpbml0aWFsOyAtd2Via2l0LXRyYW5zZm9ybTogaW5pdGlhbDsgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuYm9keTpub3QoLmRldGFpbC1wYWdlKSAjYmlsbGJvYXJkIC50ZXh0IC5pbm5lciB7IHdpZHRoOiA4MCU7IG1heC13aWR0aDogODAlOyBtYXJnaW46IGF1dG87IHBhZGRpbmctdG9wOiA3cmVtOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOjc2OHB4KSB7XG5cdGJvZHk6bm90KC5kZXRhaWwtcGFnZSkgI2JpbGxib2FyZCAudGV4dCAuaW5uZXIgeyBwYWRkaW5nLXRvcDogOXJlbTsgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDo5OTJweCkge1xuXHRib2R5Om5vdCguZGV0YWlsLXBhZ2UpICNiaWxsYm9hcmQgLnRleHQgLmlubmVyIHsgcGFkZGluZy10b3A6IGNhbGMoMjIuNXZ3IC0gNHJlbSk7IH1cbn1cblxuLyogRG9uJ3Qgc2hvdyB0aGUgcGFnZSB0aXRsZSBpbiBiaWxsYm9hcmQsIGlmIHRoaXMgaXMgYSBkZXRhaWwgcGFnZSAqL1xuYm9keS5kZXRhaWwtcGFnZSAjYmlsbGJvYXJkIC5wYWdlLXRpdGxlIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBDb250ZW50IHNlY3Rpb24sIG1pc2MuICovXG4uY29udGVudC1zZWN0aW9uIC5jb250ZW50LXRleHQgPiBoMjpmaXJzdC1jaGlsZCB7IG1hcmdpbi10b3A6IC0uMmVtOyB9XG5cbiNjbGFzc2ZpbmRlcjEgLmNvbnRlbnQtbWFpbiA+ICo6bGFzdC1jaGlsZCxcbiNjbGFzc2ZpbmRlcjEgLmNvbnRlbnQtc2VjdGlvbiAuY29udGVudC10ZXh0ID4gKjpsYXN0LWNoaWxkIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cblxuI2NsYXNzZmluZGVyMSAuY29udGVudC1zZWN0aW9uIC5jb250ZW50LXNlY3Rpb24taW5uZXIuamFyYWxsYXgge1xuXHR6LWluZGV4OiAxO1xufVxuXG4vKiBUaGlzIFdlZWsgTW9ua2xldCAqL1xuI2NmMS10aGlzLXdlZWsge1xuXHRwYWRkaW5nLXRvcDogLjc1ZW07XG59XG5cbiNjZjEtdGhpcy13ZWVrIC5jZjEtdGhpcy13ZWVrIHtcblx0bWFyZ2luLWJvdHRvbTogLTFyZW07XG59XG5cbiNjZjEtdGhpcy13ZWVrIC5jZjEtdGhpcy13ZWVrIGFydGljbGUge1xuXHRtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4jY2YxLXRoaXMtd2VlayAuY2YxLXRoaXMtd2VlayAuYXJ0aWNsZS1yb3cge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdGRpc3BsYXk6IGZsZXg7XG59XG5cbiNjZjEtdGhpcy13ZWVrIC5jZjEtdGhpcy13ZWVrIC5kYXRlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0LXdlYmtpdC1ib3gtZmxleDogMDtcblx0ZmxleDogMCAwIDY2cHg7XG5cdG1heC13aWR0aDogNjZweDtcblx0bWluLWhlaWdodDogMXB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbiNjZjEtdGhpcy13ZWVrIC5jZjEtdGhpcy13ZWVrIC5kYXRlID4gZGl2IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDUwJTtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4jY2YxLXRoaXMtd2VlayAuY2YxLXRoaXMtd2VlayAuZGF0ZSAuZGF5IHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtd2VpZ2h0OiA4MDA7XG5cdGxldHRlci1zcGFjaW5nOiAuMWVtO1xuXHRtYXJnaW4tcmlnaHQ6IC0uMWVtO1xuXHRmb250LXNpemU6IDI0cHg7XG5cdGxpbmUtaGVpZ2h0OiAxLjE7XG5cdG1hcmdpbi10b3A6IC4ycmVtO1xufVxuXG4jY2YxLXRoaXMtd2VlayAuY2YxLXRoaXMtd2VlayAuZGF0ZSAubW9udGgge1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRmb250LXdlaWdodDogMzAwO1xufVxuXG4jY2YxLXRoaXMtd2VlayAuY2YxLXRoaXMtd2VlayAuaW5mbyB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZmxleC1iYXNpczogMDtcblx0ZmxleC1ncm93OiAxO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdG1pbi1oZWlnaHQ6IDFweDtcbn1cblxuI2NmMS10aGlzLXdlZWsgLmNmMS10aGlzLXdlZWsgLmluZm8taW5uZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRvcDogNTAlO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdHBhZGRpbmc6IDFyZW0gMS43NXJlbTtcbn1cblxuI2NmMS10aGlzLXdlZWsgLmNmMS10aGlzLXdlZWsgLmluZm8gLnRpdGxlIHtcblx0bWFyZ2luLWJvdHRvbTogLjEyNXJlbTtcbn1cblxuI2NmMS10aGlzLXdlZWsgLmNmMS10aGlzLXdlZWsgLmluZm8gLnRpbWUge1xuXHRtYXJnaW46IDAgMCAtLjI1ZW0gIWltcG9ydGFudDtcbn1cblxuLmNmMS10aGlzLXdlZWstbW9yZSB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0bWFyZ2luOiAwO1xufVxuXG4uY2YxLXRoaXMtd2Vlay1tb3JlIGEge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHBhZGRpbmc6IC41cmVtIDFyZW07XG5cdGJvcmRlci1yYWRpdXM6IC41cmVtO1xufVxuXG4uY2YxLXRoaXMtd2Vlay1tb3JlIGE6aG92ZXIge1xufVxuXG4vKiBTdGFydGluZyBTb29uIE1vbmtsZXQqL1xuI2NmMS1zdGFydGluZy1zb29uIHtcblx0bWFyZ2luLXRvcDogMnJlbTtcbn1cblxuI2NmMS1zdGFydGluZy1zb29uIC5jZjEtc3RhcnRpbmctc29vbiB7XG5cdG1hcmdpbi1ib3R0b206IC0ycmVtO1xufVxuXG4jY2YxLXN0YXJ0aW5nLXNvb24gLmNmMS1zdGFydGluZy1zb29uIGFydGljbGUge1xuXHRtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4jY2YxLXN0YXJ0aW5nLXNvb24gLmNmMS1zdGFydGluZy1zb29uIGEge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAwO1xuXHRwYWRkaW5nLWJvdHRvbTogNTYuMjUlO1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0cmFuc2l0aW9uOiBhbGwgLjI1cyBlYXNlLWluLW91dDtcblx0LW1vei10cmFuc2l0aW9uOiBhbGwgLjI1cyBlYXNlLWluLW91dDtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgLjI1cyBlYXNlLWluLW91dDtcblxuXG5cdEBtZWRpYSAoaG92ZXIgOiBob3ZlciApIHtcblx0XHRmaWx0ZXI6IGdyYXlzY2FsZSgwLjkpO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRmaWx0ZXI6IGdyYXlzY2FsZSgwLjApO1xuXG5cdFx0XHQ+IC5pbmZvIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSggJGxpbmstY29sb3IsIDAuODUpO1xuXHRcdFx0XHQudGl0bGUgeyBjb2xvcjogJHdoaXRlOyB9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbiNjZjEtc3RhcnRpbmctc29vbiAuY2YxLXN0YXJ0aW5nLXNvb24gLmluZm8ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDA7XG5cdGJvdHRvbTogMDtcblx0d2lkdGg6IDEwMCU7XG5cdHBhZGRpbmc6IC41cmVtIDA7XG59XG5cbiNjZjEtc3RhcnRpbmctc29vbiAuY2YxLXN0YXJ0aW5nLXNvb24gLnRpdGxlIHtcblx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDAgMXJlbTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0cmFuc2l0aW9uOiAuMjVzIGVhc2UtaW4tb3V0O1xufVxuXG4vKiBDbGFzc2ZpbmRlciBMb2FkaW5nIFN0eWxlcyAqL1xuI2NmMS1maWx0ZXIsXG4jY2YxLWxheW91dCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuI2NmMS1maWx0ZXIucHJlbG9hZGluZyxcbiNjZjEtbGF5b3V0LnByZWxvYWRpbmcge1xuXHRtaW4taGVpZ2h0OiAxMHJlbTtcbn1cblxuI2NmMS1maWx0ZXIucHJlbG9hZGluZzphZnRlcixcbiNjZjEtbGF5b3V0LnByZWxvYWRpbmc6YWZ0ZXIge1xuXHRjb250ZW50OlwiXCI7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdGJhY2tncm91bmQtc2l6ZTogNjRweCA2NHB4O1xufVxuXG4vKiBDbGFzc2ZpbmRlciBGaWx0ZXJzICovXG5cbkBtZWRpYSAobWF4LXdpZHRoOjk5MXB4KSB7XG5cdC5jZjEtc3RpY2t5LXdyYXBwZXIge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxuXG5cdC8qIE5vdGU6ICdvbicgY2xhc3Mgc2lnbmlmaWVzIHRoYXQgZmlsdGVycyBoYXZlIGJlZW4gb3BlbmVkIGFuZCBhcmUgZGlzcGxheWluZyAqL1xuXHQjY2YxLWZpbHRlcnMtbWFpbi5zdGlja3k6bm90KC5vbik6YmVmb3JlIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxufVxuXG4jY2YxLWZpbHRlcnMtbWFpbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGxlZnQ6IDA7XG5cdHotaW5kZXg6IDg5OTtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdHRyYW5zaXRpb246IHRvcCAuMTVzIGVhc2UtaW4tb3V0O1xuXHQtbW96LXRyYW5zaXRpb246IHRvcCAuMTVzIGVhc2UtaW4tb3V0O1xuXHQtd2Via2l0LXRyYW5zaXRpb246IHRvcCAuMTVzIGVhc2UtaW4tb3V0O1xufVxuXG4jY2YxLWZpbHRlcnMtbWFpbjpiZWZvcmUge1xuXHRjb250ZW50OlwiXCI7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHR3aWR0aDogMTUwdnc7XG5cdGhlaWdodDogMTAwJTtcblx0bGVmdDogLTI1dnc7XG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjFzIGVhc2UtaW4tb3V0O1xuXHQtbW96LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjFzIGVhc2UtaW4tb3V0O1xuXHQtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjFzIGVhc2UtaW4tb3V0O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6OTkycHgpIHtcblx0I2NmMS1maWx0ZXJzLW1haW4uaXMtc3RpY2t5IHtcblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0dG9wOiA4MnB4O1xuXHR9XG59XG5cbiNjZjEtZmlsdGVycy1tYWluIC5jZjEtZmlsdGVycy1jb250YWluZXIge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiNjZjEtZmlsdGVycy1tYWluLmlzLXN0aWNreSAuY2YxLWZpbHRlcnMtY29udGFpbmVyIHtcblx0bWF4LXdpZHRoOiA5NjBweDtcblx0bWFyZ2luOiAwIGF1dG87XG5cdC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbiNjZjEtZmlsdGVycy1tYWluIC5jZjEtZmlsdGVycy11cHBlciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRkaXNwbGF5OiAtd2Via2l0LWJveDtcblx0ZGlzcGxheTogZmxleDtcblx0LXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0LXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0cGFkZGluZzogMnJlbSAwIDA7XG59XG5cbiNjZjEtZmlsdGVycy1tYWluLmlzLXN0aWNreTpub3QoLm9uKSAuY2YxLWZpbHRlcnMtdXBwZXIge1xuXHQvKiBwYWRkaW5nLWJvdHRvbTogMnJlbTsgKi9cbn1cblxuI2NmMS1maWx0ZXJzLW1haW4gLmNmMS1zZWFyY2gtY29udGFpbmVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTgwcHg7XG5cdG1pbi13aWR0aDogMTgwcHg7XG5cdG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG5cdCNjZjEtZmlsdGVycy1tYWluIC5jZjEtc2VhcmNoLWNvbnRhaW5lciB7XG5cdFx0d2lkdGg6IDI2MHB4O1xuXHRcdG1pbi13aWR0aDogMjYwcHg7XG5cdH1cbn1cblxuI2NmMS1zZWFyY2gge1xuXHRib3JkZXI6IDA7XG5cdG91dGxpbmU6IG5vbmU7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRib3gtc2hhZG93OiAwIDAgMjBweCA4cHggcmdiYSgzMCwzMCwzMCwwLjI5KTtcblx0YmFja2dyb3VuZC1jb2xvcjogIHRyYW5zcGFyZW50O1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5kYXJrICNjZjEtc2VhcmNoIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbiNjZjEtc2VhcmNoIGZpZWxkc2V0IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAwO1xuXHRsaW5lLWhlaWdodDogMTtcblx0Ym9yZGVyOiAwO1xuXHRib3JkZXItcmFkaXVzOiAwO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4jY2YxLXNlYXJjaC10ZXJtIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogOTUlO1xuXHRwYWRkaW5nOiAwIDUlO1xuXHRib3JkZXI6IDA7XG5cdGxpbmUtaGVpZ2h0OiA0OHB4O1xuXHRoZWlnaHQ6IDQ2cHg7XG5cdG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOjEwMjRweCkge1xuXHQjY2YxLXNlYXJjaC10ZXJtIHtcblx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHRoZWlnaHQ6IDQ0cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDQ0cHg7XG5cdH1cbn1cblxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbS1oZWFkaW5nIHtcblx0dHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1pbi1vdXQ7XG5cdC1tb3otdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1pbi1vdXQ7XG5cdC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1pbi1vdXQ7XG59XG5cbiNjZjEtc2VhcmNoLXRlcm06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgeyBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7fVxuXG4jY2YxLXNlYXJjaC10ZXJtOi1tb3otcGxhY2Vob2xkZXIgeyBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7IH1cblxuI2NmMS1zZWFyY2gtdGVybTo6LW1vei1wbGFjZWhvbGRlciB7IG9wYWNpdHk6IDEgIWltcG9ydGFudDsgfVxuXG4jY2YxLXNlYXJjaC10ZXJtOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IG9wYWNpdHk6IDEgIWltcG9ydGFudDsgfVxuXG4jY2YxLXNlYXJjaC1zdWJtaXQge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAwO1xuXHRib3R0b206IDA7XG5cdHdpZHRoOiAxNSU7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiBub25lO1xuXHRvdXRsaW5lOiBub25lO1xuXHRib3JkZXI6IDA7XG5cdHBhZGRpbmc6IDJweCAwO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHRyYW5zaXRpb246IC4zcztcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbiNjZjEtZmlsdGVycy1tYWluIC5jZjEtdG9nZ2xlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRtaW4td2lkdGg6IDgwcHg7XG59XG5cbiNjZjEtZmlsdGVycy10b2dnbGUge1xuXHRkaXNwbGF5OiBibG9jaztcblx0bGluZS1oZWlnaHQ6IDQ0cHg7XG5cdGhlaWdodDogNDZweDtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBhZGRpbmctdG9wOiAxcHg7XG5cdHRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2UtaW4tb3V0O1xuXHQtbW96LXRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2UtaW4tb3V0O1xuXHQtd2Via2l0LXRyYW5zaXRpb246IGFsbCAuMjVzIGVhc2UtaW4tb3V0O1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOjEwMjRweCkge1xuXHQjY2YxLWZpbHRlcnMtdG9nZ2xlIHtcblx0XHRoZWlnaHQ6IDQ0cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDQycHg7XG5cdFx0cGFkZGluZy10b3A6IDJweDtcblx0fVxufVxuXG4jY2YxLWZpbHRlcnMtdG9nZ2xlOmhvdmVyIHtcblx0b3BhY2l0eTogMC45NTtcbn1cblxuLmRhcmsgI2NmMS1maWx0ZXJzLXRvZ2dsZSB7XG59XG5cbiNjZjEtZmlsdGVycy10b2dnbGUgLmljb24ge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiAtMXB4O1xuXHRtYXJnaW4tbGVmdDogLjI1cmVtO1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcblx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xNXMgZWFzZS1pbi1vdXQ7XG5cdC1tb3otdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xNXMgZWFzZS1pbi1vdXQ7XG5cdC13ZWJraXQtdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xNXMgZWFzZS1pbi1vdXQ7XG59XG5cbiNjZjEtZmlsdGVycy10b2dnbGUgLmljb246YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGVkZTBcIjtcbn1cblxuI2NmMS1maWx0ZXJzLW1haW4ub24gI2NmMS1maWx0ZXJzLXRvZ2dsZSAuZmEge1xuXHQvKiBjb250ZW50OiBcIlxcZWRkY1wiOyAqL1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4jY2YxLWZpbHRlcnMtZm9ybSB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0d2lkdGg6IDEwMCU7XG5cdGxlZnQ6IDA7XG5cdHBhZGRpbmc6IDAgMCAycmVtO1xuXHR6LWluZGV4OiA4OTk7XG59XG5cbiNjZjEtZmlsdGVycy1tYWluLm9uICNjZjEtZmlsdGVycy1mb3JtIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbiNjZjEtZmlsdGVycy1mb3JtOmJlZm9yZSB7XG5cdGNvbnRlbnQ6XCJcIjtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogMTUwdnc7XG5cdGhlaWdodDogMTAwJTtcblx0bGVmdDogLTI1dnc7XG5cdHRvcDogMDtcblx0dHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMXMgZWFzZS1pbi1vdXQ7XG5cdC1tb3otdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMXMgZWFzZS1pbi1vdXQ7XG5cdC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMXMgZWFzZS1pbi1vdXQ7XG59XG5cbiNjZjEtZmlsdGVycy1tYWluLmlzLXN0aWNreSAjY2YxLWZpbHRlcnMtZm9ybTpiZWZvcmUge1xuXHR3aWR0aDogMTUwdnc7XG5cdGxlZnQ6IC0yNXZ3O1xufVxuXG4jY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlcnMtZm9ybS1pbm5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAyNzBweDtcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAwIGF1dG87XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuXHQjY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlcnMtZm9ybS1pbm5lciB7XG5cdFx0d2lkdGg6IDM0OHB4O1xuXHR9XG59XG5cbiNjZjEtZmlsdGVycy1mb3JtIC5jZjEtZmlsdGVyLWl0ZW0ge1xuXHRtYXJnaW4tYm90dG9tOiAuNXJlbTtcbn1cblxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbS5jaGlsZGNhcmUge1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbiNjZjEtZmlsdGVycy1mb3JtIC5jZjEtZmlsdGVyLWl0ZW0uY2hpbGRjYXJlIHVsIHtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOjk5MnB4KSBhbmQgKG1pbi1oZWlnaHQ6IDQ1MHB4KSAge1xuXHQjY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtIC5maWx0ZXItY2F0ZWdvcnksXG5cdCNjZjEtZmlsdGVycy1mb3JtIC5jZjEtZmlsdGVyLWl0ZW0gLmZpbHRlci1kYXkge1xuXHRcdG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzNjBweCk7XG5cdFx0b3ZlcmZsb3c6IGF1dG87XG5cdH1cbn1cblxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbS1oZWFkaW5nIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGZvbnQtc2l6ZTogMTZweDtcblx0cGFkZGluZzogLjc1cmVtIC43NXJlbSAuN3JlbTtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRmb250LXdlaWdodDogNzAwO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDoxMDI0cHgpIHtcblx0I2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbS1oZWFkaW5nIHtcblx0XHRwYWRkaW5nOiAuNjVyZW0gLjc1cmVtIC41cmVtO1xuXHR9XG5cdCNjZjEtZmlsdGVycy1mb3JtIC5jZjEtZmlsdGVyLWl0ZW0ge1xuXHRcdG1hcmdpbi1ib3R0b206IC4zNzVyZW07XG5cdH1cbn1cblxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbS5vbiAuY2YxLWZpbHRlci1pdGVtLWhlYWRpbmcge1xuXHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbSB1bCB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRwYWRkaW5nOiAuNXJlbSAxcmVtIC41cmVtIDEuNXJlbSAhaW1wb3J0YW50O1xuXHRsaXN0LXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDRweDtcblx0dHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDoxMDI0cHgpIHtcblx0I2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbSB1bCB7XG5cdFx0cGFkZGluZzogLjM3NXJlbSAxcmVtIC4zNzVyZW0gMS41cmVtICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbSB1bC5maWx0ZXItY2hpbGRjYXJlIHtcblx0cGFkZGluZzogLjY1cmVtIDFyZW0gLjVyZW0gLjc1cmVtICFpbXBvcnRhbnQ7XG5cdGhlaWdodDogNTBweDtcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xuXHRkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDo5OTJweCkge1xuXHQjY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtIHVsLmZpbHRlci1jaGlsZGNhcmUge1xuXHRcdHBhZGRpbmc6IC40NXJlbSAxcmVtIC41cmVtIC43NXJlbSAhaW1wb3J0YW50O1xuXHRcdGhlaWdodDogNDNweDtcblx0fVxufVxuXG4jY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtLmNoaWxkY2FyZTpob3ZlciB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbSB1bC5maWx0ZXItY2hpbGRjYXJlIGxpIGxhYmVsIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcblx0Zm9udC1zaXplOiAxNnB4O1xuXHRjb2xvcjogJHdoaXRlO1xufVxuXG4jY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtLm9uIHVsIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbiNjZjEtZmlsdGVycy1mb3JtIC5jZjEtZmlsdGVyLWl0ZW0gdWwgbGkge1xuXHRtYXJnaW46IDAgIWltcG9ydGFudDtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRsaXN0LXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XG5cdGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbiNjZjEtZmlsdGVycy1mb3JtIC5jZjEtZmlsdGVyLWl0ZW0gdWwgbGkgaW5wdXQge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4jY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtIHVsIGxpIGxhYmVsIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogOHB4IDQycHggOHB4IDA7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0Zm9udC1zaXplOiAxNnB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDo5OTJweCkge1xuXHQjY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtIHVsIGxpIGxhYmVsIHtcblx0XHRwYWRkaW5nOiA2cHggNDJweCA2cHggMDtcblx0fVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDo5OTJweCkge1xuXHQjY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtIHVsIGxpIGxhYmVsIHtcblx0XHRwYWRkaW5nOiA1cHggNDJweCA1cHggMDtcblx0XHRtYXJnaW4tYm90dG9tOiAuMzc1cmVtO1xuXHRcdGZvbnQtc2l6ZTogMTVweDtcblx0fVxufVxuXG4jY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtIHVsLmZpbHRlci1jaGlsZGNhcmUgbGkgbGFiZWwge1xuXHRmb250LXdlaWdodDogNzAwO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDo5OTJweCkge1xuXHQjY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtIHVsLmZpbHRlci1jaGlsZGNhcmUgbGkgbGFiZWwge1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjM1O1xuXHR9XG59XG5cbiNjZjEtZmlsdGVycy1mb3JtIC5jZjEtZmlsdGVyLWl0ZW0gdWwgbGkgbGFiZWw6YmVmb3JlIHtcblx0QGluY2x1ZGUgZmEtaWNvbihmMGM4KVxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGZvbnQtc2l6ZTogMjBweDtcblx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdHdpZHRoOiA0MnB4O1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0cmlnaHQ6IDA7XG5cdHRvcDogNHB4O1xufVxuXG4jY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtIHVsLmZpbHRlci1jaGlsZGNhcmUgbGkgaW5wdXQgKyBsYWJlbDpiZWZvcmUge1xuXHRmb250LXNpemU6IDIwcHg7XG5cdGNvbnRlbnQ6XCJcXGYwYzhcIjtcblx0dG9wOiA0cHg7XG59XG5cbiNjZjEtZmlsdGVycy1mb3JtIC5jZjEtZmlsdGVyLWl0ZW0gdWwuZmlsdGVyLWNoaWxkY2FyZSBsaSBpbnB1dDpjaGVja2VkICsgbGFiZWw6YmVmb3JlLFxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbSAuZmlsdGVyLWNhdGVnb3J5IGxpIGlucHV0OmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUsXG4jY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtIC5maWx0ZXItZGF5IGxpIGlucHV0OmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuXHQvKiBDaGVja21hcmsgaWNvbiAqL1xuXHRjb250ZW50OiBcIlxcZjE0YVwiO1xuXHRyaWdodDogMDtcblx0dG9wOiA0cHg7XG59XG5cbiNjZjEtZmlsdGVycy1mb3JtIC5zdWJtaXQtYnRuLWNvbnRhaW5lciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuI2NmMS1maWx0ZXJzLXN1Ym1pdCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR3aWR0aDogMTAwJTtcblx0bWFyZ2luOiAxcmVtIDAgMDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHBhZGRpbmc6IC44NzVyZW0gMXJlbSAuNzVyZW07XG5cdGJvcmRlcjogMXB4IHNvbGlkO1xufVxuXG4ucmVzZXQtYnRuLWNvbnRhaW5lciB7XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbjogNXB4IDAgNXB4O1xuXHR0ZXh0LWFsaWduOiByaWdodDtcblx0aGVpZ2h0OiAyNXB4O1xufVxuXG4jY2YxLWZpbHRlcnMtcmVzZXQge1xuXHRkaXNwbGF5OiBub25lO1xuXHRmb250LXNpemU6IDEycHg7XG5cdGhlaWdodDogMjVweDtcblx0b3V0bGluZTogbm9uZTtcblx0Ym9yZGVyOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHRyYW5zaXRpb246IG9wYWNpdHkgLjE1cyBlYXNlLWluLW91dDtcblx0LW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IC4xNXMgZWFzZS1pbi1vdXQ7XG5cdC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAuMTVzIGVhc2UtaW4tb3V0O1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0d2lkdGg6IDgycHg7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4jY2YxLWZpbHRlcnMtcmVzZXQ6aG92ZXIge1xuXHRvcGFjaXR5OiAwLjg1O1xufVxuXG4jY2YxLWZpbHRlcnMtcmVzZXQgc3Bhbi5pY29uIHtcblx0dmVydGljYWwtYWxpZ246IC0xcHg7XG5cdHBhZGRpbmctbGVmdDogLjI1ZW07XG5cdGZvbnQtc2l6ZTogLjc1cmVtO1xufVxuXG4jY2YxLWZpbHRlcnMtbWFpbiAuY2YxLXZpZXctYWxsLWNvbnRhaW5lciB7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZzogMXJlbSAwOyBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7IH1cblxuI2NmMS1maWx0ZXJzLW1haW4ub24gLmNmMS12aWV3LWFsbC1jb250YWluZXIgeyBkaXNwbGF5OiBub25lOyB9XG5cbi8qIE1haW4gQ2xhc3NmaW5kZXIgTGF5b3V0ICovXG5cbiNjZjEtbGF5b3V0IC5jZjEtZmlsdGVyLXRpdGxlIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4jY2YxLWxheW91dCAuY2YxLWxheW91dCB7XG5cdG1hcmdpbi1ib3R0b206IC0xLjVyZW07XG59XG5cbiNjZjEtbGF5b3V0IC5jZjEtbGF5b3V0OmZpcnN0LW9mLXR5cGUgeyBtYXJnaW4tdG9wOiAycmVtOyB9XG5cbiNjZjEtbGF5b3V0IC5jZjEtbGF5b3V0ICsgLmNmMS1sYXlvdXQge1xuXHRtYXJnaW4tdG9wOiAxLjVyZW07XG59XG5cbiNjZjEtbGF5b3V0IC5jZjEtbGF5b3V0IGFydGljbGUge1xuXHRtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbiNjZjEtbGF5b3V0IC5jZjEtbGF5b3V0IGFydGljbGUgLmFydGljbGUtcm93IHtcblx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdHBhZGRpbmc6IDFyZW07XG5cdGhlaWdodDogMTAwJTtcbn1cblxuI2NmMS1sYXlvdXQgLmNmMS1sYXlvdXQgYXJ0aWNsZSAuaW1hZ2Uge1xuXHQtd2Via2l0LWJveC1mbGV4OiAwO1xuXHRmbGV4OiAwIDAgNDAlO1xuXHRtYXgtd2lkdGg6IDQwJTtcblx0bWFyZ2luLXJpZ2h0OiA1JTtcbn1cblxuI2NmMS1sYXlvdXQgLmNmMS1sYXlvdXQgYXJ0aWNsZSAuaW1hZ2UgaW1nIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IGF1dG87XG59XG5cbiNjZjEtbGF5b3V0IC5jZjEtbGF5b3V0IGFydGljbGUgLmluZm8ge1xuXHQtd2Via2l0LWJveC1mbGV4OiAwO1xuXHRmbGV4OiAxIDAgNTUlO1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG5cbiNjZjEtbGF5b3V0IC5jZjEtbGF5b3V0IGFydGljbGUgLmluZm8gLnRpdGxlIHtcblx0bWFyZ2luLWJvdHRvbTogLjI1cmVtO1xufVxuXG4jY2YxLWxheW91dCAuY2YxLWxheW91dCBhcnRpY2xlIC5pbmZvIC50aW1lcyB7XG5cdG1hcmdpbjogMCAhaW1wb3J0YW50O1xufVxuXG4jY2YxLWxheW91dCAuY2YxLWxheW91dCBhcnRpY2xlIC5pbmZvIC5yZWdpc3RyYXRpb24ge1xuXHRtYXJnaW46IC43NXJlbSAwIDAgMCAhaW1wb3J0YW50O1xufVxuXG4vKiAjY2YxLWxheW91dCAuY2YxLWxheW91dCBhcnRpY2xlIC5pbmZvIC5yZWdpc3RyYXRpb24gYSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRmb250LXNpemU6IDE0cHg7XG5cdHBhZGRpbmc6IC4xMjVyZW0gLjg1cmVtO1xuXHRib3JkZXItd2lkdGg6IDFweDtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcbn0gKi9cblxuI2NmMS1sYXlvdXQgLm1vcmUtY2xhc3NlcyB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cGFkZGluZzogMnJlbSAwIDA7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdG1hcmdpbi10b3A6IDA7XG59XG5cbiNjZjEtbGF5b3V0IC5tb3JlLWNsYXNzZXMgYSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cGFkZGluZzogLjc1cmVtIDFyZW07XG5cdGJvcmRlci1yYWRpdXM6IC41cmVtO1xufVxuXG4jY2YxLWxheW91dCAubW9yZS1jbGFzc2VzIGE6aG92ZXIge1xufVxuXG4uZGFyayAjY2YxLWxheW91dCAubW9yZS1jbGFzc2VzIGEge1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcblx0I2NmMS1sYXlvdXQgLm1vcmUtY2xhc3NlcyBhIHtcblx0XHRmb250LXNpemU6IDMycHg7XG5cdFx0cGFkZGluZzogLjVyZW0gMS4yNXJlbTtcblx0fVxufVxuXG4vKiBEZXRhaWwgLSBMZWZ0IFNpZGUgKi9cblxuI2NsYXNzZmluZGVyMSAudXBwZXItY2YxLWRldGFpbCB7IGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTsgfVxuXG4jY2xhc3NmaW5kZXIxIC5jZjEtZGV0YWlsLWxlZnQgPiAqOmxhc3QtY2hpbGQge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uY2YxLWRldGFpbC1sZWZ0IC5jZjEtZGV0YWlsLWhlYWRpbmcge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRtYXJnaW4tYm90dG9tOiAxZW07XG59XG5cbi5jZjEtZGV0YWlsLWxlZnQgLmFydGljbGUtcm93IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHQvKiBoZWlnaHQ6IDEwMCU7ICovXG5cdGRpc3BsYXk6IC13ZWJraXQtYm94O1xuXHRkaXNwbGF5OiBmbGV4O1xufVxuXG4uY2YxLWRldGFpbC1sZWZ0IC5kYXRlIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0LXdlYmtpdC1ib3gtZmxleDogMDtcblx0ZmxleDogMCAwIDY2cHg7XG5cdG1heC13aWR0aDogNjZweDtcblx0bWluLWhlaWdodDogMXB4O1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5jZjEtZGV0YWlsLWxlZnQgLmRhdGUgPiBkaXYge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHRvcDogNTAlO1xuXHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi5jZjEtZGV0YWlsLWxlZnQgLmRhdGUgLmRheSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRmb250LXdlaWdodDogODAwO1xuXHRsZXR0ZXItc3BhY2luZzogLjFlbTtcblx0bWFyZ2luLXJpZ2h0OiAtLjFlbTtcblx0Zm9udC1zaXplOiAyNHB4O1xuXHRsaW5lLWhlaWdodDogMS4yNTtcbn1cblxuLmNmMS1kZXRhaWwtbGVmdCAuZGF0ZSAubW9udGgge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiAxcmVtO1xuXHRsaW5lLWhlaWdodDogMS41O1xuXHRmb250LXdlaWdodDogMzAwO1xufVxuXG4uY2YxLWRldGFpbC1sZWZ0IC5pbmZvIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRmbGV4LWJhc2lzOiAwO1xuXHRmbGV4LWdyb3c6IDE7XG5cdG1heC13aWR0aDogMTAwJTtcblx0bWluLWhlaWdodDogMXB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkb2ZmLXdoaXRlO1xufVxuXG4uY2YxLWRldGFpbC1sZWZ0IC5pbmZvLWlubmVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDUwJTtcblx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuXHRwYWRkaW5nOiAxcmVtIDEuNzVyZW0gLjhyZW07XG59XG5cbi5jZjEtZGV0YWlsLWxlZnQgLmluZm8gLnRpbWUge1xuXHRtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLmNmMS1kZXRhaWwtbGVmdCAuaW5mbyAuYWRkIHtcblx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5jZjEtZGV0YWlsLWxlZnQge1xuXHR3aWR0aDogMTAwJTtcblx0bWFyZ2luOiAwO1xufVxuXG4uY2YxLWRldGFpbC1sZWZ0IC5pbmZvICA+ICo6bGFzdC1jaGlsZCB7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi8qIERldGFpbCAtIFJpZ2h0IFNpZGUgKi9cblxuI2NvbnRlbnQgLnVwcGVyLWNmMS1kZXRhaWwgLmNvbnRlbnQtc2lkZWJhcjpiZWZvcmUge1xuXHRwb3NpdGlvbjphYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAtMnJlbTtcblx0cmlnaHQ6IC0xMDAlO1xuXHRib3R0b206IDA7XG5cdGNvbnRlbnQ6IFwiXCI7XG5cdGJhY2tncm91bmQtY29sb3I6ICRncmF5LWxpZ2h0O1xuXHR6LWluZGV4OiAwO1xuXHRvcGFjaXR5OiAwLjA7XG5cblx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykgeyBvcGFjaXR5OiAxLjA7ICB9XG59XG5cbi5jZjEtZGV0YWlsLXJpZ2h0LmluZm8sXG4uY2YxLWRldGFpbC1yaWdodC5tb3JlIGFydGljbGUge1xuXHRtYXJnaW46IDAgYXV0b1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcblx0LmNmMS1kZXRhaWwtcmlnaHQuaW5mbyxcblx0LmNmMS1kZXRhaWwtcmlnaHQubW9yZSBhcnRpY2xlIHtcblx0XHRtYXJnaW46IDA7XG5cdH1cbn1cblxuLmNmMS1kZXRhaWwtcmlnaHQuaW5mbyA+ICo6bGFzdC1jaGlsZCxcbi5jZjEtZGV0YWlsLXJpZ2h0Lm1vcmUgYXJ0aWNsZSA+ICo6bGFzdC1jaGlsZCB7XG5cdG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLmNmMS1kZXRhaWwtcmlnaHQuaW5mbyA+ICAucmVnaXN0cmF0aW9uIHtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7XG59XG5cbi5jZjEtZGV0YWlsLXJpZ2h0Lm1vcmUge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uY2YxLWRldGFpbC1yaWdodC5tb3JlID4gZGl2Omxhc3QtY2hpbGQge1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uY2YxLWRldGFpbC1yaWdodC5pbmZvIC5jZjEtZGV0YWlsLW1ldGEge1xuXHRtYXJnaW46IDFyZW0gMCAxcmVtIDA7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi5jZjEtZGV0YWlsLXJpZ2h0LmluZm8gLmNmMS1kZXRhaWwtbWV0YSBsaSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0bWFyZ2luOiAwIDAgLjI1cmVtO1xuXHRwYWRkaW5nOiAwO1xuXHRsaXN0LXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5jZjEtZGV0YWlsLXJpZ2h0LmluZm8gLmNmMS1kZXRhaWwtbWV0YSBsaS5tZXRhLWhlYWRpbmcge1xuXHRmb250LXdlaWdodDogNzAwO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uY2YxLWRldGFpbC1yaWdodC5pbmZvIC5jZjEtZGV0YWlsLW1ldGEgbGkubWV0YS1oZWFkaW5nIGg1IHtcblx0cG9zaXRpb246IHVuc2V0O1xufVxuXG4uY2YxLWRldGFpbC1yaWdodC5pbmZvIC5jZjEtZGV0YWlsLW1ldGEgbGkubWV0YS1oZWFkaW5nIC5pY29uIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDFweDtcbn1cblxuLmNmMS1kZXRhaWwtcmlnaHQuaW5mbyAuY2YxLWRldGFpbC1tZXRhIGxpLm1ldGEtaGVhZGluZyAuaWNvbiAuaWNvbi1sb2NhdGlvbiB7XG5cdGZvbnQtc2l6ZTogMjNweDtcbn1cblxuLmNmMS1kZXRhaWwtcmlnaHQgYXJ0aWNsZSAucmVnaXN0cmF0aW9uIHtcblx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5jZjEtZGV0YWlsLXJpZ2h0IGFydGljbGUgLnJlZ2lzdHJhdGlvbiBhIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcblx0cGFkZGluZzogLjdyZW0gLjc1cmVtO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmNmMS1kZXRhaWwtbGVmdC50ZXh0IC5jZjEtc2hhcmUtd3JhcCB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBhZGRpbmctdG9wOiAzcmVtO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcblx0LmNmMS1kZXRhaWwtbGVmdC50ZXh0IC5jZjEtc2hhcmUtd3JhcCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLy8gQG1lZGlhIChtaW4td2lkdGg6OTkycHgpIHtcbi8vIFx0I2NsYXNzZmluZGVyMSAubG93ZXItY2YxLWRldGFpbCAuY29udGVudC1zaWRlYmFyIHtcbi8vIFx0XHRtYXJnaW4tbGVmdDogMnJlbTtcbi8vIFx0fVxuLy8gfVxuXG4vLyBAbWVkaWEgKG1pbi13aWR0aDoxMzgwcHgpIHtcbi8vIFx0I2NsYXNzZmluZGVyMSAubG93ZXItY2YxLWRldGFpbCAuY29udGVudC1zaWRlYmFyIHtcbi8vIFx0XHRtYXJnaW4tbGVmdDogNHJlbTtcbi8vIFx0fVxuLy8gfVxuXG4uY2YxLXNoYXJlIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmNmMS1zaGFyZSBoNiB7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdG1hcmdpbi1ib3R0b206IC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5jZjEtc2hhcmUgdWwge1xuXHRtYXJnaW46IDAgIWltcG9ydGFudDtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRsaXN0LXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5jZjEtc2hhcmUgdWwgbGkge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdG1hcmdpbjogMCAxcmVtIDAgMDtcbn1cblxuLmNmMS1zaGFyZSB1bCBsaSBhIHtcblx0Zm9udC1zaXplOiAyMHB4O1xufVxuXG4uY2YxLWRldGFpbC1jb29yZCB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi5jZjEtZGV0YWlsLWNvb3JkIC50aXRsZSB7XG5cdG1hcmdpbi10b3A6IC0uMmVtO1xuXHRtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uY2YxLWRldGFpbC1jb29yZC1pbWFnZSB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdG1heC13aWR0aDogMjY1cHg7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4uY2YxLWRldGFpbC1jb29yZC1pbWFnZSBpbWcge1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEwMCU7XG5cdG1heC13aWR0aDogMTYwcHg7XG5cdG1hcmdpbjogMCBhdXRvO1xufVxuXG4uY2YxLWRldGFpbC1jb29yZC1pbmZvIHtcblx0bWFyZ2luLWJvdHRvbTogLjI1cmVtO1xufVxuXG4uY2YxLWRldGFpbC1jb29yZC1pbmZvID4gKjpsYXN0LWNoaWxkIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmNmMS1kZXRhaWwtY29vcmQtaW5mbyBoMyxcbi5jZjEtZGV0YWlsLWNvb3JkLWluZm8gaDQsXG4uY2YxLWRldGFpbC1jb29yZC1pbmZvIGg1IHtcblx0bWFyZ2luOiAwIDAgLjI1cmVtIDA7XG59XG5cbi5jZjEtZGV0YWlsLWNvb3JkLWluZm8gcCB7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcblx0bGluZS1oZWlnaHQ6IDEuMztcbn1cblxuLmNmMS1kZXRhaWwtY29vcmQtc29jaWFsIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuLmNmMS1kZXRhaWwtY29vcmQtc29jaWFsIGxpIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwIC4yNXJlbSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmNmMS1kZXRhaWwtY29vcmQtc29jaWFsIGxpIGEge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiAxcmVtO1xufVxuXG4uY2YxLWRldGFpbC1maWx0ZXItaXRlbSB7XG5cdG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi5jZjEtZGV0YWlsLWZpbHRlci1pdGVtIGg2IHtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmNmMS1kZXRhaWwtZmlsdGVyLWl0ZW0gcCB7XG5cdG1hcmdpbi1ib3R0b206IC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5jZjEtZGV0YWlsLWZpbHRlci1pdGVtIHAgaSB7XG5cdGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLmNmMS1kZXRhaWwtZmlsdGVyLWl0ZW0gdWwge1xuXHRtYXJnaW46IDAgIWltcG9ydGFudDtcblx0cGFkZGluZzogMCAhaW1wb3J0YW50O1xuXHRsaXN0LXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jZjEtZGV0YWlsLWZpbHRlci1pdGVtIHVsIGxpIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW46IDAgLjI1cmVtIC41cmVtIDA7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi5jZjEtZGV0YWlsLWZpbHRlci1pdGVtIHVsIGxpIGEge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuI2NsYXNzZmluZGVyMSAuY2YxLWRldGFpbC1wcmV2LXBnIHsgd2lkdGg6IDEwMCU7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfVxuXG4vKiBNaXNjLiBFeHRyYSBTdHlsZXMgKi9cblxuI2NmMS1maWx0ZXIucHJlbG9hZGluZzphZnRlcixcbiNjZjEtbGF5b3V0LnByZWxvYWRpbmc6YWZ0ZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LC45NCk7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL19hc3NldHMvaW1nL2xvYWRlcnMvcHJlbG9hZGVyLnN2ZycpO1xufVxuXG4jY2YxLWxheW91dCAubW9yZS1jbGFzc2VzIGEge1xuXHRib3gtc2hhZG93OiAwIDAgMXB4IHJnYmEoMjU1LDI1NSwyNTUsLjI1KTtcbn1cblxuI2NmMS1zdGFydGluZy1zb29uIC5jZjEtc3RhcnRpbmctc29vbiAuaW5mbyB7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC40KTtcbn1cblxuLmNmMS10aGlzLXdlZWstbW9yZSBhIHtcblx0Ym94LXNoYWRvdzogMCAwIDFweCByZ2JhKDAsMCwwLC40KTtcbn1cblxuI2NmMS1sYXlvdXQgLm1vcmUtY2xhc3NlcyBhIHtcblx0Ym9yZGVyLXdpZHRoOiAxcHg7XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG59XG5cbiNjZjEtbGF5b3V0IC5jZjEtbGF5b3V0IGFydGljbGUgLmluZm8gLnJlZ2lzdHJhdGlvbiBhOmhvdmVyLFxuLmNmMS1kZXRhaWwtcmlnaHQgYXJ0aWNsZSAucmVnaXN0cmF0aW9uIGE6aG92ZXIsXG4uY2YxLXRoaXMtd2Vlay1tb3JlIGE6aG92ZXIsXG4jY2YxLWxheW91dCAubW9yZS1jbGFzc2VzIGE6aG92ZXIge1xuXHRvcGFjaXR5OiAuOTE7XG59XG5cbiNjZjEtc2VhcmNoLXRlcm06Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIgeyBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7IH1cblxuI2NmMS1zZWFyY2gtdGVybTo6LW1vei1wbGFjZWhvbGRlciB7IG9wYWNpdHk6IDEgIWltcG9ydGFudDsgfVxuXG4jY2YxLXNlYXJjaC10ZXJtOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IG9wYWNpdHk6IDEgIWltcG9ydGFudDsgfVxuXG4jY2YxLXNlYXJjaC10ZXJtOmZvY3VzOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbiNjZjEtc2VhcmNoLXRlcm06Zm9jdXM6Oi1tb3otcGxhY2Vob2xkZXIgeyBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuI2NmMS1zZWFyY2gtdGVybTpmb2N1czotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cblxuLnRleHQtd3JhcCAuY2YxLWRldGFpbC1sZWZ0IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0bWluLWhlaWdodDogMXB4O1xuXHQtd2Via2l0LWJveC1mbGV4OiAwO1xuXHRmbGV4OiAwIDAgMTAwJTtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRwYWRkaW5nOiAwIDMwcHg7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOjU3NnB4KSB7XG5cdC50ZXh0LXdyYXAgLmNmMS1kZXRhaWwtbGVmdCB7XG5cdFx0cGFkZGluZzogMCBjYWxjKDUwdncgLSAyNTVweCArIDE1cHgpO1xuXHR9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOjc2OHB4KSB7XG5cdC50ZXh0LXdyYXAgLmNmMS1kZXRhaWwtbGVmdCB7XG5cdFx0cGFkZGluZzogMCBjYWxjKDUwdncgLSAzNDVweCArIDE1cHgpO1xuXHR9XG59XG5cblxuQG1lZGlhIChtaW4td2lkdGg6OTkycHgpIHtcblx0LnRleHQtd3JhcCAuY2YxLWRldGFpbC1sZWZ0IHtcblx0XHRwYWRkaW5nLWxlZnQ6IGNhbGMoNTB2dyAtIDQ2NXB4ICsgMTVweCk7XG5cdFx0ZmxleDogMCAwIDY3JTtcblx0XHRtYXgtd2lkdGg6IDY3JTtcblx0XHRwYWRkaW5nLXJpZ2h0OiA0cmVtO1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHRcdHBhZGRpbmctYm90dG9tOiAwO1xuXHR9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOjEyMDBweCkge1xuXHQudGV4dC13cmFwIC5jZjEtZGV0YWlsLWxlZnQge1xuXHRcdHBhZGRpbmctbGVmdDogY2FsYyg1MHZ3IC0gNTU1cHggKyAxNXB4KTtcblx0fVxufVxuXG5cbi50ZXh0LXdyYXAgLmNmMS1kZXRhaWwtbGVmdCBhcnRpY2xlIHtcblx0bWF4LXdpZHRoOiBub25lO1xufVxuXG4udGV4dC13cmFwIC5jZjEtZGV0YWlsLXJpZ2h0IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR3aWR0aDogMTAwJTtcblx0bWluLWhlaWdodDogMXB4O1xuXHQtd2Via2l0LWJveC1mbGV4OiAwO1xuXHRmbGV4OiAwIDAgMTAwJTtcblx0bWF4LXdpZHRoOiAxMDAlO1xuXHRwYWRkaW5nOiAwIDMwcHg7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOjU3NnB4KSB7XG5cdC50ZXh0LXdyYXAgLmNmMS1kZXRhaWwtcmlnaHQge1xuXHRcdHBhZGRpbmc6IDAgY2FsYyg1MHZ3IC0gMjU1cHggKyAxNXB4KTtcblx0fVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDo3NjhweCkge1xuXHQudGV4dC13cmFwIC5jZjEtZGV0YWlsLXJpZ2h0IHtcblx0XHRwYWRkaW5nOiAwIGNhbGMoNTB2dyAtIDM0NXB4ICsgMTVweCk7XG5cdH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6OTkycHgpIHtcblx0LnRleHQtd3JhcCAuY2YxLWRldGFpbC1yaWdodCB7XG5cdFx0ZmxleDogIDAgMCAzMyU7XG5cdFx0bWF4LXdpZHRoOiAzMyU7XG5cdFx0cGFkZGluZzogMCA0cmVtIDAgMDtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG59XG5cbi8qIENsYXNzZmluZGVyIDEgTGF5b3V0ICovXG5cbi5kYXJrICNjZjEtc2VhcmNoLXRlcm0sICNjZjEtc2VhcmNoLXRlcm0geyAgY29sb3I6ICRib2R5LWNvbG9yOyB9XG5cbiNjZjEtZmlsdGVycy1tYWluLmlzLXN0aWNreTpiZWZvcmUsICNjZjEtZmlsdGVycy1tYWluLmlzLXN0aWNreSAjY2YxLWZpbHRlcnMtZm9ybTpiZWZvcmUsICNjZjEtZmlsdGVycy1tYWluLm9uOmJlZm9yZSwgI2NmMS1maWx0ZXJzLW1haW4ub24gI2NmMS1maWx0ZXJzLWZvcm06YmVmb3JlIHsgLyogJGhlYWRlcmFsdCAqLyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRibHVlLWRhcmssMC44Mik7IH1cblxuI2NmMS1zZWFyY2gtdGVybTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcixcbiNjZjEtc2VhcmNoLXRlcm06Oi1tb3otcGxhY2Vob2xkZXIsXG4jY2YxLXNlYXJjaC10ZXJtOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcbiNjZjEtc2VhcmNoLXN1Ym1pdCB7XG5cdGNvbG9yOiAkYm9keS1jb2xvcjtcbn1cblxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbS1oZWFkaW5nLFxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbS5jaGlsZGNhcmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluay1jb2xvcjsgfVxuXG4jY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtLWhlYWRpbmcsXG4jY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtLmNoaWxkY2FyZSB1bCxcbiNjZjEtZmlsdGVycy1mb3JtIC5jZjEtZmlsdGVyLWl0ZW0taGVhZGluZzpob3ZlcixcbiNjZjEtZmlsdGVycy1mb3JtIC5jZjEtZmlsdGVyLWl0ZW0uY2hpbGRjYXJlOmhvdmVyIHsgY29sb3I6ICR3aGl0ZTsgfVxuXG4jY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtLWhlYWRpbmc6aG92ZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGluay1ob3Zlci1jb2xvcjtcbn1cblxuI2NmMS1maWx0ZXJzLXN1Ym1pdCB7IGNvbG9yOiAkbGluay1jb2xvcjsgYm9yZGVyLWNvbG9yOiAkbGluay1jb2xvcjsgfVxuXG4jY2YxLWZpbHRlcnMtc3VibWl0OmhvdmVyIHsgY29sb3I6ICRsaW5rLWhvdmVyLWNvbG9yOyB9XG5cbiNjZjEtZmlsdGVycy1zdWJtaXQ6aG92ZXIgeyBib3JkZXItY29sb3I6ICRsaW5rLWhvdmVyLWNvbG9yOyB9XG5cbi5jZjEtc2VjdGlvbiAuY2YxLXNlY3Rpb24taW5uZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS1saWdodDtcbn1cblxuLmNmMS10aGlzLXdlZWstbW9yZSBhLFxuI2NmMS1sYXlvdXQgLm1vcmUtY2xhc3NlcyBhIHtcblx0Y29sb3I6ICRsaW5rLWNvbG9yO1xufVxuXG4jY2xhc3NmaW5kZXIxIC5sb3dlci1jZjEtZGV0YWlsIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJG9mZi13aGl0ZTtcbn1cblxuI2NmMS10aGlzLXdlZWsgLmNmMS10aGlzLXdlZWsgLmluZm8sXG4jY2YxLXRoaXMtd2VlayAuY2YxLXRoaXMtd2VlayAuaW5mby1pbm5lcixcbiNjZjEtbGF5b3V0IC5jZjEtbGF5b3V0IGFydGljbGUgLmFydGljbGUtcm93LFxuI2NsYXNzZmluZGVyMSAuY2YxLWRldGFpbC1sZWZ0IGFydGljbGUgLmluZm8ge1xuXHQgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xufVxuXG4jY2YxLWZpbHRlcnMtdG9nZ2xlLFxuLmNmMS1zZWN0aW9uIC5jZjEtc2VjdGlvbi1pbm5lci5kYXJrLFxuI2NmMS1zdGFydGluZy1zb29uIC5jZjEtc3RhcnRpbmctc29vbiBhLFxuI2NmMS10aGlzLXdlZWsgLmNmMS10aGlzLXdlZWsgLmRhdGUsXG4uY2YxLWRldGFpbC1sZWZ0IC5kYXRlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJGJsdWUtZGFyaztcbn1cblxuI2NmMS1maWx0ZXJzLXRvZ2dsZTpob3ZlciwgLmRhcmsgI2NmMS1maWx0ZXJzLXRvZ2dsZTpob3ZlciB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRsaW5rLWhvdmVyLWNvbG9yO1xufVxuXG4jY2YxLWZpbHRlcnMtdG9nZ2xlOmhvdmVyLCAuZGFyayAjY2YxLWZpbHRlcnMtdG9nZ2xlOmhvdmVyIHtcblx0IGNvbG9yOiAkd2hpdGU7XG59XG5cbiNjZjEtc2VhcmNoIGZpZWxkc2V0LFxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbSB1bCxcbiNjbGFzc2ZpbmRlcjEgLmNmMS1kZXRhaWwtcHJldi1wZyB7XG5cdCBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG59XG5cbi5kYXJrICNjZjEtZmlsdGVycy10b2dnbGUsXG4jY2YxLWZpbHRlcnMtdG9nZ2xlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJGxpbmstY29sb3I7XG59XG5cbiNjZjEtdGhpcy13ZWVrIC5jZjEtdGhpcy13ZWVrIC5kYXRlLFxuI2NmMS1zdGFydGluZy1zb29uIC5jZjEtc3RhcnRpbmctc29vbiAudGl0bGUsXG4uZGFyayAjY2YxLWxheW91dCAubW9yZS1jbGFzc2VzIGEsXG4uY2YxLWRldGFpbC1sZWZ0IC5kYXRlLFxuLmNmMS1kZXRhaWwtcmlnaHQuZGFyayBhcnRpY2xlIC5yZWdpc3RyYXRpb24gYSB7XG5cbiAgY29sb3I6ICR3aGl0ZTtcbn1cblxuI2NmMS1maWx0ZXJzLXJlc2V0LFxuLmRhcmsgI2NmMS1maWx0ZXJzLXRvZ2dsZSxcbiNjZjEtZmlsdGVycy10b2dnbGUge1xuXHQgY29sb3I6ICR3aGl0ZTtcbn1cblxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbTpub3QoLmNoaWxkY2FyZSkgdWwsXG4uZGFyayAjY2YxLWZpbHRlcnMtZm9ybSAuY2YxLWZpbHRlci1pdGVtOm5vdCguY2hpbGRjYXJlKSB1bCBsaSBsYWJlbCxcbiNjZjEtZmlsdGVycy1mb3JtIC5jZjEtZmlsdGVyLWl0ZW06bm90KC5jaGlsZGNhcmUpIHVsIGxpIGxhYmVsLFxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbTpub3QoLmNoaWxkY2FyZSkgdWwgbGkgaW5wdXQ6Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XG5cdC8qICR0ZXh0MSAqLyBjb2xvcjogJGJvZHktY29sb3I7XG59XG5cbiNjZjEtZmlsdGVycy1mb3JtIC5jZjEtZmlsdGVyLWl0ZW06bm90KC5jaGlsZGNhcmUpIHVsIGxpIGlucHV0ICsgbGFiZWw6YmVmb3JlLFxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbSB1bC5maWx0ZXItY2hpbGRjYXJlIGxpIGlucHV0ICsgbGFiZWw6YmVmb3JlIHsgY29sb3I6ICRncmF5LWxpZ2h0OyB9XG5cbiNjZjEtZmlsdGVycy1mb3JtIC5jZjEtZmlsdGVyLWl0ZW06bm90KC5jaGlsZGNhcmUpIHVsIGxpIGlucHV0OmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUgeyBjb2xvcjogJGxpbmstY29sb3I7IH1cblxuI2NmMS1maWx0ZXJzLWZvcm0gLmNmMS1maWx0ZXItaXRlbSB1bC5maWx0ZXItY2hpbGRjYXJlIGxpIGlucHV0OmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUgeyBjb2xvcjogJGJvZHktY29sb3I7IH1cblxuXG4vKiBFbmQgQ2xhc3NmaW5kZXIgMSAqLyIsIi8vIEJvb3RzdHJhcCBmdW5jdGlvbnNcbi8vXG4vLyBVdGlsaXR5IG1peGlucyBhbmQgZnVuY3Rpb25zIGZvciBldmFsdWF0aW5nIHNvdXJjZSBjb2RlIGFjcm9zcyBvdXIgdmFyaWFibGVzLCBtYXBzLCBhbmQgbWl4aW5zLlxuXG4vLyBBc2NlbmRpbmdcbi8vIFVzZWQgdG8gZXZhbHVhdGUgU2FzcyBtYXBzIGxpa2Ugb3VyIGdyaWQgYnJlYWtwb2ludHMuXG5AbWl4aW4gX2Fzc2VydC1hc2NlbmRpbmcoJG1hcCwgJG1hcC1uYW1lKSB7XG4gICRwcmV2LWtleTogbnVsbDtcbiAgJHByZXYtbnVtOiBudWxsO1xuICBAZWFjaCAka2V5LCAkbnVtIGluICRtYXAge1xuICAgIEBpZiAkcHJldi1udW0gPT0gbnVsbCBvciB1bml0KCRudW0pID09IFwiJVwiIHtcbiAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9IEBlbHNlIGlmIG5vdCBjb21wYXJhYmxlKCRwcmV2LW51bSwgJG51bSkge1xuICAgICAgQHdhcm4gXCJQb3RlbnRpYWxseSBpbnZhbGlkIHZhbHVlIGZvciAjeyRtYXAtbmFtZX06IFRoaXMgbWFwIG11c3QgYmUgaW4gYXNjZW5kaW5nIG9yZGVyLCBidXQga2V5ICcjeyRrZXl9JyBoYXMgdmFsdWUgI3skbnVtfSB3aG9zZSB1bml0IG1ha2VzIGl0IGluY29tcGFyYWJsZSB0byAjeyRwcmV2LW51bX0sIHRoZSB2YWx1ZSBvZiB0aGUgcHJldmlvdXMga2V5ICcjeyRwcmV2LWtleX0nICFcIjtcbiAgICB9IEBlbHNlIGlmICRwcmV2LW51bSA+PSAkbnVtIHtcbiAgICAgIEB3YXJuIFwiSW52YWxpZCB2YWx1ZSBmb3IgI3skbWFwLW5hbWV9OiBUaGlzIG1hcCBtdXN0IGJlIGluIGFzY2VuZGluZyBvcmRlciwgYnV0IGtleSAnI3ska2V5fScgaGFzIHZhbHVlICN7JG51bX0gd2hpY2ggaXNuJ3QgZ3JlYXRlciB0aGFuICN7JHByZXYtbnVtfSwgdGhlIHZhbHVlIG9mIHRoZSBwcmV2aW91cyBrZXkgJyN7JHByZXYta2V5fScgIVwiO1xuICAgIH1cbiAgICAkcHJldi1rZXk6ICRrZXk7XG4gICAgJHByZXYtbnVtOiAkbnVtO1xuICB9XG59XG5cbi8vIFN0YXJ0cyBhdCB6ZXJvXG4vLyBVc2VkIHRvIGVuc3VyZSB0aGUgbWluLXdpZHRoIG9mIHRoZSBsb3dlc3QgYnJlYWtwb2ludCBzdGFydHMgYXQgMC5cbkBtaXhpbiBfYXNzZXJ0LXN0YXJ0cy1hdC16ZXJvKCRtYXAsICRtYXAtbmFtZTogXCIkZ3JpZC1icmVha3BvaW50c1wiKSB7XG4gICR2YWx1ZXM6IG1hcC12YWx1ZXMoJG1hcCk7XG4gICRmaXJzdC12YWx1ZTogbnRoKCR2YWx1ZXMsIDEpO1xuICBAaWYgJGZpcnN0LXZhbHVlICE9IDAge1xuICAgIEB3YXJuIFwiRmlyc3QgYnJlYWtwb2ludCBpbiAjeyRtYXAtbmFtZX0gbXVzdCBzdGFydCBhdCAwLCBidXQgc3RhcnRzIGF0ICN7JGZpcnN0LXZhbHVlfS5cIjtcbiAgfVxufVxuXG4vLyBSZXBsYWNlIGAkc2VhcmNoYCB3aXRoIGAkcmVwbGFjZWAgaW4gYCRzdHJpbmdgXG4vLyBVc2VkIG9uIG91ciBTVkcgaWNvbiBiYWNrZ3JvdW5kcyBmb3IgY3VzdG9tIGZvcm1zLlxuLy9cbi8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHJpbmcgLSBJbml0aWFsIHN0cmluZ1xuLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWFyY2ggLSBTdWJzdHJpbmcgdG8gcmVwbGFjZVxuLy8gQHBhcmFtIHtTdHJpbmd9ICRyZXBsYWNlICgnJykgLSBOZXcgdmFsdWVcbi8vIEByZXR1cm4ge1N0cmluZ30gLSBVcGRhdGVkIHN0cmluZ1xuQGZ1bmN0aW9uIHN0ci1yZXBsYWNlKCRzdHJpbmcsICRzZWFyY2gsICRyZXBsYWNlOiBcIlwiKSB7XG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZWFyY2gpO1xuXG4gIEBpZiAkaW5kZXgge1xuICAgIEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpICsgJHJlcGxhY2UgKyBzdHItcmVwbGFjZShzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHN0cmluZztcbn1cblxuLy8gQ29sb3IgY29udHJhc3RcbkBmdW5jdGlvbiBjb2xvci15aXEoJGNvbG9yLCAkZGFyazogJHlpcS10ZXh0LWRhcmssICRsaWdodDogJHlpcS10ZXh0LWxpZ2h0KSB7XG4gICRyOiByZWQoJGNvbG9yKTtcbiAgJGc6IGdyZWVuKCRjb2xvcik7XG4gICRiOiBibHVlKCRjb2xvcik7XG5cbiAgJHlpcTogKCgkciAqIDI5OSkgKyAoJGcgKiA1ODcpICsgKCRiICogMTE0KSkgLyAxMDAwO1xuXG4gIEBpZiAoJHlpcSA+PSAkeWlxLWNvbnRyYXN0ZWQtdGhyZXNob2xkKSB7XG4gICAgQHJldHVybiAkZGFyaztcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkbGlnaHQ7XG4gIH1cbn1cblxuLy8gUmV0cmlldmUgY29sb3IgU2FzcyBtYXBzXG5AZnVuY3Rpb24gY29sb3IoJGtleTogXCJibHVlXCIpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCRjb2xvcnMsICRrZXkpO1xufVxuXG5AZnVuY3Rpb24gdGhlbWUtY29sb3IoJGtleTogXCJwcmltYXJ5XCIpIHtcbiAgQHJldHVybiBtYXAtZ2V0KCR0aGVtZS1jb2xvcnMsICRrZXkpO1xufVxuXG5AZnVuY3Rpb24gZ3JheSgka2V5OiBcIjEwMFwiKSB7XG4gIEByZXR1cm4gbWFwLWdldCgkZ3JheXMsICRrZXkpO1xufVxuXG4vLyBSZXF1ZXN0IGEgdGhlbWUgY29sb3IgbGV2ZWxcbkBmdW5jdGlvbiB0aGVtZS1jb2xvci1sZXZlbCgkY29sb3ItbmFtZTogXCJwcmltYXJ5XCIsICRsZXZlbDogMCkge1xuICAkY29sb3I6IHRoZW1lLWNvbG9yKCRjb2xvci1uYW1lKTtcbiAgJGNvbG9yLWJhc2U6IGlmKCRsZXZlbCA+IDAsICRibGFjaywgJHdoaXRlKTtcbiAgJGxldmVsOiBhYnMoJGxldmVsKTtcblxuICBAcmV0dXJuIG1peCgkY29sb3ItYmFzZSwgJGNvbG9yLCAkbGV2ZWwgKiAkdGhlbWUtY29sb3ItaW50ZXJ2YWwpO1xufVxuIiwiQG1peGluIGljb24oJGljb24pIHtcbiAgZm9udC1mYW1pbHk6ICdpY29ucycgIWltcG9ydGFudDtcbiAgY29udGVudDogdW5xdW90ZShcIlxcXCJcIikrdW5xdW90ZShzdHItaW5zZXJ0KCRpY29uLFwiXFxcXFwiLCAxKSkrdW5xdW90ZShcIlxcXCJcIik7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG5AbWl4aW4gZmEtaWNvbigkaWNvbikge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWUgIWltcG9ydGFudDtcbiAgY29udGVudDogdW5xdW90ZShcIlxcXCJcIikrdW5xdW90ZShzdHItaW5zZXJ0KCRpY29uLFwiXFxcXFwiLCAxKSkrdW5xdW90ZShcIlxcXCJcIik7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiAwO1xufVxuXG5AbWl4aW4gYmctY29sb3ItdHJhbnNpdGlvbigpIHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMjVzIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjI1cyBlYXNlLWluLW91dDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4yNXMgZWFzZS1pbi1vdXQ7XG59XG5cbkBtaXhpbiBjb2xvci10cmFuc2l0aW9uKCkge1xuICB0cmFuc2l0aW9uOiBjb2xvciAuMjVzIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IGNvbG9yIC4yNXMgZWFzZS1pbi1vdXQ7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgLjI1cyBlYXNlLWluLW91dDtcbn1cblxuQG1peGluIG9wYWNpdHktdHJhbnNpdGlvbigpIHtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAuMjVzIGVhc2UtaW4tb3V0O1xuICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgLjI1cyBlYXNlLWluLW91dDtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IC4yNXMgZWFzZS1pbi1vdXQ7XG59XG5cbkBtaXhpbiBhbGwtdHJhbnNpdGlvbigpIHtcbiAgdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1pbi1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1pbi1vdXQ7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIC4yNXMgZWFzZS1pbi1vdXQ7XG59XG5cbkBtaXhpbiB2ZXJ0LWNlbnRlcigpe1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR0b3A6IDUwJTtcbiAgXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi8vIFZhcmlhYmxlc1xuLy9cbi8vIFZhcmlhYmxlcyBzaG91bGQgZm9sbG93IHRoZSBgJGNvbXBvbmVudC1zdGF0ZS1wcm9wZXJ0eS1zaXplYCBmb3JtdWxhIGZvclxuLy8gY29uc2lzdGVudCBuYW1pbmcuIEV4OiAkbmF2LWxpbmstZGlzYWJsZWQtY29sb3IgYW5kICRtb2RhbC1jb250ZW50LWJveC1zaGFkb3cteHMuXG5cbi8qIEZvbnQgJiBIZWFkaW5nIFZhcmlhYmxlcyAqL1xuJGZvbnQtc2l6ZS1iYXNlOiAxNnB4O1xuJGZvbnQtZmFtaWx5LWJhc2U6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmO1xuJGZvbnQtd2VpZ2h0LW5vcm1hbDogNDAwO1xuJGZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcblxuJGhlYWRpbmdzLW1hcmdpbi1ib3R0b206IC41ZW07XG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDEuNXJlbTtcblxuLyogTWlzYy4gVmFyaWFibGVzIHRoYXQgQm9vdHN0cmFwIG5lZWRzIChidXQgYXJlIE5PVCBwcmVzZW50Pz8/KSAqL1xuXG4kYm9keS1jb2xvcjogIzQzNDM0MztcbiRib2R5LWJnOiAjZmZmZmZmO1xuXG4kbGluay1jb2xvcjogIzE5OWJmZjtcbiRsaW5rLWRlY29yYXRpb246IG5vbmU7XG4kbGluay1ob3Zlci1jb2xvcjogIzAxN2ZlMDtcbiRsaW5rLWhvdmVyLWRlY29yYXRpb246IG5vbmU7XG4kZ3JheS1kYXJrOiAjMjgyODI4O1xuJGdyYXktYm9keTogIzhiOGI4YjtcbiRncmF5LW1lZGl1bTogI2MyYzBjMDtcbiRncmF5LWxpZ2h0OiAjZTJlMmUyO1xuXG4kdGFibGUtY2FwdGlvbi1jb2xvcjogJGJvZHktY29sb3I7XG5cbiRsYWJlbC1tYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4kYm9yZGVyLXdpZHRoOiAxcHg7XG5cbiRib3JkZXItY29sb3I6ICRib2R5LWNvbG9yO1xuXG4kcm91bmRlZC1waWxsOiAuMjVyZW07XG5cbi8vIENvbG9yIHN5c3RlbVxuXG4kd2hpdGU6ICAgICNmZmZmZmY7XG4kb2ZmLXdoaXRlOiAjZjFmMWYxO1xuJGdyYXktMTAwOiAjZjJmMmYyO1xuJGdyYXktMjAwOiAjZTRlM2UwO1xuJGdyYXktMzAwOiAjZGVlMmU2ICFkZWZhdWx0O1xuJGdyYXktNDAwOiAjY2VkNGRhICFkZWZhdWx0O1xuJGdyYXktNTAwOiAjYWRiNWJkICFkZWZhdWx0O1xuJGdyYXktNjAwOiAjNmM3NTdkICFkZWZhdWx0O1xuJGdyYXktNzAwOiAjNDk1MDU3ICFkZWZhdWx0O1xuJGdyYXktODAwOiAjMzQzYTQwICFkZWZhdWx0O1xuJGdyYXktOTAwOiAjMjEyNTI5ICFkZWZhdWx0O1xuJGJsYWNrOiAgICAjMDAwMDAwO1xuXG4kZ3JheXM6ICgpICFkZWZhdWx0O1xuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcbiRncmF5czogbWFwLW1lcmdlKFxuICAoXG4gICAgXCIxMDBcIjogJGdyYXktMTAwLFxuICAgIFwiMjAwXCI6ICRncmF5LTIwMCxcbiAgICBcIjMwMFwiOiAkZ3JheS0zMDAsXG4gICAgXCI0MDBcIjogJGdyYXktNDAwLFxuICAgIFwiNTAwXCI6ICRncmF5LTUwMCxcbiAgICBcIjYwMFwiOiAkZ3JheS02MDAsXG4gICAgXCI3MDBcIjogJGdyYXktNzAwLFxuICAgIFwiODAwXCI6ICRncmF5LTgwMCxcbiAgICBcIjkwMFwiOiAkZ3JheS05MDBcbiAgKSxcbiAgJGdyYXlzXG4pO1xuJGJsdWUtZGFyazogXHQjMTAxNDIxO1xuJGJsdWUtbWVkaXVtOiBcdCMyZDQ0NmI7XG4kYmx1ZS1mb290ZXI6IFx0IzRlNWM3YztcbiRibHVlOiAgICBcdFx0IzMxN2ZmMztcbiRibHVlLWFsdDogICAgICAjMjA2OGQ0O1xuXG4kcmVkOiAgICAgXHRcdCNkMDUyMzA7XG4kcmVkLWRhcms6ICAgICAgI2EyMzcxYjtcbiRwdXJwbGU6ICBcdFx0IzY5NjA2OTtcbiRiZWlnZTogXHRcdCNjOWI3YTM7XG5cblxuJGluZGlnbzogICM2NjEwZjIgIWRlZmF1bHQ7XG4kcGluazogICAgI2U4M2U4YyAhZGVmYXVsdDtcbiRvcmFuZ2U6ICAjZmQ3ZTE0ICFkZWZhdWx0O1xuJHllbGxvdzogICNmZmMxMDcgIWRlZmF1bHQ7XG4kZ3JlZW46ICAgIzI4YTc0NSAhZGVmYXVsdDtcbiR0ZWFsOiAgICAjMjBjOTk3ICFkZWZhdWx0O1xuJGN5YW46ICAgICMxN2EyYjggIWRlZmF1bHQ7XG5cbiRjb2xvcnM6ICgpICFkZWZhdWx0O1xuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcbiRjb2xvcnM6IG1hcC1tZXJnZShcbiAgKFxuICAgIFwiYmx1ZVwiOiAgICAgICAkYmx1ZSxcbiAgICBcImluZGlnb1wiOiAgICAgJGluZGlnbyxcbiAgICBcInB1cnBsZVwiOiAgICAgJHB1cnBsZSxcbiAgICBcInBpbmtcIjogICAgICAgJHBpbmssXG4gICAgXCJyZWRcIjogICAgICAgICRyZWQsXG4gICAgXCJvcmFuZ2VcIjogICAgICRvcmFuZ2UsXG4gICAgXCJ5ZWxsb3dcIjogICAgICR5ZWxsb3csXG4gICAgXCJncmVlblwiOiAgICAgICRncmVlbixcbiAgICBcInRlYWxcIjogICAgICAgJHRlYWwsXG4gICAgXCJjeWFuXCI6ICAgICAgICRjeWFuLFxuICAgIFwid2hpdGVcIjogICAgICAkd2hpdGUsXG4gICAgXCJncmF5XCI6ICAgICAgICRncmF5LTYwMCxcbiAgICBcImdyYXktZGFya1wiOiAgJGdyYXktODAwXG4gICksXG4gICRjb2xvcnNcbik7XG5cbiRwcmltYXJ5OiAgICAgICAkYmx1ZSAhZGVmYXVsdDtcbiRzZWNvbmRhcnk6ICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kc3VjY2VzczogICAgICAgJGdyZWVuICFkZWZhdWx0O1xuJGluZm86ICAgICAgICAgICRjeWFuICFkZWZhdWx0O1xuJHdhcm5pbmc6ICAgICAgICR5ZWxsb3cgIWRlZmF1bHQ7XG4kZGFuZ2VyOiAgICAgICAgJHJlZCAhZGVmYXVsdDtcbiRsaWdodDogICAgICAgICAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kZGFyazogICAgICAgICAgJGdyYXktODAwICFkZWZhdWx0O1xuXG4kdGhlbWUtY29sb3JzOiAoKSAhZGVmYXVsdDtcbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0XG4kdGhlbWUtY29sb3JzOiBtYXAtbWVyZ2UoXG4gIChcbiAgICBcInByaW1hcnlcIjogICAgJHByaW1hcnksXG4gICAgXCJzZWNvbmRhcnlcIjogICRzZWNvbmRhcnksXG4gICAgXCJzdWNjZXNzXCI6ICAgICRzdWNjZXNzLFxuICAgIFwiaW5mb1wiOiAgICAgICAkaW5mbyxcbiAgICBcIndhcm5pbmdcIjogICAgJHdhcm5pbmcsXG4gICAgXCJkYW5nZXJcIjogICAgICRkYW5nZXIsXG4gICAgXCJsaWdodFwiOiAgICAgICRsaWdodCxcbiAgICBcImRhcmtcIjogICAgICAgJGRhcmtcbiAgKSxcbiAgJHRoZW1lLWNvbG9yc1xuKTtcblxuLy8gU2V0IGEgc3BlY2lmaWMganVtcCBwb2ludCBmb3IgcmVxdWVzdGluZyBjb2xvciBqdW1wc1xuJHRoZW1lLWNvbG9yLWludGVydmFsOiAgICAgIDglICFkZWZhdWx0O1xuXG4vLyBUaGUgeWlxIGxpZ2h0bmVzcyB2YWx1ZSB0aGF0IGRldGVybWluZXMgd2hlbiB0aGUgbGlnaHRuZXNzIG9mIGNvbG9yIGNoYW5nZXMgZnJvbSBcImRhcmtcIiB0byBcImxpZ2h0XCIuIEFjY2VwdGFibGUgdmFsdWVzIGFyZSBiZXR3ZWVuIDAgYW5kIDI1NS5cblxuLy8gQ3VzdG9taXplIHRoZSBsaWdodCBhbmQgZGFyayB0ZXh0IGNvbG9ycyBmb3IgdXNlIGluIG91ciBZSVEgY29sb3IgY29udHJhc3QgZnVuY3Rpb24uXG5cblxuXG4vLyBPcHRpb25zXG4vL1xuLy8gUXVpY2tseSBtb2RpZnkgZ2xvYmFsIHN0eWxpbmcgYnkgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIG9wdGlvbmFsIGZlYXR1cmVzLlxuXG4kZW5hYmxlLWNhcmV0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRlbmFibGUtcm91bmRlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGVuYWJsZS1zaGFkb3dzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGVuYWJsZS1ncmFkaWVudHM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGVuYWJsZS10cmFuc2l0aW9uczogICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kZW5hYmxlLXByZWZlcnMtcmVkdWNlZC1tb3Rpb24tbWVkaWEtcXVlcnk6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRlbmFibGUtaG92ZXItbWVkaWEtcXVlcnk6ICAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDsgLy8gRGVwcmVjYXRlZCwgbm8gbG9uZ2VyIGFmZmVjdHMgYW55IGNvbXBpbGVkIENTU1xuJGVuYWJsZS1ncmlkLWNsYXNzZXM6ICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kZW5hYmxlLXBvaW50ZXItY3Vyc29yLWZvci1idXR0b25zOiAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRlbmFibGUtcHJpbnQtc3R5bGVzOiAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZXM6ICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGVuYWJsZS12YWxpZGF0aW9uLWljb25zOiAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kZW5hYmxlLWRlcHJlY2F0aW9uLW1lc3NhZ2VzOiAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcblxuXG4vLyBTcGFjaW5nXG4vL1xuLy8gQ29udHJvbCB0aGUgZGVmYXVsdCBzdHlsaW5nIG9mIG1vc3QgQm9vdHN0cmFwIGVsZW1lbnRzIGJ5IG1vZGlmeWluZyB0aGVzZVxuLy8gdmFyaWFibGVzLiBNb3N0bHkgZm9jdXNlZCBvbiBzcGFjaW5nLlxuLy8gWW91IGNhbiBhZGQgbW9yZSBlbnRyaWVzIHRvIHRoZSAkc3BhY2VycyBtYXAsIHNob3VsZCB5b3UgbmVlZCBtb3JlIHZhcmlhdGlvbi5cblxuJHNwYWNlcjogMXJlbSAhZGVmYXVsdDtcbiRzcGFjZXJzOiAoKSAhZGVmYXVsdDtcbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0XG4kc3BhY2VyczogbWFwLW1lcmdlKFxuICAoXG4gICAgMDogMCxcbiAgICAxOiAoJHNwYWNlciAqIC4yNSksXG4gICAgMjogKCRzcGFjZXIgKiAuNSksXG5cdDM6ICgkc3BhY2VyICogLjc1KSxcbiAgICA0OiAkc3BhY2VyLFxuICAgIDU6ICgkc3BhY2VyICogMS4yNSksXG4gICAgNjogKCRzcGFjZXIgKiAxLjUpLFxuXHQ3OiAoJHNwYWNlciAqIDIpLFxuXHQ4OiAoJHNwYWNlciAqIDIuNSksXG5cdDk6ICgkc3BhY2VyICogMyksXG5cdDEwOiAoJHNwYWNlciAqIDQpLFxuXHQxMTogKCRzcGFjZXIgKiA1KSxcblx0MTI6ICgkc3BhY2VyICogNiksXG5cdDEzOiAoJHNwYWNlciAqIDcpLFxuXHQxNDogKCRzcGFjZXIgKiA4KSxcblx0MTU6ICgkc3BhY2VyICogOSksXG5cdDE2OiAoJHNwYWNlciAqIDEwKVxuICApLFxuICAkc3BhY2Vyc1xuKTtcblxuLy8gVGhpcyB2YXJpYWJsZSBhZmZlY3RzIHRoZSBgLmgtKmAgYW5kIGAudy0qYCBjbGFzc2VzLlxuJHNpemVzOiAoKSAhZGVmYXVsdDtcbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0XG4kc2l6ZXM6IG1hcC1tZXJnZShcbiAgKFxuICAgIDI1OiAyNSUsXG4gICAgNTA6IDUwJSxcbiAgICA3NTogNzUlLFxuICAgIDEwMDogMTAwJSxcbiAgICBhdXRvOiBhdXRvXG4gICksXG4gICRzaXplc1xuKTtcblxuXG4vLyBCb2R5XG4vL1xuLy8gU2V0dGluZ3MgZm9yIHRoZSBgPGJvZHk+YCBlbGVtZW50LlxuXG5cbi8vIExpbmtzXG4vL1xuLy8gU3R5bGUgYW5jaG9yIGVsZW1lbnRzLlxuXG5cbi8vIERhcmtlbiBwZXJjZW50YWdlIGZvciBsaW5rcyB3aXRoIGAudGV4dC0qYCBjbGFzcyAoZS5nLiBgLnRleHQtc3VjY2Vzc2ApXG4kZW1waGFzaXplZC1saW5rLWhvdmVyLWRhcmtlbi1wZXJjZW50YWdlOiAxNSUgIWRlZmF1bHQ7XG5cbi8vIFBhcmFncmFwaHNcbi8vXG4vLyBTdHlsZSBwIGVsZW1lbnQuXG5cblxuXG4vLyBHcmlkIGJyZWFrcG9pbnRzXG4vL1xuLy8gRGVmaW5lIHRoZSBtaW5pbXVtIGRpbWVuc2lvbnMgYXQgd2hpY2ggeW91ciBsYXlvdXQgd2lsbCBjaGFuZ2UsXG4vLyBhZGFwdGluZyB0byBkaWZmZXJlbnQgc2NyZWVuIHNpemVzLCBmb3IgdXNlIGluIG1lZGlhIHF1ZXJpZXMuXG5cbiRncmlkLWJyZWFrcG9pbnRzOiAoXG4gIHhzOiAwLFxuICBzbTogNTc2cHgsXG4gIG1kOiA3NjhweCxcbiAgbGc6IDk5MnB4LFxuICB4bDogMTIwMHB4XG4pICFkZWZhdWx0O1xuXG5AaW5jbHVkZSBfYXNzZXJ0LWFzY2VuZGluZygkZ3JpZC1icmVha3BvaW50cywgXCIkZ3JpZC1icmVha3BvaW50c1wiKTtcbkBpbmNsdWRlIF9hc3NlcnQtc3RhcnRzLWF0LXplcm8oJGdyaWQtYnJlYWtwb2ludHMsIFwiJGdyaWQtYnJlYWtwb2ludHNcIik7XG5cblxuLy8gR3JpZCBjb250YWluZXJzXG4vL1xuLy8gRGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIG9mIGAuY29udGFpbmVyYCBmb3IgZGlmZmVyZW50IHNjcmVlbiBzaXplcy5cblxuJGNvbnRhaW5lci1tYXgtd2lkdGhzOiAoXG4gIHNtOiA1NDBweCxcbiAgbWQ6IDcyMHB4LFxuICBsZzogOTYwcHgsXG4gIHhsOiAxMTQwcHhcbikgIWRlZmF1bHQ7XG5cbkBpbmNsdWRlIF9hc3NlcnQtYXNjZW5kaW5nKCRjb250YWluZXItbWF4LXdpZHRocywgXCIkY29udGFpbmVyLW1heC13aWR0aHNcIik7XG5cblxuLy8gR3JpZCBjb2x1bW5zXG4vL1xuLy8gU2V0IHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbmQgc3BlY2lmeSB0aGUgd2lkdGggb2YgdGhlIGd1dHRlcnMuXG5cbiRncmlkLWNvbHVtbnM6ICAgICAgICAgICAgICAgIDEyICFkZWZhdWx0O1xuJGdyaWQtZ3V0dGVyLXdpZHRoOiAgICAgICAgICAgMzBweCAhZGVmYXVsdDtcblxuXG4vLyBDb21wb25lbnRzXG4vL1xuLy8gRGVmaW5lIGNvbW1vbiBwYWRkaW5nIGFuZCBib3JkZXIgcmFkaXVzIHNpemVzIGFuZCBtb3JlLlxuXG5cbiRib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgIC4yNXJlbSAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzLWxnOiAgICAgICAgICAgIC4zcmVtICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXMtc206ICAgICAgICAgICAgLjJyZW0gIWRlZmF1bHQ7XG5cblxuJGVtYmVkLXJlc3BvbnNpdmUtYXNwZWN0LXJhdGlvczogKCkgIWRlZmF1bHQ7XG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdFxuJGVtYmVkLXJlc3BvbnNpdmUtYXNwZWN0LXJhdGlvczogam9pbihcbiAgKFxuICAgICgyMSA5KSxcbiAgICAoMTYgOSksXG4gICAgKDQgMyksXG4gICAgKDEgMSksXG4gICksXG4gICRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpb3Ncbik7XG5cbi8vIFR5cG9ncmFwaHlcbi8vXG4vLyBGb250LCBsaW5lLWhlaWdodCwgYW5kIGNvbG9yIGZvciBib2R5IHRleHQsIGhlYWRpbmdzLCBhbmQgbW9yZS5cblxuLy8gc3R5bGVsaW50LWRpc2FibGUgdmFsdWUta2V5d29yZC1jYXNlXG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiAgICAgICBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlICFkZWZhdWx0O1xuLy8gc3R5bGVsaW50LWVuYWJsZSB2YWx1ZS1rZXl3b3JkLWNhc2VcblxuXG4kZm9udC13ZWlnaHQtbGlnaHRlcjogICAgICAgICBsaWdodGVyICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LWxpZ2h0OiAgICAgICAgICAgMzAwICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LW5vcm1hbDogICAgICAgICAgNDAwICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LWJvbGQ6ICAgICAgICAgICAgNzAwICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LWJvbGRlcjogICAgICAgICAgYm9sZGVyICFkZWZhdWx0O1xuXG4kZm9udC13ZWlnaHQtYmFzZTogICAgICAgICAgICAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGxpbmUtaGVpZ2h0LWJhc2U6ICAgICAgICAgICAgMS41ICFkZWZhdWx0O1xuXG4kc21hbGwtZm9udC1zaXplOiAgICAgICAgICAgICA4MCUgIWRlZmF1bHQ7XG5cbiRtYXJrLXBhZGRpbmc6ICAgICAgICAgICAgICAgIC4yZW0gIWRlZmF1bHQ7XG5cbiRkdC1mb250LXdlaWdodDogICAgICAgICAgICAgICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4ka2JkLWJveC1zaGFkb3c6ICAgICAgICAgICAgICBpbnNldCAwIC0uMXJlbSAwIHJnYmEoJGJsYWNrLCAuMjUpICFkZWZhdWx0O1xuJG5lc3RlZC1rYmQtZm9udC13ZWlnaHQ6ICAgICAgJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cblxuLy8gVGFibGVzXG4vL1xuLy8gQ3VzdG9taXplcyB0aGUgYC50YWJsZWAgY29tcG9uZW50IHdpdGggYmFzaWMgdmFsdWVzLCBlYWNoIHVzZWQgYWNyb3NzIGFsbCB0YWJsZSB2YXJpYXRpb25zLlxuXG4kdGFibGUtY2VsbC1wYWRkaW5nOiAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kdGFibGUtY2VsbC1wYWRkaW5nLXNtOiAgICAgICAuM3JlbSAhZGVmYXVsdDtcblxuXG5cbi8vIEJ1dHRvbnMgKyBGb3Jtc1xuLy9cbi8vIFNoYXJlZCB2YXJpYWJsZXMgdGhhdCBhcmUgcmVhc3NpZ25lZCB0byBgJGlucHV0LWAgYW5kIGAkYnRuLWAgc3BlY2lmaWMgdmFyaWFibGVzLlxuXG5cbi8vIEJ1dHRvbnNcbi8vXG4vLyBGb3IgZWFjaCBvZiBCb290c3RyYXAncyBidXR0b25zLCBkZWZpbmUgdGV4dCwgYmFja2dyb3VuZCwgYW5kIGJvcmRlciBjb2xvci5cblxuXG4vLyBGb3Jtc1xuXG5cbi8vIEZvcm0gdmFsaWRhdGlvblxuXG5cblxuLy8gWi1pbmRleCBtYXN0ZXIgbGlzdFxuLy9cbi8vIFdhcm5pbmc6IEF2b2lkIGN1c3RvbWl6aW5nIHRoZXNlIHZhbHVlcy4gVGhleSdyZSB1c2VkIGZvciBhIGJpcmQncyBleWUgdmlld1xuLy8gb2YgY29tcG9uZW50cyBkZXBlbmRlbnQgb24gdGhlIHotYXhpcyBhbmQgYXJlIGRlc2lnbmVkIHRvIGFsbCB3b3JrIHRvZ2V0aGVyLlxuXG4kemluZGV4LWRyb3Bkb3duOiAgICAgICAgICAgICAgICAgICAxMDAwICFkZWZhdWx0O1xuJHppbmRleC1zdGlja3k6ICAgICAgICAgICAgICAgICAgICAgMTAyMCAhZGVmYXVsdDtcbiR6aW5kZXgtZml4ZWQ6ICAgICAgICAgICAgICAgICAgICAgIDEwMzAgIWRlZmF1bHQ7XG4kemluZGV4LW1vZGFsLWJhY2tkcm9wOiAgICAgICAgICAgICAxMDQwICFkZWZhdWx0O1xuJHppbmRleC1tb2RhbDogICAgICAgICAgICAgICAgICAgICAgMTA1MCAhZGVmYXVsdDtcbiR6aW5kZXgtcG9wb3ZlcjogICAgICAgICAgICAgICAgICAgIDEwNjAgIWRlZmF1bHQ7XG4kemluZGV4LXRvb2x0aXA6ICAgICAgICAgICAgICAgICAgICAxMDcwICFkZWZhdWx0O1xuXG5cbi8vIE5hdnNcblxuXG4vLyBOYXZiYXJcblxuXG4vLyBEcm9wZG93bnNcbi8vXG4vLyBEcm9wZG93biBtZW51IGNvbnRhaW5lciBhbmQgY29udGVudHMuXG5cblxuLy8gUGFnaW5hdGlvblxuXG5cbi8vIEp1bWJvdHJvblxuXG5cbi8vIENhcmRzXG5cblxuLy8gVG9vbHRpcHNcblxuXG4vLyBGb3JtIHRvb2x0aXBzIG11c3QgY29tZSBhZnRlciByZWd1bGFyIHRvb2x0aXBzXG5cblxuLy8gUG9wb3ZlcnNcblxuXG4vLyBUb2FzdHNcblxuXG4vLyBCYWRnZXNcblxuXG4vLyBNb2RhbHNcblxuLy8gUGFkZGluZyBhcHBsaWVkIHRvIHRoZSBtb2RhbCBib2R5XG5cblxuLy8gQWxlcnRzXG4vL1xuLy8gRGVmaW5lIGFsZXJ0IGNvbG9ycywgYm9yZGVyIHJhZGl1cywgYW5kIHBhZGRpbmcuXG5cblxuLy8gUHJvZ3Jlc3MgYmFyc1xuXG5cbi8vIExpc3QgZ3JvdXBcblxuXG4vLyBJbWFnZSB0aHVtYm5haWxzXG5cblxuLy8gRmlndXJlc1xuXG5cbi8vIEJyZWFkY3J1bWJzXG5cblxuLy8gQ2Fyb3VzZWxcblxuXG4vLyBTcGlubmVyc1xuXG5cbi8vIENsb3NlXG5cblxuLy8gQ29kZVxuXG4kY29kZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICA4Ny41JSAhZGVmYXVsdDtcbiRjb2RlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRwaW5rICFkZWZhdWx0O1xuXG4ka2JkLXBhZGRpbmcteTogICAgICAgICAgICAgICAgICAgICAuMnJlbSAhZGVmYXVsdDtcbiRrYmQtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICAgIC40cmVtICFkZWZhdWx0O1xuJGtiZC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgJGNvZGUtZm9udC1zaXplICFkZWZhdWx0O1xuJGtiZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJGtiZC1iZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdyYXktOTAwICFkZWZhdWx0O1xuXG4kcHJlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS05MDAgIWRlZmF1bHQ7XG4kcHJlLXNjcm9sbGFibGUtbWF4LWhlaWdodDogICAgICAgICAzNDBweCAhZGVmYXVsdDtcblxuXG4vLyBVdGlsaXRpZXNcblxuJGRpc3BsYXlzOiBub25lLCBpbmxpbmUsIGlubGluZS1ibG9jaywgYmxvY2ssIHRhYmxlLCB0YWJsZS1yb3csIHRhYmxlLWNlbGwsIGZsZXgsIGlubGluZS1mbGV4ICFkZWZhdWx0O1xuJG92ZXJmbG93czogYXV0bywgaGlkZGVuICFkZWZhdWx0O1xuJHBvc2l0aW9uczogc3RhdGljLCByZWxhdGl2ZSwgYWJzb2x1dGUsIGZpeGVkLCBzdGlja3kgIWRlZmF1bHQ7XG5cblxuLy8gUHJpbnRpbmdcblxuJHByaW50LXBhZ2Utc2l6ZTogICAgICAgICAgICAgICAgICAgYTMgIWRlZmF1bHQ7XG4kcHJpbnQtYm9keS1taW4td2lkdGg6ICAgICAgICAgICAgICBtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCBcImxnXCIpICFkZWZhdWx0O1xuIiwiLy8gVG9nZ2xlc1xuLy9cbi8vIFVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBnbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBjZXJ0YWluIHRoZW1lIGZlYXR1cmVzLlxuXG4vLyBWZW5kb3JcbkBpbXBvcnQgXCJ2ZW5kb3IvcmZzXCI7XG5cbi8vIERlcHJlY2F0ZVxuQGltcG9ydCBcIm1peGlucy9kZXByZWNhdGVcIjtcblxuLy8gVXRpbGl0aWVzXG5AaW1wb3J0IFwibWl4aW5zL2JyZWFrcG9pbnRzXCI7XG5AaW1wb3J0IFwibWl4aW5zL2hvdmVyXCI7XG5AaW1wb3J0IFwibWl4aW5zL2ltYWdlXCI7XG5AaW1wb3J0IFwibWl4aW5zL2JhZGdlXCI7XG5AaW1wb3J0IFwibWl4aW5zL3Jlc2l6ZVwiO1xuQGltcG9ydCBcIm1peGlucy9zY3JlZW4tcmVhZGVyXCI7XG5AaW1wb3J0IFwibWl4aW5zL3NpemVcIjtcbkBpbXBvcnQgXCJtaXhpbnMvcmVzZXQtdGV4dFwiO1xuQGltcG9ydCBcIm1peGlucy90ZXh0LWVtcGhhc2lzXCI7XG5AaW1wb3J0IFwibWl4aW5zL3RleHQtaGlkZVwiO1xuQGltcG9ydCBcIm1peGlucy90ZXh0LXRydW5jYXRlXCI7XG5AaW1wb3J0IFwibWl4aW5zL3Zpc2liaWxpdHlcIjtcblxuLy8gLy8gQ29tcG9uZW50c1xuQGltcG9ydCBcIm1peGlucy9hbGVydFwiO1xuQGltcG9ydCBcIm1peGlucy9idXR0b25zXCI7XG5AaW1wb3J0IFwibWl4aW5zL2NhcmV0XCI7XG5AaW1wb3J0IFwibWl4aW5zL3BhZ2luYXRpb25cIjtcbkBpbXBvcnQgXCJtaXhpbnMvbGlzdHNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvbGlzdC1ncm91cFwiO1xuQGltcG9ydCBcIm1peGlucy9uYXYtZGl2aWRlclwiO1xuQGltcG9ydCBcIm1peGlucy9mb3Jtc1wiO1xuQGltcG9ydCBcIm1peGlucy90YWJsZS1yb3dcIjtcblxuLy8gLy8gU2tpbnNcbkBpbXBvcnQgXCJtaXhpbnMvYmFja2dyb3VuZC12YXJpYW50XCI7XG5AaW1wb3J0IFwibWl4aW5zL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvYm94LXNoYWRvd1wiO1xuQGltcG9ydCBcIm1peGlucy9ncmFkaWVudHNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvdHJhbnNpdGlvblwiO1xuXG4vLyAvLyBMYXlvdXRcbkBpbXBvcnQgXCJtaXhpbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJtaXhpbnMvZ3JpZC1mcmFtZXdvcmtcIjtcbkBpbXBvcnQgXCJtaXhpbnMvZ3JpZFwiO1xuQGltcG9ydCBcIm1peGlucy9mbG9hdFwiO1xuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktYmxhY2tsaXN0LCBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0XG5cbi8vIFNDU1MgUkZTIG1peGluXG4vL1xuLy8gQXV0b21hdGVkIGZvbnQtcmVzaXppbmdcbi8vXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvcmZzXG5cbi8vIENvbmZpZ3VyYXRpb25cblxuLy8gQmFzZSBmb250IHNpemVcbiRyZnMtYmFzZS1mb250LXNpemU6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kcmZzLWZvbnQtc2l6ZS11bml0OiByZW0gIWRlZmF1bHQ7XG5cbi8vIEJyZWFrcG9pbnQgYXQgd2hlcmUgZm9udC1zaXplIHN0YXJ0cyBkZWNyZWFzaW5nIGlmIHNjcmVlbiB3aWR0aCBpcyBzbWFsbGVyXG4kcmZzLWJyZWFrcG9pbnQ6IDEyMDBweCAhZGVmYXVsdDtcbiRyZnMtYnJlYWtwb2ludC11bml0OiBweCAhZGVmYXVsdDtcblxuLy8gUmVzaXplIGZvbnQtc2l6ZSBiYXNlZCBvbiBzY3JlZW4gaGVpZ2h0IGFuZCB3aWR0aFxuJHJmcy10d28tZGltZW5zaW9uYWw6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWN0b3Igb2YgZGVjcmVhc2VcbiRyZnMtZmFjdG9yOiAxMCAhZGVmYXVsdDtcblxuQGlmIHR5cGUtb2YoJHJmcy1mYWN0b3IpICE9IFwibnVtYmVyXCIgb3IgJHJmcy1mYWN0b3IgPD0gMSB7XG4gIEBlcnJvciBcImAjeyRyZnMtZmFjdG9yfWAgaXMgbm90IGEgdmFsaWQgICRyZnMtZmFjdG9yLCBpdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxLlwiO1xufVxuXG4vLyBHZW5lcmF0ZSBlbmFibGUgb3IgZGlzYWJsZSBjbGFzc2VzLiBQb3NzaWJpbGl0aWVzOiBmYWxzZSwgXCJlbmFibGVcIiBvciBcImRpc2FibGVcIlxuJHJmcy1jbGFzczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIDEgcmVtID0gJHJmcy1yZW0tdmFsdWUgcHhcbiRyZnMtcmVtLXZhbHVlOiAxNiAhZGVmYXVsdDtcblxuLy8gU2FmYXJpIGlmcmFtZSByZXNpemUgYnVnOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvaXNzdWVzLzE0XG4kcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXg6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBEaXNhYmxlIFJGUyBieSBzZXR0aW5nICRlbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemVzIHRvIGZhbHNlXG4kZW5hYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQ2FjaGUgJHJmcy1iYXNlLWZvbnQtc2l6ZSB1bml0XG4kcmZzLWJhc2UtZm9udC1zaXplLXVuaXQ6IHVuaXQoJHJmcy1iYXNlLWZvbnQtc2l6ZSk7XG5cbi8vIFJlbW92ZSBweC11bml0IGZyb20gJHJmcy1iYXNlLWZvbnQtc2l6ZSBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1iYXNlLWZvbnQtc2l6ZS11bml0ID09IFwicHhcIiB7XG4gICRyZnMtYmFzZS1mb250LXNpemU6ICRyZnMtYmFzZS1mb250LXNpemUgLyAoJHJmcy1iYXNlLWZvbnQtc2l6ZSAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYmFzZS1mb250LXNpemUtdW5pdCA9PSBcInJlbVwiIHtcbiAgJHJmcy1iYXNlLWZvbnQtc2l6ZTogJHJmcy1iYXNlLWZvbnQtc2l6ZSAvICgkcmZzLWJhc2UtZm9udC1zaXplICogMCArIDEgLyAkcmZzLXJlbS12YWx1ZSk7XG59XG5cbi8vIENhY2hlICRyZnMtYnJlYWtwb2ludCB1bml0IHRvIHByZXZlbnQgbXVsdGlwbGUgY2FsbHNcbiRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlOiB1bml0KCRyZnMtYnJlYWtwb2ludCk7XG5cbi8vIFJlbW92ZSB1bml0IGZyb20gJHJmcy1icmVha3BvaW50IGZvciBjYWxjdWxhdGlvbnNcbkBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcInB4XCIge1xuICAkcmZzLWJyZWFrcG9pbnQ6ICRyZnMtYnJlYWtwb2ludCAvICgkcmZzLWJyZWFrcG9pbnQgKiAwICsgMSk7XG59XG5AZWxzZSBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcInJlbVwiIG9yICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IFwiZW1cIiB7XG4gICRyZnMtYnJlYWtwb2ludDogJHJmcy1icmVha3BvaW50IC8gKCRyZnMtYnJlYWtwb2ludCAqIDAgKyAxIC8gJHJmcy1yZW0tdmFsdWUpO1xufVxuXG4vLyBSZXNwb25zaXZlIGZvbnQtc2l6ZSBtaXhpblxuQG1peGluIHJmcygkZnMsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIC8vIENhY2hlICRmcyB1bml0XG4gICRmcy11bml0OiBpZih0eXBlLW9mKCRmcykgPT0gXCJudW1iZXJcIiwgdW5pdCgkZnMpLCBmYWxzZSk7XG5cbiAgLy8gQWRkICFpbXBvcnRhbnQgc3VmZml4IGlmIG5lZWRlZFxuICAkcmZzLXN1ZmZpeDogaWYoJGltcG9ydGFudCwgXCIgIWltcG9ydGFudFwiLCBcIlwiKTtcblxuICAvLyBJZiAkZnMgaXNuJ3QgYSBudW1iZXIgKGxpa2UgaW5oZXJpdCkgb3IgJGZzIGhhcyBhIHVuaXQgKG5vdCBweCBvciByZW0sIGxpa2UgMS41ZW0pIG9yICQgaXMgMCwganVzdCBwcmludCB0aGUgdmFsdWVcbiAgQGlmIG5vdCAkZnMtdW5pdCBvciAkZnMtdW5pdCAhPSBcIlwiIGFuZCAkZnMtdW5pdCAhPSBcInB4XCIgYW5kICRmcy11bml0ICE9IFwicmVtXCIgb3IgJGZzID09IDAge1xuICAgIGZvbnQtc2l6ZTogI3skZnN9I3skcmZzLXN1ZmZpeH07XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFZhcmlhYmxlcyBmb3Igc3RvcmluZyBzdGF0aWMgYW5kIGZsdWlkIHJlc2NhbGluZ1xuICAgICRyZnMtc3RhdGljOiBudWxsO1xuICAgICRyZnMtZmx1aWQ6IG51bGw7XG5cbiAgICAvLyBSZW1vdmUgcHgtdW5pdCBmcm9tICRmcyBmb3IgY2FsY3VsYXRpb25zXG4gICAgQGlmICRmcy11bml0ID09IFwicHhcIiB7XG4gICAgICAkZnM6ICRmcyAvICgkZnMgKiAwICsgMSk7XG4gICAgfVxuICAgIEBlbHNlIGlmICRmcy11bml0ID09IFwicmVtXCIge1xuICAgICAgJGZzOiAkZnMgLyAoJGZzICogMCArIDEgLyAkcmZzLXJlbS12YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gU2V0IGRlZmF1bHQgZm9udC1zaXplXG4gICAgQGlmICRyZnMtZm9udC1zaXplLXVuaXQgPT0gcmVtIHtcbiAgICAgICRyZnMtc3RhdGljOiAjeyRmcyAvICRyZnMtcmVtLXZhbHVlfXJlbSN7JHJmcy1zdWZmaXh9O1xuICAgIH1cbiAgICBAZWxzZSBpZiAkcmZzLWZvbnQtc2l6ZS11bml0ID09IHB4IHtcbiAgICAgICRyZnMtc3RhdGljOiAjeyRmc31weCN7JHJmcy1zdWZmaXh9O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZXJyb3IgXCJgI3skcmZzLWZvbnQtc2l6ZS11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy1mb250LXNpemUtdW5pdC4gVXNlIGBweGAgb3IgYHJlbWAuXCI7XG4gICAgfVxuXG4gICAgLy8gT25seSBhZGQgbWVkaWEgcXVlcnkgaWYgZm9udC1zaXplIGlzIGJpZ2dlciBhcyB0aGUgbWluaW11bSBmb250LXNpemVcbiAgICAvLyBJZiAkcmZzLWZhY3RvciA9PSAxLCBubyByZXNjYWxpbmcgd2lsbCB0YWtlIHBsYWNlXG4gICAgQGlmICRmcyA+ICRyZnMtYmFzZS1mb250LXNpemUgYW5kICRlbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemVzIHtcbiAgICAgICRtaW4td2lkdGg6IG51bGw7XG4gICAgICAkdmFyaWFibGUtdW5pdDogbnVsbDtcblxuICAgICAgLy8gQ2FsY3VsYXRlIG1pbmltdW0gZm9udC1zaXplIGZvciBnaXZlbiBmb250LXNpemVcbiAgICAgICRmcy1taW46ICRyZnMtYmFzZS1mb250LXNpemUgKyAoJGZzIC0gJHJmcy1iYXNlLWZvbnQtc2l6ZSkgLyAkcmZzLWZhY3RvcjtcblxuICAgICAgLy8gQ2FsY3VsYXRlIGRpZmZlcmVuY2UgYmV0d2VlbiBnaXZlbiBmb250LXNpemUgYW5kIG1pbmltdW0gZm9udC1zaXplIGZvciBnaXZlbiBmb250LXNpemVcbiAgICAgICRmcy1kaWZmOiAkZnMgLSAkZnMtbWluO1xuXG4gICAgICAvLyBCYXNlIGZvbnQtc2l6ZSBmb3JtYXR0aW5nXG4gICAgICAvLyBObyBuZWVkIHRvIGNoZWNrIGlmIHRoZSB1bml0IGlzIHZhbGlkLCBiZWNhdXNlIHdlIGRpZCB0aGF0IGJlZm9yZVxuICAgICAgJG1pbi13aWR0aDogaWYoJHJmcy1mb250LXNpemUtdW5pdCA9PSByZW0sICN7JGZzLW1pbiAvICRyZnMtcmVtLXZhbHVlfXJlbSwgI3skZnMtbWlufXB4KTtcblxuICAgICAgLy8gSWYgdHdvLWRpbWVuc2lvbmFsLCB1c2Ugc21hbGxlc3Qgb2Ygc2NyZWVuIHdpZHRoIGFuZCBoZWlnaHRcbiAgICAgICR2YXJpYWJsZS11bml0OiBpZigkcmZzLXR3by1kaW1lbnNpb25hbCwgdm1pbiwgdncpO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIHZhcmlhYmxlIHdpZHRoIGJldHdlZW4gMCBhbmQgJHJmcy1icmVha3BvaW50XG4gICAgICAkdmFyaWFibGUtd2lkdGg6ICN7JGZzLWRpZmYgKiAxMDAgLyAkcmZzLWJyZWFrcG9pbnR9I3skdmFyaWFibGUtdW5pdH07XG5cbiAgICAgIC8vIFNldCB0aGUgY2FsY3VsYXRlZCBmb250LXNpemUuXG4gICAgICAkcmZzLWZsdWlkOiBjYWxjKCN7JG1pbi13aWR0aH0gKyAjeyR2YXJpYWJsZS13aWR0aH0pICN7JHJmcy1zdWZmaXh9O1xuICAgIH1cblxuICAgIC8vIFJlbmRlcmluZ1xuICAgIEBpZiAkcmZzLWZsdWlkID09IG51bGwge1xuICAgICAgLy8gT25seSByZW5kZXIgc3RhdGljIGZvbnQtc2l6ZSBpZiBubyBmbHVpZCBmb250LXNpemUgaXMgYXZhaWxhYmxlXG4gICAgICBmb250LXNpemU6ICRyZnMtc3RhdGljO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkbXEtdmFsdWU6IG51bGw7XG5cbiAgICAgIC8vIFJGUyBicmVha3BvaW50IGZvcm1hdHRpbmdcbiAgICAgIEBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSBlbSBvciAkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSByZW0ge1xuICAgICAgICAkbXEtdmFsdWU6ICN7JHJmcy1icmVha3BvaW50IC8gJHJmcy1yZW0tdmFsdWV9I3skcmZzLWJyZWFrcG9pbnQtdW5pdH07XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSBweCB7XG4gICAgICAgICRtcS12YWx1ZTogI3skcmZzLWJyZWFrcG9pbnR9cHg7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBlcnJvciBcImAjeyRyZnMtYnJlYWtwb2ludC11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy1icmVha3BvaW50LXVuaXQuIFVzZSBgcHhgLCBgZW1gIG9yIGByZW1gLlwiO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHJmcy1jbGFzcyA9PSBcImRpc2FibGVcIiB7XG4gICAgICAgIC8vIEFkZGluZyBhbiBleHRyYSBjbGFzcyBpbmNyZWFzZXMgc3BlY2lmaWNpdHksXG4gICAgICAgIC8vIHdoaWNoIHByZXZlbnRzIHRoZSBtZWRpYSBxdWVyeSB0byBvdmVycmlkZSB0aGUgZm9udCBzaXplXG4gICAgICAgICYsXG4gICAgICAgIC5kaXNhYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplICYsXG4gICAgICAgICYuZGlzYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAkcmZzLXN0YXRpYztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBmb250LXNpemU6ICRyZnMtc3RhdGljO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHJmcy10d28tZGltZW5zaW9uYWwge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogI3skbXEtdmFsdWV9KSwgKG1heC1oZWlnaHQ6ICN7JG1xLXZhbHVlfSkge1xuICAgICAgICAgIEBpZiAkcmZzLWNsYXNzID09IFwiZW5hYmxlXCIge1xuICAgICAgICAgICAgLmVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSAmLFxuICAgICAgICAgICAgJi5lbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemUge1xuICAgICAgICAgICAgICBmb250LXNpemU6ICRyZnMtZmx1aWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHJmcy1mbHVpZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgJHJmcy1zYWZhcmktaWZyYW1lLXJlc2l6ZS1idWctZml4IHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBsZW5ndGgtemVyby1uby11bml0XG4gICAgICAgICAgICBtaW4td2lkdGg6IDB2dztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICN7JG1xLXZhbHVlfSkge1xuICAgICAgICAgIEBpZiAkcmZzLWNsYXNzID09IFwiZW5hYmxlXCIge1xuICAgICAgICAgICAgLmVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSAmLFxuICAgICAgICAgICAgJi5lbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemUge1xuICAgICAgICAgICAgICBmb250LXNpemU6ICRyZnMtZmx1aWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHJmcy1mbHVpZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgJHJmcy1zYWZhcmktaWZyYW1lLXJlc2l6ZS1idWctZml4IHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBsZW5ndGgtemVyby1uby11bml0XG4gICAgICAgICAgICBtaW4td2lkdGg6IDB2dztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVGhlIGZvbnQtc2l6ZSAmIHJlc3BvbnNpdmUtZm9udC1zaXplIG1peGluIHVzZXMgUkZTIHRvIHJlc2NhbGUgZm9udCBzaXplc1xuQG1peGluIGZvbnQtc2l6ZSgkZnMsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIHJmcygkZnMsICRpbXBvcnRhbnQpO1xufVxuXG5AbWl4aW4gcmVzcG9uc2l2ZS1mb250LXNpemUoJGZzLCAkaW1wb3J0YW50OiBmYWxzZSkge1xuICBAaW5jbHVkZSByZnMoJGZzLCAkaW1wb3J0YW50KTtcbn1cbiIsIi8vIERlcHJlY2F0ZSBtaXhpblxuLy9cbi8vIFRoaXMgbWl4aW4gY2FuIGJlIHVzZWQgdG8gZGVwcmVjYXRlIG1peGlucyBvciBmdW5jdGlvbnMuXG4vLyBgJGVuYWJsZS1kZXByZWNhdGlvbi1tZXNzYWdlc2AgaXMgYSBnbG9iYWwgdmFyaWFibGUsIGAkaWdub3JlLXdhcm5pbmdgIGlzIGEgdmFyaWFibGUgdGhhdCBjYW4gYmUgcGFzc2VkIHRvXG4vLyBzb21lIGRlcHJlY2F0ZWQgbWl4aW5zIHRvIHN1cHByZXNzIHRoZSB3YXJuaW5nIChmb3IgZXhhbXBsZSBpZiB0aGUgbWl4aW4gaXMgc3RpbGwgYmUgdXNlZCBpbiB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIEJvb3RzdHJhcClcbkBtaXhpbiBkZXByZWNhdGUoJG5hbWUsICRkZXByZWNhdGUtdmVyc2lvbiwgJHJlbW92ZS12ZXJzaW9uLCAkaWdub3JlLXdhcm5pbmc6IGZhbHNlKSB7XG4gIEBpZiAoJGVuYWJsZS1kZXByZWNhdGlvbi1tZXNzYWdlcyAhPSBmYWxzZSBhbmQgJGlnbm9yZS13YXJuaW5nICE9IHRydWUpIHtcbiAgICBAd2FybiBcIiN7JG5hbWV9IGhhcyBiZWVuIGRlcHJlY2F0ZWQgYXMgb2YgI3skZGVwcmVjYXRlLXZlcnNpb259LiBJdCB3aWxsIGJlIHJlbW92ZWQgZW50aXJlbHkgaW4gI3skcmVtb3ZlLXZlcnNpb259LlwiO1xuICB9XG59XG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRuICE9IG51bGwgYW5kICRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMDJweFxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEhvdmVyIG1peGluIGFuZCBgJGVuYWJsZS1ob3Zlci1tZWRpYS1xdWVyeWAgYXJlIGRlcHJlY2F0ZWQuXG4vL1xuLy8gT3JpZ2luYWxseSBhZGRlZCBkdXJpbmcgb3VyIGFscGhhcyBhbmQgbWFpbnRhaW5lZCBkdXJpbmcgYmV0YXMsIHRoaXMgbWl4aW4gd2FzXG4vLyBkZXNpZ25lZCB0byBwcmV2ZW50IGA6aG92ZXJgIHN0aWNraW5lc3Mgb24gaU9TLWFuIGlzc3VlIHdoZXJlIGhvdmVyIHN0eWxlc1xuLy8gd291bGQgcGVyc2lzdCBhZnRlciBpbml0aWFsIHRvdWNoLlxuLy9cbi8vIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB3ZSd2ZSBrZXB0IHRoZXNlIG1peGlucyBhbmQgdXBkYXRlZCB0aGVtIHRvXG4vLyBhbHdheXMgcmV0dXJuIHRoZWlyIHJlZ3VsYXIgcHNldWRvLWNsYXNzZXMgaW5zdGVhZCBvZiBhIHNoaW1tZWQgbWVkaWEgcXVlcnkuXG4vL1xuLy8gSXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMjUxOTVcblxuQG1peGluIGhvdmVyIHtcbiAgJjpob3ZlciB7IEBjb250ZW50OyB9XG59XG5cbkBtaXhpbiBob3Zlci1mb2N1cyB7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBwbGFpbi1ob3Zlci1mb2N1cyB7XG4gICYsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBob3Zlci1mb2N1cy1hY3RpdmUge1xuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEltYWdlIE1peGluc1xuLy8gLSBSZXNwb25zaXZlIGltYWdlXG4vLyAtIFJldGluYSBpbWFnZVxuXG5cbi8vIFJlc3BvbnNpdmUgaW1hZ2Vcbi8vXG4vLyBLZWVwIGltYWdlcyBmcm9tIHNjYWxpbmcgYmV5b25kIHRoZSB3aWR0aCBvZiB0aGVpciBwYXJlbnRzLlxuXG5AbWl4aW4gaW1nLWZsdWlkIHtcbiAgLy8gUGFydCAxOiBTZXQgYSBtYXhpbXVtIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnRcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvLyBQYXJ0IDI6IE92ZXJyaWRlIHRoZSBoZWlnaHQgdG8gYXV0bywgb3RoZXJ3aXNlIGltYWdlcyB3aWxsIGJlIHN0cmV0Y2hlZFxuICAvLyB3aGVuIHNldHRpbmcgYSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZSBvbiB0aGUgaW1nIGVsZW1lbnQuXG4gIGhlaWdodDogYXV0bztcbn1cblxuXG4vLyBSZXRpbmEgaW1hZ2Vcbi8vXG4vLyBTaG9ydCByZXRpbmEgbWl4aW4gZm9yIHNldHRpbmcgYmFja2dyb3VuZC1pbWFnZSBhbmQgLXNpemUuXG5cbkBtaXhpbiBpbWctcmV0aW5hKCRmaWxlLTF4LCAkZmlsZS0yeCwgJHdpZHRoLTF4LCAkaGVpZ2h0LTF4KSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkZmlsZS0xeCk7XG5cbiAgLy8gQXV0b3ByZWZpeGVyIHRha2VzIGNhcmUgb2YgYWRkaW5nIC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbyBhbmQgLW8tbWluLWRldmljZS1waXhlbC1yYXRpbyxcbiAgLy8gYnV0IGRvZXNuJ3QgY29udmVydCBkcHB4PT5kcGkuXG4gIC8vIFRoZXJlJ3Mgbm8gc3VjaCB0aGluZyBhcyB1bnByZWZpeGVkIG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8gc2luY2UgaXQncyBub25zdGFuZGFyZC5cbiAgLy8gQ29tcGF0aWJpbGl0eSBpbmZvOiBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy1tZWRpYS1yZXNvbHV0aW9uXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAvLyBJRTktMTEgZG9uJ3Qgc3VwcG9ydCBkcHB4XG4gICAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHsgLy8gU3RhbmRhcmRpemVkXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCRmaWxlLTJ4KTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICR3aWR0aC0xeCAkaGVpZ2h0LTF4O1xuICB9XG4gIEBpbmNsdWRlIGRlcHJlY2F0ZShcImBpbWctcmV0aW5hKClgXCIsIFwidjQuMy4wXCIsIFwidjVcIik7XG59XG4iLCJAbWl4aW4gYmFkZ2UtdmFyaWFudCgkYmcpIHtcbiAgY29sb3I6IGNvbG9yLXlpcSgkYmcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG5cbiAgQGF0LXJvb3QgYSN7Jn0ge1xuICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgIGNvbG9yOiBjb2xvci15aXEoJGJnKTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmcsIDEwJSk7XG4gICAgfVxuXG4gICAgJjpmb2N1cyxcbiAgICAmLmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAkYmFkZ2UtZm9jdXMtd2lkdGggcmdiYSgkYmcsIC41KTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJlc2l6ZSBhbnl0aGluZ1xuXG5AbWl4aW4gcmVzaXphYmxlKCRkaXJlY3Rpb24pIHtcbiAgb3ZlcmZsb3c6IGF1dG87IC8vIFBlciBDU1MzIFVJLCBgcmVzaXplYCBvbmx5IGFwcGxpZXMgd2hlbiBgb3ZlcmZsb3dgIGlzbid0IGB2aXNpYmxlYFxuICByZXNpemU6ICRkaXJlY3Rpb247IC8vIE9wdGlvbnM6IGhvcml6b250YWwsIHZlcnRpY2FsLCBib3RoXG59XG4iLCIvLyBPbmx5IGRpc3BsYXkgY29udGVudCB0byBzY3JlZW4gcmVhZGVyc1xuLy9cbi8vIFNlZTogaHR0cHM6Ly9hMTF5cHJvamVjdC5jb20vcG9zdHMvaG93LXRvLWhpZGUtY29udGVudC9cbi8vIFNlZTogaHR0cHM6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG5cbkBtaXhpbiBzci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYm9yZGVyOiAwO1xufVxuXG4vLyBVc2UgaW4gY29uanVuY3Rpb24gd2l0aCAuc3Itb25seSB0byBvbmx5IGRpc3BsYXkgY29udGVudCB3aGVuIGl0J3MgZm9jdXNlZC5cbi8vXG4vLyBVc2VmdWwgZm9yIFwiU2tpcCB0byBtYWluIGNvbnRlbnRcIiBsaW5rczsgc2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi8yMDEzL05PVEUtV0NBRzIwLVRFQ0hTLTIwMTMwOTA1L0cxXG4vL1xuLy8gQ3JlZGl0OiBIVE1MNSBCb2lsZXJwbGF0ZVxuXG5AbWl4aW4gc3Itb25seS1mb2N1c2FibGUge1xuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgY2xpcDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB9XG59XG4iLCIvLyBTaXppbmcgc2hvcnRjdXRzXG5cbkBtaXhpbiBzaXplKCR3aWR0aCwgJGhlaWdodDogJHdpZHRoKSB7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiYHNpemUoKWBcIiwgXCJ2NC4zLjBcIiwgXCJ2NVwiKTtcbn1cbiIsIkBtaXhpbiByZXNldC10ZXh0IHtcbiAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO1xuICAvLyBXZSBkZWxpYmVyYXRlbHkgZG8gTk9UIHJlc2V0IGZvbnQtc2l6ZSBvciB3b3JkLXdyYXAuXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtYmFzZTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgLy8gRmFsbGJhY2sgZm9yIHdoZXJlIGBzdGFydGAgaXMgbm90IHN1cHBvcnRlZFxuICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIGxpbmUtYnJlYWs6IGF1dG87XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcblxuLy8gVHlwb2dyYXBoeVxuXG5AbWl4aW4gdGV4dC1lbXBoYXNpcy12YXJpYW50KCRwYXJlbnQsICRjb2xvcikge1xuICAjeyRwYXJlbnR9IHtcbiAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRlbXBoYXNpemVkLWxpbmstaG92ZXItZGFya2VuLXBlcmNlbnRhZ2UgIT0gMCB7XG4gICAgYSN7JHBhcmVudH0ge1xuICAgICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgICBjb2xvcjogZGFya2VuKCRjb2xvciwgJGVtcGhhc2l6ZWQtbGluay1ob3Zlci1kYXJrZW4tcGVyY2VudGFnZSkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIENTUyBpbWFnZSByZXBsYWNlbWVudFxuQG1peGluIHRleHQtaGlkZSgkaWdub3JlLXdhcm5pbmc6IGZhbHNlKSB7XG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmb250LWZhbWlseS1uby1taXNzaW5nLWdlbmVyaWMtZmFtaWx5LWtleXdvcmRcbiAgZm9udDogMC8wIGE7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG5cbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiYHRleHQtaGlkZSgpYFwiLCBcInY0LjEuMFwiLCBcInY1XCIsICRpZ25vcmUtd2FybmluZyk7XG59XG4iLCIvLyBUZXh0IHRydW5jYXRlXG4vLyBSZXF1aXJlcyBpbmxpbmUtYmxvY2sgb3IgYmxvY2sgZm9yIHByb3BlciBzdHlsaW5nXG5cbkBtaXhpbiB0ZXh0LXRydW5jYXRlKCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vLyBWaXNpYmlsaXR5XG5cbkBtaXhpbiBpbnZpc2libGUoJHZpc2liaWxpdHkpIHtcbiAgdmlzaWJpbGl0eTogJHZpc2liaWxpdHkgIWltcG9ydGFudDtcbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiYGludmlzaWJsZSgpYFwiLCBcInY0LjMuMFwiLCBcInY1XCIpO1xufVxuIiwiQG1peGluIGFsZXJ0LXZhcmlhbnQoJGJhY2tncm91bmQsICRib3JkZXIsICRjb2xvcikge1xuICBjb2xvcjogJGNvbG9yO1xuICBAaW5jbHVkZSBncmFkaWVudC1iZygkYmFja2dyb3VuZCk7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcblxuICBociB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogZGFya2VuKCRib3JkZXIsIDUlKTtcbiAgfVxuXG4gIC5hbGVydC1saW5rIHtcbiAgICBjb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKTtcbiAgfVxufVxuIiwiLy8gQnV0dG9uIHZhcmlhbnRzXG4vL1xuLy8gRWFzaWx5IHB1bXAgb3V0IGRlZmF1bHQgc3R5bGVzLCBhcyB3ZWxsIGFzIDpob3ZlciwgOmZvY3VzLCA6YWN0aXZlLFxuLy8gYW5kIGRpc2FibGVkIG9wdGlvbnMgZm9yIGFsbCBidXR0b25zXG5cbkBtaXhpbiBidXR0b24tdmFyaWFudCgkYmFja2dyb3VuZCwgJGJvcmRlciwgJGhvdmVyLWJhY2tncm91bmQ6IGRhcmtlbigkYmFja2dyb3VuZCwgNy41JSksICRob3Zlci1ib3JkZXI6IGRhcmtlbigkYm9yZGVyLCAxMCUpLCAkYWN0aXZlLWJhY2tncm91bmQ6IGRhcmtlbigkYmFja2dyb3VuZCwgMTAlKSwgJGFjdGl2ZS1ib3JkZXI6IGRhcmtlbigkYm9yZGVyLCAxMi41JSkpIHtcbiAgY29sb3I6IGNvbG9yLXlpcSgkYmFja2dyb3VuZCk7XG4gIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRiYWNrZ3JvdW5kKTtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICBAaW5jbHVkZSBib3gtc2hhZG93KCRidG4tYm94LXNoYWRvdyk7XG5cbiAgQGluY2x1ZGUgaG92ZXIge1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGhvdmVyLWJhY2tncm91bmQpO1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBib3JkZXItY29sb3I6ICRob3Zlci1ib3JkZXI7XG4gIH1cblxuICAmOmZvY3VzLFxuICAmLmZvY3VzIHtcbiAgICAvLyBBdm9pZCB1c2luZyBtaXhpbiBzbyB3ZSBjYW4gcGFzcyBjdXN0b20gZm9jdXMgc2hhZG93IHByb3Blcmx5XG4gICAgQGlmICRlbmFibGUtc2hhZG93cyB7XG4gICAgICBib3gtc2hhZG93OiAkYnRuLWJveC1zaGFkb3csIDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYShtaXgoY29sb3IteWlxKCRiYWNrZ3JvdW5kKSwgJGJvcmRlciwgMTUlKSwgLjUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKG1peChjb2xvci15aXEoJGJhY2tncm91bmQpLCAkYm9yZGVyLCAxNSUpLCAuNSk7XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgY29tZXMgZmlyc3Qgc28gYWN0aXZlIGNhbiBwcm9wZXJseSByZXN0eWxlXG4gICYuZGlzYWJsZWQsXG4gICY6ZGlzYWJsZWQge1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGJhY2tncm91bmQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgICAvLyBSZW1vdmUgQ1NTIGdyYWRpZW50cyBpZiB0aGV5J3JlIGVuYWJsZWRcbiAgICBAaWYgJGVuYWJsZS1ncmFkaWVudHMge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSxcbiAgJjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsXG4gIC5zaG93ID4gJi5kcm9wZG93bi10b2dnbGUge1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgQGlmICRlbmFibGUtZ3JhZGllbnRzIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IC8vIFJlbW92ZSB0aGUgZ3JhZGllbnQgZm9yIHRoZSBwcmVzc2VkL2FjdGl2ZSBzdGF0ZVxuICAgIH1cbiAgICBib3JkZXItY29sb3I6ICRhY3RpdmUtYm9yZGVyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAvLyBBdm9pZCB1c2luZyBtaXhpbiBzbyB3ZSBjYW4gcGFzcyBjdXN0b20gZm9jdXMgc2hhZG93IHByb3Blcmx5XG4gICAgICBAaWYgJGVuYWJsZS1zaGFkb3dzIGFuZCAkYnRuLWFjdGl2ZS1ib3gtc2hhZG93ICE9IG5vbmUge1xuICAgICAgICBib3gtc2hhZG93OiAkYnRuLWFjdGl2ZS1ib3gtc2hhZG93LCAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEobWl4KGNvbG9yLXlpcSgkYmFja2dyb3VuZCksICRib3JkZXIsIDE1JSksIC41KTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEobWl4KGNvbG9yLXlpcSgkYmFja2dyb3VuZCksICRib3JkZXIsIDE1JSksIC41KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbi1vdXRsaW5lLXZhcmlhbnQoJGNvbG9yLCAkY29sb3ItaG92ZXI6IGNvbG9yLXlpcSgkY29sb3IpLCAkYWN0aXZlLWJhY2tncm91bmQ6ICRjb2xvciwgJGFjdGl2ZS1ib3JkZXI6ICRjb2xvcikge1xuICBjb2xvcjogJGNvbG9yO1xuICBib3JkZXItY29sb3I6ICRjb2xvcjtcblxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYWN0aXZlLWJvcmRlcjtcbiAgfVxuXG4gICY6Zm9jdXMsXG4gICYuZm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC41KTtcbiAgfVxuXG4gICYuZGlzYWJsZWQsXG4gICY6ZGlzYWJsZWQge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSxcbiAgJjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsXG4gIC5zaG93ID4gJi5kcm9wZG93bi10b2dnbGUge1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYWN0aXZlLWJvcmRlcjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgLy8gQXZvaWQgdXNpbmcgbWl4aW4gc28gd2UgY2FuIHBhc3MgY3VzdG9tIGZvY3VzIHNoYWRvdyBwcm9wZXJseVxuICAgICAgQGlmICRlbmFibGUtc2hhZG93cyBhbmQgJGJ0bi1hY3RpdmUtYm94LXNoYWRvdyAhPSBub25lIHtcbiAgICAgICAgYm94LXNoYWRvdzogJGJ0bi1hY3RpdmUtYm94LXNoYWRvdywgMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgLjUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC41KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQnV0dG9uIHNpemVzXG5AbWl4aW4gYnV0dG9uLXNpemUoJHBhZGRpbmcteSwgJHBhZGRpbmcteCwgJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkYm9yZGVyLXJhZGl1cykge1xuICBwYWRkaW5nOiAkcGFkZGluZy15ICRwYWRkaW5nLXg7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplKTtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgLy8gTWFudWFsbHkgZGVjbGFyZSB0byBwcm92aWRlIGFuIG92ZXJyaWRlIHRvIHRoZSBicm93c2VyIGRlZmF1bHRcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cywgMCk7XG59XG4iLCJAbWl4aW4gY2FyZXQtZG93biB7XG4gIGJvcmRlci10b3A6ICRjYXJldC13aWR0aCBzb2xpZDtcbiAgYm9yZGVyLXJpZ2h0OiAkY2FyZXQtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJvcmRlci1sZWZ0OiAkY2FyZXQtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbkBtaXhpbiBjYXJldC11cCB7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAkY2FyZXQtd2lkdGggc29saWQ7XG4gIGJvcmRlci1sZWZ0OiAkY2FyZXQtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbkBtaXhpbiBjYXJldC1yaWdodCB7XG4gIGJvcmRlci10b3A6ICRjYXJldC13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItYm90dG9tOiAkY2FyZXQtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAkY2FyZXQtd2lkdGggc29saWQ7XG59XG5cbkBtaXhpbiBjYXJldC1sZWZ0IHtcbiAgYm9yZGVyLXRvcDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6ICRjYXJldC13aWR0aCBzb2xpZDtcbiAgYm9yZGVyLWJvdHRvbTogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG5AbWl4aW4gY2FyZXQoJGRpcmVjdGlvbjogZG93bikge1xuICBAaWYgJGVuYWJsZS1jYXJldCB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLWxlZnQ6ICRjYXJldC1zcGFjaW5nO1xuICAgICAgdmVydGljYWwtYWxpZ246ICRjYXJldC12ZXJ0aWNhbC1hbGlnbjtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgICAgQGluY2x1ZGUgY2FyZXQtZG93bjtcbiAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICAgIEBpbmNsdWRlIGNhcmV0LXVwO1xuICAgICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgICAgQGluY2x1ZGUgY2FyZXQtcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkY2FyZXQtc3BhY2luZztcbiAgICAgICAgdmVydGljYWwtYWxpZ246ICRjYXJldC12ZXJ0aWNhbC1hbGlnbjtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgQGluY2x1ZGUgY2FyZXQtbGVmdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmVtcHR5OjphZnRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFBhZ2luYXRpb25cblxuQG1peGluIHBhZ2luYXRpb24tc2l6ZSgkcGFkZGluZy15LCAkcGFkZGluZy14LCAkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRib3JkZXItcmFkaXVzKSB7XG4gIC5wYWdlLWxpbmsge1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nLXkgJHBhZGRpbmcteDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgfVxuXG4gIC5wYWdlLWl0ZW0ge1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgLnBhZ2UtbGluayB7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygkYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAucGFnZS1saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygkYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBMaXN0c1xuXG4vLyBVbnN0eWxlZCBrZWVwcyBsaXN0IGl0ZW1zIGJsb2NrIGxldmVsLCBqdXN0IHJlbW92ZXMgZGVmYXVsdCBicm93c2VyIHBhZGRpbmcgYW5kIGxpc3Qtc3R5bGVcbkBtaXhpbiBsaXN0LXVuc3R5bGVkIHtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuIiwiLy8gTGlzdCBHcm91cHNcblxuQG1peGluIGxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KCRzdGF0ZSwgJGJhY2tncm91bmQsICRjb2xvcikge1xuICAubGlzdC1ncm91cC1pdGVtLSN7JHN0YXRlfSB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgICYubGlzdC1ncm91cC1pdGVtLWFjdGlvbiB7XG4gICAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwgNSUpO1xuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBIb3Jpem9udGFsIGRpdmlkZXJzXG4vL1xuLy8gRGl2aWRlcnMgKGJhc2ljYWxseSBhbiBocikgd2l0aGluIGRyb3Bkb3ducyBhbmQgbmF2IGxpc3RzXG5cbkBtaXhpbiBuYXYtZGl2aWRlcigkY29sb3I6ICRuYXYtZGl2aWRlci1jb2xvciwgJG1hcmdpbi15OiAkbmF2LWRpdmlkZXItbWFyZ2luLXkpIHtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46ICRtYXJnaW4teSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yO1xufVxuIiwiLy8gRm9ybSBjb250cm9sIGZvY3VzIHN0YXRlXG4vL1xuLy8gR2VuZXJhdGUgYSBjdXN0b21pemVkIGZvY3VzIHN0YXRlIGFuZCBmb3IgYW55IGlucHV0IHdpdGggdGhlIHNwZWNpZmllZCBjb2xvcixcbi8vIHdoaWNoIGRlZmF1bHRzIHRvIHRoZSBgJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcmAgdmFyaWFibGUuXG4vL1xuLy8gV2UgaGlnaGx5IGVuY291cmFnZSB5b3UgdG8gbm90IGN1c3RvbWl6ZSB0aGUgZGVmYXVsdCB2YWx1ZSwgYnV0IGluc3RlYWQgdXNlXG4vLyB0aGlzIHRvIHR3ZWFrIGNvbG9ycyBvbiBhbiBhcy1uZWVkZWQgYmFzaXMuIFRoaXMgYWVzdGhldGljIGNoYW5nZSBpcyBiYXNlZCBvblxuLy8gV2ViS2l0J3MgZGVmYXVsdCBzdHlsZXMsIGJ1dCBhcHBsaWNhYmxlIHRvIGEgd2lkZXIgcmFuZ2Ugb2YgYnJvd3NlcnMuIEl0c1xuLy8gdXNhYmlsaXR5IGFuZCBhY2Nlc3NpYmlsaXR5IHNob3VsZCBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2l0aCBhbnkgY2hhbmdlLlxuLy9cbi8vIEV4YW1wbGUgdXNhZ2U6IGNoYW5nZSB0aGUgZGVmYXVsdCBibHVlIGJvcmRlciBhbmQgc2hhZG93IHRvIHdoaXRlIGZvciBiZXR0ZXJcbi8vIGNvbnRyYXN0IGFnYWluc3QgYSBkYXJrIGdyYXkgYmFja2dyb3VuZC5cbkBtaXhpbiBmb3JtLWNvbnRyb2wtZm9jdXMoKSB7XG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkaW5wdXQtZm9jdXMtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWZvY3VzLWJnO1xuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICBvdXRsaW5lOiAwO1xuICAgIC8vIEF2b2lkIHVzaW5nIG1peGluIHNvIHdlIGNhbiBwYXNzIGN1c3RvbSBmb2N1cyBzaGFkb3cgcHJvcGVybHlcbiAgICBAaWYgJGVuYWJsZS1zaGFkb3dzIHtcbiAgICAgIGJveC1zaGFkb3c6ICRpbnB1dC1ib3gtc2hhZG93LCAkaW5wdXQtZm9jdXMtYm94LXNoYWRvdztcbiAgICB9IEBlbHNlIHtcbiAgICAgIGJveC1zaGFkb3c6ICRpbnB1dC1mb2N1cy1ib3gtc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG5cbkBtaXhpbiBmb3JtLXZhbGlkYXRpb24tc3RhdGUoJHN0YXRlLCAkY29sb3IsICRpY29uKSB7XG4gIC4jeyRzdGF0ZX0tZmVlZGJhY2sge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogJGZvcm0tZmVlZGJhY2stbWFyZ2luLXRvcDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGZvcm0tZmVlZGJhY2stZm9udC1zaXplKTtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIENvbnRhaW4gdG8gcGFyZW50IHdoZW4gcG9zc2libGVcbiAgICBwYWRkaW5nOiAkZm9ybS1mZWVkYmFjay10b29sdGlwLXBhZGRpbmcteSAkZm9ybS1mZWVkYmFjay10b29sdGlwLXBhZGRpbmcteDtcbiAgICBtYXJnaW4tdG9wOiAuMXJlbTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1mZWVkYmFjay10b29sdGlwLWxpbmUtaGVpZ2h0O1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvciwgJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1vcGFjaXR5KTtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICAuZm9ybS1jb250cm9sIHtcbiAgICAud2FzLXZhbGlkYXRlZCAmOiN7JHN0YXRlfSxcbiAgICAmLmlzLSN7JHN0YXRlfSB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcblxuICAgICAgQGlmICRlbmFibGUtdmFsaWRhdGlvbi1pY29ucyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRpbnB1dC1oZWlnaHQtaW5uZXI7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRpY29uO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQgJGlucHV0LWhlaWdodC1pbm5lci1xdWFydGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6ICRpbnB1dC1oZWlnaHQtaW5uZXItaGFsZiAkaW5wdXQtaGVpZ2h0LWlubmVyLWhhbGY7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGlucHV0LWZvY3VzLXdpZHRoIHJnYmEoJGNvbG9yLCAuMjUpO1xuICAgICAgfVxuXG4gICAgICB+IC4jeyRzdGF0ZX0tZmVlZGJhY2ssXG4gICAgICB+IC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcbiAgdGV4dGFyZWEuZm9ybS1jb250cm9sIHtcbiAgICAud2FzLXZhbGlkYXRlZCAmOiN7JHN0YXRlfSxcbiAgICAmLmlzLSN7JHN0YXRlfSB7XG4gICAgICBAaWYgJGVuYWJsZS12YWxpZGF0aW9uLWljb25zIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGlucHV0LWhlaWdodC1pbm5lcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wICRpbnB1dC1oZWlnaHQtaW5uZXItcXVhcnRlciByaWdodCAkaW5wdXQtaGVpZ2h0LWlubmVyLXF1YXJ0ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmN1c3RvbS1zZWxlY3Qge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuXG4gICAgICBAaWYgJGVuYWJsZS12YWxpZGF0aW9uLWljb25zIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wYWRkaW5nLXJpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY3VzdG9tLXNlbGVjdC1iYWNrZ3JvdW5kLCAkaWNvbiAkY3VzdG9tLXNlbGVjdC1iZyBuby1yZXBlYXQgJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wb3NpdGlvbiAvICRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tc2l6ZTtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkaW5wdXQtZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC4yNSk7XG4gICAgICB9XG5cbiAgICAgIH4gLiN7JHN0YXRlfS1mZWVkYmFjayxcbiAgICAgIH4gLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAuZm9ybS1jb250cm9sLWZpbGUge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgIH4gLiN7JHN0YXRlfS1mZWVkYmFjayxcbiAgICAgIH4gLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZvcm0tY2hlY2staW5wdXQge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgIH4gLmZvcm0tY2hlY2stbGFiZWwge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgfVxuXG4gICAgICB+IC4jeyRzdGF0ZX0tZmVlZGJhY2ssXG4gICAgICB+IC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jdXN0b20tY29udHJvbC1pbnB1dCB7XG4gICAgLndhcy12YWxpZGF0ZWQgJjojeyRzdGF0ZX0sXG4gICAgJi5pcy0jeyRzdGF0ZX0ge1xuICAgICAgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBsaWdodGVuKCRjb2xvciwgMTAlKTtcbiAgICAgICAgICBAaW5jbHVkZSBncmFkaWVudC1iZyhsaWdodGVuKCRjb2xvciwgMTAlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRpbnB1dC1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgLjI1KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpjaGVja2VkKSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGN1c3RvbSBmaWxlXG4gIC5jdXN0b20tZmlsZS1pbnB1dCB7XG4gICAgLndhcy12YWxpZGF0ZWQgJjojeyRzdGF0ZX0sXG4gICAgJi5pcy0jeyRzdGF0ZX0ge1xuICAgICAgfiAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cblxuICAgICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkaW5wdXQtZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC4yNSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIFRhYmxlc1xuXG5AbWl4aW4gdGFibGUtcm93LXZhcmlhbnQoJHN0YXRlLCAkYmFja2dyb3VuZCwgJGJvcmRlcjogbnVsbCkge1xuICAvLyBFeGFjdCBzZWxlY3RvcnMgYmVsb3cgcmVxdWlyZWQgdG8gb3ZlcnJpZGUgYC50YWJsZS1zdHJpcGVkYCBhbmQgcHJldmVudFxuICAvLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuICAudGFibGUtI3skc3RhdGV9IHtcbiAgICAmLFxuICAgID4gdGgsXG4gICAgPiB0ZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICBAaWYgJGJvcmRlciAhPSBudWxsIHtcbiAgICAgIHRoLFxuICAgICAgdGQsXG4gICAgICB0aGVhZCB0aCxcbiAgICAgIHRib2R5ICsgdGJvZHkge1xuICAgICAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVzIGZvciBgLnRhYmxlLWhvdmVyYFxuICAvLyBOb3RlOiB0aGlzIGlzIG5vdCBhdmFpbGFibGUgZm9yIGNlbGxzIG9yIHJvd3Mgd2l0aGluIGB0aGVhZGAgb3IgYHRmb290YC5cbiAgLnRhYmxlLWhvdmVyIHtcbiAgICAkaG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRiYWNrZ3JvdW5kLCA1JSk7XG5cbiAgICAudGFibGUtI3skc3RhdGV9IHtcbiAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgPiB0ZCxcbiAgICAgICAgPiB0aCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vLyBDb250ZXh0dWFsIGJhY2tncm91bmRzXG5cbkBtaXhpbiBiZy12YXJpYW50KCRwYXJlbnQsICRjb2xvcikge1xuICAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgfVxuICBhI3skcGFyZW50fSxcbiAgYnV0dG9uI3skcGFyZW50fSB7XG4gICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gYmctZ3JhZGllbnQtdmFyaWFudCgkcGFyZW50LCAkY29sb3IpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIG1peCgkYm9keS1iZywgJGNvbG9yLCAxNSUpLCAkY29sb3IpIHJlcGVhdC14ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LWJsYWNrbGlzdFxuLy8gU2luZ2xlIHNpZGUgYm9yZGVyLXJhZGl1c1xuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkcmFkaXVzOiAkYm9yZGVyLXJhZGl1cywgJGZhbGxiYWNrLWJvcmRlci1yYWRpdXM6IGZhbHNlKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbiAgQGVsc2UgaWYgJGZhbGxiYWNrLWJvcmRlci1yYWRpdXMgIT0gZmFsc2Uge1xuICAgIGJvcmRlci1yYWRpdXM6ICRmYWxsYmFjay1ib3JkZXItcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1yaWdodC1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci10b3AtbGVmdC1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuIiwiQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICBAaWYgJGVuYWJsZS1zaGFkb3dzIHtcbiAgICAkcmVzdWx0OiAoKTtcblxuICAgIEBpZiAobGVuZ3RoKCRzaGFkb3cpID09IDEpIHtcbiAgICAgIC8vIFdlIGNhbiBwYXNzIGBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO2BcbiAgICAgICRyZXN1bHQ6ICRzaGFkb3c7XG4gICAgfSBAZWxzZSB7XG4gICAgICAvLyBGaWx0ZXIgdG8gYXZvaWQgaW52YWxpZCBwcm9wZXJ0aWVzIGZvciBleGFtcGxlIGBib3gtc2hhZG93OiBub25lLCAxcHggMXB4IGJsYWNrO2BcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRzaGFkb3cpIHtcbiAgICAgICAgQGlmIG50aCgkc2hhZG93LCAkaSkgIT0gXCJub25lXCIge1xuICAgICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJHNoYWRvdywgJGkpLCBcImNvbW1hXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBpZiAobGVuZ3RoKCRyZXN1bHQpID4gMCkge1xuICAgICAgYm94LXNoYWRvdzogJHJlc3VsdDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEdyYWRpZW50c1xuXG5AbWl4aW4gZ3JhZGllbnQtYmcoJGNvbG9yKSB7XG4gIEBpZiAkZW5hYmxlLWdyYWRpZW50cyB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIG1peCgkYm9keS1iZywgJGNvbG9yLCAxNSUpLCAkY29sb3IpIHJlcGVhdC14O1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8gSG9yaXpvbnRhbCBncmFkaWVudCwgZnJvbSBsZWZ0IHRvIHJpZ2h0XG4vL1xuLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cbkBtaXhpbiBncmFkaWVudC14KCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuLy8gVmVydGljYWwgZ3JhZGllbnQsIGZyb20gdG9wIHRvIGJvdHRvbVxuLy9cbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG5AbWl4aW4gZ3JhZGllbnQteSgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG5AbWl4aW4gZ3JhZGllbnQtZGlyZWN0aW9uYWwoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJGRlZzogNDVkZWcpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbkBtaXhpbiBncmFkaWVudC14LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbkBtaXhpbiBncmFkaWVudC15LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuQG1peGluIGdyYWRpZW50LXJhZGlhbCgkaW5uZXItY29sb3I6ICRncmF5LTcwMCwgJG91dGVyLWNvbG9yOiAkZ3JheS04MDApIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgJGlubmVyLWNvbG9yLCAkb3V0ZXItY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuQG1peGluIGdyYWRpZW50LXN0cmlwZWQoJGNvbG9yOiByZ2JhKCR3aGl0ZSwgLjE1KSwgJGFuZ2xlOiA0NWRlZykge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgJGNvbG9yIDUwJSwgJGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBwcm9wZXJ0eS1ibGFja2xpc3RcbkBtaXhpbiB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLi4uKSB7XG4gIEBpZiAkZW5hYmxlLXRyYW5zaXRpb25zIHtcbiAgICBAaWYgbGVuZ3RoKCR0cmFuc2l0aW9uKSA9PSAwIHtcbiAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWJhc2U7XG4gICAgfSBAZWxzZSB7XG4gICAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cblxuICBAaWYgJGVuYWJsZS1wcmVmZXJzLXJlZHVjZWQtbW90aW9uLW1lZGlhLXF1ZXJ5IHtcbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBjbGVhcmZpeCgpIHtcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbn1cbiIsIi8vIEZyYW1ld29yayBncmlkIGdlbmVyYXRpb25cbi8vXG4vLyBVc2VkIG9ubHkgYnkgQm9vdHN0cmFwIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IG51bWJlciBvZiBncmlkIGNsYXNzZXMgZ2l2ZW5cbi8vIGFueSB2YWx1ZSBvZiBgJGdyaWQtY29sdW1uc2AuXG5cbkBtaXhpbiBtYWtlLWdyaWQtY29sdW1ucygkY29sdW1uczogJGdyaWQtY29sdW1ucywgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIC8vIENvbW1vbiBwcm9wZXJ0aWVzIGZvciBhbGwgYnJlYWtwb2ludHNcbiAgJWdyaWQtY29sdW1uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1yaWdodDogJGd1dHRlciAvIDI7XG4gICAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyIC8gMjtcbiAgfVxuXG4gIEBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRicmVha3BvaW50cykge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcblxuICAgIC8vIEFsbG93IGNvbHVtbnMgdG8gc3RyZXRjaCBmdWxsIHdpZHRoIGJlbG93IHRoZWlyIGJyZWFrcG9pbnRzXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAuY29sI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgQGV4dGVuZCAlZ3JpZC1jb2x1bW47XG4gICAgICB9XG4gICAgfVxuICAgIC5jb2wjeyRpbmZpeH0sXG4gICAgLmNvbCN7JGluZml4fS1hdXRvIHtcbiAgICAgIEBleHRlbmQgJWdyaWQtY29sdW1uO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cykge1xuICAgICAgLy8gUHJvdmlkZSBiYXNpYyBgLmNvbC17YnB9YCBjbGFzc2VzIGZvciBlcXVhbC13aWR0aCBmbGV4Ym94IGNvbHVtbnNcbiAgICAgIC5jb2wjeyRpbmZpeH0ge1xuICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICAgIC5jb2wjeyRpbmZpeH0tYXV0byB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvLyBSZXNldCBlYXJsaWVyIGdyaWQgdGllcnNcbiAgICAgIH1cblxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAgIC5jb2wjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sKCRpLCAkY29sdW1ucyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm9yZGVyI3skaW5maXh9LWZpcnN0IHsgb3JkZXI6IC0xOyB9XG5cbiAgICAgIC5vcmRlciN7JGluZml4fS1sYXN0IHsgb3JkZXI6ICRjb2x1bW5zICsgMTsgfVxuXG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgICAgLm9yZGVyI3skaW5maXh9LSN7JGl9IHsgb3JkZXI6ICRpOyB9XG4gICAgICB9XG5cbiAgICAgIC8vIGAkY29sdW1ucyAtIDFgIGJlY2F1c2Ugb2Zmc2V0dGluZyBieSB0aGUgd2lkdGggb2YgYW4gZW50aXJlIHJvdyBpc24ndCBwb3NzaWJsZVxuICAgICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAoJGNvbHVtbnMgLSAxKSB7XG4gICAgICAgIEBpZiBub3QgKCRpbmZpeCA9PSBcIlwiIGFuZCAkaSA9PSAwKSB7IC8vIEF2b2lkIGVtaXR0aW5nIHVzZWxlc3MgLm9mZnNldC0wXG4gICAgICAgICAgLm9mZnNldCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbC1vZmZzZXQoJGksICRjb2x1bW5zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBHcmlkIHN5c3RlbVxuLy9cbi8vIEdlbmVyYXRlIHNlbWFudGljIGdyaWQgY29sdW1ucyB3aXRoIHRoZXNlIG1peGlucy5cblxuQG1peGluIG1ha2UtY29udGFpbmVyKCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogJGd1dHRlciAvIDI7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlciAvIDI7XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cblxuLy8gRm9yIGVhY2ggYnJlYWtwb2ludCwgZGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb250YWluZXIgaW4gYSBtZWRpYSBxdWVyeVxuQG1peGluIG1ha2UtY29udGFpbmVyLW1heC13aWR0aHMoJG1heC13aWR0aHM6ICRjb250YWluZXItbWF4LXdpZHRocywgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAZWFjaCAkYnJlYWtwb2ludCwgJGNvbnRhaW5lci1tYXgtd2lkdGggaW4gJG1heC13aWR0aHMge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cykge1xuICAgICAgbWF4LXdpZHRoOiAkY29udGFpbmVyLW1heC13aWR0aDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1ha2Utcm93KCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1yaWdodDogLSRndXR0ZXIgLyAyO1xuICBtYXJnaW4tbGVmdDogLSRndXR0ZXIgLyAyO1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtcmVhZHkoJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gUHJldmVudCBjb2x1bW5zIGZyb20gYmVjb21pbmcgdG9vIG5hcnJvdyB3aGVuIGF0IHNtYWxsZXIgZ3JpZCB0aWVycyBieVxuICAvLyBhbHdheXMgc2V0dGluZyBgd2lkdGg6IDEwMCU7YC4gVGhpcyB3b3JrcyBiZWNhdXNlIHdlIHVzZSBgZmxleGAgdmFsdWVzXG4gIC8vIGxhdGVyIG9uIHRvIG92ZXJyaWRlIHRoaXMgaW5pdGlhbCB3aWR0aC5cbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctcmlnaHQ6ICRndXR0ZXIgLyAyO1xuICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXIgLyAyO1xufVxuXG5AbWl4aW4gbWFrZS1jb2woJHNpemUsICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIGZsZXg6IDAgMCBwZXJjZW50YWdlKCRzaXplIC8gJGNvbHVtbnMpO1xuICAvLyBBZGQgYSBgbWF4LXdpZHRoYCB0byBlbnN1cmUgY29udGVudCB3aXRoaW4gZWFjaCBjb2x1bW4gZG9lcyBub3QgYmxvdyBvdXRcbiAgLy8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4uIEFwcGxpZXMgdG8gSUUxMCsgYW5kIEZpcmVmb3guIENocm9tZSBhbmQgU2FmYXJpXG4gIC8vIGRvIG5vdCBhcHBlYXIgdG8gcmVxdWlyZSB0aGlzLlxuICBtYXgtd2lkdGg6IHBlcmNlbnRhZ2UoJHNpemUgLyAkY29sdW1ucyk7XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1vZmZzZXQoJHNpemUsICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gICRudW06ICRzaXplIC8gJGNvbHVtbnM7XG4gIG1hcmdpbi1sZWZ0OiBpZigkbnVtID09IDAsIDAsIHBlcmNlbnRhZ2UoJG51bSkpO1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbkBtaXhpbiBmbG9hdC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQgIWltcG9ydGFudDtcbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiVGhlIGBmbG9hdC1sZWZ0YCBtaXhpblwiLCBcInY0LjMuMFwiLCBcInY1XCIpO1xufVxuQG1peGluIGZsb2F0LXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIEBpbmNsdWRlIGRlcHJlY2F0ZShcIlRoZSBgZmxvYXQtcmlnaHRgIG1peGluXCIsIFwidjQuMy4wXCIsIFwidjVcIik7XG59XG5AbWl4aW4gZmxvYXQtbm9uZSB7XG4gIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gIEBpbmNsdWRlIGRlcHJlY2F0ZShcIlRoZSBgZmxvYXQtbm9uZWAgbWl4aW5cIiwgXCJ2NC4zLjBcIiwgXCJ2NVwiKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUVnRUEsOEJBQThCO0FBUzlCLG1FQUFtRTtBRnBFbkUsc0RBQXNEO0FBRXRELEFBQUEsSUFBSSxBQUFBLElBQUssQ0FBQSxZQUFZLEVBQUUsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sR0FBSTs7QUFFekosQUFBQSxJQUFJLEFBQUEsSUFBSyxDQUFBLFlBQVksRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEdBQUk7O0FBRWhILE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxJQUN2QixBQUFBLElBQUksQUFBQSxJQUFLLENBQUEsWUFBWSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FB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 */