@charset "UTF-8";
/* moved by compressor */
/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:0;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}[data-whatinput=mouse] *,[data-whatinput=mouse] :focus,[data-whatinput=touch] *,[data-whatinput=touch] :focus,[data-whatintent=mouse] *,[data-whatintent=mouse] :focus,[data-whatintent=touch] *,[data-whatintent=touch] :focus{outline:0}[draggable=false]{-webkit-touch-callout:none;-webkit-user-select:none}.foundation-mq{font-family:"xs=0em&sm=36em&md=48em&lg=62em&xl=75em&xxl=87.5em&small=0em&medium=48em&large=62em"}html{box-sizing:border-box;font-size:100%}*,::after,::before{box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:SourceSansPro,"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:color("black");-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:.0625rem}select{box-sizing:border-box;width:100%;border-radius:.0625rem}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;appearance:none;border:0;border-radius:.0625rem;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto;-webkit-overflow-scrolling:touch}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:.0625rem;background-color:#fefefe;box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;transition:box-shadow .5s,border-color .25s ease-in-out;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;box-shadow:0 0 5px #cacaca;transition:box-shadow .5s,border-color .25s ease-in-out}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{appearance:none;border-radius:.0625rem}input[type=search]{box-sizing:border-box}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:flex;width:100%;margin-bottom:1rem;align-items:stretch}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:.0625rem 0 0 .0625rem}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0 .0625rem .0625rem 0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:flex;flex:0 0 auto;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;flex:1 1 0px;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:flex;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{align-self:stretch;height:auto;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;appearance:none;border:1px solid #cacaca;border-radius:.0625rem;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="32" height="24" viewBox="0 0 32 24"><polygon points="0,0 32,0 16,24" style="fill: rgb%28138, 138, 138%29"></polygon></svg>');background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5rem;transition:box-shadow .5s,border-color .25s ease-in-out}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;box-shadow:0 0 5px #cacaca;transition:box-shadow .5s,border-color .25s ease-in-out}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:600;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1.625rem;font-size:inherit;line-height:1.625rem;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:600;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:SourceSansPro,"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem}.h2,h2{font-size:1.25rem}.h3,h3{font-size:1.1875rem}.h4,h4{font-size:1.125rem}.h5,h5{font-size:1.0625rem}.h6,h6{font-size:1rem}@media print,screen and (min-width:48em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1.625rem;list-style-position:outside;line-height:1.625rem}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:600}blockquote{margin:0 0 1.625rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.625rem;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;color:#0a0a0a;border-radius:.0625rem}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:"— "}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:36em){.sm-text-left{text-align:left}.sm-text-right{text-align:right}.sm-text-center{text-align:center}.sm-text-justify{text-align:justify}}@media print,screen and (min-width:48em){.md-text-left{text-align:left}.md-text-right{text-align:right}.md-text-center{text-align:center}.md-text-justify{text-align:justify}}@media print,screen and (min-width:62em){.lg-text-left{text-align:left}.lg-text-right{text-align:right}.lg-text-center{text-align:center}.lg-text-justify{text-align:justify}}@media print,screen and (min-width:75em){.xl-text-left{text-align:left}.xl-text-right{text-align:right}.xl-text-center{text-align:center}.xl-text-justify{text-align:justify}}@media print,screen and (min-width:87.5em){.xxl-text-left{text-align:left}.xxl-text-right{text-align:right}.xxl-text-center{text-align:center}.xxl-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;print-color-adjust:economy;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.row{max-width:75rem;margin-right:auto;margin-left:auto;display:flex;flex-flow:row wrap}.row .row{margin-right:-1.25rem;margin-left:-1.25rem}@media print,screen and (min-width:36em){.row .row{margin-right:-1.25rem;margin-left:-1.25rem}}@media print,screen and (min-width:48em){.row .row{margin-right:-1.25rem;margin-left:-1.25rem}}@media print,screen and (min-width:62em){.row .row{margin-right:-.9375rem;margin-left:-.9375rem}}@media print,screen and (min-width:75em){.row .row{margin-right:-.9375rem;margin-left:-.9375rem}}@media print,screen and (min-width:87.5em){.row .row{margin-right:-.9375rem;margin-left:-.9375rem}}.row .row.collapse{margin-right:0;margin-left:0}.row.expanded{max-width:none}.row.expanded .row{margin-right:auto;margin-left:auto}.row:not(.expanded) .row{max-width:none}.row.collapse>.column,.row.collapse>.columns{padding-right:0;padding-left:0}.row.collapse>.column>.row,.row.collapse>.columns>.row,.row.is-collapse-child{margin-right:0;margin-left:0}.column,.columns{flex:1 1 0px;padding-right:1.25rem;padding-left:1.25rem;min-width:0}@media print,screen and (min-width:62em){.column,.columns{padding-right:.9375rem;padding-left:.9375rem}}.column.row.row,.row.row.columns{float:none;display:block}.row .column.row.row,.row .row.row.columns{margin-right:0;margin-left:0;padding-right:0;padding-left:0}.xs-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.xs-offset-0{margin-left:0}.xs-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.xs-offset-1{margin-left:8.3333333333%}.xs-3{flex:0 0 25%;max-width:25%}.xs-offset-2{margin-left:16.6666666667%}.xs-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.xs-offset-3{margin-left:25%}.xs-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.xs-offset-4{margin-left:33.3333333333%}.xs-6{flex:0 0 50%;max-width:50%}.xs-offset-5{margin-left:41.6666666667%}.xs-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.xs-offset-6{margin-left:50%}.xs-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.xs-offset-7{margin-left:58.3333333333%}.xs-9{flex:0 0 75%;max-width:75%}.xs-offset-8{margin-left:66.6666666667%}.xs-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.xs-offset-9{margin-left:75%}.xs-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.xs-offset-10{margin-left:83.3333333333%}.xs-12{flex:0 0 100%;max-width:100%}.xs-offset-11{margin-left:91.6666666667%}.xs-up-1{flex-wrap:wrap}.xs-up-1>.column,.xs-up-1>.columns{flex:0 0 100%;max-width:100%}.xs-up-2{flex-wrap:wrap}.xs-up-2>.column,.xs-up-2>.columns{flex:0 0 50%;max-width:50%}.xs-up-3{flex-wrap:wrap}.xs-up-3>.column,.xs-up-3>.columns{flex:0 0 33.3333333333%;max-width:33.3333333333%}.xs-up-4{flex-wrap:wrap}.xs-up-4>.column,.xs-up-4>.columns{flex:0 0 25%;max-width:25%}.xs-up-5{flex-wrap:wrap}.xs-up-5>.column,.xs-up-5>.columns{flex:0 0 20%;max-width:20%}.xs-up-6{flex-wrap:wrap}.xs-up-6>.column,.xs-up-6>.columns{flex:0 0 16.6666666667%;max-width:16.6666666667%}.xs-up-7{flex-wrap:wrap}.xs-up-7>.column,.xs-up-7>.columns{flex:0 0 14.2857142857%;max-width:14.2857142857%}.xs-up-8{flex-wrap:wrap}.xs-up-8>.column,.xs-up-8>.columns{flex:0 0 12.5%;max-width:12.5%}.xs-collapse>.column,.xs-collapse>.columns{padding-right:0;padding-left:0}.xs-uncollapse>.column,.xs-uncollapse>.columns{padding-right:1.25rem;padding-left:1.25rem}@media print,screen and (min-width:36em){.sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.sm-offset-0{margin-left:0}.sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.sm-offset-1{margin-left:8.3333333333%}.sm-3{flex:0 0 25%;max-width:25%}.sm-offset-2{margin-left:16.6666666667%}.sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.sm-offset-3{margin-left:25%}.sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.sm-offset-4{margin-left:33.3333333333%}.sm-6{flex:0 0 50%;max-width:50%}.sm-offset-5{margin-left:41.6666666667%}.sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.sm-offset-6{margin-left:50%}.sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.sm-offset-7{margin-left:58.3333333333%}.sm-9{flex:0 0 75%;max-width:75%}.sm-offset-8{margin-left:66.6666666667%}.sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.sm-offset-9{margin-left:75%}.sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.sm-offset-10{margin-left:83.3333333333%}.sm-12{flex:0 0 100%;max-width:100%}.sm-offset-11{margin-left:91.6666666667%}.sm-up-1{flex-wrap:wrap}.sm-up-1>.column,.sm-up-1>.columns{flex:0 0 100%;max-width:100%}.sm-up-2{flex-wrap:wrap}.sm-up-2>.column,.sm-up-2>.columns{flex:0 0 50%;max-width:50%}.sm-up-3{flex-wrap:wrap}.sm-up-3>.column,.sm-up-3>.columns{flex:0 0 33.3333333333%;max-width:33.3333333333%}.sm-up-4{flex-wrap:wrap}.sm-up-4>.column,.sm-up-4>.columns{flex:0 0 25%;max-width:25%}.sm-up-5{flex-wrap:wrap}.sm-up-5>.column,.sm-up-5>.columns{flex:0 0 20%;max-width:20%}.sm-up-6{flex-wrap:wrap}.sm-up-6>.column,.sm-up-6>.columns{flex:0 0 16.6666666667%;max-width:16.6666666667%}.sm-up-7{flex-wrap:wrap}.sm-up-7>.column,.sm-up-7>.columns{flex:0 0 14.2857142857%;max-width:14.2857142857%}.sm-up-8{flex-wrap:wrap}.sm-up-8>.column,.sm-up-8>.columns{flex:0 0 12.5%;max-width:12.5%}}@media print,screen and (min-width:36em) and (min-width:36em){.sm-expand{flex:1 1 0px}}.row.sm-unstack>.column,.row.sm-unstack>.columns{flex:0 0 100%}@media print,screen and (min-width:36em){.row.sm-unstack>.column,.row.sm-unstack>.columns{flex:1 1 0px}}@media print,screen and (min-width:36em){.sm-collapse>.column,.sm-collapse>.columns{padding-right:0;padding-left:0}}@media print,screen and (min-width:36em){.sm-uncollapse>.column,.sm-uncollapse>.columns{padding-right:1.25rem;padding-left:1.25rem}}@media print,screen and (min-width:48em){.md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.md-offset-0{margin-left:0}.md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.md-offset-1{margin-left:8.3333333333%}.md-3{flex:0 0 25%;max-width:25%}.md-offset-2{margin-left:16.6666666667%}.md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.md-offset-3{margin-left:25%}.md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.md-offset-4{margin-left:33.3333333333%}.md-6{flex:0 0 50%;max-width:50%}.md-offset-5{margin-left:41.6666666667%}.md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.md-offset-6{margin-left:50%}.md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.md-offset-7{margin-left:58.3333333333%}.md-9{flex:0 0 75%;max-width:75%}.md-offset-8{margin-left:66.6666666667%}.md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.md-offset-9{margin-left:75%}.md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.md-offset-10{margin-left:83.3333333333%}.md-12{flex:0 0 100%;max-width:100%}.md-offset-11{margin-left:91.6666666667%}.md-up-1{flex-wrap:wrap}.md-up-1>.column,.md-up-1>.columns{flex:0 0 100%;max-width:100%}.md-up-2{flex-wrap:wrap}.md-up-2>.column,.md-up-2>.columns{flex:0 0 50%;max-width:50%}.md-up-3{flex-wrap:wrap}.md-up-3>.column,.md-up-3>.columns{flex:0 0 33.3333333333%;max-width:33.3333333333%}.md-up-4{flex-wrap:wrap}.md-up-4>.column,.md-up-4>.columns{flex:0 0 25%;max-width:25%}.md-up-5{flex-wrap:wrap}.md-up-5>.column,.md-up-5>.columns{flex:0 0 20%;max-width:20%}.md-up-6{flex-wrap:wrap}.md-up-6>.column,.md-up-6>.columns{flex:0 0 16.6666666667%;max-width:16.6666666667%}.md-up-7{flex-wrap:wrap}.md-up-7>.column,.md-up-7>.columns{flex:0 0 14.2857142857%;max-width:14.2857142857%}.md-up-8{flex-wrap:wrap}.md-up-8>.column,.md-up-8>.columns{flex:0 0 12.5%;max-width:12.5%}}@media print,screen and (min-width:48em) and (min-width:48em){.md-expand{flex:1 1 0px}}.row.md-unstack>.column,.row.md-unstack>.columns{flex:0 0 100%}@media print,screen and (min-width:48em){.row.md-unstack>.column,.row.md-unstack>.columns{flex:1 1 0px}}@media print,screen and (min-width:48em){.md-collapse>.column,.md-collapse>.columns{padding-right:0;padding-left:0}}@media print,screen and (min-width:48em){.md-uncollapse>.column,.md-uncollapse>.columns{padding-right:1.25rem;padding-left:1.25rem}}@media print,screen and (min-width:62em){.lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.lg-offset-0{margin-left:0}.lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.lg-offset-1{margin-left:8.3333333333%}.lg-3{flex:0 0 25%;max-width:25%}.lg-offset-2{margin-left:16.6666666667%}.lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.lg-offset-3{margin-left:25%}.lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.lg-offset-4{margin-left:33.3333333333%}.lg-6{flex:0 0 50%;max-width:50%}.lg-offset-5{margin-left:41.6666666667%}.lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.lg-offset-6{margin-left:50%}.lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.lg-offset-7{margin-left:58.3333333333%}.lg-9{flex:0 0 75%;max-width:75%}.lg-offset-8{margin-left:66.6666666667%}.lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.lg-offset-9{margin-left:75%}.lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.lg-offset-10{margin-left:83.3333333333%}.lg-12{flex:0 0 100%;max-width:100%}.lg-offset-11{margin-left:91.6666666667%}.lg-up-1{flex-wrap:wrap}.lg-up-1>.column,.lg-up-1>.columns{flex:0 0 100%;max-width:100%}.lg-up-2{flex-wrap:wrap}.lg-up-2>.column,.lg-up-2>.columns{flex:0 0 50%;max-width:50%}.lg-up-3{flex-wrap:wrap}.lg-up-3>.column,.lg-up-3>.columns{flex:0 0 33.3333333333%;max-width:33.3333333333%}.lg-up-4{flex-wrap:wrap}.lg-up-4>.column,.lg-up-4>.columns{flex:0 0 25%;max-width:25%}.lg-up-5{flex-wrap:wrap}.lg-up-5>.column,.lg-up-5>.columns{flex:0 0 20%;max-width:20%}.lg-up-6{flex-wrap:wrap}.lg-up-6>.column,.lg-up-6>.columns{flex:0 0 16.6666666667%;max-width:16.6666666667%}.lg-up-7{flex-wrap:wrap}.lg-up-7>.column,.lg-up-7>.columns{flex:0 0 14.2857142857%;max-width:14.2857142857%}.lg-up-8{flex-wrap:wrap}.lg-up-8>.column,.lg-up-8>.columns{flex:0 0 12.5%;max-width:12.5%}}@media print,screen and (min-width:62em) and (min-width:62em){.lg-expand{flex:1 1 0px}}.row.lg-unstack>.column,.row.lg-unstack>.columns{flex:0 0 100%}@media print,screen and (min-width:62em){.row.lg-unstack>.column,.row.lg-unstack>.columns{flex:1 1 0px}}@media print,screen and (min-width:62em){.lg-collapse>.column,.lg-collapse>.columns{padding-right:0;padding-left:0}}@media print,screen and (min-width:62em){.lg-uncollapse>.column,.lg-uncollapse>.columns{padding-right:.9375rem;padding-left:.9375rem}}@media print,screen and (min-width:75em){.xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.xl-offset-0{margin-left:0}.xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.xl-offset-1{margin-left:8.3333333333%}.xl-3{flex:0 0 25%;max-width:25%}.xl-offset-2{margin-left:16.6666666667%}.xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.xl-offset-3{margin-left:25%}.xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.xl-offset-4{margin-left:33.3333333333%}.xl-6{flex:0 0 50%;max-width:50%}.xl-offset-5{margin-left:41.6666666667%}.xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.xl-offset-6{margin-left:50%}.xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.xl-offset-7{margin-left:58.3333333333%}.xl-9{flex:0 0 75%;max-width:75%}.xl-offset-8{margin-left:66.6666666667%}.xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.xl-offset-9{margin-left:75%}.xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.xl-offset-10{margin-left:83.3333333333%}.xl-12{flex:0 0 100%;max-width:100%}.xl-offset-11{margin-left:91.6666666667%}.xl-up-1{flex-wrap:wrap}.xl-up-1>.column,.xl-up-1>.columns{flex:0 0 100%;max-width:100%}.xl-up-2{flex-wrap:wrap}.xl-up-2>.column,.xl-up-2>.columns{flex:0 0 50%;max-width:50%}.xl-up-3{flex-wrap:wrap}.xl-up-3>.column,.xl-up-3>.columns{flex:0 0 33.3333333333%;max-width:33.3333333333%}.xl-up-4{flex-wrap:wrap}.xl-up-4>.column,.xl-up-4>.columns{flex:0 0 25%;max-width:25%}.xl-up-5{flex-wrap:wrap}.xl-up-5>.column,.xl-up-5>.columns{flex:0 0 20%;max-width:20%}.xl-up-6{flex-wrap:wrap}.xl-up-6>.column,.xl-up-6>.columns{flex:0 0 16.6666666667%;max-width:16.6666666667%}.xl-up-7{flex-wrap:wrap}.xl-up-7>.column,.xl-up-7>.columns{flex:0 0 14.2857142857%;max-width:14.2857142857%}.xl-up-8{flex-wrap:wrap}.xl-up-8>.column,.xl-up-8>.columns{flex:0 0 12.5%;max-width:12.5%}}@media print,screen and (min-width:75em) and (min-width:75em){.xl-expand{flex:1 1 0px}}.row.xl-unstack>.column,.row.xl-unstack>.columns{flex:0 0 100%}@media print,screen and (min-width:75em){.row.xl-unstack>.column,.row.xl-unstack>.columns{flex:1 1 0px}}@media print,screen and (min-width:75em){.xl-collapse>.column,.xl-collapse>.columns{padding-right:0;padding-left:0}}@media print,screen and (min-width:75em){.xl-uncollapse>.column,.xl-uncollapse>.columns{padding-right:.9375rem;padding-left:.9375rem}}@media print,screen and (min-width:87.5em){.xxl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.xxl-offset-0{margin-left:0}.xxl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.xxl-offset-1{margin-left:8.3333333333%}.xxl-3{flex:0 0 25%;max-width:25%}.xxl-offset-2{margin-left:16.6666666667%}.xxl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.xxl-offset-3{margin-left:25%}.xxl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.xxl-offset-4{margin-left:33.3333333333%}.xxl-6{flex:0 0 50%;max-width:50%}.xxl-offset-5{margin-left:41.6666666667%}.xxl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.xxl-offset-6{margin-left:50%}.xxl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.xxl-offset-7{margin-left:58.3333333333%}.xxl-9{flex:0 0 75%;max-width:75%}.xxl-offset-8{margin-left:66.6666666667%}.xxl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.xxl-offset-9{margin-left:75%}.xxl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.xxl-offset-10{margin-left:83.3333333333%}.xxl-12{flex:0 0 100%;max-width:100%}.xxl-offset-11{margin-left:91.6666666667%}.xxl-up-1{flex-wrap:wrap}.xxl-up-1>.column,.xxl-up-1>.columns{flex:0 0 100%;max-width:100%}.xxl-up-2{flex-wrap:wrap}.xxl-up-2>.column,.xxl-up-2>.columns{flex:0 0 50%;max-width:50%}.xxl-up-3{flex-wrap:wrap}.xxl-up-3>.column,.xxl-up-3>.columns{flex:0 0 33.3333333333%;max-width:33.3333333333%}.xxl-up-4{flex-wrap:wrap}.xxl-up-4>.column,.xxl-up-4>.columns{flex:0 0 25%;max-width:25%}.xxl-up-5{flex-wrap:wrap}.xxl-up-5>.column,.xxl-up-5>.columns{flex:0 0 20%;max-width:20%}.xxl-up-6{flex-wrap:wrap}.xxl-up-6>.column,.xxl-up-6>.columns{flex:0 0 16.6666666667%;max-width:16.6666666667%}.xxl-up-7{flex-wrap:wrap}.xxl-up-7>.column,.xxl-up-7>.columns{flex:0 0 14.2857142857%;max-width:14.2857142857%}.xxl-up-8{flex-wrap:wrap}.xxl-up-8>.column,.xxl-up-8>.columns{flex:0 0 12.5%;max-width:12.5%}}@media print,screen and (min-width:87.5em) and (min-width:87.5em){.xxl-expand{flex:1 1 0px}}.row.xxl-unstack>.column,.row.xxl-unstack>.columns{flex:0 0 100%}@media print,screen and (min-width:87.5em){.row.xxl-unstack>.column,.row.xxl-unstack>.columns{flex:1 1 0px}}@media print,screen and (min-width:87.5em){.xxl-collapse>.column,.xxl-collapse>.columns{padding-right:0;padding-left:0}}@media print,screen and (min-width:87.5em){.xxl-uncollapse>.column,.xxl-uncollapse>.columns{padding-right:.9375rem;padding-left:.9375rem}}.shrink{flex:0 0 auto;max-width:100%}.column-block{margin-bottom:2.5rem}.column-block>:last-child{margin-bottom:0}@media print,screen and (min-width:62em){.column-block{margin-bottom:1.875rem}.column-block>:last-child{margin-bottom:0}}.align-left{justify-content:flex-start}.align-right{justify-content:flex-end}.align-center{justify-content:center}.align-justify{justify-content:space-between}.align-spaced{justify-content:space-around}.align-left.vertical.menu>li>a{justify-content:flex-start}.align-right.vertical.menu>li>a{justify-content:flex-end}.align-center.vertical.menu>li>a{justify-content:center}.align-top{align-items:flex-start}.align-self-top{align-self:flex-start}.align-bottom{align-items:flex-end}.align-self-bottom{align-self:flex-end}.align-middle{align-items:center}.align-self-middle{align-self:center}.align-stretch{align-items:stretch}.align-self-stretch{align-self:stretch}.align-center-middle{justify-content:center;align-items:center;align-content:center}.xs-order-1{order:1}.xs-order-2{order:2}.xs-order-3{order:3}.xs-order-4{order:4}.xs-order-5{order:5}.xs-order-6{order:6}@media print,screen and (min-width:36em){.sm-order-1{order:1}.sm-order-2{order:2}.sm-order-3{order:3}.sm-order-4{order:4}.sm-order-5{order:5}.sm-order-6{order:6}}@media print,screen and (min-width:48em){.md-order-1{order:1}.md-order-2{order:2}.md-order-3{order:3}.md-order-4{order:4}.md-order-5{order:5}.md-order-6{order:6}}@media print,screen and (min-width:62em){.lg-order-1{order:1}.lg-order-2{order:2}.lg-order-3{order:3}.lg-order-4{order:4}.lg-order-5{order:5}.lg-order-6{order:6}}@media print,screen and (min-width:75em){.xl-order-1{order:1}.xl-order-2{order:2}.xl-order-3{order:3}.xl-order-4{order:4}.xl-order-5{order:5}.xl-order-6{order:6}}@media print,screen and (min-width:87.5em){.xxl-order-1{order:1}.xxl-order-2{order:2}.xxl-order-3{order:3}.xxl-order-4{order:4}.xxl-order-5{order:5}.xxl-order-6{order:6}}.flex-container{display:flex}.flex-child-auto{flex:1 1 auto}.flex-child-grow{flex:1 0 auto}.flex-child-shrink{flex:0 1 auto}.flex-dir-row{flex-direction:row}.flex-dir-row-reverse{flex-direction:row-reverse}.flex-dir-column{flex-direction:column}.flex-dir-column-reverse{flex-direction:column-reverse}@media print,screen and (min-width:36em){.sm-flex-container{display:flex}.sm-flex-child-auto{flex:1 1 auto}.sm-flex-child-grow{flex:1 0 auto}.sm-flex-child-shrink{flex:0 1 auto}.sm-flex-dir-row{flex-direction:row}.sm-flex-dir-row-reverse{flex-direction:row-reverse}.sm-flex-dir-column{flex-direction:column}.sm-flex-dir-column-reverse{flex-direction:column-reverse}}@media print,screen and (min-width:48em){.md-flex-container{display:flex}.md-flex-child-auto{flex:1 1 auto}.md-flex-child-grow{flex:1 0 auto}.md-flex-child-shrink{flex:0 1 auto}.md-flex-dir-row{flex-direction:row}.md-flex-dir-row-reverse{flex-direction:row-reverse}.md-flex-dir-column{flex-direction:column}.md-flex-dir-column-reverse{flex-direction:column-reverse}}@media print,screen and (min-width:62em){.lg-flex-container{display:flex}.lg-flex-child-auto{flex:1 1 auto}.lg-flex-child-grow{flex:1 0 auto}.lg-flex-child-shrink{flex:0 1 auto}.lg-flex-dir-row{flex-direction:row}.lg-flex-dir-row-reverse{flex-direction:row-reverse}.lg-flex-dir-column{flex-direction:column}.lg-flex-dir-column-reverse{flex-direction:column-reverse}}@media print,screen and (min-width:75em){.xl-flex-container{display:flex}.xl-flex-child-auto{flex:1 1 auto}.xl-flex-child-grow{flex:1 0 auto}.xl-flex-child-shrink{flex:0 1 auto}.xl-flex-dir-row{flex-direction:row}.xl-flex-dir-row-reverse{flex-direction:row-reverse}.xl-flex-dir-column{flex-direction:column}.xl-flex-dir-column-reverse{flex-direction:column-reverse}}@media print,screen and (min-width:87.5em){.xxl-flex-container{display:flex}.xxl-flex-child-auto{flex:1 1 auto}.xxl-flex-child-grow{flex:1 0 auto}.xxl-flex-child-shrink{flex:0 1 auto}.xxl-flex-dir-row{flex-direction:row}.xxl-flex-dir-row-reverse{flex-direction:row-reverse}.xxl-flex-dir-column{flex-direction:column}.xxl-flex-dir-column-reverse{flex-direction:column-reverse}}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:35.99875em){.hide-for-xs-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:36em){.show-for-xs-only{display:none!important}}@media print,screen and (min-width:36em){.hide-for-sm{display:none!important}}@media screen and (max-width:35.99875em){.show-for-sm{display:none!important}}@media print,screen and (min-width:36em) and (max-width:47.99875em){.hide-for-sm-only{display:none!important}}@media screen and (max-width:35.99875em),screen and (min-width:48em){.show-for-sm-only{display:none!important}}@media print,screen and (min-width:48em){.hide-for-md{display:none!important}}@media screen and (max-width:47.99875em){.show-for-md{display:none!important}}@media print,screen and (min-width:48em) and (max-width:61.99875em){.hide-for-md-only{display:none!important}}@media screen and (max-width:47.99875em),screen and (min-width:62em){.show-for-md-only{display:none!important}}@media print,screen and (min-width:62em){.hide-for-lg{display:none!important}}@media screen and (max-width:61.99875em){.show-for-lg{display:none!important}}@media print,screen and (min-width:62em) and (max-width:74.99875em){.hide-for-lg-only{display:none!important}}@media screen and (max-width:61.99875em),screen and (min-width:75em){.show-for-lg-only{display:none!important}}@media print,screen and (min-width:75em){.hide-for-xl{display:none!important}}@media screen and (max-width:74.99875em){.show-for-xl{display:none!important}}@media print,screen and (min-width:75em) and (max-width:87.49875em){.hide-for-xl-only{display:none!important}}@media screen and (max-width:74.99875em),screen and (min-width:87.5em){.show-for-xl-only{display:none!important}}@media print,screen and (min-width:87.5em){.hide-for-xxl{display:none!important}}@media screen and (max-width:87.49875em){.show-for-xxl{display:none!important}}@media print,screen and (min-width:87.5em){.hide-for-xxl-only{display:none!important}}@media screen and (max-width:87.49875em),screen and (min-width:0em){.show-for-xxl-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.show-for-dark-mode{display:none}.hide-for-dark-mode{display:block}@media screen and (prefers-color-scheme:dark){.show-for-dark-mode{display:block!important}.hide-for-dark-mode{display:none!important}}.show-for-ie{display:none}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.show-for-ie{display:block!important}.hide-for-ie{display:none!important}}.show-for-sticky{display:none}.is-stuck .show-for-sticky{display:block}.is-stuck .hide-for-sticky{display:none}@font-face{font-display:swap;font-family:CrimsonText;font-style:normal;font-weight:400;src:local(""),url('../../../typo3conf/ext/sitepackage/Resources/Public/fonts/crimson-text/crimson-text-v11-latin-regular.woff2') format("woff2"),url('../../../typo3conf/ext/sitepackage/Resources/Public/fonts/crimson-text/crimson-text-v11-latin-regular.woff') format("woff")}@font-face{font-display:swap;font-family:CrimsonText;font-style:normal;font-weight:600;src:local(""),url('../../../typo3conf/ext/sitepackage/Resources/Public/fonts/crimson-text/crimson-text-v11-latin-600.woff2') format("woff2"),url('../../../typo3conf/ext/sitepackage/Resources/Public/fonts/crimson-text/crimson-text-v11-latin-600.woff') format("woff")}@font-face{font-display:swap;font-family:CrimsonText;font-style:normal;font-weight:700;src:local(""),url('../../../typo3conf/ext/sitepackage/Resources/Public/fonts/crimson-text/crimson-text-v11-latin-700.woff2') format("woff2"),url('../../../typo3conf/ext/sitepackage/Resources/Public/fonts/crimson-text/crimson-text-v11-latin-700.woff') format("woff")}@font-face{font-display:swap;font-family:SourceSansPro;font-style:normal;font-weight:400;src:local(""),url('../../../typo3conf/ext/sitepackage/Resources/Public/fonts/source-sans/source-sans-pro-v14-latin-regular.woff2') format("woff2"),url('../../../typo3conf/ext/sitepackage/Resources/Public/fonts/source-sans/source-sans-pro-v14-latin-regular.woff') format("woff")}@font-face{font-display:swap;font-family:SourceSansPro;font-style:normal;font-weight:600;src:local(""),url('../../../typo3conf/ext/sitepackage/Resources/Public/fonts/source-sans/source-sans-pro-v14-latin-600.woff2') format("woff2"),url('../../../typo3conf/ext/sitepackage/Resources/Public/fonts/source-sans/source-sans-pro-v14-latin-600.woff') format("woff")}@font-face{font-display:swap;font-family:SourceSansPro;font-style:normal;font-weight:700;src:local(""),url('../../../typo3conf/ext/sitepackage/Resources/Public/fonts/source-sans/source-sans-pro-v14-latin-700.woff2') format("woff2"),url('../../../typo3conf/ext/sitepackage/Resources/Public/fonts/source-sans/source-sans-pro-v14-latin-700.woff') format("woff")}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1.625rem;font-size:inherit;line-height:1.625rem;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:600;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:SourceSansPro,"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.625rem;line-height:1.2;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.625rem;line-height:1.2;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.5rem;line-height:1.2;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.25rem;line-height:1.2;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.25rem;line-height:1.2;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1.25rem;line-height:1.2;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:62em){.h1,h1{font-size:3.125rem;line-height:1}.h2,h2{font-size:2.625rem;line-height:1}.h3,h3{font-size:2.125rem;line-height:1}.h4,h4{font-size:1.625rem;line-height:1}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1.625rem;list-style-position:outside;line-height:1.625rem}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:600}blockquote{margin:0 0 1.625rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.625rem;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;color:#0a0a0a;border-radius:.0625rem}body{font-size:1.0625rem}.h1,h1{font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;margin-bottom:2.4375rem}.h2,h2{font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;margin-bottom:1.625rem}.h3,h3{font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;font-weight:600;margin-bottom:1.625rem}.h4,h4{font-weight:600;margin-bottom:1.625rem}.h5,.h6,h5,h6{font-weight:600;margin-bottom:1.625rem}.text--lead{color:#73a854;font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;font-size:1.25rem}.text--bold{font-weight:600;color:#75b94e}.stage__header .text--bold{color:inherit}@media print,screen and (min-width:62em){.text--colslist{column-count:2;column-gap:30}}.text--colslist li{break-inside:avoid}@media print,screen and (min-width:62em){.text--herolist{column-count:2;column-gap:30}}.text--herolist li{border:none;break-inside:avoid;line-height:1.2;padding-bottom:1.625rem;padding-left:3.375rem}.text--herolist li:before{border-right:1px solid #b4b4b3;color:#75b94e;content:counter(order,decimal-leading-zero);font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;font-size:1.25rem;font-weight:600;line-height:1.5rem;text-indent:-2.25rem;transform:translateX(-1.125rem)}.text--herolist em,.text--herolist i{letter-spacing:.14em;display:inline-block;font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;font-size:1.25rem;font-style:normal;line-height:1.25rem;margin:0 0 .25rem}a{color:#96c777;text-decoration:none}a:active,a:focus,a:hover{outline:0}a:active,a:hover{color:#8e8e8e;text-decoration:underline}a:focus{color:#73a854;text-decoration:underline}blockquote{border-left:5px solid #f5f5f5;color:#96c777;display:table;font-style:normal;line-height:inherit;margin:0 0 2.4375rem;padding:.3125rem 0 .625rem 1.25rem}blockquote:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19.5 15.8'%3E%3Cpath d='M8.7 1.8c-.9.5-1.7.9-2.3 1.3-.5.4-1.1.9-1.7 1.5-.5.6-1 1.2-1.3 1.8-.2.7-.4 1.5-.6 2.5h1.4c1.2 0 2.2.3 2.9.9.7.6 1 1.5 1 2.6 0 .8-.3 1.6-.9 2.3-.6.7-1.5 1.1-2.5 1.1-1.7 0-2.9-.6-3.6-1.7-.7-1-1.1-2.5-1.1-4.3 0-1.3.3-2.4.8-3.5.5-1 1.2-2 2-2.8.8-.8 1.7-1.5 2.6-2.1C6.3.8 7 .4 7.6 0l1.1 1.8zm10.8 0c-.9.5-1.7 1-2.2 1.4-.6.4-1.1.9-1.7 1.5-.6.6-1 1.2-1.3 1.9-.3.6-.5 1.5-.6 2.5h1.4c1.2 0 2.2.3 2.9.9.7.6 1 1.5 1 2.6 0 .8-.3 1.6-.9 2.3-.6.7-1.5 1.1-2.5 1.1-1.7 0-2.9-.6-3.6-1.7-.7-1.1-1.1-2.5-1.1-4.3 0-1.3.3-2.4.8-3.5.5-1 1.2-2 2-2.8.8-.8 1.7-1.5 2.5-2.1.9-.6 1.7-1.1 2.3-1.4l1 1.6z' fill='%237cb954'/%3E%3C/svg%3E%0A");background-position:center;background-repeat:no-repeat;background-size:1em;color:#75b94e;content:" ";letter-spacing:1.2334em;line-height:inherit;vertical-align:baseline}blockquote p:last-child{margin-bottom:0}blockquote cite{color:#75b94e;display:block;font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;font-size:1rem;font-style:normal;line-height:1;margin-top:1em;text-align:right}blockquote cite:before{content:"- "}img,picture{border-radius:.0625rem;display:inline-block;margin-bottom:1.625rem}picture img{margin:0}.figcaption,figcaption{background-color:#fff;color:#b4b4b3;font-size:.875rem;line-height:1.25rem;margin:0 auto;padding:.75rem 0 .5rem}.ce-right .figcaption,.ce-right figcaption{left:0;position:absolute;right:0;top:100%}.image{display:table;position:relative}.ce-left .image,.ce-right .image,.contact__media .image-embed{margin-bottom:4.25rem;margin-right:1.625rem}@media print,screen and (min-width:75em){.ce-left .image,.ce-right .image,.contact__media .image-embed{margin-right:0}}@media print,screen and (min-width:48em){.ce-left .image,.contact__media .image{margin-bottom:0;margin-right:0;margin-top:4.25rem}}.ce-left .image:after,.ce-right .image:after,.contact__media .image:after{content:"• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • ";letter-spacing:.04em;bottom:-4.25rem;color:#73a854;display:block;font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;font-size:2.5rem;line-height:1.75rem;max-width:18.125rem;position:absolute;right:-1.875rem;transform:scale(-1,-1);z-index:-1}@media print,screen and (min-width:75em){.ce-left .image:after,.ce-right .image:after,.contact__media .image:after{content:"• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • ";max-width:27.5rem}}@media print,screen and (min-width:62em){.ce-right .image:after{bottom:-6rem;right:-5.375rem}}@media print,screen and (min-width:48em){.ce-left .image:after,.contact__media .image:after{left:-5.375rem;top:-6rem;transform:scale(1,1)}}.video-embed{position:relative;width:100%}.video:before{content:"";display:block;padding-bottom:56.25%;width:100%}.video iframe,.video video{height:100%;left:0;position:absolute;top:0;width:100%;z-index:2}b,strong{font-weight:600}ul{list-style:none;padding:0;margin:0 0 1.625rem}ul li{border-bottom:2px dotted #d9d9d9;display:table;padding:.5rem 0 .5rem .9375rem;width:100%}ul li:before{color:inherit;content:"•";display:table-cell;text-indent:-.9375rem;vertical-align:baseline}ul li:last-child{border-color:transparent}ul ul{margin:0 0 -.5rem}ul ul li{border-color:#f5f5f5}ol{counter-reset:order;list-style:none;margin:0 0 1.625rem;padding:0}ol li{counter-increment:order;border-bottom:2px dotted #d9d9d9;display:table;padding:.5rem 0 .5rem 1.25rem;width:100%}ol li:before{color:#8e8e8e;content:counters(order, ".") ". ";display:table-cell;text-indent:-1.25rem}ol li:last-child{border-color:transparent}ol ol{margin:0 0 -.5rem}ol ol li{border-color:#f5f5f5;padding-left:1.875rem}ol ol li:before{content:counters(order, ".") " ";text-indent:-1.875rem}table{border-collapse:collapse;border-radius:.0625rem;border:none;font-size:.875rem;line-height:1.25rem;margin:1.625rem 0 3.25rem;max-width:100%;position:relative}table:before{border:1px solid #f5f5f5;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}tr{border-bottom:1px solid #f5f5f5}td,th{padding:.75rem .9375rem;vertical-align:top;text-align:left}td:before,th:before{content:"";display:block;height:0;width:8em}th{background-color:#f5f5f5}dl{border:1px solid #f5f5f5;display:table;font-size:.875rem;line-height:1.25rem;margin:0 0 1.625rem;max-width:100%;position:relative}dl dt{background-color:#f5f5f5;font-weight:700;margin:0;padding:.75rem .9375rem}dd{margin:0;padding:.75rem .9375rem}dd+dd{border-top:1px solid #f5f5f5}hr{background:0 0;border-style:solid;border-color:#f5f5f5;border-width:.0625rem 0 0;height:0;margin:2.1875rem auto;width:100%;max-width:72.5rem}@media print,screen and (min-width:62em){hr{margin:4.375rem auto}}@media print,screen and (min-width:62em){hr{max-width:73.125rem}}iframe{border:none;max-width:100%}:root{--tl-color-black:#434342;--tl-color-grey-300:#f5f5f5;--tl-color-grey-400:#d9d9d9;--tl-color-grey-600:#b4b4b3;--tl-color-grey-700:#8e8e8e;--tl-color-cucumber:#73a854;--tl-color-mantis:#75b94e;--tl-color-olivine:#96c777;--tl-color-white:#fff;--tl-color-primary:#75b94e;--tl-color-secondary:#73a854;--tl-color-alert:#FF7070;--tl-color-success:#8BB31D}body,html{height:100%}.site__wrap{display:flex;flex-direction:column;min-height:100%;overflow:hidden}.site__main{flex:1 1 auto;max-width:100%;padding-top:5rem}@media print,screen and (max-width:35.99875em){.site__main{hyphens:auto;padding-top:4.0625rem}}@media print,screen and (min-width:62em){.site__main{padding-top:6.875rem}}@media print,screen and (min-width:75em){.site__main{padding-top:8.4375rem}}.header{background-color:#fff;left:0;position:fixed;right:0;top:0;transition:background-color .1s,box-shadow .1s;z-index:100}@media print,screen and (min-width:62em){.header{background-color:transparent}}.header--fixed,.header--solid{color:#434342;background-color:#fff}.header--fixed{box-shadow:0 0 30px rgba(0,0,0,.15)}.header__row{align-items:center;padding:.9375rem 0 1rem;transition:background-color .1s,padding .1s}@media print,screen and (min-width:62em){.header__row{padding:1.875rem 0 1.9375rem}}@media print,screen and (min-width:75em){.header__row{padding:2.25rem 0}}@media print,screen and (max-width:61.99875em){[data-toggle] .header__row{background-color:#96c777}}@media print,screen and (min-width:75em){.header--fixed .header__row{padding:1.5625rem 0 1.625rem}}.header__col{flex:1 1 0px}.header__col--shrink{padding-right:1.25rem;padding-left:1.25rem;flex:0 1 auto}@media print,screen and (min-width:62em){.header__col--shrink{padding-right:.9375rem;padding-left:.9375rem}}@media print,screen and (min-width:62em){.header__col--push{flex:0 0 25%;max-width:25%;order:1}}.header__brand{color:#434342;display:table;height:auto;margin-left:auto;max-width:11.25rem;text-decoration:none;transition:max-width 80ms;will-change:max-width}.header__brand:active,.header__brand:focus,.header__brand:hover{color:#434342;text-decoration:none}@media print,screen and (max-width:35.99875em){.header__brand{max-width:7.8125rem}}@media print,screen and (min-width:75em){.header__brand{max-width:100%}}.header--fixed .header__brand,[data-toggle] .header__brand{max-width:7.8125rem}@media print,screen and (min-width:75em){.header--fixed .header__brand,[data-toggle] .header__brand{max-width:11.25rem}}.header__brand svg{color:inherit;display:block;fill:#75b94e;max-width:100%;transition:color .2s,fill .2s;will-change:color,fill}[data-toggle] .header__brand svg{color:#fff;fill:#fff}@media print,screen and (max-width:61.99875em){.navmain{align-items:center;background-color:#96c777;bottom:0;display:flex;left:0;opacity:0;padding:4.0625rem 0;position:fixed;right:0;top:0;transform-origin:top center;transform:translateY(-20%) scaleY(0);visibility:hidden;will-change:opacity,transform,visibility;z-index:-1}}@media print,screen and (min-width:62em){.navmain{padding-right:.9375rem;padding-left:.9375rem}}.domready .navmain{transition:opacity 250ms ease-in,transform .3s ease-in,visibility 250ms ease-in}[data-toggle] .navmain{opacity:1;transform:translateY(0) scaleY(1);visibility:visible}[data-delay] .navmain{transition:none}.navmain__list{flex-basis:100%;margin:0;padding:2.5rem 1.25rem;text-align:center}@media print,screen and (min-width:62em){.navmain__list{display:flex;padding:0 .9375rem 0 0;justify-content:space-between}}.navmain__item{border:none;display:block;padding:0;width:auto}.navmain__item:before{content:none}@media print,screen and (max-width:61.99875em){.navmain__item:not(:last-child){margin-bottom:.3125rem}}.navmain__link{letter-spacing:.14em;color:#fff;display:block;font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;font-size:1.25rem;padding:.625rem 0;position:relative;text-decoration:none}@media print,screen and (min-width:62em){.navmain__link{font-size:1.0625rem;padding:.1875rem 0}}.navmain__link:after{background-color:#fff;bottom:0;content:"";display:block;height:1px;left:0;margin:auto;opacity:0;position:absolute;right:0;transition:opacity .2s,width .2s;width:2.5rem;will-change:opacity,width}@media print,screen and (min-width:62em){.navmain__link:after{margin-left:0}}@media print,screen and (min-width:62em){.header--fixed .navmain__link:after,.header--solid .navmain__link:after{background-color:#434342}}.navmain__link--active:after{opacity:.5}.navmain__link:active,.navmain__link:focus,.navmain__link:hover{color:#fff;text-decoration:none}@media print,screen and (min-width:62em){.header--fixed .navmain__link:active,.header--fixed .navmain__link:focus,.header--fixed .navmain__link:hover,.header--solid .navmain__link:active,.header--solid .navmain__link:focus,.header--solid .navmain__link:hover{color:#434342}}.navmain__link:active:after,.navmain__link:focus:after,.navmain__link:hover:after{opacity:.8;width:3.75rem}@media print,screen and (min-width:62em){.header--fixed .navmain__link,.header--solid .navmain__link{color:#434342}}.footer{background-color:#75b94e;color:#fff;flex:0 0 auto;max-width:100%;padding:1.5rem 0}@media print,screen and (min-width:48em){.footer__row{max-width:75rem;margin-right:auto;margin-left:auto;display:flex;flex-flow:row wrap;align-items:flex-end}}.footer__title{letter-spacing:.14em;font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;font-size:1.25rem;line-height:1.5rem;margin-bottom:1.0625rem}@media print,screen and (min-width:36em){.footer__title{margin-bottom:0}}.footer__meta{flex:0 0 auto;margin:1.0625rem 0 .125rem}.footer__note{font-size:.875rem;line-height:1.25rem}.footer__note:before{border-top:1px solid #fff;content:"";display:block;margin:1.0625rem 0 1.25rem}.footer__list{display:flex;flex-flow:row wrap;margin:0;line-height:inherit}.footer__list--spaced{flex-grow:1}.footer__list--spaced li:not(:last-child):after{content:" •";letter-spacing:.25rem;padding-right:.125rem}.footer__list--nav{font-size:.875rem;line-height:1.25rem}.footer__list--nav li:not(:last-child){margin-right:.9375rem}.footer__list li{border:none;flex:0 1 auto;padding:0;width:auto}.footer__list li:before{content:none}.footer__link{display:block}.footer__link--active{color:#fff;text-decoration:underline}@media print,screen and (max-width:74.99875em){.footer__partner{margin:.5rem 0 0}}.footer a{color:#fff}.footer a:active,.footer a:focus,.footer a:hover{color:#fff;text-decoration:underline}.trigger{display:table;position:relative;text-align:right;vertical-align:middle;z-index:10}.trigger__button{color:#434342;cursor:pointer;display:flex;vertical-align:middle}.trigger__button:focus,.trigger__button:hover{color:#434342;outline:0}.trigger__icon{display:block;font-size:1rem;height:.875rem;margin:.125rem 0;order:1;position:relative;text-align:left;width:1.5625rem}@media print,screen and (min-width:75em){.trigger__icon{margin-left:auto;margin-right:auto}}.trigger__icon i,.trigger__icon:after,.trigger__icon:before{background-color:#75b94e;border-radius:1px;display:inline-block;height:.125rem;margin:.375rem 0;width:100%}.trigger__icon i{transition:width .2s,opacity .2s 250ms ease;width:1.25rem}.trigger__button:hover .trigger__icon i{width:100%}.trigger__icon:after,.trigger__icon:before{content:"";font-size:1em;left:0;margin:auto;position:absolute;width:100%}.trigger__button:hover .trigger__icon:after,.trigger__button:hover .trigger__icon:before{width:80%}.trigger__icon:before{top:0;transform-origin:center top;transform:translate3d(0,-50%,0);transition:width .2s,top .2s 250ms ease,transform .2s ease-in-out}.trigger__icon:after{bottom:0;transform-origin:center bottom;transform:translate3d(0,50%,0);transition:width .2s,bottom .2s 250ms ease,transform .2s ease-in-out}[data-toggle] .trigger__icon i{opacity:0;transition:width .2s,opacity .2s ease;width:.9375rem!important}[data-toggle] .trigger__icon:before{background-color:#fff;top:50%;transform:rotate(45deg) translate3d(0,-50%,0);transition:width .2s,top .2s ease,transform .2s 250ms ease-in-out;width:100%!important}[data-toggle] .trigger__icon:after{background-color:#fff;bottom:50%;transform:rotate(-45deg) translate3d(0,50%,0);transition:width .2s,bottom .2s ease,transform .2s 250ms ease-in-out;width:100%!important}.trigger__label{letter-spacing:.14em;color:inherit;display:block;font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;line-height:1;margin-right:.3125rem;padding-top:.125rem;transition:opacity .2s}@media print,screen and (min-width:62em){.trigger__label{display:none!important}}[data-toggle] .trigger__label{opacity:0}.frame{position:relative}.frame-space--before-none{padding-top:0;border-top:1px solid transparent;margin-top:-1px}.frame-space--before-fourth{padding-top:1.875rem}.frame-space--before-half{padding-top:1.875rem}@media print,screen and (min-width:62em){.frame-space--before-half{padding-top:3.75rem}}.frame-space--before-full{padding-top:3.75rem}@media print,screen and (min-width:62em){.frame-space--before-full{padding-top:7.5rem}}.frame-space--after-full{padding-bottom:3.75rem}@media print,screen and (min-width:62em){.frame-space--after-full{padding-bottom:7.5rem}}.frame-space--after-half{padding-bottom:1.875rem}@media print,screen and (min-width:62em){.frame-space--after-half{padding-bottom:3.75rem}}.frame-space--after-fourth{padding-bottom:1.875rem}.frame-space--after-none{padding-bottom:0}.frame__header{flex:0 0 100%;max-width:100%;padding-right:1.25rem;padding-left:1.25rem;margin:auto;width:75rem}@media print,screen and (min-width:62em){.frame__header{padding-right:.9375rem;padding-left:.9375rem}}.ce-above .frame__header,.ce-below .frame__header,.ce-intext .frame__header{padding-left:0;padding-right:0}.ce-text,.ce-textpic{max-width:75rem;margin-right:auto;margin-left:auto;display:flex;flex-flow:row wrap;justify-content:space-between;margin-bottom:-3.5rem}.ce-bodytext{flex:0 0 100%;max-width:100%;padding-right:1.25rem;padding-left:1.25rem;align-self:center;margin-bottom:1.875rem;position:relative}@media print,screen and (min-width:62em){.ce-bodytext{padding-right:.9375rem;padding-left:.9375rem}}@media print,screen and (min-width:48em){.ce-intext .ce-gallery+.ce-bodytext{flex:0 0 58.3333333333%;max-width:58.3333333333%}}@media print,screen and (min-width:62em){.ce-intext .ce-gallery+.ce-bodytext{flex:0 0 50%;max-width:50%}}.ce-right .ce-bodytext{order:-1}.ce-below .ce-bodytext{order:-1}.ce-row{margin-right:-1.25rem;margin-left:-1.25rem;display:flex;flex-flow:row wrap;padding-right:.9375rem;padding-left:.9375rem}@media print,screen and (min-width:36em){.ce-row{margin-right:-1.25rem;margin-left:-1.25rem}}@media print,screen and (min-width:48em){.ce-row{margin-right:-1.25rem;margin-left:-1.25rem}}@media print,screen and (min-width:62em){.ce-row{margin-right:-.9375rem;margin-left:-.9375rem}}@media print,screen and (min-width:75em){.ce-row{margin-right:-.9375rem;margin-left:-.9375rem}}@media print,screen and (min-width:87.5em){.ce-row{margin-right:-.9375rem;margin-left:-.9375rem}}@media print,screen and (min-width:62em){.ce-row{padding-right:.625rem;padding-left:.625rem}}.ce-row+.ce-row{margin-top:1.625rem}.ce-above [data-ce-columns] .ce-row,.ce-below [data-ce-columns] .ce-row{margin-bottom:-1.625rem}.ce-column{flex:0 0 100%;max-width:100%;padding-right:.3125rem;padding-left:.3125rem}[data-ce-columns] .ce-column{margin-bottom:1.625rem}[data-ce-columns] .ce-column:last-child:not(:first-child){margin-bottom:0}@media print,screen and (min-width:48em){[data-ce-columns] .ce-column{flex:1 1 0px;min-width:50%}}@media print,screen and (min-width:48em){[data-ce-columns] .ce-column{min-width:25%}}.ce-gallery{flex:0 0 100%;max-width:100%;padding-right:1.25rem;padding-left:1.25rem;margin-bottom:1.875rem}@media print,screen and (min-width:62em){.ce-gallery{padding-right:.9375rem;padding-left:.9375rem}}@media print,screen and (min-width:48em){.ce-intext .ce-gallery{flex:0 0 41.6666666667%;max-width:41.6666666667%}}.ce-gallery img{border-radius:1px;margin:0}.ce-gallery.ce-border img{border:1px solid #f5f5f5}.ce-subheader{letter-spacing:.14em;color:#434342;display:block;font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;font-size:1.0625rem;font-weight:400;line-height:1.375rem;margin-top:.25rem}.ce-subheader--above{margin:0 0 .125rem}.ce-table{overflow-x:auto}.stage{background-color:#75b94e;color:#fff}.stage__row{margin-top:-5rem;padding-top:5rem;position:relative;z-index:0}@media print,screen and (min-width:62em){.stage__row{margin-bottom:3.125rem;margin-top:-6.875rem;padding-top:6.875rem}}@media print,screen and (min-width:75em){.stage__row{margin-top:-8.4375rem;padding-top:8.4375rem}}@media print,screen and (min-width:62em){.stage__row:before{background-color:#fff;bottom:0;content:"";display:block;left:75%;margin-left:.9375rem;position:absolute;right:calc(-50vw - 37.5rem);top:0;z-index:-1}}.stage__content{flex:0 0 100%;max-width:100%;padding-right:0;padding-left:0;display:flex;flex-flow:row wrap;padding-bottom:3.4375rem;padding-top:2.8125rem}@media print,screen and (min-width:62em){.stage__content{flex:0 0 58.3333333333%;max-width:58.3333333333%}}.stage__partner{background-color:#fff;border-radius:1.25rem;display:table;margin-bottom:1.375rem;padding:1.125rem 1.375rem}@media print,screen and (max-width:61.99875em){.stage__partner{border-radius:.625rem;max-width:9.375rem;padding:.5625rem .6875rem}}.stage__partner img{margin:0}.stage__text{flex:0 0 100%;max-width:100%;padding-right:1.25rem;padding-left:1.25rem}@media print,screen and (min-width:62em){.stage__text{padding-right:.9375rem;padding-left:.9375rem}}@media print,screen and (min-width:62em){.stage__text{font-size:1.25rem;line-height:1.5rem;padding-right:28.5714285714%}}.stage__text p:last-of-type{margin-bottom:2.125rem}.stage__header{letter-spacing:.03em;font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;font-size:1.625rem;line-height:1.2}@media print,screen and (min-width:62em){.stage__header{font-size:3.125rem;line-height:1}}.stage__media{flex:0 0 100%;max-width:100%;padding-right:1.25rem;padding-left:1.25rem;display:none}@media print,screen and (min-width:62em){.stage__media{padding-right:.9375rem;padding-left:.9375rem}}@media print,screen and (min-width:62em){.stage__media{flex:0 0 41.6666666667%;max-width:41.6666666667%;display:block;margin-bottom:-3.125rem}}.stage__media img{display:block;margin:0}.stage__contact{flex:0 0 100%;max-width:100%;padding-right:1.25rem;padding-left:1.25rem;align-self:flex-end;display:none;padding-top:3.4375rem}@media print,screen and (min-width:62em){.stage__contact{padding-right:.9375rem;padding-left:.9375rem}}@media print,screen and (min-width:48em){.stage__contact{display:block}}@media print,screen and (min-width:62em){.stage__contact{padding-right:14.2857142857%}}.button{display:inline-block;vertical-align:middle;margin:.5rem 0;padding:.625rem 1.125rem;border:1px solid transparent;border-radius:2em;transition:border .1s,color .1s,background .1s ease-in-out,box-shadow .3s ease-in-out;font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;font-size:1.0625rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer;background-color:#75b94e;color:#fff;cursor:pointer}[data-whatinput=mouse] .button{outline:0}@media print,screen and (min-width:62em){.button{font-size:1.25rem;padding-bottom:.5rem;padding-top:.5rem}}.button:not(:last-child){margin-right:.625rem}.button--light{background-color:#96c777}.button:active,.button:focus,.button:hover{background-color:#73a854;color:#fff;outline:0;text-decoration:none}.button[href^=mailto]{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.button[disabled],.button[readonly]{background-color:#d9d9d9;color:#8e8e8e;cursor:not-allowed}.button[disabled]:active,.button[disabled]:focus,.button[disabled]:hover,.button[readonly]:active,.button[readonly]:focus,.button[readonly]:hover{background-color:#d9d9d9;color:#8e8e8e}.network{display:flex;align-items:flex-end}.network__header{letter-spacing:.14em;font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;font-size:1.0625rem;line-height:1;margin-right:1.125rem;text-indent:2px}.network__list{display:flex;flex:1 1 auto;margin:0 0 .125rem;max-width:100%}.network__list:before{border-bottom:1px solid rgba(142,142,142,.5);content:"";display:block;flex:1 1 auto;margin-bottom:.0625rem;margin-right:1.125rem}.stage .network__list:before{border-bottom-color:rgba(255,255,255,.5)}.network__list li{border:0;display:block;flex:0 1 0px;padding:0}.network__list li:before{content:none}.network__list li:not(:last-child){margin-right:1.125rem}.network__link{color:inherit;display:block;opacity:.6;text-decoration:none}.network__link:active,.network__link:focus,.network__link:hover{color:inherit;opacity:1}.network__link svg{display:block;height:1.375rem;width:1.375rem}.contact__row{align-items:flex-end}.contact__media{display:none;position:relative;z-index:1}@media print,screen and (min-width:62em){.contact__media{flex:0 0 41.6666666667%;max-width:41.6666666667%;display:block;margin-bottom:2.8125rem}}@media print,screen and (min-width:75em){.contact__media{margin-left:0}}.contact__media img{margin:0}@media print,screen and (min-width:62em){.contact__content{flex:0 0 83.3333333333%;max-width:83.3333333333%;padding-right:1.25rem;padding-left:1.25rem;margin-left:-25%}}@media print,screen and (min-width:62em) and (min-width:62em){.contact__content{padding-right:.9375rem;padding-left:.9375rem}}.contact__nest{margin-right:-1.25rem;margin-left:-1.25rem}@media print,screen and (min-width:36em){.contact__nest{margin-right:-1.25rem;margin-left:-1.25rem}}@media print,screen and (min-width:48em){.contact__nest{margin-right:-1.25rem;margin-left:-1.25rem}}@media print,screen and (min-width:62em){.contact__nest{margin-right:-.9375rem;margin-left:-.9375rem}}@media print,screen and (min-width:75em){.contact__nest{margin-right:-.9375rem;margin-left:-.9375rem}}@media print,screen and (min-width:87.5em){.contact__nest{margin-right:-.9375rem;margin-left:-.9375rem}}@media print,screen and (min-width:62em){.contact__nest{display:flex}}@media print,screen and (min-width:62em){.contact__nest:before{background-color:#f5f5f5;content:"";display:block;padding-left:30%}}.contact__text{padding-right:1.25rem;padding-left:1.25rem;background-color:#f5f5f5;flex:1 1 auto;padding-bottom:3.125rem;padding-top:3.125rem}@media print,screen and (min-width:62em){.contact__text{padding-right:3.125rem;padding-left:3.125rem}}@media print,screen and (min-width:62em){.contact__text{margin-right:.9375rem}}.contact__header{letter-spacing:.03em;font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;margin-bottom:2.1875rem;font-size:1.625rem;line-height:1.2}@media print,screen and (min-width:62em){.contact__header{font-size:3.125rem;line-height:1}}.contact__header span{letter-spacing:.14em;color:#434342;display:block;font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;font-size:1.0625rem;line-height:1.375rem;margin-top:.625rem}.scrolltop{padding-right:calc(50% - 46.5625rem);position:fixed;z-index:99;bottom:1.25rem;right:1.25rem}@media print,screen and (min-width:62em){.scrolltop{bottom:.9375rem;right:.9375rem}}.scrolltop__button{background-color:#96c777;border-radius:50%;color:#fff;cursor:pointer;height:2.8125rem;opacity:0;text-decoration:none;transform:translateY(100%);transition:background-color .2s,opacity .2s,transform .2s,visibility .2s;visibility:hidden;width:2.8125rem}.scrolltop__button--show{opacity:1;transform:translateY(0);visibility:visible}.scrolltop__button.active,.scrolltop__button:focus,.scrolltop__button:hover{background-color:#73a854;color:#fff}.scrolltop__button svg{display:block;margin:auto;width:1rem}.site__main+.partner{margin-bottom:5.625rem;margin-top:-1.875rem}.partner__header{flex:0 0 100%;max-width:100%;letter-spacing:.14em;font-family:CrimsonText,Georgia,Times,"Times New Roman",serif;font-size:1.0625rem;line-height:1.375rem;margin-bottom:1.5625rem;text-align:center}.partner__col{padding-right:1.25rem;padding-left:1.25rem;flex:0 1 auto}@media print,screen and (min-width:62em){.partner__col{padding-right:.9375rem;padding-left:.9375rem}}.partner__link{display:block;max-width:9.4375rem;width:100%}@media print,screen and (min-width:62em){.partner__link{max-width:12.59375rem}}.partner__link img{margin:0}
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3VuaXQuc2NzcyIsImFic3RyYWN0L192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL190ZXh0LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19jaGVja2JveC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fZm9ybXMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2xhYmVsLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19oZWxwLXRleHQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZm9ybXMvX2lucHV0LWdyb3VwLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19maWVsZHNldC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9mb3Jtcy9fc2VsZWN0LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2Zvcm1zL19lcnJvci5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2JyZWFrcG9pbnQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fY29sb3Iuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX3Jvdy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19ndXR0ZXIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19mbGV4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyIsInBhcnRpYWxzL19mb250cy5zY3NzIiwicGFydGlhbHMvX3R5cG8uc2NzcyIsImFic3RyYWN0L19taXhpbnMuc2NzcyIsInBhcnRpYWxzL19sYXlvdXQuc2NzcyIsIi4uL2NvbXBvbmVudC9oZWFkZXIvaGVhZGVyLnNjc3MiLCIuLi9jb21wb25lbnQvbmF2bWFpbi9uYXZtYWluLnNjc3MiLCIuLi9jb21wb25lbnQvZm9vdGVyL2Zvb3Rlci5zY3NzIiwiLi4vY29tcG9uZW50L3RyaWdnZXIvdHJpZ2dlci5zY3NzIiwiLi4vY29tcG9uZW50L2ZyYW1lL2ZyYW1lLnNjc3MiLCIuLi9jb21wb25lbnQvY2UvY2Uuc2NzcyIsIi4uL2NvbXBvbmVudC9zdGFnZS9zdGFnZS5zY3NzIiwiLi4vY29tcG9uZW50L2J1dHRvbi9idXR0b24uc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9uLnNjc3MiLCIuLi9jb21wb25lbnQvbmV0d29yay9uZXR3b3JrLnNjc3MiLCIuLi9jb21wb25lbnQvY29udGFjdC9jb250YWN0LnNjc3MiLCIuLi9jb21wb25lbnQvc2Nyb2xsdG9wL3Njcm9sbHRvcC5zY3NzIiwiLi4vY29tcG9uZW50L3BhcnRuZXIvcGFydG5lci5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJpQkFHRSw0RUFRQSxLQUNFLFlBQUEsS0FDQSx5QkFBQSxLQVFGLEtBQ0UsT0FBQSxFQU1GLEdBQ0UsVUFBQSxJQUNBLE9BQUEsTUFBQSxFQVNGLEdBQ0UsV0FBQSxZQUNBLE9BQUEsRUFDQSxTQUFBLFFBTUYsSUFDRSxZQUFBLFNBQUEsQ0FBQSxVQUNBLFVBQUEsSUFRRixFQUNFLGlCQUFBLFlBTUYsWUFDRSxjQUFBLEVBQ0EsZ0JBQUEsVUFBQSxPQUtGLEVBQUEsT0FFRSxZQUFBLE9BTUYsS0FBQSxJQUFBLEtBR0UsWUFBQSxTQUFBLENBQUEs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LGNBQUEsR0VXRixZQ25CRixnQkFoQlEsV0RtQ04sYUNuQkYsZ0JBaEJRLFNEbUNOLGNDbkJGLGdCQWhCUSxPRG1DTixlQ25CRixnQkFoQlEsY0RtQ04sY0NuQkYsZ0JBaEJRLGFENENGLCtCQzVCTixnQkFoQlEsV0Q0Q0YsZ0NDNUJOLGdCQWhCUSxTRDRDRixpQ0M1Qk4sZ0JBaEJRLE9EcUROLFdDcENGLFlBUlEsV0RnRE4sZ0JDeEJGLFdBUFEsV0QyQk4sY0NwQ0YsWUFSUSxTRGdETixtQkN4QkYsV0FQUSxTRDJCTixjQ3BDRixZQVJRLE9EZ0ROLG1CQ3hCRixXQVBRLE9EMkJOLGVDcENGLFlBUlEsUURnRE4sb0JDeEJGLFdBUFEsUURxQ1IscUJDL0NBLGdCQWhCUSxPQWlCUixZQVJRLE9Ed0ROLGNBQUEsT0FNRSxZQ2hDSixNRCtCZSxFQUNYLFlDaENKLE1EK0JlLEVBQ1gsWUNoQ0osTUQrQmUsRUFDWCxZQ2hDSixNRCtCZSxFQUNYLFlDaENKLE1EK0JlLEVBQ1gsWUNoQ0osTUQrQmUsRVRzRVQsYUFBQSw0QlNyRUYsWUNoQ0osTUQrQmUsRUFDWCxZQ2hDSixNRCtCZSxFQUNYLFlDaENKLE1EK0JlLEVBQ1gsWUNoQ0osTUQrQmUsRUFDWCxZQ2hDSixNRCtCZSxFQUNYLFlDaENKLE1EK0JlLEdUc0VULGFBQUEsNEJTckVGLFlDaENKLE1EK0JlLEVBQ1gsWUNoQ0osTUQrQmUsRUFDWCxZQ2hDSixNRCtCZSxFQUNYLFlDaENKLE1EK0JlLEVBQ1gsWUNoQ0osTUQrQmUsRUFDWCxZQ2hDSixNRCtCZSxHVHNFVCxhQUFBLDRCU3JFRixZQ2hDSixNRCtCZSxFQUNYLFlDaENKLE1EK0JlLEVBQ1gsWUNoQ0osTUQrQmUsRUFDWCxZQ2hDSixNRCtCZSxFQUNYLFlDaENKLE1EK0JlLEVBQ1gsWUNoQ0osTUQrQmUsR1RzRVQsYUFBQSw0QlNyRUYsWUNoQ0osTUQrQmUsRUFDWCxZQ2hDSixNRCtCZSxFQUNYLFlDaENKLE1EK0JlLEVBQ1gsWUNoQ0osTUQrQmUsRUFDWCxZQ2hDSixNRCtCZSxFQUNYLFlDaENKLE1E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QSxRQUNBLE9BQUEsVUFDQSxRQUFBLEVBQ0EsZ0JBQUEsS0FDQSxVQUFBLGlCQUNBLFdBQUEsaUJBQUEsR0FBQSxDQUFBLFFBQUEsR0FBQSxDQUFBLFVBQUEsR0FBQSxDQUFBLFdBQUEsSUFDQSxXQUFBLE9BQ0EsTUFBQSxVQUVBLHlCQUNJLFFBQUEsRUFDQSxVQUFBLGNBQ0EsV0FBQSxRQUdKLDBCQUFBLHlCQUFBLHlCQUdJLGlCQUFBLFFBQ0EsTUFBQSxLQUdKLHVCQUNJLFFBQUEsTUFDQSxPQUFBLEtBQ0EsTUFBQSxLQ3RDUixxQkFFUSxjQUFBLFNBQ0EsV0FBQSxVQUlSLGlCdkJrR0YsS0FBQSxFQUFBLEVBQUEsS0FJRSxVQUFBLEtTL0dBLGVBQUEsTWNZSSxZeEM4Q1csV0FBQSxDQUFBLE9BQUEsQ0FBQSxLQUFBLENBQUEsaUJBQUEsQ0FBQSxNd0M3Q1gsVUFBQSxVQUNBLFlBQUEsU0FDQSxjQUFBLFVBQ0EsV0FBQSxPQUlKLGNyQlBBLGNBRlUsUUFHVixhQUhVLFFxQldOLEtBQUEsRUFBQSxFQUFBLEs1Qm9KQSxhQUFBLDRCNEJ0SkosY3JCUEEsY0FGVSxTQUdWLGFBSFUsVXFCY1YsZUFDSSxRQUFBLE1BQ0EsVUFBQSxVQUNBLE1BQUEsSzVCOElBLGFBQUEsNEI0QmpKSixlQU1RLFVBQUEsYUFHSixtQkFDSSxPQUFBIiwiZmlsZSI6InNjcmVlbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby12ZW5kb3ItcHJlZml4ZXNcblxuQG1peGluIGZvdW5kYXRpb24tbm9ybWFsaXplKCkge1xuICAvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbiAgLy8gRG9jdW1lbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuXG4gIGh0bWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG4gIH1cblxuICAvLyBTZWN0aW9uc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cblxuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gIC8vIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG4gIH1cblxuICAvLyBHcm91cGluZyBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgLy8gMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvLyAxXG4gICAgaGVpZ2h0OiAwOyAvLyAxXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IC8vIDJcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cblxuICBwcmUge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMWVtOyAvLyAyXG4gIH1cblxuICAvLyBUZXh0LWxldmVsIHNlbWFudGljc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cblxuICBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8vIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gIC8vIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IDA7IC8vIDFcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG5cbiAgYixcbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGNvZGUsXG4gIGtiZCxcbiAgc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyAxXG4gICAgZm9udC1zaXplOiAxZW07IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAvLyBhbGwgYnJvd3NlcnMuXG5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgfVxuXG4gIHN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG4gIH1cblxuICAvLyBFbWJlZGRlZCBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cblxuICBpbWcge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIC8vIEZvcm1zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cblxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8vIDFcbiAgICBmb250LXNpemU6IDEwMCU7IC8vIDFcbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLy8gMVxuICAgIG1hcmdpbjogMDsgLy8gMlxuICB9XG5cbiAgLy8gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gIC8vIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG5cbiAgYnV0dG9uLFxuICBpbnB1dCB7IC8vIDFcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAvLyAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uLFxuICBzZWxlY3QgeyAvLyAxXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgW3R5cGU9XCJidXR0b25cIl0sXG4gIFt0eXBlPVwicmVzZXRcIl0sXG4gIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuXG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgZmllbGRzZXQge1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gIC8vIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgLy8gMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAvLyAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cblxuICBsZWdlbmQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgICBjb2xvcjogaW5oZXJpdDsgLy8gMlxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAxXG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gM1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8vIDFcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG5cbiAgcHJvZ3Jlc3Mge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICAvLyAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG5cbiAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIHBhZGRpbmc6IDA7IC8vIDJcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cblxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cblxuICBbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIDFcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLy8gMlxuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAvLyAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG5cbiAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDFcbiAgICBmb250OiBpbmhlcml0OyAvLyAyXG4gIH1cblxuICAvLyBJbnRlcmFjdGl2ZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG5cbiAgZGV0YWlscyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICB9XG5cbiAgLy8gTWlzY1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cblxuICB0ZW1wbGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuXG4gIFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gRGlzYWJsZSBvdXRsaW5lIHdoZW4gaW50ZW50IGlzIGNsZWFybHkgbW91c2UgYW5kIHRvdWNoXG4gIFtkYXRhLXdoYXRpbnRlbnQ9XCJtb3VzZVwiXSxcbiAgW2RhdGEtd2hhdGludGVudD1cInRvdWNoXCJdLFxuICBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSxcbiAgW2RhdGEtd2hhdGlucHV0PVwidG91Y2hcIl0ge1xuICAgICosICo6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlIGlPUyBjYWxsb3V0cyB3aGVuIGRyYWdnYWJsZSBpcyBmYWxzZVxuICBbZHJhZ2dhYmxlPWZhbHNlXSB7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIFwicHJpbWFyeVwiOiAjMTc3OWJhLFxuICBcInNlY29uZGFyeVwiOiAjNzY3Njc2LFxuICBcInN1Y2Nlc3NcIjogIzNhZGI3NixcbiAgXCJ3YXJuaW5nXCI6ICNmZmFlMDAsXG4gIFwiYWxlcnRcIjogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHNhZmUgcGFkZGluZyBvbiB0aGUgYm9keSBmb3Igbm9uLXJlY3Rhbmd1bGFyIGRldmljZXMgKGkuZS4gcGhvbmVzIHdpdGggbm90Y2hlcylcbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1zYWZlLXBhZGRpbmc6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgYW50aWFsaWFzZWQgdHlwZSwgdXNpbmcgdGhlIGAtd2Via2l0LWZvbnQtc21vb3RoaW5nYCBhbmQgYC1tb3otb3N4LWZvbnQtc21vb3RoaW5nYCBDU1MgcHJvcGVydGllcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBtYXJnaW4gb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwb3NpdGlvbmluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wb3NpdGlvbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBub3JtYWwgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gQ2FuIGJlIG92ZXJ3cml0dGVuIGF0IGluZGl2aWR1YWwgbWVudSBjb21wb25lbnQgbGV2ZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1lbnUtcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBOZXN0ZWQgbWFyZ2luIGZvciBzdWJtZW51LlxuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlZCByZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBwcm90b3R5cGVzIGlmIGFwcGxpY2FibGVcbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCdXR0b24gY3Vyc29yJ3MgdmFsdWUsIGBhdXRvYCBieSBkZWZhdWx0XG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZSB0aGF0IGNvbnRhaW5zIHRoZSBmbGV4IGp1c3RpZnlpbmcgb3B0aW9uc1xuJC16Zi1mbGV4LWp1c3RpZnk6IC16Zi1mbGV4LWp1c3RpZnkoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbik7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIEBpZiAoJGJvZHktc2FmZS1wYWRkaW5nKSB7XG4gICAgICAvLyB1c2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gYWNjb3VudCBmb3Igbm9uLXJlY3Rhbmd1bGFyIGRpc3BsYXlzIGUuZy4gcGhvbmVzIHdpdGggbm90Y2hlc1xuICAgICAgcGFkZGluZy10b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpO1xuICAgICAgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcbiAgICAgIHBhZGRpbmctbGVmdDogZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIH1cblxuICAvLyBNYWtlIHJlc2V0IGluaGVyaXQgZm9udC1mYW1pbHkgaW5zdGVhZCBvZiBzZXR0aW5ncyBzYW5zLXNlcmlmXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcbiAgLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5cbiR1bml0LXdhcm5pbmdzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuIGRpdmlkZSgkbnVtLCAkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogZGl2aWRlKCRiYXNlLCAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEBpZiAkdW5pdC13YXJuaW5ncyB7XG4gICAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkgKyAnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgfVxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIGVtIGludG8gcmVtIGlmIHNvbWVvbmUgaGFuZHMgb3ZlciAnZW0nc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogMXJlbTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtIG9yIGVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3JlbScge1xuICAgICR2YWx1ZTogZGl2aWRlKHN0cmlwLXVuaXQoJHZhbHVlKSwgc3RyaXAtdW5pdCgkYmFzZSkpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLiBJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG5AZnVuY3Rpb24gdW5pdGxlc3MtY2FsYygkdmFsdWUsICRiYXNlOiBudWxsKSB7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiBkaXZpZGUoJGJhc2UsIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gTm93IGxldCdzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogZGl2aWRlKCR2YWx1ZSwgMTAwJSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICAvLyAncHgnXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyB7XG4gICAgQHJldHVybiBkaXZpZGUoc3RyaXAtdW5pdCgkdmFsdWUpLCBzdHJpcC11bml0KCRiYXNlKSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlciB0aGFuIDEwIGFyZSBtZWFudCB0byBiZSBhYnNvbHV0ZSBpbiAncHgnXG4gIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAoJHZhbHVlID4gMTApIHtcbiAgICBAcmV0dXJuIGRpdmlkZSgkdmFsdWUsIHN0cmlwLXVuaXQoJGJhc2UpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuLyoqXG4gKiB2YXJpYWJsZXMuc2Nzc1xuICpcbiAqIEBwYWNrYWdlIFRJTERBXG4gKiBAdmVyc2lvbiAwLjAuMVxuICovXG5cbi8qKlxuICogQ29sb3JzXG4gKiBodHRwczovL2NoaXIuYWcvcHJvamVjdHMvbmFtZS10aGF0LWNvbG9yL1xuICovXG5cbi8qIEBjb2xvciAqL1xuJGNvbG9yczogKFxuICAgICdibGFjayc6ICM0MzQzNDIsXG4gICAgJ2dyZXktMzAwJzogI2Y1ZjVmNSxcbiAgICAnZ3JleS00MDAnOiAjZDlkOWQ5LFxuICAgICdncmV5LTYwMCc6ICNiNGI0YjMsXG4gICAgJ2dyZXktNzAwJzogIzhlOGU4ZSxcbiAgICAnY3VjdW1iZXInOiAjNzNhODU0LFxuICAgICdtYW50aXMnOiAjNzViOTRlLFxuICAgICdvbGl2aW5lJzogIzk2Yzc3NyxcbiAgICAnd2hpdGUnOiAjZmZmXG4pO1xuLyogL0Bjb2xvciAqL1xuXG4vKipcbiAqIEJyZWFrcG9pbnRzXG4gKi9cbiRwb2ludHM6IChcbiAgICB4czogMCxcbiAgICBzbTogNTc2LFxuICAgIG1kOiA3NjgsXG4gICAgbGc6IDk5MixcbiAgICB4bDogMTIwMCxcbiAgICB4eGw6IDE0MDBcbik7XG5cbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcbiAgICB4czogNDAsXG4gICAgbGc6IDMwXG4pICFkZWZhdWx0O1xuXG4kYnJlYWtwb2ludC1jbGFzc2VzOiBtYXAta2V5cygkcG9pbnRzKSAhZGVmYXVsdDtcblxuLy8gbWVyZ2UgZGVmYXVsdCBicmVha3BvaW50c1xuJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJHBvaW50cywgKFxuICAgIHNtYWxsOiBtYXAtZ2V0KCRwb2ludHMsIHhzKSxcbiAgICBtZWRpdW06IG1hcC1nZXQoJHBvaW50cywgbWQpLFxuICAgIGxhcmdlOiBtYXAtZ2V0KCRwb2ludHMsIGxnKSxcbikpICFkZWZhdWx0O1xuXG4kZ3JpZC1jb2x1bW4tYWxpYXM6IGZhbHNlICFkZWZhdWx0O1xuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHhzICFkZWZhdWx0O1xuXG4kZ2xvYmFsLXdpZHRoOiByZW0tY2FsYygxMjAwKTtcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogbm9ybWFsICFkZWZhdWx0O1xuJGdsb2JhbC13ZWlnaHQtYm9sZDogNjAwICFkZWZhdWx0O1xuJGdsb2JhbC1yYWRpdXM6IHJlbS1jYWxjKDEpICFkZWZhdWx0O1xuXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IHJlbS1jYWxjKDI2KSAhZGVmYXVsdDtcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjYpICFkZWZhdWx0O1xuXG4kYm9keS1mb250LWZhbWlseTogU291cmNlU2Fuc1BybywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFkZWZhdWx0O1xuJGJvZHktZm9udC1jb2xvcjogY29sb3IoJ2JsYWNrJykgIWRlZmF1bHQ7XG5cbiRoZXJvLWZvbnQtZmFtaWx5OiBDcmltc29uVGV4dCwgR2VvcmdpYSwgVGltZXMsICdUaW1lcyBOZXcgUm9tYW4nLCBzZXJpZjtcbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmdW5jdGlvbnNcbi8vLy9cblxuLy8gUGF0Y2ggdG8gZml4IGlzc3VlICMxMjA4MFxuJC16Zi1icC12YWx1ZTogbnVsbDtcblxuLy8vIENyZWF0ZXMgYW4gaW5uZXIgYm94LXNoYWRvdyBmb3Igb25seSBvbmUgc2lkZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2lkZSAtIFNpZGUgdGhlIHNoYWRvdyBpcyBzdXBwb3NlZCB0byBhcHBlYXIuIENhbiBiZSBgdG9wYCwgYGxlZnRgLCBgcmlnaHRgIG9yIGBib3R0b21gLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc2l6ZSAtIFdpZHRoIGZvciB0aGUgdGFyZ2V0IHNpZGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIC0gQ29sb3Igb2YgdGhlIHNoYWRvdy5cbkBtaXhpbiBpbm5lci1zaWRlLXNoYWRvdyhcbiAgJHNpZGU6IGJvdHRvbSxcbiAgJHNpemU6IDIwcHgsXG4gICRjb2xvcjogcmdiYSgkYmxhY2ssIDAuMjUpXG4pIHtcblxuICAkaGVscGVyOiByb3VuZCgkc2l6ZSAqIDAuNjUpO1xuXG4gIEBpZiAoJHNpZGUgPT0gdG9wKSB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAkaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGxlZnQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAkaGVscGVyIDAgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gcmlnaHQpIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAoLTEpKiRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSBib3R0b20pIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICgtMSkqJGhlbHBlciAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9XG59XG5cbi8vLyBDcmVhdGVzIGEgQ1NTIHRyaWFuZ2xlLCB3aGljaCBjYW4gYmUgdXNlZCBmb3IgZHJvcGRvd24gYXJyb3dzLCBkcm9wZG93biBwaXBzLCBhbmQgbW9yZS4gVXNlIHRoaXMgbWl4aW4gaW5zaWRlIGEgYCY6OmJlZm9yZWAgb3IgYCY6OmFmdGVyYCBzZWxlY3RvciwgdG8gYXR0YWNoIHRoZSB0cmlhbmdsZSB0byBhbiBleGlzdGluZyBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR0cmlhbmdsZS1zaXplIC0gV2lkdGggb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICR0cmlhbmdsZS1jb2xvciAtIENvbG9yIG9mIHRoZSB0cmlhbmdsZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR0cmlhbmdsZS1kaXJlY3Rpb24gLSBEaXJlY3Rpb24gdGhlIHRyaWFuZ2xlIHBvaW50cy4gQ2FuIGJlIGB1cGAsIGByaWdodGAsIGBkb3duYCwgb3IgYGxlZnRgLlxuQG1peGluIGNzcy10cmlhbmdsZShcbiAgJHRyaWFuZ2xlLXNpemUsXG4gICR0cmlhbmdsZS1jb2xvcixcbiAgJHRyaWFuZ2xlLWRpcmVjdGlvblxuKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogJHRyaWFuZ2xlLXNpemU7XG5cbiAgY29udGVudDogJyc7XG5cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGRvd24pIHtcbiAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogJHRyaWFuZ2xlLWNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSB1cCkge1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHJpZ2h0KSB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJHRyaWFuZ2xlLWNvbG9yO1xuICB9XG4gIEBpZiAoJHRyaWFuZ2xlLWRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBtZW51IGljb24gd2l0aCBhIHNldCB3aWR0aCwgaGVpZ2h0LCBudW1iZXIgb2YgYmFycywgYW5kIGNvbG9ycy4gVGhlIG1peGluIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiB0aGUgYmFycyB0byBkZXRlcm1pbmUgc3BhY2luZy4gPGRpdiBjbGFzcz1cImRvY3MtZXhhbXBsZS1idXJnZXJcIj48L2Rpdj5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yLWhvdmVyIFskZGFyay1ncmF5XSAtIENvbG9yIHRvIHVzZSB3aGVuIHRoZSBpY29uIGlzIGhvdmVyZWQgb3Zlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsyMHB4XSAtIFdpZHRoIG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkaGVpZ2h0IFsxNnB4XSAtIEhlaWdodCBvZiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdlaWdodCBbMnB4XSAtIEhlaWdodCBvZiBpbmRpdmlkdWFsIGJhcnMgaW4gdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXJzIFszXSAtIE51bWJlciBvZiBiYXJzIGluIHRoZSBpY29uLlxuQG1peGluIGhhbWJ1cmdlcihcbiAgJGNvbG9yOiAkYmxhY2ssXG4gICRjb2xvci1ob3ZlcjogJGRhcmstZ3JheSxcbiAgJHdpZHRoOiAyMHB4LFxuICAkaGVpZ2h0OiAxNnB4LFxuICAkd2VpZ2h0OiAycHgsXG4gICRiYXJzOiAzXG4pIHtcbiAgLy8gYm94LXNoYWRvdyBDU1Mgb3V0cHV0XG4gICRzaGFkb3c6ICgpO1xuICAkaG92ZXItc2hhZG93OiAoKTtcblxuICAvLyBTcGFjaW5nIGJldHdlZW4gYmFycyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSB0b3RhbCBoZWlnaHQgb2YgdGhlIGljb24gYW5kIHRoZSB3ZWlnaHQgb2YgZWFjaCBiYXJcbiAgJHNwYWNpbmc6IGRpdmlkZSgkaGVpZ2h0IC0gKCR3ZWlnaHQgKiAkYmFycyksICRiYXJzIC0gMSk7XG5cbiAgQGlmIHVuaXQoJHNwYWNpbmcpID09ICdweCcge1xuICAgICRzcGFjaW5nOiBmbG9vcigkc3BhY2luZyk7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAkb2Zmc2V0OiAoJHdlaWdodCArICRzcGFjaW5nKSAqICgkaSAtIDEpO1xuICAgICRzaGFkb3c6IGFwcGVuZCgkc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3IsIGNvbW1hKTtcbiAgfVxuXG4gIC8vIEljb24gY29udGFpbmVyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogJHdpZHRoO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAvLyBJY29uIGJhcnNcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogJHdlaWdodDtcblxuICAgIGJhY2tncm91bmQ6ICRjb2xvcjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93O1xuXG4gICAgY29udGVudDogJyc7XG4gIH1cblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaWYgJGNvbG9yLWhvdmVyIHtcbiAgICAvLyBHZW5lcmF0ZSBDU1NcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRiYXJzIHtcbiAgICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgICAkaG92ZXItc2hhZG93OiBhcHBlbmQoJGhvdmVyLXNoYWRvdywgMCAkb2Zmc2V0IDAgJGNvbG9yLWhvdmVyLCBjb21tYSk7XG4gICAgfVxuXG4gICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWhvdmVyO1xuICAgICAgYm94LXNoYWRvdzogJGhvdmVyLXNoYWRvdztcbiAgICB9XG4gIH1cbn1cblxuLy8vIEFkZHMgYSBkb3dud2FyZC1mYWNpbmcgdHJpYW5nbGUgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIHRvIGFuIGVsZW1lbnQuIFRoZSBpbWFnZSBpcyBmb3JtYXR0ZWQgYXMgYW4gU1ZHLCBtYWtpbmcgaXQgZWFzeSB0byBjaGFuZ2UgdGhlIGNvbG9yLiBCZWNhdXNlIEludGVybmV0IEV4cGxvcmVyIGRvZXNuJ3Qgc3VwcG9ydCBlbmNvZGVkIFNWR3MgYXMgYmFja2dyb3VuZCBpbWFnZXMsIGEgUE5HIGZhbGxiYWNrIGlzIGFsc28gaW5jbHVkZWQuXG4vLy8gVGhlcmUgYXJlIHR3byBQTkcgZmFsbGJhY2tzOiBhIGJsYWNrIHRyaWFuZ2xlIGFuZCBhIHdoaXRlIHRyaWFuZ2xlLiBUaGUgb25lIHVzZWQgZGVwZW5kcyBvbiB0aGUgbGlnaHRuZXNzIG9mIHRoZSBpbnB1dCBjb2xvci5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciBbJGJsYWNrXSAtIENvbG9yIHRvIHVzZSBmb3IgdGhlIHRyaWFuZ2xlLlxuQG1peGluIGJhY2tncm91bmQtdHJpYW5nbGUoJGNvbG9yOiAkYmxhY2spIHtcbiAgJHJnYjogJ3JnYiUyOCN7cm91bmQocmVkKCRjb2xvcikpfSwgI3tyb3VuZChncmVlbigkY29sb3IpKX0sICN7cm91bmQoYmx1ZSgkY29sb3IpKX0lMjknO1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmVyc2lvbj1cIjEuMVwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMzIgMjRcIj48cG9seWdvbiBwb2ludHM9XCIwLDAgMzIsMCAxNiwyNFwiIHN0eWxlPVwiZmlsbDogI3skcmdifVwiPjwvcG9seWdvbj48L3N2Zz4nKTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAwXFwwKSB7XG4gICAgQGlmIGxpZ2h0bmVzcygkY29sb3IpIDwgNjAlIHtcbiAgICAgIC8vIFdoaXRlIHRyaWFuZ2xlXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ0FBQUFBWUNBWUFBQUNiVS84MEFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSXBKUkVGVWVOckVrY2tOZ0RBTUJCZlJrRXQwT2JSQkJkc0dYVURnbVFmSzRYaEgybThjelFBQXkyN1IzdHN3NFFmZTJ4OHVPTzZvWUxiNkdsT29yM0dGK3N3VVJBT21VSitSd3RFSnM5V3ZUR0VZeEJYcUkxTVFBWmhDZlVRS1J6RE1WaitUd3JBSVY2anZTVUVrWUFyMUxTa2N5VEJiL1YrS1lmWDd4QWV1c3Ezc0xEdEdIM2tFR0FDUFdJZmxOWmZoUlFBQUFBQkpSVTVFcmtKZ2dnPT0nKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQmxhY2sgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFNQkpSRUZVZU5yRWxsc09oQ0FNUlZzekM5SWx6VTdLQ21WSFRKc29NV1lNVXRweXY5QmdidVhRQjVaU2RnQllZWTR5Y2dCaXZrOEtZRnNRTWZNaVRUQlA0bzNuVXpDS3pPYWJMSmJMeTIvZzMxZXZHa0FnaW5SNC9aZWdLSDVxWDNiSkNzY0EzdDB4M2tnTzV0UUZ5aGhGZjUweFJxRkxieU1VTkpRemd5akdTL3dnQ3B2S3FrUkJwdVdyRTRWOWQrMUU0ZFBVWHFJZzEwN1NRT0UvMkRSUXhNd1REeWdJSW5WREVUOVQzbENvai82ai9WQ21HalpPbDJsS3BaOEFBd0RRUDd6SWltREdGUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyB0aGUgbWljcm8gY2xlYXJmaXggaGFjayBwb3B1bGFyaXplZCBieSBOaWNvbGFzIEdhbGxhZ2hlci4gSW5jbHVkZSB0aGlzIG1peGluIG9uIGEgY29udGFpbmVyIGlmIGl0cyBjaGlsZHJlbiBhcmUgYWxsIGZsb2F0ZWQsIHRvIGdpdmUgdGhlIGNvbnRhaW5lciBhIHByb3BlciBoZWlnaHQuXG4vLy8gVGhlIGNsZWFyZml4IGlzIGF1Z21lbnRlZCB3aXRoIHNwZWNpZmljIHN0eWxlcyB0byBwcmV2ZW50IGJvcmRlcnMgaW4gZmxleGJveCBlbnZpcm9ubWVudHNcbi8vLyBAbGluayBodHRwOi8vbmljb2xhc2dhbGxhZ2hlci5jb20vbWljcm8tY2xlYXJmaXgtaGFjay8gTWljcm8gQ2xlYXJmaXggSGFja1xuLy8vIEBsaW5rIGh0dHA6Ly9kYW5pc2FkZXNpZ25lci5jb20vYmxvZy9mbGV4Ym94LWNsZWFyLWZpeC1wc2V1ZG8tZWxlbWVudHMvIEZsZXhib3ggZml4XG5AbWl4aW4gY2xlYXJmaXgge1xuICAmOjpiZWZvcmUsXG4gICY6OmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiAnICc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICBvcmRlcjogMTtcbiAgICB9XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cblxuLy8vIEFkZHMgQ1NTIGZvciBhIFwicXVhbnRpdHkgcXVlcnlcIiBzZWxlY3RvciB0aGF0IGF1dG9tYXRpY2FsbHkgc2l6ZXMgZWxlbWVudHMgYmFzZWQgb24gaG93IG1hbnkgdGhlcmUgYXJlIGluc2lkZSBhIGNvbnRhaW5lci5cbi8vLyBAbGluayBodHRwOi8vYWxpc3RhcGFydC5jb20vYXJ0aWNsZS9xdWFudGl0eS1xdWVyaWVzLWZvci1jc3MgUXVhbnRpdHkgUXVlcmllcyBmb3IgQ1NTXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1heCAtIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGRldGVjdC4gVGhlIGhpZ2hlciB0aGlzIG51bWJlciBpcywgdGhlIG1vcmUgQ1NTIHRoYXQncyByZXF1aXJlZCB0byBjb3ZlciBlYWNoIG51bWJlciBvZiBpdGVtcy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRlbGVtIFtsaV0gLSBUYWcgdG8gdXNlIGZvciBzaWJsaW5nIHNlbGVjdG9ycy5cbkBtaXhpbiBhdXRvLXdpZHRoKCRtYXgsICRlbGVtOiBsaSkge1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRtYXgge1xuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkLFxuICAgICY6bnRoLWxhc3QtY2hpbGQoI3skaX0pOmZpcnN0LWNoaWxkIH4gI3skZWxlbX0ge1xuICAgICAgd2lkdGg6IHBlcmNlbnRhZ2UoZGl2aWRlKDEsICRpKSk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBSZW1vdmVzIHRoZSBmb2N1cyByaW5nIGFyb3VuZCBhbiBlbGVtZW50IHdoZW4gYSBtb3VzZSBpbnB1dCBpcyBkZXRlY3RlZC5cbkBtaXhpbiBkaXNhYmxlLW1vdXNlLW91dGxpbmUge1xuICBbZGF0YS13aGF0aW5wdXQ9J21vdXNlJ10gJiB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCB2aXN1YWxseSBoaWRkZW4sIGJ1dCBzdGlsbCBhY2Nlc3NpYmxlIHRvIGtleWJvYXJkcyBhbmQgYXNzaXN0aXZlIGRldmljZXMuXG4vLy8gQGxpbmsgaHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eSBIaWRpbmcgQ29udGVudCBmb3IgQWNjZXNzaWJpbGl0eVxuLy8vIEBsaW5rIGh0dHA6Ly9odWdvZ2lyYXVkZWwuY29tLzIwMTYvMTAvMTMvY3NzLWhpZGUtYW5kLXNlZWsvXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRlbmZvcmNlIC0gSWYgYHRydWVgLCB1c2UgYCFpbXBvcnRhbnRgIG9uIGFwcGxpZWQgcHJvcGVydGllc1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlKFxuICAkZW5mb3JjZTogdHJ1ZVxuKSB7XG4gICRpbXBvcnRhbnQ6IGlmKCRlbmZvcmNlLCAnIWltcG9ydGFudCcsIG51bGwpO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogMXB4ICN7JGltcG9ydGFudH07XG4gIGhlaWdodDogMXB4ICN7JGltcG9ydGFudH07XG4gIHBhZGRpbmc6IDAgI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAjeyRpbXBvcnRhbnR9O1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApICN7JGltcG9ydGFudH07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgI3skaW1wb3J0YW50fTtcbiAgYm9yZGVyOiAwICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBSZXZlcnNlcyB0aGUgQ1NTIG91dHB1dCBjcmVhdGVkIGJ5IHRoZSBgZWxlbWVudC1pbnZpc2libGUoKWAgbWl4aW4uXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZW5mb3JjZSAtIElmIGB0cnVlYCwgdXNlIGAhaW1wb3J0YW50YCBvbiBhcHBsaWVkIHByb3BlcnRpZXNcbkBtaXhpbiBlbGVtZW50LWludmlzaWJsZS1vZmYoXG4gICRlbmZvcmNlOiB0cnVlXG4pIHtcbiAgJGltcG9ydGFudDogaWYoJGVuZm9yY2UsICchaW1wb3J0YW50JywgbnVsbCk7XG5cbiAgcG9zaXRpb246IHN0YXRpYyAjeyRpbXBvcnRhbnR9O1xuICB3aWR0aDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICBoZWlnaHQ6IGF1dG8gI3skaW1wb3J0YW50fTtcbiAgb3ZlcmZsb3c6IHZpc2libGUgI3skaW1wb3J0YW50fTtcbiAgY2xpcDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICN7JGltcG9ydGFudH07XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIHZlcnRpY2FsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLy8vIEhvcml6b250YWxseSBjZW50ZXJzIHRoZSBlbGVtZW50IGluc2lkZSBvZiBpdHMgZmlyc3Qgbm9uLXN0YXRpYyBwYXJlbnQsXG4vLy8gQGxpbmsgaHR0cDovL3d3dy5zaXRlcG9pbnQuY29tL2NlbnRlcmluZy13aXRoLXNhc3MvIENlbnRlcmluZyBXaXRoIFNhc3NcbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG59XG5cbi8vLyBBYnNvbHV0ZWx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGFic29sdXRlLWNlbnRlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cbi8vLyBJdGVyYXRlcyB0aHJvdWdoIGJyZWFrcG9pbnRzIGRlZmluZWQgaW4gYCRicmVha3BvaW50LWNsYXNzZXNgIGFuZCBwcmludHMgdGhlIENTUyBpbnNpZGUgdGhlIG1peGluIGF0IGVhY2ggYnJlYWtwb2ludCdzIG1lZGlhIHF1ZXJ5LiBVc2UgdGhpcyB3aXRoIHRoZSBncmlkLCBvciBhbnkgb3RoZXIgY29tcG9uZW50IHRoYXQgaGFzIHJlc3BvbnNpdmUgY2xhc3Nlcy5cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHNtYWxsIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIHNraXAgdGhlIGBzbWFsbGAgYnJlYWtwb2ludC4gVXNlIHRoaXMgd2l0aCBjb21wb25lbnRzIHRoYXQgZG9uJ3QgcHJlZml4IGNsYXNzZXMgd2l0aCBgc21hbGwtYCwgb25seSBgbWVkaXVtLWAgYW5kIHVwLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzIFt0cnVlXSAtIElmIGBmYWxzZWAsIHRoZSBtaXhpbiB3aWxsIGl0ZXJhdGUgb3ZlciBicmVha3BvaW50cyB3aXRob3V0IGRvaW5nIHRoZSBtZWRpYSBxdWVyeSBpdHNlbGYuIFVzZWZ1bCBmb3IgbW9yZSBjb21wbGV4IG1lZGlhIHF1ZXJ5IGdlbmVyYXRpb24gYXMgaW4gdGhlIG1hcmdpbiBncmlkLlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQoXG4gICRzbWFsbDogdHJ1ZSxcbiAgJGF1dG8taW5zZXJ0LWJyZWFrcG9pbnRzOiB0cnVlXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWVhY2gtYnJlYWtwb2ludC1pbihhdXRvLCAtemYtYm9vbCgkc21hbGwpLCAtemYtYm9vbCgkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMpKSB7XG4gICAgQGNvbnRlbnRcbiAgfTtcbn1cblxuLy8vIEl0ZXJhdGVzIHdpdGggYEBjb250ZW50YCB0aHJvdWdoIHRoZSBnaXZlbiBsaXN0IG9mIGJyZWFrcG9pbnRzIGAkYnJlYWtwb2ludHNgLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TGlzdH0gJGJyZWFrcG9pbnRzIFthdXRvXSAtIEJyZWFrcG9pbnRzIHRvIGl0ZXJhdGVzIG9uLiBJdCBjYW4gYmUgYSBicmVha3BvaW50IG5hbWUsIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgYGF1dG9gIGZvciBhbGwgYnJlYWtwb2ludHMuXG4vLy8gQHBhcmFtIHtCb29sZWFufE51bGx9ICR6ZXJvLWJyZWFrcG9pbnQgW251bGxdIC0gV2hldGhlciB0aGUgemVyby1icmVha3BvaW50IChvZnRlbiBgc21hbGxgKSBtdXN0IGJlIGluY2x1ZGVkLiBJZiBgdHJ1ZWAsIGl0IHdpbGwgYWx3YXlzIGJlIGFkZGVkIHRvIHRoZSBsaXN0IGlmIG5vdCBhbHJlYWR5IHRoZXJlLiBJZiBgZmFsc2VgLCBpdCB3aWxsIGFsd2F5cyBiZSByZW1vdmVkLiBEb2VzIG5vdGhpbmcgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW58S2V5d29yZH0gJG1lZGlhLXF1ZXJpZXMgW3RydWVdIC0gV2hldGhlciBtZWRpYS1xdWVyaWVzIG11c3QgYmUgZ2VuZXJhdGVkLiBJZiBgZm9yLWxpc3RzYCwgb25seSBnZW5lcmF0ZSBtZWRpYS1xdWVyaWVzIHdoZW4gYCRicmVha3BvaW50c2AgaXMgYSBsaXN0LlxuQG1peGluIC16Zi1lYWNoLWJyZWFrcG9pbnQtaW4oXG4gICRicmVha3BvaW50czogYXV0byxcbiAgJHplcm8tYnJlYWtwb2ludDogbnVsbCxcbiAgJG1lZGlhLXF1ZXJpZXM6IHRydWVcbikge1xuICAkLWxpc3Q6ICgpO1xuICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogdHJ1ZTtcblxuICAvLyBSZXRyaWV2ZSB0aGUgbGlzdCBvZiBicmVha3BvaW50KHMpIHRvIGl0ZXJhdGUgb24uXG4gIEBpZiAkYnJlYWtwb2ludHMgPT0gYXV0byB7XG4gICAgJC1saXN0OiAkYnJlYWtwb2ludC1jbGFzc2VzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnbGlzdCcge1xuICAgICQtbGlzdDogJGJyZWFrcG9pbnRzO1xuICB9XG4gIEBlbHNlIGlmIHR5cGUtb2YoJGJyZWFrcG9pbnRzKSA9PSAnc3RyaW5nJyB7XG4gICAgJC1saXN0OiAoJGJyZWFrcG9pbnRzKTtcbiAgICAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdDogZmFsc2U7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBlcnJvciAnV3Jvbmcgc3ludGF4IGZvciBcIiRicmVha3BvaW50c1wiIGluIFwiLXpmLWVhY2gtYnJlYWtwb2ludC1pbigpXCIuIEdvdCBcIiN7JGJyZWFrcG9pbnRzfVwiICgje3R5cGUtb2YoJGJyZWFrcG9pbnRzKX0pLiBFeHBlY3RlZCBhIGJyZWFrcG9pbnQgbmFtZSwgYSBsaXN0IG9mIGJyZWFrcG9pbnRzIG9yIFwiYXV0b1wiJztcbiAgfVxuXG4gIC8vIEFkZCBvciByZW1vdmUgdGhlIHplcm8gYnJlYWtwb2ludCBhY2NvcmRpbmcgdG8gYCR6ZXJvLWJyZWFrcG9pbnRgXG4gIEBpZiAkemVyby1icmVha3BvaW50ID09IHRydWUge1xuICAgICQtbGlzdDogam9pbigoJC16Zi16ZXJvLWJyZWFrcG9pbnQpLCBzbC1yZW1vdmUoJC1saXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCkpO1xuICB9XG4gIEBlbHNlIGlmICR6ZXJvLWJyZWFrcG9pbnQgPT0gZmFsc2Uge1xuICAgICQtbGlzdDogc2wtcmVtb3ZlKCQtbGlzdCwgJC16Zi16ZXJvLWJyZWFrcG9pbnQpO1xuICB9XG5cbiAgLy8gSXRlcmF0ZSBvbiBicmVha3BvaW50KHMpXG4gIEBlYWNoICRicCBpbiAkLWxpc3Qge1xuICAgICRvbGQtemYtc2l6ZTogbnVsbDtcbiAgICBAaWYgZ2xvYmFsLXZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkge1xuICAgICAgJG9sZC16Zi1zaXplOiAkLXpmLXNpemU7XG4gICAgfVxuICAgICQtemYtc2l6ZTogJGJwICFnbG9iYWw7XG5cbiAgICBAaWYgKCRtZWRpYS1xdWVyaWVzID09IHRydWUgb3IgKCRtZWRpYS1xdWVyaWVzID09ICdmb3ItbGlzdHMnIGFuZCAkLWJyZWFrcG9pbnRzLWlzLWEtbGlzdCkpIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGJwKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBHZW5lcmF0ZSB0aGUgYEBjb250ZW50YCBwYXNzZWQgdG8gdGhlIG1peGluIHdpdGggYSB2YWx1ZSBgJC16Zi1icC12YWx1ZWAgcmVsYXRlZCB0byBhIGJyZWFrcG9pbnQsIGRlcGVuZGluZyBvbiB0aGUgYCRuYW1lYCBwYXJhbWV0ZXI6XG4vLy8gLSBGb3IgYSBzaW5nbGUgdmFsdWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGlzIHZhbHVlLlxuLy8vIC0gRm9yIGEgYnJlYWtwb2ludCBuYW1lLCBgJC16Zi1icC12YWx1ZWAgaXMgdGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZSBpbiBgJG1hcGAuXG4vLy8gLSBGb3IgXCJhdXRvXCIsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYCBhbmQgaXMgcGFzc2VkIHRvIGBAY29udGVudGAsIHdoaWNoIGlzIG1hZGUgcmVzcG9uc2l2ZSBmb3IgZWFjaCBicmVha3BvaW50IG9mIGAkbWFwYC5cbi8vLyBAcGFyYW0ge051bWJlcnxBcnJheXxLZXl3b3JkfSAkbmFtZSBbYXV0b10gLSBTaW5nbGUgdmFsdWUsIGJyZWFrcG9pbnQgbmFtZSwgb3IgbGlzdCBvZiBicmVha3BvaW50IG5hbWVzIHRvIHVzZS4gXCJhdXRvXCIgYnkgZGVmYXVsdC5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBNYXAgb2YgYnJlYWtwb2ludHMgYW5kIHZhbHVlcyBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLlxuQG1peGluIC16Zi1icmVha3BvaW50LXZhbHVlKFxuICAkbmFtZTogYXV0byxcbiAgJG1hcDogbnVsbFxuKSB7XG4gIEBpZiAkbmFtZSA9PSBhdXRvIGFuZCB0eXBlLW9mKCRtYXApID09ICdtYXAnIHtcbiAgICAvLyBcImF1dG9cIlxuICAgIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGspIHtcbiAgICAgICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJHYsICRtYXApIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gYnJlYWtwb2ludCBuYW1lXG4gICAgQGlmIHR5cGUtb2YoJG5hbWUpID09ICdzdHJpbmcnIHtcbiAgICAgICRicC12YWx1ZTogLXpmLWdldC1icC12YWwoJG1hcCwgJG5hbWUpO1xuICAgICAgQGlmICRicC12YWx1ZSAhPSBudWxsIHtcbiAgICAgICAgJG5hbWU6ICRicC12YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBicmVha3BvaW50IHZhbHVlXG4gICAgJC16Zi1icC12YWx1ZTogJG5hbWUgIWdsb2JhbDtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBGb250IGNvbG9yIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3Igb2YgcGxhY2Vob2xkZXIgdGV4dCB3aXRoaW4gdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgRm9udFxuJGlucHV0LWZvbnQtZmFtaWx5OiBpbmhlcml0ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGlucHV0LWZvbnQtc2l6ZTogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGlucHV0LWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGZvY3VzZWQgb2YgdGV4dCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBCYWNrZ3JvdW5kIGNvbG9yIG9mIGRpc2FibGVkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1kaXNhYmxlZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgZm9jdXNlZCB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWJvcmRlci1mb2N1czogMXB4IHNvbGlkICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIG9mIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcGFkZGluZzogJGZvcm0tc3BhY2luZyAqIDAuNSAhZGVmYXVsdDtcblxuLy8vIEJveCBzaGFkb3cgaW5zaWRlIHRleHQgaW5wdXRzIHdoZW4gbm90IGZvY3VzZWQuXG4vLy8gQHR5cGUgU2hhZG93XG4kaW5wdXQtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIDAuMSkgIWRlZmF1bHQ7XG5cbi8vLyBCb3ggc2hhZG93IG91dHNpZGUgdGV4dCBpbnB1dHMgd2hlbiBmb2N1c2VkLlxuLy8vIEB0eXBlIFNoYWRvd1xuJGlucHV0LXNoYWRvdy1mb2N1czogMCAwIDVweCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBDdXJzb3IgdG8gdXNlIHdoZW4gaG92ZXJpbmcgb3ZlciBhIGRpc2FibGVkIHRleHQgaW5wdXQuXG4vLy8gQHR5cGUgQ3Vyc29yXG4kaW5wdXQtY3Vyc29yLWRpc2FibGVkOiBub3QtYWxsb3dlZCAhZGVmYXVsdDtcblxuLy8vIFByb3BlcnRpZXMgdG8gdHJhbnNpdGlvbiBvbiB0ZXh0IGlucHV0cy5cbi8vLyBAdHlwZSBUcmFuc2l0aW9uXG4kaW5wdXQtdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjVzLCBib3JkZXItY29sb3IgMC4yNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbi8vLyBFbmFibGVzIHRoZSB1cC9kb3duIGJ1dHRvbnMgdGhhdCBDaHJvbWUgYW5kIEZpcmVmb3ggYWRkIHRvIGA8aW5wdXQgdHlwZT0nbnVtYmVyJz5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRpbnB1dC1udW1iZXItc3Bpbm5lcnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBSYWRpdXMgZm9yIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIEJvcmRlclxuJGlucHV0LXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBmb3JtIGJ1dHRvbnMsIGRlZmF1bHRlZCB0byBnbG9iYWwtcmFkaXVzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3JtLWVsZW1lbnQge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRoZWlnaHQ7XG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nO1xuXG4gIGJvcmRlcjogJGlucHV0LWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGlucHV0LXJhZGl1cztcbiAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQ7XG4gIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3c7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiBoYXMtdmFsdWUoJGlucHV0LXRyYW5zaXRpb24pIHtcbiAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgfVxuXG4gIC8vIEZvY3VzIHN0YXRlXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOiAkaW5wdXQtYm9yZGVyLWZvY3VzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iYWNrZ3JvdW5kLWZvY3VzO1xuICAgIGJveC1zaGFkb3c6ICRpbnB1dC1zaGFkb3ctZm9jdXM7XG5cbiAgICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgICB0cmFuc2l0aW9uOiAkaW5wdXQtdHJhbnNpdGlvbjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS10ZXh0IHtcbiAgLy8gVGV4dCBpbnB1dHNcbiAgI3t0ZXh0LWlucHV0cygpfSxcbiAgdGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGZvcm0tZWxlbWVudDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICB9XG5cbiAgLy8gVGV4dCBhcmVhc1xuICB0ZXh0YXJlYSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJltyb3dzXSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICB9XG5cbiAgaW5wdXQsXG4gIHRleHRhcmVhIHtcbiAgICAvLyBEaXNhYmxlZC9yZWFkb25seSBzdGF0ZVxuICAgICY6ZGlzYWJsZWQsXG4gICAgJltyZWFkb25seV0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgICBjdXJzb3I6ICRpbnB1dC1jdXJzb3ItZGlzYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVzZXQgc3R5bGVzIG9uIGJ1dHRvbi1saWtlIGlucHV0c1xuICBbdHlwZT0nc3VibWl0J10sXG4gIFt0eXBlPSdidXR0b24nXSB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1idXR0b24tcmFkaXVzO1xuICB9XG5cbiAgLy8gUmVzZXQgTm9ybWFsaXplIHNldHRpbmcgY29udGVudC1ib3ggdG8gc2VhcmNoIGVsZW1lbnRzXG4gIGlucHV0W3R5cGU9J3NlYXJjaCddIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIE51bWJlciBpbnB1dCBzdHlsZXNcbiAgW3R5cGU9J251bWJlciddIHtcbiAgICBAaWYgbm90ICRpbnB1dC1udW1iZXItc3Bpbm5lcnMge1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgbm8tdmVuZG9yLXByZWZpeGVzXG5cbiAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGxhY2Vob2xkZXIgdGV4dFxuICA6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1jaGVja2JveCB7XG4gIFt0eXBlPSdmaWxlJ10sXG4gIFt0eXBlPSdjaGVja2JveCddLFxuICBbdHlwZT0ncmFkaW8nXSB7XG4gICAgbWFyZ2luOiAwIDAgJGZvcm0tc3BhY2luZztcbiAgfVxuXG4gIC8vIFN0eWxlcyBmb3IgaW5wdXQvbGFiZWwgc2libGluZ3NcbiAgW3R5cGU9J2NoZWNrYm94J10gKyBsYWJlbCxcbiAgW3R5cGU9J3JhZGlvJ10gKyBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1yaWdodH06ICRmb3JtLXNwYWNpbmc7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICZbZm9yXSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gU3R5bGVzIGZvciBpbnB1dHMgaW5zaWRlIGxhYmVsc1xuICBsYWJlbCA+IFt0eXBlPSdjaGVja2JveCddLFxuICBsYWJlbCA+IFt0eXBlPSdyYWRpbyddIHtcbiAgICBtYXJnaW4tI3skZ2xvYmFsLXJpZ2h0fTogJGZvcm0tc3BhY2luZyAqIDAuNTtcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBmaWxlIGlucHV0IHdpZHRoXG4gIFt0eXBlPSdmaWxlJ10ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEdsb2JhbCBzcGFjaW5nIGZvciBmb3JtIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGZvcm0tc3BhY2luZzogcmVtLWNhbGMoMTYpICFkZWZhdWx0O1xuXG5AaW1wb3J0ICd0ZXh0JztcbkBpbXBvcnQgJ2NoZWNrYm94JztcbkBpbXBvcnQgJ2xhYmVsJztcbkBpbXBvcnQgJ2hlbHAtdGV4dCc7XG5AaW1wb3J0ICdpbnB1dC1ncm91cCc7XG5AaW1wb3J0ICdmaWVsZHNldCc7XG5AaW1wb3J0ICdzZWxlY3QnO1xuQGltcG9ydCAncmFuZ2UnO1xuQGltcG9ydCAncHJvZ3Jlc3MnO1xuQGltcG9ydCAnbWV0ZXInO1xuQGltcG9ydCAnZXJyb3InO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtcyB7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS10ZXh0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tY2hlY2tib3g7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tZm9ybS1sYWJlbDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLWhlbHB0ZXh0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tc2VsZWN0O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm0tZXJyb3I7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIENvbG9yIGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBDb2xvclxuJGZvcm0tbGFiZWwtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgZm9ybSBsYWJlbHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1mb250LXNpemU6IHJlbS1jYWxjKDE0KSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBmb3JtIGxhYmVscy5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgZm9yIGZvcm0gbGFiZWxzLiBUaGUgaGlnaGVyIHRoZSBudW1iZXIsIHRoZSBtb3JlIHNwYWNlIGJldHdlZW4gdGhlIGxhYmVsIGFuZCBpdHMgaW5wdXQgZmllbGQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogMS44ICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDA7XG5cbiAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gIGZvbnQtd2VpZ2h0OiAkZm9ybS1sYWJlbC1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRmb3JtLWxhYmVsLWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGZvcm0tbGFiZWwtY29sb3I7XG59XG5cbkBtaXhpbiBmb3JtLWxhYmVsLW1pZGRsZSB7XG4gICRpbnB1dC1ib3JkZXItd2lkdGg6IGdldC1ib3JkZXItdmFsdWUoJGlucHV0LWJvcmRlciwgd2lkdGgpO1xuXG4gIG1hcmdpbjogMCAwICRmb3JtLXNwYWNpbmc7XG4gIGxpbmUtaGVpZ2h0OiAkZ2xvYmFsLWxpbmVoZWlnaHQ7XG4gIHBhZGRpbmc6ICgkZm9ybS1zcGFjaW5nICogMC41ICsgcmVtLWNhbGMoJGlucHV0LWJvcmRlci13aWR0aCkpIDA7XG59XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tbGFiZWwge1xuICBsYWJlbCB7XG4gICAgQGluY2x1ZGUgZm9ybS1sYWJlbDtcblxuICAgICYubWlkZGxlIHtcbiAgICAgIEBpbmNsdWRlIGZvcm0tbGFiZWwtbWlkZGxlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGNvbG9yIGZvciBoZWxwIHRleHQuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWxwdGV4dC1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGhlbHAgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWxwdGV4dC1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzdHlsZSBmb3IgaGVscCB0ZXh0LlxuLy8vIEB0eXBlIEtleXdvcmRcbiRoZWxwdGV4dC1mb250LXN0eWxlOiBpdGFsaWMgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0taGVscHRleHQge1xuICAuaGVscC10ZXh0IHtcbiAgICAkbWFyZ2luLXRvcDogKCRmb3JtLXNwYWNpbmcgKiAwLjUpICogLTE7XG5cbiAgICBtYXJnaW4tdG9wOiAkbWFyZ2luLXRvcDtcbiAgICBmb250LXNpemU6ICRoZWxwdGV4dC1mb250LXNpemU7XG4gICAgZm9udC1zdHlsZTogJGhlbHB0ZXh0LWZvbnQtc3R5bGU7XG4gICAgY29sb3I6ICRoZWxwdGV4dC1jb2xvcjtcbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBDb2xvciBvZiBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQ29sb3JcbiRpbnB1dC1wcmVmaXgtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgbGFiZWxzIHByZWZpeGVkIHRvIGFuIGlucHV0LlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtcHJlZml4LWJhY2tncm91bmQ6ICRsaWdodC1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIGFyb3VuZCBsYWJlbHMgcHJlZml4ZWQgdG8gYW4gaW5wdXQuXG4vLy8gQHR5cGUgQm9yZGVyXG4kaW5wdXQtcHJlZml4LWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExlZnQvcmlnaHQgcGFkZGluZyBvZiBhbiBwcmUvcG9zdGZpeGVkIGlucHV0IGxhYmVsXG4kaW5wdXQtcHJlZml4LXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZvcm0tcHJlcG9zdGZpeCB7XG4gICRoZWlnaHQ6ICgkaW5wdXQtZm9udC1zaXplICogJGlucHV0LWxpbmUtaGVpZ2h0KSArIChnZXQtc2lkZSgkaW5wdXQtcGFkZGluZywgJ3RvcCcpICsgZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICdib3R0b20nKSkgLSByZW0tY2FsYygxKTtcblxuICAuaW5wdXQtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGlmKCRnbG9iYWwtZmxleGJveCwgZmxleCwgdGFibGUpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmc7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgID4gOmZpcnN0LWNoaWxkIHtcbiAgICAgICYsICYuaW5wdXQtZ3JvdXAtYnV0dG9uID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICYsICYuaW5wdXQtZ3JvdXAtYnV0dG9uID4gKiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCAkaW5wdXQtcmFkaXVzIDAgMCAkaW5wdXQtcmFkaXVzLCAwICRpbnB1dC1yYWRpdXMgJGlucHV0LXJhZGl1cyAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAlaW5wdXQtZ3JvdXAtY2hpbGQge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmIG5vdCAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG5cbiAgLmlucHV0LWdyb3VwLWxhYmVsIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nOiAwICRpbnB1dC1wcmVmaXgtcGFkZGluZztcbiAgICBib3JkZXI6ICRpbnB1dC1wcmVmaXgtYm9yZGVyO1xuICAgIGJhY2tncm91bmQ6ICRpbnB1dC1wcmVmaXgtYmFja2dyb3VuZDtcblxuICAgIGNvbG9yOiAkaW5wdXQtcHJlZml4LWNvbG9yO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgQGlmICRnbG9iYWwtZmxleGJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICB3aWR0aDogMSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtcHJlZml4LWJvcmRlcikge1xuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci0jeyRnbG9iYWwtcmlnaHR9OiAwO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5pbnB1dC1ncm91cC1maWVsZCB7XG4gICAgQGV4dGVuZCAlaW5wdXQtZ3JvdXAtY2hpbGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICAuaW5wdXQtZ3JvdXAtYnV0dG9uIHtcbiAgICBAZXh0ZW5kICVpbnB1dC1ncm91cC1jaGlsZDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgd2lkdGg6IDElO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGEsXG4gICAgaW5wdXQsXG4gICAgYnV0dG9uLFxuICAgIGxhYmVsIHtcbiAgICAgIEBleHRlbmQgJWlucHV0LWdyb3VwLWNoaWxkO1xuXG4gICAgICBAaWYgJGdsb2JhbC1mbGV4Ym94IHtcbiAgICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICB9XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNwZWNpZmljaXR5IGJ1bXAgbmVlZGVkIHRvIHByZXZlbnQgb3ZlcnJpZGUgYnkgYnV0dG9uc1xuICBAaWYgbm90ICRnbG9iYWwtZmxleGJveCB7XG4gICAgLmlucHV0LWdyb3VwIHtcbiAgICAgIC5pbnB1dC1ncm91cC1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZvcm1zXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGJvcmRlciBhcm91bmQgY3VzdG9tIGZpZWxkc2V0cy5cbi8vLyBAdHlwZSBCb3JkZXJcbiRmaWVsZHNldC1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHBhZGRpbmcgaW5zaWRlIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtcGFkZGluZzogcmVtLWNhbGMoMjApICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gYXJvdW5kIGN1c3RvbSBmaWVsZHNldHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmllbGRzZXQtbWFyZ2luOiByZW0tY2FsYygxOCAwKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgcGFkZGluZyBiZXR3ZWVuIHRoZSBsZWdlbmQgdGV4dCBhbmQgZmllbGRzZXQgYm9yZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlZ2VuZC1wYWRkaW5nOiByZW0tY2FsYygwIDMpICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGRzZXQge1xuICBtYXJnaW46ICRmaWVsZHNldC1tYXJnaW47XG4gIHBhZGRpbmc6ICRmaWVsZHNldC1wYWRkaW5nO1xuICBib3JkZXI6ICRmaWVsZHNldC1ib3JkZXI7XG5cbiAgbGVnZW5kIHtcbiAgICAvLyBDb3ZlcnMgdXAgdGhlIGZpZWxkc2V0J3MgYm9yZGVyIHRvIGNyZWF0ZSBhcnRpZmljaWFsIHBhZGRpbmdcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogcmVtLWNhbGMoLTMpO1xuICAgIHBhZGRpbmc6ICRsZWdlbmQtcGFkZGluZztcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mb3JtLWZpZWxkc2V0IHtcbiAgZmllbGRzZXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLXNwYWNpbmcgKiAwLjU7XG4gIH1cblxuICAuZmllbGRzZXQge1xuICAgIEBpbmNsdWRlIGZpZWxkc2V0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZm9ybXNcbi8vLy9cblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1iYWNrZ3JvdW5kOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiB0aGUgZHJvcGRvd24gdHJpYW5nbGUgaW5zaWRlIHNlbGVjdCBtZW51cy4gU2V0IHRvIGB0cmFuc3BhcmVudGAgdG8gcmVtb3ZlIGl0IGVudGlyZWx5LlxuLy8vIEB0eXBlIENvbG9yXG4kc2VsZWN0LXRyaWFuZ2xlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCByYWRpdXMgZm9yIHNlbGVjdCBtZW51cy5cbi8vLyBAdHlwZSBDb2xvclxuJHNlbGVjdC1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzICFkZWZhdWx0O1xuXG5AbWl4aW4gZm9ybS1zZWxlY3Qge1xuICAkaGVpZ2h0OiAoJGlucHV0LWZvbnQtc2l6ZSAqIHVuaXRsZXNzLWNhbGMoJGlucHV0LWxpbmUtaGVpZ2h0KSkgKyAoZ2V0LXNpZGUoJGlucHV0LXBhZGRpbmcsICd0b3AnKSArIGdldC1zaWRlKCRpbnB1dC1wYWRkaW5nLCAnYm90dG9tJykpIC0gcmVtLWNhbGMoMSk7XG5cbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBtYXJnaW46IDAgMCAkZm9ybS1zcGFjaW5nO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZztcblxuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6ICRpbnB1dC1ib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3QtcmFkaXVzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0LWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuXG4gIEBpZiAkc2VsZWN0LXRyaWFuZ2xlLWNvbG9yICE9IHRyYW5zcGFyZW50IHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLXRyaWFuZ2xlKCRzZWxlY3QtdHJpYW5nbGUtY29sb3IpO1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZ2xvYmFsLXJpZ2h0ICgtJGZvcm0tc3BhY2luZykgY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiA5cHggNnB4O1xuXG4gICAgcGFkZGluZy0jeyRnbG9iYWwtcmlnaHR9OiAoJGZvcm0tc3BhY2luZyAqIDEuNSk7XG4gIH1cblxuICBAaWYgaGFzLXZhbHVlKCRpbnB1dC10cmFuc2l0aW9uKSB7XG4gICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gIH1cblxuICAvLyBGb2N1cyBzdGF0ZVxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlcjogJGlucHV0LWJvcmRlci1mb2N1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmFja2dyb3VuZC1mb2N1cztcbiAgICBib3gtc2hhZG93OiAkaW5wdXQtc2hhZG93LWZvY3VzO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgkaW5wdXQtdHJhbnNpdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogJGlucHV0LXRyYW5zaXRpb247XG4gICAgfVxuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgJjpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJhY2tncm91bmQtZGlzYWJsZWQ7XG4gICAgY3Vyc29yOiAkaW5wdXQtY3Vyc29yLWRpc2FibGVkO1xuICB9XG5cbiAgLy8gSGlkZSB0aGUgZHJvcGRvd24gYXJyb3cgc2hvd24gaW4gbmV3ZXIgSUUgdmVyc2lvbnNcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxuICAmOm5vdChbbXVsdGlwbGVdKSB7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1zZWxlY3Qge1xuICBzZWxlY3Qge1xuICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYWJpZGVcbi8vLy9cblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBpbnB1dHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWlucHV0czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgaWYgZXJyb3Igc3R5bGVzIHNob3VsZCBiZSBhZGRlZCB0byBsYWJlbHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGFiaWRlLWxhYmVsczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgdG8gdXNlIGZvciBpbnZhbGlkIHRleHQgaW5wdXRzLlxuLy8vIEB0eXBlIENvbG9yXG4kaW5wdXQtYmFja2dyb3VuZC1pbnZhbGlkOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdG8gdXNlIGZvciBsYWJlbHMgb2YgaW52YWxpZCBpbnB1dHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRmb3JtLWxhYmVsLWNvbG9yLWludmFsaWQ6IGdldC1jb2xvcihhbGVydCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBDb2xvclxuJGlucHV0LWVycm9yLWNvbG9yOiBnZXQtY29sb3IoYWxlcnQpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRpbnB1dC1lcnJvci1mb250LXNpemU6IHJlbS1jYWxjKDEyKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCB3ZWlnaHQgZm9yIGZvcm0gZXJyb3IgdGV4dC5cbi8vLyBAdHlwZSBLZXl3b3JkXG4kaW5wdXQtZXJyb3ItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTdHlsZXMgdGhlIGJhY2tncm91bmQgYW5kIGJvcmRlciBvZiBhbiBpbnB1dCBmaWVsZCB0byBoYXZlIGFuIGVycm9yIHN0YXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRhbGVydC1jb2xvcl0gLSBDb2xvciB0byB1c2UgZm9yIHRoZSBiYWNrZ3JvdW5kIGFuZCBib3JkZXIuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYWNrZ3JvdW5kLWxpZ2h0ZW4gWzEwJV0gLSBMaWdodG5lc3MgbGV2ZWwgb2YgdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gZm9ybS1pbnB1dC1lcnJvcihcbiAgJGJhY2tncm91bmQ6ICRpbnB1dC1iYWNrZ3JvdW5kLWludmFsaWQsXG4gICRiYWNrZ3JvdW5kLWxpZ2h0ZW46IDEwJVxuKSB7XG4gICY6bm90KDpmb2N1cykge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCRiYWNrZ3JvdW5kLCAkd2hpdGUsICRiYWNrZ3JvdW5kLWxpZ2h0ZW4pO1xuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBlcnJvciBzdHlsZXMgdG8gYSBmb3JtIGVsZW1lbnQsIHVzaW5nIHRoZSB2YWx1ZXMgaW4gdGhlIHNldHRpbmdzIGZpbGUuXG5AbWl4aW4gZm9ybS1lcnJvciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbi10b3A6ICRmb3JtLXNwYWNpbmcgKiAtMC41O1xuICBtYXJnaW4tYm90dG9tOiAkZm9ybS1zcGFjaW5nO1xuXG4gIGZvbnQtc2l6ZTogJGlucHV0LWVycm9yLWZvbnQtc2l6ZTtcbiAgZm9udC13ZWlnaHQ6ICRpbnB1dC1lcnJvci1mb250LXdlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1lcnJvci1jb2xvcjtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tZm9ybS1lcnJvciB7XG4gIEBpZiAkYWJpZGUtaW5wdXRzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgaW52YWxpZCBpbnB1dHNcbiAgICAuaXMtaW52YWxpZC1pbnB1dCB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWlucHV0LWVycm9yO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkYWJpZGUtbGFiZWxzIHtcbiAgICAvLyBFcnJvciBjbGFzcyBmb3IgbGFiZWxzIG9mIGludmFsaWQgb3V0cHV0c1xuICAgIC5pcy1pbnZhbGlkLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAkZm9ybS1sYWJlbC1jb2xvci1pbnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZvcm0gZXJyb3IgZWxlbWVudFxuICAuZm9ybS1lcnJvciB7XG4gICAgQGluY2x1ZGUgZm9ybS1lcnJvcjtcblxuICAgICYuaXMtdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCB0eXBvZ3JhcGh5LWJhc2Vcbi8vLy9cblxuLy8gQmFzZSBUeXBvZ3JhcGh5XG4vLyAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLVxuLy8gVGhlc2UgYXJlIHN0eWxlcyBhcHBsaWVkIHRvIGJhc2ljIEhUTUwgdGFncywgaW5jbHVkaW5nOlxuLy8gICAtIFBhcmFncmFwaHMgPHA+XG4vLyAgIC0gQm9sZC9pdGFsaWNzIDxiPiA8c3Ryb25nPiA8aT4gPGVtPlxuLy8gICAtIFNtYWxsIHRleHQgPHNtYWxsPlxuLy8gICAtIEhlYWRpbmdzIDxoMT4tPGg2PlxuLy8gICAtIEFuY2hvcnMgPGE+XG4vLyAgIC0gRGl2aWRlcnMgPGhyPlxuLy8gICAtIExpc3RzIDx1bD4gPG9sPiA8ZGw+XG4vLyAgIC0gQmxvY2txdW90ZXMgPGJsb2NrcXVvdGU+XG4vLyAgIC0gQ29kZSBibG9ja3MgPGNvZGU+XG4vLyAgIC0gQWJicmV2aWF0aW9ucyA8YWJicj5cbi8vICAgLSBDaXRhdGlvbnMgPGNpdGU+XG4vLyAgIC0gS2V5c3Ryb2tlcyA8a2JkPlxuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGhlYWRlciBlbGVtZW50cy5cbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kaGVhZGVyLWZvbnQtZmFtaWx5OiAkYm9keS1mb250LWZhbWlseSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0eWxlIChlLmcuIGl0YWxpY2l6ZWQpIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLWZvbnQtc3R5bGU6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgdXNlZCBmb3IgZWxlbWVudHMgdGhhdCB1c2UgbW9ub3NwYWNlZCB0eXBlLCBzdWNoIGFzIGNvZGUgc2FtcGxlc1xuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRmb250LWZhbWlseS1tb25vc3BhY2U6IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgQ291cmllciwgbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBDb2xvclxuJGhlYWRlci1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuNCAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoZWFkZXItbWFyZ2luLWJvdHRvbTogMC41cmVtICFkZWZhdWx0O1xuXG4vLy8gU3R5bGVzIGZvciBoZWFkaW5ncyBhdCB2YXJpb3VzIHNjcmVlbiBzaXplcy4gRWFjaCBrZXkgaXMgYSBicmVha3BvaW50LCBhbmQgZWFjaCB2YWx1ZSBpcyBhIG1hcCBvZiBoZWFkaW5nIHN0eWxlcy5cbi8vLyBAdHlwZSBNYXBcbiRoZWFkZXItc3R5bGVzOiAoXG4gIHNtYWxsOiAoXG4gICAgJ2gxJzogKCdmb250LXNpemUnOiAyNCksXG4gICAgJ2gyJzogKCdmb250LXNpemUnOiAyMCksXG4gICAgJ2gzJzogKCdmb250LXNpemUnOiAxOSksXG4gICAgJ2g0JzogKCdmb250LXNpemUnOiAxOCksXG4gICAgJ2g1JzogKCdmb250LXNpemUnOiAxNyksXG4gICAgJ2g2JzogKCdmb250LXNpemUnOiAxNiksXG4gICksXG4gIG1lZGl1bTogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogNDgpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogNDApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMzEpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMjUpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuKSAhZGVmYXVsdDtcblxuLy8gJGhlYWRlci1zdHlsZXMgbWFwIGlzIGJ1aWx0IGZyb20gJGhlYWRlci1zaXplcyBpbiBvcmRlciB0byBlbnN1cmUgZG93bndhcmQgY29tcGF0aWJpbGl0eVxuLy8gd2hlbiAkaGVhZGVyLXNpemVzIGlzIGRlcHJlY2lhdGVkLCAkaGVhZGVyLXN0eWxlcyBuZWVkcyB0byBnZXQgIWRlZmF1bHQgdmFsdWVzIGxpa2Ugc2V0dGluZ3Muc2Nzc1xuQGZ1bmN0aW9uIGJ1aWxkLWZyb20taGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpIHtcbiAgQHdhcm4gJ05vdGUsIHRoYXQgJGhlYWRlci1zaXplcyBoYXMgYmVlbiByZXBsYWNlZCB3aXRoICRoZWFkZXItc3R5bGVzLiAkaGVhZGVyLXNpemVzIHN0aWxsIHdvcmtzLCBidXQgaXQgaXMgZ29pbmcgdG8gYmUgZGVwcmVjaWF0ZWQuJztcbiAgJGhlYWRlci1zdHlsZXM6ICgpO1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zaXplcyB7XG4gICAgJGhlYWRlci1tYXA6ICgpO1xuICAgIEBlYWNoICRoZWFkZXIsICRmb250LXNpemUgaW4gJGhlYWRlcnMge1xuICAgICAgJGhlYWRlci1tYXA6IG1hcC1tZXJnZSgkaGVhZGVyLW1hcCwgKCRoZWFkZXI6ICgnZm9udC1zaXplJzogJGZvbnQtc2l6ZSkpKTtcbiAgICB9XG4gICAgJGhlYWRlci1zdHlsZXM6IG1hcC1tZXJnZSgkaGVhZGVyLXN0eWxlcywgKCRzaXplOiAkaGVhZGVyLW1hcCkpO1xuICB9XG4gIEByZXR1cm4gJGhlYWRlci1zdHlsZXM7XG59XG5cbi8vIElmIGl0IGV4aXN0cyAkaGVhZGVycy1zaXplcyBpcyB1c2VkIHRvIGJ1aWxkICRoZWFkZXItc3R5bGVzLiBTZWUgdGhlIGRvY3VtZW50YXRpb24uXG5AaWYgdmFyaWFibGUtZXhpc3RzKGhlYWRlci1zaXplcykge1xuICAkaGVhZGVyLXN0eWxlczogYnVpbGQtZnJvbS1oZWFkZXItc2l6ZXMoJGhlYWRlci1zaXplcyk7XG59XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2Qgb2YgaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRoZWFkZXItdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBvZiBgPHNtYWxsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc21hbGwtZm9udC1zaXplOiA4MCUgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciBvZiBgPHNtYWxsPmAgZWxlbWVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gTGluZSBoZWlnaHQgb2YgdGV4dCBpbnNpZGUgYDxwPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLWxpbmVoZWlnaHQ6IDEuNiAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBtYXJnaW4gb2YgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgcmVuZGVyaW5nIG1ldGhvZCBmb3IgcGFyYWdyYXBoIHRleHQuXG4vLy8gQHR5cGUgU3RyaW5nXG4kcGFyYWdyYXBoLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBVc2UgdGhlIGAuY29kZS1pbmxpbmVgIGNvbXBvbmVudCBhcyBkZWZhdWx0IGZvciBgPGNvZGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kZW5hYmxlLWNvZGUtaW5saW5lOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3MuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3I6ICRwcmltYXJ5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBjb2xvciBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgQ29sb3JcbiRhbmNob3ItY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRhbmNob3ItY29sb3IsICRsaWdodG5lc3M6IC0xNCUpICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IHRleHQgZGVjb3JhdGlvbiBmb3IgbGlua3Mgb24gaG92ZXIuXG4vLy8gQHR5cGUgU3RyaW5nXG4kYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8vIE1heGltdW0gd2lkdGggb2YgYSBkaXZpZGVyLlxuLy8vIEB0eXBlIE51bWJlclxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3JkZXIgZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBMaXN0XG4kaHItYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBtYXJnaW4gZm9yIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kaHItbWFyZ2luOiByZW0tY2FsYygyMCkgYXV0byAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1saW5laGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBpdGVtcyBpbiBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1tYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gIWRlZmF1bHQ7XG5cbi8vLyBCdWxsZXQgdHlwZSB0byB1c2UgZm9yIHVub3JkZXJlZCBsaXN0cyAoZS5nLiwgYHNxdWFyZWAsIGBjaXJjbGVgLCBgZGlzY2ApLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtdHlwZTogZGlzYyAhZGVmYXVsdDtcblxuLy8vIFBvc2l0aW9uaW5nIGZvciBidWxsZXRzIG9uIHVub3JkZXJlZCBsaXN0IGl0ZW1zLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxpc3Qtc3R5bGUtcG9zaXRpb246IG91dHNpZGUgIWRlZmF1bHQ7XG5cbi8vLyBMZWZ0IChvciByaWdodCkgbWFyZ2luIGZvciBsaXN0cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsaXN0LXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgYSBsaXN0IGluc2lkZSBhIGxpc3QuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1uZXN0ZWQtc2lkZS1tYXJnaW46IDEuMjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIGZvciBgPGRsPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBgPGR0PmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kZGVmbmxpc3QtdGVybS13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbi8vLyBTcGFjaW5nIGJldHdlZW4gYDxkdD5gIGFuZCBgPGRkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kYmxvY2txdW90ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgaW5zaWRlIGEgYDxibG9ja3F1b3RlPmAgZWxlbWVudC5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4kYmxvY2txdW90ZS1wYWRkaW5nOiByZW0tY2FsYyg5IDIwIDAgMTkpICFkZWZhdWx0O1xuXG4vLy8gU2lkZSBib3JkZXIgZm9yIGA8YmxvY2txdW90ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRibG9ja3F1b3RlLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIFVzZSB0aGUgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQgYXMgZGVmYXVsdCBmb3IgYDxjaXRlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGVuYWJsZS1jaXRlLWJsb2NrOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRm9udCBmYW1pbHkgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGtleXN0cm9rZS1mb250OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1jb2xvcjogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGtleXN0cm9rZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGtleXN0cm9rZS1wYWRkaW5nOiByZW0tY2FsYygyIDQgMCkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgcmFkaXVzIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cyAhZGVmYXVsdDtcblxuLy8vIEJvdHRvbSBib3JkZXIgc3R5bGUgZm9yIGA8YWJicj5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIExpc3RcbiRhYmJyLXVuZGVybGluZTogMXB4IGRvdHRlZCAkYmxhY2sgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmb3VuZGF0aW9uLXR5cG9ncmFwaHktYmFzZSB7XG4gIC8vIFR5cG9ncmFwaHkgcmVzZXRzXG4gIGRpdixcbiAgZGwsXG4gIGR0LFxuICBkZCxcbiAgdWwsXG4gIG9sLFxuICBsaSxcbiAgaDEsXG4gIGgyLFxuICBoMyxcbiAgaDQsXG4gIGg1LFxuICBoNixcbiAgcHJlLFxuICBmb3JtLFxuICBwLFxuICBibG9ja3F1b3RlLFxuICB0aCxcbiAgdGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUGFyYWdyYXBoc1xuICBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG5cbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICB0ZXh0LXJlbmRlcmluZzogJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZztcbiAgfVxuXG4gIC8vIEVtcGhhc2l6ZWQgdGV4dFxuICBlbSxcbiAgaSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB9XG5cbiAgLy8gU3Ryb25nIHRleHRcbiAgc3Ryb25nLFxuICBiIHtcbiAgICBmb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtYm9sZDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFNtYWxsIHRleHRcbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogJHNtYWxsLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEhlYWRpbmdzXG4gIGgxLCAuaDEsXG4gIGgyLCAuaDIsXG4gIGgzLCAuaDMsXG4gIGg0LCAuaDQsXG4gIGg1LCAuaDUsXG4gIGg2LCAuaDYge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRoZWFkZXItZm9udC1zdHlsZTtcbiAgICBmb250LXdlaWdodDogJGhlYWRlci1mb250LXdlaWdodDtcbiAgICBjb2xvcjogJGhlYWRlci1jb2xvcjtcbiAgICB0ZXh0LXJlbmRlcmluZzogJGhlYWRlci10ZXh0LXJlbmRlcmluZztcblxuICAgIHNtYWxsIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgY29sb3I6ICRoZWFkZXItc21hbGwtZm9udC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBIZWFkaW5nIHN0eWxlc1xuICBAZWFjaCAkc2l6ZSwgJGhlYWRlcnMgaW4gJGhlYWRlci1zdHlsZXMge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICAgIEBlYWNoICRoZWFkZXIsICRoZWFkZXItZGVmcyBpbiAkaGVhZGVycyB7XG4gICAgICAgICRmb250LXNpemUtdGVtcDogMXJlbTtcbiAgICAgICAgI3skaGVhZGVyfSwgLiN7JGhlYWRlcn0ge1xuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSB7XG4gICAgICAgICAgICAkZm9udC1zaXplLXRlbXA6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBmb250LXNpemUpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBmcykge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZnMpKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLXRlbXA7XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbGluZS1oZWlnaHQpLCAkZm9udC1zaXplLXRlbXApO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxoKSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKCRoZWFkZXItbGluZWhlaWdodCwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tdG9wKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtdCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG10KSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYXJnaW4tYm90dG9tKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBtYikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1iKSk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkaGVhZGVyLW1hcmdpbi1ib3R0b20pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIExpbmtzXG4gIGEge1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGFuY2hvci10ZXh0LWRlY29yYXRpb247XG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRhbmNob3ItY29sb3ItaG92ZXI7XG4gICAgICBAaWYgJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXIgIT0gJGFuY2hvci10ZXh0LWRlY29yYXRpb24ge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG9yaXpvbnRhbCBydWxlXG4gIGhyIHtcbiAgICBjbGVhcjogYm90aDtcblxuICAgIG1heC13aWR0aDogJGhyLXdpZHRoO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW46ICRoci1tYXJnaW47XG5cbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItYm90dG9tOiAkaHItYm9yZGVyO1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gTGlzdHNcbiAgdWwsXG4gIG9sLFxuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGxpc3QtbWFyZ2luLWJvdHRvbTtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiAkbGlzdC1zdHlsZS1wb3NpdGlvbjtcbiAgICBsaW5lLWhlaWdodDogJGxpc3QtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIExpc3QgaXRlbXNcbiAgbGkge1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFVub3JkZXJlZCBsaXN0c1xuICB1bCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gICAgbGlzdC1zdHlsZS10eXBlOiAkbGlzdC1zdHlsZS10eXBlO1xuICB9XG5cbiAgLy8gT3JkZXJlZCBsaXN0c1xuICBvbCB7XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3Qtc2lkZS1tYXJnaW47XG4gIH1cblxuICAvLyBOZXN0ZWQgdW5vcmRlcmVkL29yZGVyZWQgbGlzdHNcbiAgdWwsIG9sIHtcbiAgICAmICYge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZpbml0aW9uIGxpc3RzXG4gIGRsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtbWFyZ2luLWJvdHRvbTtcblxuICAgIGR0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRkZWZubGlzdC10ZXJtLW1hcmdpbi1ib3R0b207XG4gICAgICBmb250LXdlaWdodDogJGRlZm5saXN0LXRlcm0td2VpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIEJsb2NrcXVvdGVzXG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBwYWRkaW5nOiAkYmxvY2txdW90ZS1wYWRkaW5nO1xuICAgIGJvcmRlci0jeyRnbG9iYWwtbGVmdH06ICRibG9ja3F1b3RlLWJvcmRlcjtcblxuICAgICYsIHAge1xuICAgICAgbGluZS1oZWlnaHQ6ICRwYXJhZ3JhcGgtbGluZWhlaWdodDtcbiAgICAgIGNvbG9yOiAkYmxvY2txdW90ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJbmxpbmUgQ2l0YXRpb25zXG4gIEBpZiAoJGVuYWJsZS1jaXRlLWJsb2NrID09IHRydWUpIHtcbiAgICBjaXRlIHtcbiAgICAgIC8vIEV4dGVuZGluZyBhIGNsYXNzIGlzIG5vdCByZWNvbW1lbmRlZC5cbiAgICAgIC8vIFRPRE86IEJyZWFrIHRoZSB0eXBvZ3JhcGh5LWJhc2UvdHlwb2dyYXBoeS1oZWxwZXJzIHNlcGFyYXRpb25cbiAgICAgIEBleHRlbmQgJWNpdGUtYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLy8gQWJicmV2aWF0aW9uc1xuICBhYmJyLCBhYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGFiYnItdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogaGVscDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAvLyBGaWd1cmVzXG4gIGZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLy8gQ29kZVxuICBAaWYgKCRlbmFibGUtY29kZS1pbmxpbmUgPT0gdHJ1ZSkge1xuICAgIGNvZGUge1xuICAgICAgQGV4dGVuZCAlY29kZS1pbmxpbmU7XG4gICAgfVxuICB9XG5cbiAgLy8gS2V5c3Ryb2tlc1xuICBrYmQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAka2V5c3Ryb2tlLXBhZGRpbmc7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka2V5c3Ryb2tlLWJhY2tncm91bmQ7XG5cbiAgICBmb250LWZhbWlseTogJGtleXN0cm9rZS1mb250O1xuICAgIGNvbG9yOiAka2V5c3Ryb2tlLWNvbG9yO1xuXG4gICAgQGlmIGhhcy12YWx1ZSgka2V5c3Ryb2tlLXJhZGl1cykge1xuICAgICAgYm9yZGVyLXJhZGl1czogJGtleXN0cm9rZS1yYWRpdXM7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgYnJlYWtwb2ludHNcbi8vLy9cblxuLy8vIFBhdGNoIHRvIGZpeCBpc3N1ZSAjMTIwODBcbiQtemYtc2l6ZTogbnVsbDtcblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcy5cbi8vLyBAdHlwZSBNYXBcbiRicmVha3BvaW50czogKFxuICBcInNtYWxsXCI6IDAsXG4gIFwibWVkaXVtXCI6IDY0MHB4LFxuICBcImxhcmdlXCI6IDEwMjRweCxcbiAgXCJ4bGFyZ2VcIjogMTIwMHB4LFxuICBcInh4bGFyZ2VcIjogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIEEgbGlzdCBvZiBuYW1lZCBIaURQSSBicmVha3BvaW50cy4gWW91IGNhbiB1c2UgdGhlc2Ugd2l0aCB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gcXVpY2tseSBjcmVhdGUgbWVkaWEgcXVlcmllcyBmb3IgcmVzb2x1dGlvbnMuXG4vLy8gVmFsdWVzIG11c3QgcmVwcmVzZW50IHRoZSBkZXZpY2UgcGl4ZWxzIC8gd2ViIHBpeGVscyByYXRpb24gYW5kIGJlIHVuaXRsZXNzIG9yIGluIERQUFguXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHMtaGlkcGk6IChcbiAgXCJoaWRwaS0xXCI6IDEsXG4gIFwiaGlkcGktMS01XCI6IDEuNSxcbiAgXCJoaWRwaS0yXCI6IDIsXG4gIFwicmV0aW5hXCI6IDIsXG4gIFwiaGlkcGktM1wiOiAzXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1RoZSBmaXJzdCBrZXkgaW4gdGhlICRicmVha3BvaW50cyBtYXAgbXVzdCBoYXZlIGEgdmFsdWUgb2YgXCIwXCIuJztcbn1cbkBlbHNlIHtcbiAgJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IG50aChtYXAta2V5cygkYnJlYWtwb2ludHMpLCAxKTtcbn1cblxuLy8vIEFsbCBvZiB0aGUgbmFtZXMgaW4gdGhpcyBsaXN0IHdpbGwgYmUgb3V0cHV0IGFzIGNsYXNzZXMgaW4geW91ciBDU1MsIGxpa2UgYC5zbWFsbC0xMmAsIGAubWVkaXVtLTZgLCBhbmQgc28gb24uIEVhY2ggdmFsdWUgaW4gdGhpcyBsaXN0IG11c3QgYWxzbyBiZSBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLlxuLy8vIEB0eXBlIExpc3RcbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0gbGFyZ2UpICFkZWZhdWx0O1xuXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgc3RyaW5nIG1hdGNoaW5nIHRoZSBpbnB1dCB2YWx1ZS4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBzZWUgd2hhdCB0aGUgcG9zc2libGUgaW5wdXRzIGFyZS5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWwgW3NtYWxsXSAtIEJyZWFrcG9pbnQgbmFtZSwgb3IgcHgsIHJlbSwgb3IgZW0gdmFsdWUgdG8gcHJvY2Vzcy5cbkBmdW5jdGlvbiBicmVha3BvaW50KCR2YWw6ICQtemYtemVyby1icmVha3BvaW50KSB7XG4gIC8vIFdlYiBzdGFuZGFyZCBQaXhlbHMgcGVyIGluY2guICgxZGRweCAvICRzdGQtd2ViLWRwaSkgPSAxZHBpXG4gIC8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXZhbHVlcy0zLyNhYnNvbHV0ZS1sZW5ndGhzXG4gICRzdGQtd2ViLWRwaTogOTY7XG5cbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBvZiB0aGUgZm9sbG93aW5nIGJyZWFrcG9pbnRcbiAgJGJwLW5leHQ6IG51bGw7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWluOiBudWxsO1xuICAvLyBWYWx1ZSBmb3IgbWluLXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogbnVsbDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIElmIG5hbWVkLCBuYW1lIG9mIHRoZSBicmVha3BvaW50XG4gICRuYW1lOiBudWxsO1xuICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBhIEhpRFBJIGJyZWFrcG9pbnRcbiAgJGhpZHBpOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cblxuICAvLyBJZiBhIGJyZWFrcG9pbnQgbmFtZSBpcyBnaXZlbiwgZ2V0IGl0cyB2YWx1ZSBmcm9tIHRoZSAkYnJlYWtwb2ludHMvJGJyZWFrcG9pbnRzLWhpZHBpIG1hcC5cbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICAkbmFtZTogJGJwO1xuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICAgICAgJGJwLW5leHQ6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLWhpZHBpLCAkYnApIHtcbiAgICAgICRuYW1lOiAkYnA7XG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLWhpZHBpLCAkbmFtZSk7XG4gICAgICAkYnAtbmV4dDogLXpmLW1hcC1uZXh0LW51bWJlcigkYnJlYWtwb2ludHMtaGlkcGksICRicCk7XG4gICAgICAkaGlkcGk6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgYCRicmVha3BvaW50c2Agb3IgYCRicmVha3BvaW50cy1oaWRwaWAgc2V0dGluZy4nO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBub3QgJG5hbWUgYW5kICRkaXIgPT0gJ29ubHknIHtcbiAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBPbmx5IG5hbWVkIG1lZGlhIHF1ZXJpZXMgY2FuIGhhdmUgYW4gYG9ubHlgIHJhbmdlLic7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gT25seSAnb25seScgYW5kICd1cCcgaGF2ZSBhIG1pbiBsaW1pdC5cbiAgQGlmICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ3VwJyB7XG4gICAgJGJwLW1pbjogaWYoJGhpZHBpLCBzdHJpcC11bml0KCRicCksIC16Zi1icC10by1lbSgkYnApKTtcbiAgfVxuICAvLyBPbmx5ICdvbmx5JyBhbmQgJ2Rvd24nIGhhdmUgYSBtYXggbGltaXQuXG4gIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgYSB2YWx1ZSwgdXNlIGl0IGFzIG1heCBsaW1pdC5cbiAgICBAaWYgbm90ICRuYW1lIHtcbiAgICAgICRicC1tYXg6IGlmKCRoaWRwaSwgc3RyaXAtdW5pdCgkYnApLCAtemYtYnAtdG8tZW0oJGJwKSk7XG4gICAgfVxuICAgIC8vIElmIHRoZSBicmVha3BvaW50IGlzIG5hbWVkLCB0aGUgbWF4IGxpbWl0IGlzIHRoZSBmb2xsb3dpbmcgYnJlYWtwb2ludCAtIDFweC5cbiAgICBAZWxzZSBpZiAkYnAtbmV4dCB7XG4gICAgICAvLyBNYXggdmFsdWUgaXMgMC4ycHggdW5kZXIgdGhlIG5leHQgYnJlYWtwb2ludCAoMC4wMiAvIDE2ID0gMC4wMDEyNSkuXG4gICAgICAvLyBVc2UgYSBwcmVjaXNpb24gdW5kZXIgMXB4IHRvIHN1cHBvcnQgYnJvd3NlciB6b29tLCBidXQgbm90IHRvIGxvdyB0byBhdm9pZCByb3VuZGluZy5cbiAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMTMxM1xuICAgICAgJGJwLW1heDogaWYoJGhpZHBpLCAkYnAtbmV4dCAtIGRpdmlkZSgxLCAkc3RkLXdlYi1kcGkpLCAtemYtYnAtdG8tZW0oJGJwLW5leHQpIC0gMC4wMDEyNSk7XG4gICAgfVxuICB9XG5cbiAgLy8gR2VuZXJhdGUgdGhlIG1lZGlhIHF1ZXJ5IHN0cmluZyBmcm9tIG1pbiBhbmQgbWF4IGxpbWl0cy5cbiAgQGlmICRoaWRwaSB7XG4gICAgLy8gR2VuZXJhdGUgdmFsdWVzIGluIERQSSBpbnN0ZWFkIG9mIERQUFggZm9yIGFuIElFOS0xMS9PcGVyYSBtaW5pIGNvbXBhdGliaWxpdHkuXG4gICAgLy8gU2VlIGh0dHBzOi8vY2FuaXVzZS5jb20vI2ZlYXQ9Y3NzLW1lZGlhLXJlc29sdXRpb25cbiAgICAkYnAtbWluLWRwaTogaWYoJGJwLW1pbiwgJGJwLW1pbiAqICRzdGQtd2ViLWRwaSAqIDFkcGksICRicC1taW4pO1xuICAgICRicC1tYXgtZHBpOiBpZigkYnAtbWF4LCAkYnAtbWF4ICogJHN0ZC13ZWItZHBpICogMWRwaSwgJGJwLW1heCk7XG4gICAgQHJldHVybiB6Zi1zdHItam9pbihcbiAgICAgIC16Zi1icC1qb2luKCRicC1taW4sICRicC1tYXgsICctd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8nLCAnLXdlYmtpdC1tYXgtZGV2aWNlLXBpeGVsLXJhdGlvJyksXG4gICAgICAtemYtYnAtam9pbigkYnAtbWluLWRwaSwgJGJwLW1heC1kcGksICdtaW4tcmVzb2x1dGlvbicsICdtYXgtcmVzb2x1dGlvbicpLFxuICAgICAgJywgJyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gLXpmLWJwLWpvaW4oJGJwLW1pbiwgJGJwLW1heCk7XG4gIH1cbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBhbmQgYCRicmVha3BvaW50cy1oaWRwaWAgbWFwcywgYW5kIHVzZSBhIG1lZGlhIHF1ZXJ5IHRoZXJlLlxuLy8vICAtIElmIGEgcGl4ZWwgdmFsdWUgaXMgcGFzc2VkLCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhbiBlbSB2YWx1ZSB1c2luZyBgJGdsb2JhbC1mb250LXNpemVgIGFzIHRoZSBiYXNlLlxuLy8vICAtIElmIGEgcmVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHVuaXQgd2lsbCBiZSBjaGFuZ2VkIHRvIGVtLlxuLy8vICAtIElmIGFuIGVtIHZhbHVlIGlzIHBhc3NlZCwgdGhlIHZhbHVlIHdpbGwgYmUgdXNlZCBhcy1pcy5cbi8vL1xuLy8vIElmIG11bHRpcGxlIHZhbHVlcyBhcmUgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBnZW5lcmF0ZSBhIG1lZGlhIHF1ZXJ5IGZvciBlYWNoIG9mIHRoZW0gYXMgZGVzY3JpYmVkIGFib3ZlLlxuLy8vIFNpbmNlIHRoZSBjb250ZW50IGlzIGR1cGxpY2F0ZWQgZm9yIGVhY2ggYnJlYWtwb2ludCwgdGhpcyBtaXhpbiBzaG91bGQgb25seSBiZSB1c2VkIHdpdGggcHJvcGVydGllcyB0aGF0XG4vLy8gY2hhbmdlIGFjcm9zcyBicmVha3BvaW50cy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICR2YWx1ZXMuLi4gLSBCcmVha3BvaW50IG5hbWUgb3IgcHgvcmVtL2VtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZXMuLi4pIHtcbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJHZhbHVlcykge1xuICAgICR2YWx1ZTogbnRoKCR2YWx1ZXMsICRpKTtcbiAgICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICAgJGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsIG50aCgkdmFsdWUsIDEpKTtcbiAgICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcbiAgICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAgICRkaXI6IGlmKGxlbmd0aCgkdmFsdWUpID4gMSwgbnRoKCR2YWx1ZSwgMiksIHVwKTtcblxuICAgICRvbGQtemYtc2l6ZTogbnVsbDtcblxuICAgIC8vIE1ha2UgYnJlYWtwb2ludCBzaXplIGF2YWlsYWJsZSBhcyBhIHZhcmlhYmxlXG4gICAgQGlmIGdsb2JhbC12YXJpYWJsZS1leGlzdHMoLXpmLXNpemUpIHtcbiAgICAgICRvbGQtemYtc2l6ZTogJC16Zi1zaXplO1xuICAgIH1cbiAgICAkLXpmLXNpemU6IG50aCgkdmFsdWUsIDEpICFnbG9iYWw7IC8vIGdldCB0aGUgZmlyc3QgdmFsdWUgdG8gYWNjb3VudCBmb3IgYG9ubHlgIGFuZCBgZG93bmAga2V5d29yZHNcblxuICAgIC8vIElmICRzdHIgaXMgc3RpbGwgYW4gZW1wdHkgc3RyaW5nLCBubyBtZWRpYSBxdWVyeSBpcyBuZWVkZWRcbiAgICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIEZvciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJHByaW50LWJyZWFrcG9pbnQsIGFkZCBwcmludCB0byB0aGUgbWVkaWEgdHlwZXNcbiAgICAgIC8vIGdlbmVyYXRlIHByaW50IGlmIHRoZSBicmVha3BvaW50IGFmZmVjdHMgdGhlIHByaW50LWJyZWFrcG9pbnQgKG9yIHNtYWxsZXIpLlxuICAgICAgLy8gVGhpcyBtZWFucyB0aGUgY3VycmVudCBjb25kaXRpb24gb25seSBuZWVkcyB0byBiZSBleHRlbmRlZCBzbyAnZG93bicgYWx3YXlzIGdlbmVyYXRlcyBwcmludC5cbiAgICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgKCRicCA8PSAkcGJwIG9yICRkaXIgPT0gZG93bikge1xuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAkLXpmLXNpemU6ICRvbGQtemYtc2l6ZSAhZ2xvYmFsO1xuICB9XG59XG5cbi8vLyBDb252ZXJ0cyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gRmluZCB0aGUgbmV4dCBudW1iZXIgaW4gYSBtYXAuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byB0cmF2ZXJzZS5cbi8vLyBAcGFyYW0ge01peGVkfSAkbnVtYmVyIC0gTnVtYmVyIHRvIHVzZSBhcyBhIHN0YXJ0aW5nIHBvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge01peGVkfSBUaGUgbnVtYmVyIGZvbGxvd2luZyBgJG51bWJlcmAsIGlmIGAkbnVtYmVyYCB3YXMgZm91bmQuIElmIGAkbnVtYmVyYCB3YXMgbm90IGZvdW5kLCBvciBgJG51bWJlcmAgd2FzIHRoZSBiaWdnZXN0IG51bWJlciBpbiB0aGUgbWFwLCByZXR1cm5zIGBudWxsYC5cbkBmdW5jdGlvbiAtemYtbWFwLW5leHQtbnVtYmVyKCRtYXAsICRudW1iZXIpIHtcblxuICAkbmV4dC1udW1iZXI6IG51bGw7XG5cbiAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgIEBpZiB0eXBlLW9mKCR2KSA9PSAnbnVtYmVyJyBhbmQgJHYgPiAkbnVtYmVyIGFuZCAoJG5leHQtbnVtYmVyID09IG51bGwgb3IgJHYgPCAkbmV4dC1udW1iZXIpIHtcbiAgICAgICRuZXh0LW51bWJlcjogJHY7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbmV4dC1udW1iZXI7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGxhc3QgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtYnJlYWtwb2ludHMtbGVzcy10aGFuKCRrZXkpIHtcbiAgJGxpc3Q6ICgpO1xuICAkZm91bmQta2V5OiBmYWxzZTtcblxuICBAZWFjaCAkbmFtZSBpbiAkLXpmLWJyZWFrcG9pbnRzLWtleXMge1xuICAgIEBpZiAoJG5hbWUgPT0gJGtleSkge1xuICAgICAgJGZvdW5kLWtleTogdHJ1ZTtcbiAgICB9XG4gICAgQGlmIG5vdCAkZm91bmQta2V5IHtcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRuYW1lKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkbGlzdDtcbn1cblxuLy8vIFJldHVybiBhIGxpc3Qgb2Ygb3VyIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiAka2V5LiBVc2VmdWwgZm9yIGRlYWxpbmcgd2l0aFxuLy8vIHJlc3BvbnNpdmUgZ3V0dGVycyBmb3IgdGhlIGdyaWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJyZWFrcG9pbnQgLSBhIG5hbWVkIG9yIG5vbi1uYW1lZCBicmVha3BvaW50LlxuLy8vXG4vLy8gQHJldHVybnMge0FycmF5fSBUaGUgbGlzdCBvZiBicmVha3BvaW50cyB1cCB0byBhbmQuIElmICRrZXkgaXMgYXV0bywgcmV0dXJucyBicmVha3BvaW50cyBhYm92ZSB0aGUgemVyb1xuQGZ1bmN0aW9uIC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJGJyZWFrcG9pbnQpIHtcbiAgJGxhc3Q6ICQtemYtemVyby1icmVha3BvaW50O1xuICAkZm91bmQ6IGZhbHNlO1xuXG4gICR2YWx1ZTogdW5pdGxlc3MtY2FsYygkYnJlYWtwb2ludCwgMXB4KTtcbiAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgIEBpZiB1bml0bGVzcy1jYWxjKCR2YWwpID4gJHZhbHVlIHtcbiAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRsYXN0OiAka2V5O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJGxhc3Q7XG59XG5cbi8vLyBHZXQgYSB2YWx1ZSBmb3IgYSBicmVha3BvaW50IGZyb20gYSByZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0IHJlZ2FyZGxlc3Mgb2YgYCR2YWx1ZWAuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBoYXMgdGhlIGtleSBgJHZhbHVlYCwgdGhlIGV4YWN0IGJyZWFrcG9pbnQgdmFsdWUgaXMgcmV0dXJuZWQuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgbWFwIGFuZCBkb2VzICpub3QqIGhhdmUgdGhlIGJyZWFrcG9pbnQsIHRoZSB2YWx1ZSBtYXRjaGluZyB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBpbiB0aGUgY29uZmlnIG1hcCBpcyByZXR1cm5lZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIFJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUgdG8gdXNlLlxuLy8vXG4vLy8gQHJldHVybiB7TWl4ZWR9IFRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUuXG5AZnVuY3Rpb24gLXpmLWdldC1icC12YWwoJG1hcCwgJHZhbHVlKSB7XG4gIC8vIElmIHRoZSBnaXZlbiBtYXAgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdFxuICBAaWYgdHlwZS1vZigkbWFwKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkbWFwO1xuICB9XG5cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgICAkdmFsdWU6IC16Zi1jbG9zZXN0LW5hbWVkLWJyZWFrcG9pbnQoJHZhbHVlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuLy8vIFJldHVybiB0aGUgYmVzdCBicmVha3BvaW50IHRvIHVzZSBhY2NvcmRpbmcgdG8gdGhlIGNhbGxpbmcgY29udGV4dC4gSXQgcmV0dXJucyBpbiBvcmRlcjpcbi8vLyAxLiB0aGUgZ2l2ZW4gYCR2YWx1ZWAgYXJndW1lbnQgaWYgaXQgaXMgbm90IG51bGwuXG4vLy8gMi4gdGhlIGdsb2JhbCBicmVha3BvaW50IGNvbnRleHQgYCQtemYtc2l6ZWAgaWYgaXQgaXMgbm90IG51bGwgKGxpa2UgaWYgY2FsbGVkIGluc2lkZSB0aGVuIGBicmVha3BvaW50KClgIG1peGluKVxuLy8vIDMuIHRoZSBnaXZlbiBgJGRlZmF1bHRgIGFyZ3VtZW50LlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkdmFsdWUgW251bGxdIC0gQnJlYWtwb2ludCB0byB1c2UgaW4gcHJpb3JpdHkgaWYgbm9uLW51bGwuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGVmYXVsdCBbbnVsbF0gLSBCcmVha3BvaW50IHRvIHVzZSBieSBkZWZhdWx0IGlmIG5vIG90aGVyIHZhbHVlIGNhbiBiZSB1c2VkLlxuLy8vXG4vLy8gQHJldHVybiB7S2V5d29yZH0gVGhlIHJlc29sdmVkIGJyZWFrcG9pbnQuXG5AZnVuY3Rpb24gLXpmLWN1cnJlbnQtYnJlYWtwb2ludCgkdmFsdWU6IG51bGwsICRkZWZhdWx0OiBudWxsKSB7XG4gIEBpZiAoJHZhbHVlICE9IG51bGwpIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxuICBAZWxzZSBpZiAodmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSBhbmQgdHlwZS1vZigkLXpmLXNpemUpICE9ICdudW1iZXInKSBhbmQgJC16Zi1zaXplICE9IG51bGwge1xuICAgIEByZXR1cm4gJC16Zi1zaXplO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRkZWZhdWx0O1xuICB9XG59XG5cbi8vLyBSZXR1cm4gbWVkaWEgcXVlcnkgc3RyaW5nIGZyb20gdGhlIGdpdmVuIG1pbiBhbmQvb3IgbWF4IGxpbWl0cy5cbi8vLyBJZiBhIGxpbWl0IGlzIGVxdWFsIHRvIGBudWxsYCBvciBgMGAsIGl0IGlzIGlnbm9yZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG1pbiBbMF0gLSBNaW4gbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtYXggWzBdIC0gTWF4IG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWluLW5hbWUgWydtaW4td2lkdGgnXSAtIE5hbWUgb2YgdGhlIG1pbiBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRlbGltaXRlciBbJ21heC13aWR0aCddIC0gTmFtZSBvZiB0aGUgbWF4IG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gTWVkaWEgUXVlcnkgc3RyaW5nLlxuQGZ1bmN0aW9uIC16Zi1icC1qb2luKFxuICAkbWluOiAwLFxuICAkbWF4OiAwLFxuICAkbWluLW5hbWU6ICdtaW4td2lkdGgnLFxuICAkbWF4LW5hbWU6ICdtYXgtd2lkdGgnXG4pIHtcbiAgQHJldHVybiB6Zi1zdHItam9pbihcbiAgICBpZigkbWluIGFuZCAkbWluID4gMCwgJygjeyRtaW4tbmFtZX06ICN7JG1pbn0pJywgbnVsbCksXG4gICAgaWYoJG1heCBhbmQgJG1heCA+IDAsICcoI3skbWF4LW5hbWV9OiAjeyRtYXh9KScsIG51bGwpLFxuICAgICcgYW5kICcpO1xufVxuXG4kc21hbGwtdXA6ICcnO1xuJHNtYWxsLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBzbWFsbCkge1xuICAkc21hbGwtdXA6IHNjcmVlbjtcbiAgJHNtYWxsLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHNtYWxsIG9ubHkpfScpO1xufVxuXG4kbWVkaXVtLXVwOiAnJztcbiRtZWRpdW0tb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuJGxhcmdlLXVwOiAnJztcbiRsYXJnZS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuJHhsYXJnZS11cDogJyc7XG4keGxhcmdlLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbiR4eGxhcmdlLXVwOiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeHhsYXJnZSkge1xuICAkeHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeHhsYXJnZSl9Jyk7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBpbXBvcnQgJ21hdGgnO1xuXG4kY29udHJhc3Qtd2FybmluZ3M6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBQYXRjaCB0byBmaXggaXNzdWUgIzEyMDgwXG4kcHJpbWFyeS1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbiRzZWNvbmRhcnktY29sb3I6IG51bGwgIWRlZmF1bHQ7XG4kd2FybmluZy1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbiRhbGVydC1jb2xvcjogbnVsbCAhZGVmYXVsdDtcbiRzdWNjZXNzLWNvbG9yOiBudWxsICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLy8gQ2hlY2tzIHRoZSBsdW1pbmFuY2Ugb2YgYCRjb2xvcmAuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciB0byBjaGVjayB0aGUgbHVtaW5hbmNlIG9mLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGx1bWluYW5jZSBvZiBgJGNvbG9yYC5cbkBmdW5jdGlvbiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yKSB7XG4gIC8vIEFkYXB0ZWQgZnJvbTogaHR0cHM6Ly9naXRodWIuY29tL0xlYVZlcm91L2NvbnRyYXN0LXJhdGlvL2Jsb2IvZ2gtcGFnZXMvY29sb3IuanNcbiAgLy8gRm9ybXVsYTogaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOC9SRUMtV0NBRzIwLTIwMDgxMjExLyNyZWxhdGl2ZWx1bWluYW5jZWRlZlxuICAkcmdiYTogcmVkKCRjb2xvciksIGdyZWVuKCRjb2xvciksIGJsdWUoJGNvbG9yKTtcbiAgJHJnYmEyOiAoKTtcblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDMge1xuICAgICRyZ2I6IG50aCgkcmdiYSwgJGkpO1xuICAgICRyZ2I6IGRpdmlkZSgkcmdiLCAyNTUpO1xuXG4gICAgJHJnYjogaWYoJHJnYiA8IDAuMDM5MjgsIGRpdmlkZSgkcmdiLCAxMi45MiksIHBvdyhkaXZpZGUoJHJnYiArIDAuMDU1LCAxLjA1NSksIDIuNCkpO1xuXG4gICAgJHJnYmEyOiBhcHBlbmQoJHJnYmEyLCAkcmdiKTtcbiAgfVxuXG4gIEByZXR1cm4gMC4yMTI2ICogbnRoKCRyZ2JhMiwgMSkgKyAwLjcxNTIgKiBudGgoJHJnYmEyLCAyKSArIDAuMDcyMiAqIG50aCgkcmdiYTIsIDMpO1xufVxuXG4vLy8gQ2hlY2tzIHRoZSBjb250cmFzdCByYXRpbyBvZiB0d28gY29sb3JzLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMSAtIEZpcnN0IGNvbG9yIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yMiAtIFNlY29uZCBjb2xvciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGNvbnRyYXN0IHJhdGlvIG9mIHRoZSBjb21wYXJlZCBjb2xvcnMuXG5AZnVuY3Rpb24gY29sb3ItY29udHJhc3QoJGNvbG9yMSwgJGNvbG9yMikge1xuICAvLyBBZGFwdGVkIGZyb206IGh0dHBzOi8vZ2l0aHViLmNvbS9MZWFWZXJvdS9jb250cmFzdC1yYXRpby9ibG9iL2doLXBhZ2VzL2NvbG9yLmpzXG4gIC8vIEZvcm11bGE6IGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDgvUkVDLVdDQUcyMC0yMDA4MTIxMS8jY29udHJhc3QtcmF0aW9kZWZcbiAgJGx1bWluYW5jZTE6IGNvbG9yLWx1bWluYW5jZSgkY29sb3IxKSArIDAuMDU7XG4gICRsdW1pbmFuY2UyOiBjb2xvci1sdW1pbmFuY2UoJGNvbG9yMikgKyAwLjA1O1xuICAkcmF0aW86IGRpdmlkZSgkbHVtaW5hbmNlMSwgJGx1bWluYW5jZTIpO1xuXG4gIEBpZiAkbHVtaW5hbmNlMiA+ICRsdW1pbmFuY2UxIHtcbiAgICAkcmF0aW86IGRpdmlkZSgxLCAkcmF0aW8pO1xuICB9XG5cbiAgJHJhdGlvOiByb3VuZCgkcmF0aW8gKiAxMCkgKiAwLjE7XG5cbiAgQHJldHVybiAkcmF0aW87XG59XG5cbi8vLyBDaGVja3MgdGhlIGx1bWluYW5jZSBvZiBgJGJhc2VgLCBhbmQgcmV0dXJucyB0aGUgY29sb3IgZnJvbSBgJGNvbG9yc2AgKGxpc3Qgb2YgY29sb3JzKSB0aGF0IGhhcyB0aGUgbW9zdCBjb250cmFzdC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYXNlIC0gQ29sb3IgdG8gY2hlY2sgbHVtaW5hbmNlLlxuLy8vIEBwYXJhbSB7TGlzdH0gJGNvbG9ycyBbKCR3aGl0ZSwgJGJsYWNrKV0gLSBDb2xvcnMgdG8gY29tcGFyZS5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRvbGVyYW5jZSBbJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZV0gLSBDb250cmFzdCB0b2xlcmFuY2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IHRoZSBjb2xvciBmcm9tIGAkY29sb3JzYCAobGlzdCBvZiBjb2xvcnMpIHRoYXQgaGFzIHRoZSBtb3N0IGNvbnRyYXN0LlxuQGZ1bmN0aW9uIGNvbG9yLXBpY2stY29udHJhc3QoJGJhc2UsICRjb2xvcnM6ICgkd2hpdGUsICRibGFjayksICR0b2xlcmFuY2U6ICRnbG9iYWwtY29sb3ItcGljay1jb250cmFzdC10b2xlcmFuY2UpIHtcbiAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsIDEpKTtcbiAgJGJlc3Q6IG50aCgkY29sb3JzLCAxKTtcblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkY29sb3JzKSB7XG4gICAgJGN1cnJlbnQtY29udHJhc3Q6IGNvbG9yLWNvbnRyYXN0KCRiYXNlLCBudGgoJGNvbG9ycywgJGkpKTtcbiAgICBAaWYgKCRjdXJyZW50LWNvbnRyYXN0IC0gJGNvbnRyYXN0ID4gJHRvbGVyYW5jZSkge1xuICAgICAgJGNvbnRyYXN0OiBjb2xvci1jb250cmFzdCgkYmFzZSwgbnRoKCRjb2xvcnMsICRpKSk7XG4gICAgICAkYmVzdDogbnRoKCRjb2xvcnMsICRpKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRjb250cmFzdC13YXJuaW5ncyBhbmQgJGNvbnRyYXN0IDwgMykge1xuICAgIEB3YXJuICdDb250cmFzdCByYXRpbyBvZiAjeyRiZXN0fSBvbiAjeyRiYXNlfSBpcyBwcmV0dHkgYmFkLCBqdXN0ICN7JGNvbnRyYXN0fSc7XG4gIH1cblxuICBAcmV0dXJuICRiZXN0O1xufVxuXG4vLy8gU2NhbGVzIGEgY29sb3IgdG8gYmUgZGFya2VyIGlmIGl0J3MgbGlnaHQsIG9yIGxpZ2h0ZXIgaWYgaXQncyBkYXJrLiBVc2UgdGhpcyBmdW5jdGlvbiB0byB0aW50IGEgY29sb3IgYXBwcm9wcmlhdGUgdG8gaXRzIGxpZ2h0bmVzcy5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIENvbG9yIHRvIHNjYWxlLlxuLy8vIEBwYXJhbSB7UGVyY2VudGFnZX0gJHNjYWxlIFs1JV0gLSBBbW91bnQgdG8gc2NhbGUgdXAgb3IgZG93bi5cbi8vLyBAcGFyYW0ge1BlcmNlbnRhZ2V9ICR0aHJlc2hvbGQgWzQwJV0gLSBUaHJlc2hvbGQgb2YgbGlnaHRuZXNzIHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJucyB7Q29sb3J9IEEgc2NhbGVkIGNvbG9yLlxuQGZ1bmN0aW9uIHNtYXJ0LXNjYWxlKCRjb2xvciwgJHNjYWxlOiA1JSwgJHRocmVzaG9sZDogNDAlKSB7XG4gIEBpZiBsaWdodG5lc3MoJGNvbG9yKSA+ICR0aHJlc2hvbGQge1xuICAgICRzY2FsZTogLSRzY2FsZTtcbiAgfVxuICBAcmV0dXJuIHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJHNjYWxlKTtcbn1cblxuLy8vIEdldCBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHBhcmFtIHtrZXl9IGNvbG9yIGtleSBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuLy8vXG4vLy8gQHJldHVybnMge0NvbG9yfSBjb2xvciBmcm9tIGZvdW5kYXRpb24tcGFsZXR0ZVxuQGZ1bmN0aW9uIGdldC1jb2xvcigka2V5KSB7XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCAka2V5KSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsICRrZXkpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAZXJyb3IgJ2dpdmVuICRrZXkgaXMgbm90IGF2YWlsYWJsZSBpbiAkZm91bmRhdGlvbi1wYWxldHRlJztcbiAgfVxufVxuXG4vLy8gVHJhbnNmZXJzIHRoZSBjb2xvcnMgaW4gdGhlIGAkZm91bmRhdGlvbi1wYWxldHRlYCBtYXAgaW50byB2YXJpYWJsZXMsIHN1Y2ggYXMgYCRwcmltYXJ5LWNvbG9yYCBhbmQgYCRzZWNvbmRhcnktY29sb3JgLiBDYWxsIHRoaXMgbWl4aW4gYmVsb3cgdGhlIEdsb2JhbCBzZWN0aW9uIG9mIHlvdXIgc2V0dGluZ3MgZmlsZSB0byBwcm9wZXJseSBtaWdyYXRlIHlvdXIgY29kZWJhc2UuXG5AbWl4aW4gYWRkLWZvdW5kYXRpb24tY29sb3JzKCkge1xuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgcHJpbWFyeSkge1xuICAgICRwcmltYXJ5LWNvbG9yOiBtYXAtZ2V0KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwcmltYXJ5LWNvbG9yOiAjMTc3OWJhICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHNlY29uZGFyeSkge1xuICAgICRzZWNvbmRhcnktY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgc2Vjb25kYXJ5KSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc2Vjb25kYXJ5LWNvbG9yOiAjNzY3Njc2ICFnbG9iYWw7XG4gIH1cbiAgQGlmIG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHN1Y2Nlc3MpIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogbWFwLWdldCgkZm91bmRhdGlvbi1wYWxldHRlLCBzdWNjZXNzKSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkc3VjY2Vzcy1jb2xvcjogIzNhZGI3NiAhZ2xvYmFsO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkZm91bmRhdGlvbi1wYWxldHRlLCB3YXJuaW5nKSB7XG4gICAgJHdhcm5pbmctY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgd2FybmluZykgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHdhcm5pbmctY29sb3I6ICNmZmFlMDAgIWdsb2JhbDtcbiAgfVxuICBAaWYgbWFwLWhhcy1rZXkoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpIHtcbiAgICAkYWxlcnQtY29sb3I6IG1hcC1nZXQoJGZvdW5kYXRpb24tcGFsZXR0ZSwgYWxlcnQpICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRhbGVydC1jb2xvcjogI2NjNGIzNyAhZ2xvYmFsO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1oZWxwZXJzXG4vLy8vXG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIE51bWJlclxuJGxlYWQtZm9udC1zaXplOiAkZ2xvYmFsLWZvbnQtc2l6ZSAqIDEuMjUgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBsZWFkIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kbGVhZC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgY29sb3IgZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRzdWJoZWFkZXItY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgd2VpZ2h0IGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJHN1YmhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0b3AgbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tdG9wOiAwLjJyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGJvdHRvbSBtYXJnaW4gZm9yIHN1YmhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3ViaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgZm9udCBzaXplIGZvciBzdGF0aXN0aWMgbnVtYmVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdGF0LWZvbnQtc2l6ZTogMi41cmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBmb3IgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgQ29sb3JcbiRjaXRlLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzaXplIGZvciBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBOdW1iZXJcbiRjaXRlLWZvbnQtc2l6ZTogcmVtLWNhbGMoMTMpICFkZWZhdWx0O1xuXG4vLy8gUHNldWRvIGNvbnRlbnQgZm9yIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNpdGUtcHNldWRvLWNvbnRlbnQ6ICdcXDIwMTQgXFwwMDIwJyAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IG9mIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGNvZGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiB0ZXh0IGluIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kY29kZS1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBvZiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIENvbG9yXG4kY29kZS1iYWNrZ3JvdW5kOiAkbGlnaHQtZ3JheSAhZGVmYXVsdDtcblxuLy8vIEJvcmRlciBhcm91bmQgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kY29kZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGFyb3VuZCB0ZXh0IG9mIHRoZSBgLmNvZGUtaW5saW5lYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtcGFkZGluZzogcmVtLWNhbGMoMiA1IDEpICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiB0aGUgYC5jb2RlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGNvZGUtYmxvY2stcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIE1hcmdpbiB1bmRlciB0aGUgYC5jb2RlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY29kZS1ibG9jay1tYXJnaW4tYm90dG9tOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbkBtaXhpbiBjaXRlLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAkY2l0ZS1jb2xvcjtcbiAgZm9udC1zaXplOiAkY2l0ZS1mb250LXNpemU7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICRjaXRlLXBzZXVkby1jb250ZW50O1xuICB9XG59XG5cbi8vLyBBZGQgYmFzaWMgc3R5bGVzIGZvciBhIGNvZGUgaGVscGVyLlxuLy8vIFNlZSBgY29kZS1pbmxpbmVgIGFuZCBgY29kZS1ibG9ja2AgbWl4aW5zLlxuQG1peGluIGNvZGUtc3R5bGUge1xuICBib3JkZXI6ICRjb2RlLWJvcmRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmFja2dyb3VuZDtcblxuICBmb250LWZhbWlseTogJGNvZGUtZm9udC1mYW1pbHk7XG4gIGZvbnQtd2VpZ2h0OiAkY29kZS1mb250LXdlaWdodDtcbiAgY29sb3I6ICRjb2RlLWNvbG9yO1xufVxuXG4vLy8gTWFrZSBjb2RlIGhlbHBlciBmcm9tIHRoZSBgY29kZS1zdHlsZWAgbWl4aW4gaW5saW5lLlxuLy8vIFVzZWQgdG8gZ2VuZXJhdGUgYC5jb2RlLWlubGluZWBcbkBtaXhpbiBjb2RlLWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgcGFkZGluZzogJGNvZGUtcGFkZGluZztcbn1cblxuLy8vIE1ha2UgY29kZSBoZWxwZXIgZnJvbSB0aGUgYGNvZGUtc3R5bGVgIG1peGluIGEgYmxvY2suXG4vLy8gVXNlZCB0byBnZW5lcmF0ZSBgLmNvZGUtYmxvY2tgXG5AbWl4aW4gY29kZS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2hpdGUtc3BhY2U6IHByZTtcblxuICBwYWRkaW5nOiAkY29kZS1ibG9jay1wYWRkaW5nO1xuICBtYXJnaW4tYm90dG9tOiAkY29kZS1ibG9jay1tYXJnaW4tYm90dG9tO1xufVxuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWhlbHBlcnMge1xuICAvLyBVc2UgdG8gY3JlYXRlIGEgc3ViaGVhZGluZyB1bmRlciBhIG1haW4gaGVhZGVyXG4gIC8vIE1ha2Ugc3VyZSB5b3UgcGFpciB0aGUgdHdvIGVsZW1lbnRzIGluIGEgPGhlYWRlcj4gZWxlbWVudCwgbGlrZSB0aGlzOlxuICAvLyA8aGVhZGVyPlxuICAvLyAgIDxoMT5IZWFkaW5nPC9oMT5cbiAgLy8gICA8aDI+U3ViaGVhZGluZzwvaDI+XG4gIC8vIDwvaGVhZGVyPlxuICAuc3ViaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAkc3ViaGVhZGVyLW1hcmdpbi10b3A7XG4gICAgbWFyZ2luLWJvdHRvbTogJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC13ZWlnaHQ6ICRzdWJoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRzdWJoZWFkZXItbGluZWhlaWdodDtcbiAgICBjb2xvcjogJHN1YmhlYWRlci1jb2xvcjtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhbiBpbnRyb2R1Y3RvcnkgbGVhZCwgZGVjaywgYmx1cmIsIGV0Yy5cbiAgLmxlYWQge1xuICAgIGZvbnQtc2l6ZTogJGxlYWQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGVhZC1saW5laGVpZ2h0O1xuICB9XG5cbiAgLy8gVXNlIHRvIHN0eWxlIGEgbGFyZ2UgbnVtYmVyIHRvIGRpc3BsYXkgYSBzdGF0aXN0aWNcbiAgLnN0YXQge1xuICAgIGZvbnQtc2l6ZTogJHN0YXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgcCArICYge1xuICAgICAgbWFyZ2luLXRvcDogLTFyZW07XG4gICAgfVxuICB9XG5cbiAgdWwsIG9sIHtcbiAgICAvLyBVc2UgdG8gcmVtb3ZlIG51bWJlcnMgZnJvbSBvcmRlcmVkIGxpc3QgJiBidWxsZXRzIGZyb20gdW5vcmRlcmVkIGxpc3RcbiAgICAmLm5vLWJ1bGxldCB7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAlY2l0ZS1ibG9jayB7XG4gICAgQGluY2x1ZGUgY2l0ZS1ibG9jaztcbiAgfVxuXG4gIC5jaXRlLWJsb2NrIHtcbiAgICBAZXh0ZW5kICVjaXRlLWJsb2NrO1xuICB9XG5cbiAgJWNvZGUtaW5saW5lIHtcbiAgICBAaW5jbHVkZSBjb2RlLXN0eWxlO1xuICAgIEBpbmNsdWRlIGNvZGUtaW5saW5lO1xuICB9XG5cbiAgLmNvZGUtaW5saW5lIHtcbiAgICBAZXh0ZW5kICVjb2RlLWlubGluZTtcbiAgfVxuXG4gIC5jb2RlLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBjb2RlLXN0eWxlO1xuICAgIEBpbmNsdWRlIGNvZGUtYmxvY2s7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQG1peGluIGZvdW5kYXRpb24tdGV4dC1hbGlnbm1lbnQge1xuICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkYWxpZ24gaW4gKGxlZnQsIHJpZ2h0LCBjZW50ZXIsIGp1c3RpZnkpIHtcbiAgICAgICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAuI3skc2l6ZX0tdGV4dC0jeyRhbGlnbn0ge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogJGFsaWduO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLnRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIElmIGB0cnVlYCwgYWxsIGVsZW1lbnRzIHdpbGwgaGF2ZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kcyB3aGVuIHByaW50ZWQsIHRvIHNhdmUgb24gaW5rLlxuLy8vIEB0eXBlIEJvb2xlYW5cbi8vLyBAZ3JvdXAgZ2xvYmFsXG4kcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBJZiBgdHJ1ZWAsIGRpc3BsYXlzIG5leHQgdG8gYWxsIGxpbmtzIHRoZWlyIFwiaHJlZlwiIHdoZW4gcHJpbnRlZC5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LWhyZWZzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBzYXNzLWxpbnQ6ZGlzYWJsZS1hbGxcblxuQG1peGluIGZvdW5kYXRpb24tcHJpbnQtc3R5bGVzIHtcbiAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgQG1lZGlhIHByaW50IHtcbiAgICAqIHtcbiAgICAgIC8vIEVuc3VyZSBhIFwiYmxhY2stb24td2hpdGVcIiBwcmludCBieSByZW1vdmluZyBiYWNrZ3JvdW5kcyxcbiAgICAgIC8vIHVzaW5nIGJsYWNrIHRleHQgZXZlcnl3aGVyZSBhbmQgZm9yY2luZyB0aGUgYnJvd3NlciB0byBlY29ub21pemUgaW5rLlxuICAgICAgQGlmICRwcmludC10cmFuc3BhcmVudC1iYWNrZ3JvdW5kcyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyOiBoNWJwLmNvbS9zXG4gICAgICAgIHByaW50LWNvbG9yLWFkanVzdDogZWNvbm9teTtcbiAgICAgIH1cbiAgICAgIC8vIE90aGVyd2lzZSwgcHJldmVudCBhbnkgZWNvbm9teSBieSB0aGUgYnJvd3Nlci5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcbiAgICAgIH1cblxuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gICAgLmhpZGUtZm9yLXByaW50IHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbiAgICB0YWJsZS5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgICB0aGVhZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cCAhaW1wb3J0YW50OyB9XG4gICAgdGJvZHkuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRyLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgICB0ZC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAgIHRoLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG5cbiAgICAvLyBEaXNwbGF5IHRoZSBVUkwgb2YgYSBsaW5rIGFmdGVyIHRoZSB0ZXh0XG4gICAgYSxcbiAgICBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTt9XG4gICAgQGlmICRwcmludC1ocmVmcyB7XG4gICAgICBhW2hyZWZdOmFmdGVyIHsgY29udGVudDogJyAoJyBhdHRyKGhyZWYpICcpJzsgfVxuICAgIH1cblxuICAgIC8vIERvbid0IGRpc3BsYXkgdGhlIFVSTCBmb3IgaW1hZ2VzIG9yIEphdmFTY3JpcHQvaW50ZXJuYWwgbGlua3NcbiAgICAuaXIgYTphZnRlcixcbiAgICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICAgIGFbaHJlZl49JyMnXTphZnRlciB7IGNvbnRlbnQ6ICcnOyB9XG5cbiAgICAvLyBEaXNwbGF5IHdoYXQgYW4gYWJicmV2aWF0aW9uIHN0YW5kcyBmb3IgYWZ0ZXIgdGhlIHRleHRcbiAgICBhYmJyW3RpdGxlXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cih0aXRsZSkgJyknOyB9XG5cbiAgICAvLyBQcmV2ZW50IHBhZ2UgYnJlYWtzIGluIHRoZSBtaWRkbGUgb2YgYSBibG9ja3F1b3RlIG9yIHByZWZvcm1hdHRlZCB0ZXh0IGJsb2NrXG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmstZ3JheTtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvLyBoNWJwLmNvbS90XG4gICAgdGhlYWQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7IH1cblxuICAgIHRyLFxuICAgIGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuXG4gICAgaW1nIHsgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuICAgIEBwYWdlIHsgbWFyZ2luOiAwLjVjbTsgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIC8vIEF2b2lkIHBhZ2UgYnJlYWtzIGFmdGVyIGEgaGVhZGluZ1xuICAgIGgyLFxuICAgIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cblxuICAgIC8vIEhlbHBlciB0byByZS1hbGxvdyBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGNlcnRhaW4gZWxlbWVudHMgKGUuZy4gcHJlLCBibG9ja3F1b3RlLCB0cilcbiAgICAucHJpbnQtYnJlYWstaW5zaWRlIHtcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZsZXgtZ3JpZFxuLy8vL1xuXG4vLy8gQ3JlYXRlcyBhIGNvbnRhaW5lciBmb3IgYSBmbGV4IGdyaWQgcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfExpc3R9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gTnVtYmVyIG9mIGNvbHVtbnMgdG8gdXNlIGZvciB0aGlzIHJvdy4gSWYgc2V0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpLCB0aGUgZ2xvYmFsIGNvbHVtbiBjb3VudCB3aWxsIGJlIHVzZWQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYmFzZSBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBwcmV2ZW50IGJhc2ljIHN0eWxlcyBmcm9tIGJlaW5nIG91dHB1dC4gVXNlZnVsIGlmIHlvdSdyZSBjYWxsaW5nIHRoaXMgbWl4aW4gb24gdGhlIHNhbWUgZWxlbWVudCB0d2ljZSwgYXMgaXQgcHJldmVudHMgZHVwbGljYXRlIENTUyBvdXRwdXQuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkd3JhcCBbdHJ1ZV0gLSBTZXQgdG8gYGZhbHNlYCB0byBoYXZlIHJvdyB3cmFwcGluZyBiZWhhdmlvciBzZXQgdG8gbm93cmFwXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucywgaW4gY2FzZSB0aGUgcm93IGlzIG5lc3RlZC4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBmbGV4LWdyaWQtcm93KFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmFzZTogdHJ1ZSxcbiAgJHdyYXA6IHRydWUsXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgJG1hcmdpbjogYXV0bztcbiAgJHdyYXA6IGlmKCR3cmFwLCB3cmFwLCBub3dyYXApO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGJhc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgJHdyYXA7XG4gIH1cblxuICBAaWYgJGNvbHVtbnMgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1jb250ZXh0KCRjb2x1bW5zLCAkYmFzZSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBDYWxjdWxhdGVzIHRoZSBgZmxleGAgcHJvcGVydHkgZm9yIGEgZmxleCBncmlkIGNvbHVtbi4gSXQgYWNjZXB0cyBhbGwgb2YgdGhlIHNhbWUgdmFsdWVzIGFzIHRoZSBiYXNpYyBgZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24sIGFsb25nIHdpdGggdHdvIGV4dHJhczpcbi8vLyAgIC0gYGV4cGFuZGAgKHRoZSBkZWZhdWx0KSB3aWxsIG1ha2UgdGhlIGNvbHVtbiBleHBhbmQgdG8gZmlsbCBzcGFjZS5cbi8vLyAgIC0gYHNocmlua2Agd2lsbCBtYWtlIHRoZSBjb2x1bW4gY29udHJhY3QsIHNvIGl0IG9ubHkgdGFrZXMgdXAgdGhlIGhvcml6b250YWwgc3BhY2UgaXQgbmVlZHMuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uXG5AZnVuY3Rpb24gZmxleC1ncmlkLWNvbHVtbigkY29sdW1uczogZXhwYW5kKSB7XG4gICRmbGV4OiAxIDEgMHB4OyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHplcm8tdW5pdFxuXG4gIEBpZiAkY29sdW1ucyA9PSBzaHJpbmsge1xuICAgICRmbGV4OiAwIDAgYXV0bztcbiAgfVxuICBAZWxzZSBpZiAkY29sdW1ucyAhPSBleHBhbmQge1xuICAgICRmbGV4OiAwIDAgZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG5cbiAgQHJldHVybiAkZmxleDtcbn1cblxuLy8vIENyZWF0ZXMgYSBjb2x1bW4gZm9yIGEgZmxleCBncmlkLiBCeSBkZWZhdWx0LCB0aGUgY29sdW1uIHdpbGwgc3RyZXRjaCB0byB0aGUgZnVsbCB3aWR0aCBvZiBpdHMgY29udGFpbmVyLCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHNpemluZyBjbGFzc2VzLCBvciBieSB1c2luZyB0aGUgYHVuc3RhY2tgIGNsYXNzIG9uIHRoZSBwYXJlbnQgZmxleCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge01peGVkfSAkY29sdW1ucyBbZXhwYW5kXSAtIFdpZHRoIG9mIHRoZSBjb2x1bW4uIFJlZmVyIHRvIHRoZSBgZmxleC1ncmlkLWNvbHVtbigpYCBmdW5jdGlvbiB0byBzZWUgcG9zc2libGUgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSBmb3IgZ3V0dGVycyB3aWR0aC4gU2VlIHRoZSBgZ3JpZC1jb2x1bW4tZ3V0dGVyYCBtaXhpbi5cbkBtaXhpbiBmbGV4LWdyaWQtY29sdW1uKFxuICAkY29sdW1uczogZXhwYW5kLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIC8vIEJhc2UgcHJvcGVydGllc1xuICBAaW5jbHVkZSBmbGV4LWdyaWQtc2l6ZSgkY29sdW1ucyk7XG5cbiAgLy8gR3V0dGVyc1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoJGd1dHRlcnM6ICRndXR0ZXJzKTtcblxuICAvLyBmaXhlcyByZWNlbnQgQ2hyb21lIHZlcnNpb24gbm90IGxpbWl0aW5nIGNoaWxkIHdpZHRoXG4gIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM0OTM0NTg2L3doaXRlLXNwYWNlLW5vd3JhcC1hbmQtZmxleGJveC1kaWQtbm90LXdvcmstaW4tY2hyb21lXG4gIEBpZiAkY29sdW1ucyA9PSBleHBhbmQge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIGJsb2NrIGdyaWQgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbiAtIE51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkgb24gZWFjaCByb3cuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWxlY3RvciAtIFNlbGVjdG9yIHRvIHVzZSB0byB0YXJnZXQgY29sdW1ucyB3aXRoaW4gdGhlIHJvdy5cbkBtaXhpbiBmbGV4LWdyaWQtbGF5b3V0KFxuICAkbixcbiAgJHNlbGVjdG9yOiAnLmNvbHVtbidcbikge1xuICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgPiAjeyRzZWxlY3Rvcn0ge1xuICAgICRwY3Q6IHBlcmNlbnRhZ2UoZGl2aWRlKDEsICRuKSk7XG5cbiAgICBmbGV4OiAwIDAgJHBjdDtcbiAgICBtYXgtd2lkdGg6ICRwY3Q7XG4gIH1cbn1cblxuLy8vIENoYW5nZXMgdGhlIHdpZHRoIGZsZXggZ3JpZCBjb2x1bW4uXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbkBtaXhpbiBmbGV4LWdyaWQtc2l6ZSgkY29sdW1uczogbnVsbCkge1xuICAkY29sdW1uczogJGNvbHVtbnMgb3IgZXhwYW5kO1xuXG4gIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuXG4gIC8vIG1heC13aWR0aCBmaXhlcyBJRSAxMC8xMSBub3QgcmVzcGVjdGluZyB0aGUgZmxleC1iYXNpcyBwcm9wZXJ0eVxuICBAaWYgJGNvbHVtbnMgIT0gZXhwYW5kIGFuZCAkY29sdW1ucyAhPSBzaHJpbmsge1xuICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGNvbHVtbnMpO1xuICB9XG59XG5cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1ncmlkIHtcbiAgLy8gUm93XG4gIC5yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3c7XG5cbiAgICAvLyBOZXN0aW5nIGJlaGF2aW9yXG4gICAgJiAucm93IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3cobmVzdCwgJGJhc2U6IGZhbHNlKTtcblxuICAgICAgJi5jb2xsYXBzZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwYW5kZWQgcm93XG4gICAgJi5leHBhbmRlZCB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG5cbiAgICAgIC5yb3cge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKGV4cGFuZCk7XG4gICAgfVxuXG4gICAgJi5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4ge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVbmRvIG5lZ2F0aXZlIG1hcmdpbnNcbiAgICAvLyBGcm9tIGNvbGxhcHNlZCBjaGlsZFxuICAgICYuaXMtY29sbGFwc2UtY2hpbGQsXG4gICAgJi5jb2xsYXBzZSA+IC5jb2x1bW4gPiAucm93IHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbHVtblxuICAuY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uO1xuICB9XG5cbiAgLy8gQ29sdW1uIHJvd1xuICAvLyBUaGUgZG91YmxlIC5yb3cgY2xhc3MgaXMgbmVlZGVkIHRvIGJ1bXAgdXAgdGhlIHNwZWNpZmljaXR5XG4gIC5jb2x1bW4ucm93LnJvdyB7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBUbyBwcm9wZXJseSBuZXN0IGEgY29sdW1uIHJvdywgcGFkZGluZyBhbmQgbWFyZ2luIGlzIHJlbW92ZWRcbiAgLnJvdyAuY29sdW1uLnJvdy5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGdyaWQtY29sdW1uLWNvdW50IHtcbiAgICAgIC8vIFNpemluZyAocGVyY2VudGFnZSlcbiAgICAgIC4jeyQtemYtc2l6ZX0tI3skaX0ge1xuICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRpKTtcbiAgICAgICAgbWF4LXdpZHRoOiBncmlkLWNvbHVtbigkaSk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9mZnNldHNcbiAgICAgICRvOiAkaSAtIDE7XG5cbiAgICAgIC4jeyQtemYtc2l6ZX0tb2Zmc2V0LSN7JG99IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCbG9jayBncmlkXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkYmxvY2stZ3JpZC1tYXgge1xuICAgICAgLiN7JC16Zi1zaXplfS11cC0jeyRpfSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1sYXlvdXQoJGkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkLXpmLXNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgLy8gU2l6aW5nIChleHBhbmQpXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAuI3skLXpmLXNpemV9LWV4cGFuZCB7XG4gICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEF1dG8tc3RhY2tpbmcvdW5zdGFja2luZ1xuICAgICAgQGF0LXJvb3QgKHdpdGhvdXQ6IG1lZGlhKSB7XG4gICAgICAgIC5yb3cuI3skLXpmLXNpemV9LXVuc3RhY2sge1xuICAgICAgICAgID4gLmNvbHVtbiB7XG4gICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKDEwMCUpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCQtemYtc2l6ZSkge1xuICAgICAgICAgICAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVzcG9uc2l2ZSBjb2xsYXBzaW5nXG4gICAgLiN7JC16Zi1zaXplfS1jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1jb2xsYXBzZTsgfVxuICAgIH1cblxuICAgIC4jeyQtemYtc2l6ZX0tdW5jb2xsYXBzZSB7XG4gICAgICA+IC5jb2x1bW4geyBAaW5jbHVkZSBncmlkLWNvbC1ndXR0ZXIoJC16Zi1zaXplKTsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNpemluZyAoc2hyaW5rKVxuICAuc2hyaW5rIHtcbiAgICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKHNocmluayk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLy8gQmxvY2sgZ3JpZCBjb2x1bW5zXG4gIC5jb2x1bW4tYmxvY2sge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW1hcmdpbjtcbiAgfVxuXG4gIC5jb2x1bW5zIHtcbiAgICBAZXh0ZW5kIC5jb2x1bW47IC8vIHNhc3MtbGludDpkaXNhYmxlLWxpbmUgcGxhY2Vob2xkZXItaW4tZXh0ZW5kXG5cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGdyaWRcbi8vLy9cblxuLy8vIENoYW5nZSB0aGUgYmVoYXZpb3Igb2YgY29sdW1ucyBkZWZpbmVkIGluc2lkZSB0aGlzIG1peGluIHRvIHVzZSBhIGRpZmZlcmVudCBjb2x1bW4gY291bnQuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZS5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRyb290IFtmYWxzZV1cbi8vLyAgIElmIGBmYWxzZWAsIHNlbGVjdG9ycyBpbnNpZGUgdGhpcyBtaXhpbiB3aWxsIG5lc3QgaW5zaWRlIHRoZSBwYXJlbnQgc2VsZWN0b3IuXG4vLy8gICBJZiBgdHJ1ZWAsIHNlbGVjdG9ycyB3aWxsIG5vdCBuZXN0LlxuQG1peGluIGdyaWQtY29udGV4dChcbiAgJGNvbHVtbnMsXG4gICRyb290OiBmYWxzZVxuKSB7XG4gIC8vIFN0b3JlIHRoZSBjdXJyZW50IGNvbHVtbiBjb3VudCBzbyBpdCBjYW4gYmUgcmUtc2V0IGxhdGVyXG4gICRvbGQtZ3JpZC1jb2x1bW4tY291bnQ6ICRncmlkLWNvbHVtbi1jb3VudDtcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkY29sdW1ucyAhZ2xvYmFsO1xuXG4gIEBpZiAkcm9vdCB7XG4gICAgQGF0LXJvb3QgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIFJlc3RvcmUgdGhlIG9sZCBjb2x1bW4gY291bnRcbiAgJGdyaWQtY29sdW1uLWNvdW50OiAkb2xkLWdyaWQtY29sdW1uLWNvdW50ICFnbG9iYWw7XG59XG5cbi8vLyBDcmVhdGVzIGEgZ3JpZCByb3cuXG4vLy8gQGNvbnRlbnRcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkY29sdW1ucyBbbnVsbF0gLSBDb2x1bW4gY291bnQgZm9yIHRoaXMgcm93LiBgbnVsbGAgd2lsbCB1c2UgdGhlIGRlZmF1bHQgY29sdW1uIGNvdW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZHN9ICRiZWhhdmlvciBbbnVsbF1cbi8vLyAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGRlZmF1bHQgZ3JpZCBzdHlsZXMuIGBuZXN0YCBpbmRpY2F0ZXMgdGhlIHJvdyB3aWxsIGJlIHBsYWNlZCBpbnNpZGUgYW5vdGhlciByb3cuIGBjb2xsYXBzZWAgaW5kaWNhdGVzIHRoYXQgdGhlIGNvbHVtbnMgaW5zaWRlIHRoaXMgcm93IHdpbGwgbm90IGhhdmUgcGFkZGluZy4gYG5lc3QgY29sbGFwc2VgIGNvbWJpbmVzIGJvdGggYmVoYXZpb3JzLlxuLy8vIEBwYXJhbSB7S2V5d29yZHxOdW1iZXJ9ICRzaXplIFskZ3JpZC1yb3ctd2lkdGhdIE1heGltdW0gc2l6ZSBvZiB0aGUgcm93LiBTZXQgdG8gYGV4cGFuZGAgdG8gbWFrZSB0aGUgcm93IHRha2luZyB0aGUgZnVsbCB3aWR0aC5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRjZiBbdHJ1ZV0gLSBXaGV0aGVyIG9yIG5vdCB0byBpbmNsdWRlIGEgY2xlYXJmaXguXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdyhcbiAgJGNvbHVtbnM6IG51bGwsXG4gICRiZWhhdmlvcjogbnVsbCxcbiAgJHNpemU6ICRncmlkLXJvdy13aWR0aCxcbiAgJGNmOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG5cbiAgQGlmIGluZGV4KCRiZWhhdmlvciwgbmVzdCkgIT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgkZ3V0dGVycyk7XG5cbiAgICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBjb2xsYXBzZSkgIT0gbnVsbCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LXNpemUoJHNpemUpO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIEBpZiAkY2Yge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vLyBJbnZlcnRzIHRoZSBtYXJnaW5zIG9mIGEgcm93IHRvIG5lc3QgaXQgaW5zaWRlIG9mIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2Ugd2hlbiBpbnZlcnRpbmcgbWFyZ2lucy4gUmVzcG9uc2l2ZSBndXR0ZXIgc2V0dGluZ3MgYnkgZGVmYXVsdC5cbkBtaXhpbiBncmlkLXJvdy1uZXN0KCRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgICRtYXJnaW46IHJlbS1jYWxjKC16Zi1nZXQtYnAtdmFsKCRndXR0ZXJzLCAkLXpmLXNpemUpKSAqIDAuNSAqIC0xO1xuXG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuICB9XG59XG5cbi8vLyBTZXQgYSBncmlkIHJvdyBzaXplXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG5AbWl4aW4gZ3JpZC1yb3ctc2l6ZSgkc2l6ZTogJGdyaWQtcm93LXdpZHRoKSB7XG4gIEBpZiAkc2l6ZSA9PSBleHBhbmQge1xuICAgICRzaXplOiBub25lO1xuICB9XG5cbiAgbWF4LXdpZHRoOiAkc2l6ZTtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBTZXQgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW5cbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkZ3V0dGVyIFthdXRvXVxuLy8vICAgU3BhY2luZyBiZXR3ZWVuIGNvbHVtbnMsIGFjY2VwdHMgbXVsdGlwbGUgdmFsdWVzOlxuLy8vICAgLSBBIHNpbmdsZSB2YWx1ZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGF0IGV4YWN0IHNpemUuXG4vLy8gICAtIEEgYnJlYWtwb2ludCBuYW1lIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHRoZSBjb3JyZXNwb25kaW5nIHNpemUgaW4gdGhlICRndXR0ZXJzIG1hcC5cbi8vLyAgIC0gXCJhdXRvXCIgd2lsbCBtYWtlIHRoZSBndXR0ZXIgcmVzcG9uc2l2ZSwgdXNpbmcgdGhlICRndXR0ZXJzIG1hcCB2YWx1ZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkZ3V0dGVycyBbJGdyaWQtY29sdW1uLWd1dHRlcl0gLSBHdXR0ZXIgbWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKCRndXR0ZXIsICRndXR0ZXJzKSB7XG4gICAgJHBhZGRpbmc6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpICogMC41O1xuXG4gICAgcGFkZGluZy1yaWdodDogJHBhZGRpbmc7XG4gICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgfVxufVxuXG4vLy8gQ29sbGFwc2UgdGhlIGd1dHRlcnMgb24gYSBjb2x1bW4gYnkgcmVtb3ZpbmcgdGhlIHBhZGRpbmcuICoqTm90ZToqKiBvbmx5IHVzZSB0aGlzIG1peGluIHdpdGhpbiBhIGJyZWFrcG9pbnQuIFRvIGNvbGxhcHNlIGEgY29sdW1uJ3MgZ3V0dGVycyBvbiBhbGwgc2NyZWVuIHNpemVzLCB1c2UgdGhlIGAkZ3V0dGVyYCBwYXJhbWV0ZXIgb2YgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiBpbnN0ZWFkLlxuQG1peGluIGdyaWQtY29sdW1uLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKDApO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZ3V0dGVyKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1ndXR0ZXJcbkBtaXhpbiBncmlkLWNvbC1ndXR0ZXIoXG4gICRndXR0ZXI6IGF1dG8sXG4gICRndXR0ZXJzOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXIsICRndXR0ZXJzKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWNvbGxhcHNlKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1jb2xsYXBzZVxuQG1peGluIGdyaWQtY29sLWNvbGxhcHNlIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tY29sbGFwc2U7XG59XG5cbi8vLyBTZXRzIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zIHRvIG1hdGNoIGd1dHRlcnNcbi8vLyBAcGFyYW0ge051bWJlcnxLZXl3b3JkfSAkbWFyZ2luIFthdXRvXVxuLy8vICAgVGhlIGJvdHRvbSBtYXJnaW4gb24gZ3JpZCBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIG1hcmdpbiB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkbWFyZ2lucyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkbWFyZ2lucyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcmdpbnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gTWFwIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tbWFyZ2luIChcbiAgJG1hcmdpbjogYXV0byxcbiAgJG1hcmdpbnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkbWFyZ2luLCAkbWFyZ2lucykge1xuICAgICRtYXJnaW4tYm90dG9tOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAkbWFyZ2luLWJvdHRvbTtcblxuICAgID4gOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBSZXBvc2l0aW9uIGEgY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJHBvc2l0aW9uIC0gSXQgY2FuIGJlOlxuLy8vICAgKiBBIG51bWJlcjogVGhlIGNvbHVtbiB3aWxsIG1vdmUgZXF1YWwgdG8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gY291bnRcbi8vLyAgICAgc3BlY2lmaWVkLiBBIHBvc2l0aXZlIG51bWJlciB3aWxsIHB1c2ggdGhlIGNvbHVtbiB0byB0aGUgcmlnaHQsIHdoaWxlXG4vLy8gICAgIGEgbmVnYXRpdmUgbnVtYmVyIHdpbGwgcHVsbCBpdCB0byB0aGUgbGVmdC5cbi8vLyAgICogYGNlbnRlcmA6IENvbHVtbiB3aWxsIGJlIGNlbnRlcmVkXG4vLy8gICAqIGBhdXRvYDogQ29sdW1uIHdpbGwgYmUgcHVzaGVkIHRvIHRoZSBsZWZ0IChvciB0byB0aGUgcmlnaHQgZm9yIHRoZSBsYXN0IGNvbHVtbikuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKSB7XG4gIC8vIEF1dG8gcG9zaXRpb25pbmdcbiAgQGlmICRwb3NpdGlvbiA9PSBhdXRvIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6ICRnbG9iYWwtbGVmdDtcbiAgICAgIGNsZWFyOiBub25lO1xuICAgIH1cblxuICAgIC8vIExhc3QgY29sdW1uIGFsaWdubWVudFxuICAgIEBpZiAkZ3JpZC1jb2x1bW4tYWxpZ24tZWRnZSB7XG4gICAgICAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICBmbG9hdDogJGdsb2JhbC1yaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQdXNoL3B1bGxcbiAgQGVsc2UgaWYgdHlwZS1vZigkcG9zaXRpb24pID09ICdudW1iZXInIHtcbiAgICAkb2Zmc2V0OiBwZXJjZW50YWdlKGRpdmlkZSgkcG9zaXRpb24sICRncmlkLWNvbHVtbi1jb3VudCkpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxuXG4gIC8vIENlbnRlciBwb3NpdGlvbmluZ1xuICBAZWxzZSBpZiAkcG9zaXRpb24gPT0gY2VudGVyIHtcbiAgICAmLCAmOmxhc3QtY2hpbGQ6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIEB3YXJuICdXcm9uZyBzeW50YXggZm9yIGdyaWQtY29sdW1uLXBvc2l0aW9uKCkuIEVudGVyIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgbnVtYmVyLCBcImNlbnRlclwiIG9yIFwiYXV0b1wiLic7XG4gIH1cbn1cblxuLy8vIFJlc2V0IGEgcG9zaXRpb24gZGVmaW5pdGlvbi5cbkBtaXhpbiBncmlkLWNvbHVtbi11bnBvc2l0aW9uIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oYXV0byk7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8vLyBPZmZzZXRzIGEgY29sdW1uIHRvIHRoZSByaWdodCBieSBgJG5gIGNvbHVtbnMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJG4gLSBXaWR0aCB0byBvZmZzZXQgYnkuIFlvdSBjYW4gcGFzcyBpbiBhbnkgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGBncmlkLWNvbHVtbigpYCBtaXhpbiwgc3VjaCBhcyBgNmAsIGA1MCVgLCBvciBgMSBvZiAyYC5cbkBtaXhpbiBncmlkLWNvbHVtbi1vZmZzZXQoJG4pIHtcbiAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogZ3JpZC1jb2x1bW4oJG4pO1xufVxuXG4vLy8gRGlzYWJsZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgbGFzdCBjb2x1bW4gaW4gYSByb3cgYWxpZ25pbmcgdG8gdGhlIG9wcG9zaXRlIGVkZ2UuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tZW5kIHtcbiAgLy8gVGhpcyBleHRyYSBzcGVjaWZpY2l0eSBpcyByZXF1aXJlZCBmb3IgdGhlIHByb3BlcnR5IHRvIGJlIGFwcGxpZWRcbiAgJjpsYXN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gIH1cbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1wb3NpdGlvblxuQG1peGluIGdyaWQtY29sLXBvcygkcG9zaXRpb24pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tcG9zaXRpb24oJHBvc2l0aW9uKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLXVucG9zaXRpb24oKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLXVucG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC11bnBvcyB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXVucG9zaXRpb247XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1vZmZzZXQoKWAuXG4vLy8gQGFsaWFzIGdyaWQtY29sdW1uLW9mZnNldFxuQG1peGluIGdyaWQtY29sLW9mZigkbikge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1vZmZzZXQoJG4pO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tZW5kKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1lbmRcbkBtaXhpbiBncmlkLWNvbC1lbmQge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi1lbmQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgRmxleGJveCBVdGlsaXRpZXNcbi8vLy9cbi8vXG4vLy8gRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvdW50IG9mIHNvdXJjZSBvcmRlcmluZ2Bcbi8vLyBAdHlwZSBOdW1iZXJcbiRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudDogNiAhZGVmYXVsdDtcblxuLy8vIFF1aWNrbHkgZGlzYWJsZS9lbmFibGUgUmVzcG9uc2l2ZSBicmVha3BvaW50cyBmb3IgVmFuaWxsYSBGbGV4IEhlbHBlcnMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50czogdHJ1ZSAhZGVmYXVsdDtcblxuQG1peGluIGZsZXgtaGVscGVycyB7XG4gIC5mbGV4LWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleDtcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87XG4gIH1cblxuICAuZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICB9XG5cbiAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgLmZsZXgtZGlyLSN7JGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAoJGZsZXhib3gtcmVzcG9uc2l2ZS1icmVha3BvaW50cykge1xuICAgIC8vIExvb3AgdGhyb3VnaCBSZXNwb25zaXZlIEJyZWFrcG9pbnRzXG4gICAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY29udGFpbmVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtYXV0byB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1ncm93IHtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLXNocmluayB7XG4gICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWFjaCAkZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtZGlyZWN0aW9uIHtcbiAgICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oJHByb3ApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1mbGV4LWNsYXNzZXMge1xuICAvLyBIb3Jpem9udGFsIGFsaWdubWVudCB1c2luZyBqdXN0aWZ5LWNvbnRlbnRcbiAgQGVhY2ggJGhkaXIsICRwcm9wIGluICQtemYtZmxleC1qdXN0aWZ5IHtcbiAgICAuYWxpZ24tI3skaGRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeDogJGhkaXIpO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gSG9yaXpvbnRhbCBhbGlnbm1lbnQgU3BlY2lmaWNhbGx5IGZvciBWZXJ0aWNhbCBNZW51XG4gIEBlYWNoICRoZGlyLCAkcHJvcCBpbiBtYXAtcmVtb3ZlKCQtemYtZmxleC1qdXN0aWZ5LCAnanVzdGlmeScsICdzcGFjZWQnKSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgICYudmVydGljYWwge1xuICAgICAgICAmLm1lbnUgPiBsaSA+IGEge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFZlcnRpY2FsIGFsaWdubWVudCB1c2luZyBhbGlnbi1pdGVtcyBhbmQgYWxpZ24tc2VsZlxuICBAZWFjaCAkdmRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWFsaWduIHtcbiAgICAuYWxpZ24tI3skdmRpcn0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbigkeTogJHZkaXIpO1xuICAgIH1cblxuICAgIC5hbGlnbi1zZWxmLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZigkeTogJHZkaXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENlbnRyYWwgYWxpZ25tZW50IG9mIGNvbnRlbnRcbiAgLmFsaWduLWNlbnRlci1taWRkbGUge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6IGNlbnRlciwgJHk6IG1pZGRsZSk7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLy8gU291cmNlIG9yZGVyaW5nXG4gIEBpbmNsdWRlIC16Zi1lYWNoLWJyZWFrcG9pbnQge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGZsZXgtc291cmNlLW9yZGVyaW5nLWNvdW50IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tb3JkZXItI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LW9yZGVyKCRpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWYW5pbGxhIEZsZXhib3ggSGVscGVyc1xuICBAaW5jbHVkZSBmbGV4LWhlbHBlcnM7XG59XG4iLCJAZnVuY3Rpb24gLXpmLWZsZXgtanVzdGlmeSgkdGV4dC1kaXJlY3Rpb24pIHtcbiAgJC16Zi1mbGV4LWp1c3RpZnk6IChcbiAgICAnbGVmdCc6IGlmKCR0ZXh0LWRpcmVjdGlvbiA9PSBydGwsIGZsZXgtZW5kLCBmbGV4LXN0YXJ0KSxcbiAgICAncmlnaHQnOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBmbGV4LXN0YXJ0LCBmbGV4LWVuZCksXG4gICAgJ2NlbnRlcic6IGNlbnRlcixcbiAgICAnanVzdGlmeSc6IHNwYWNlLWJldHdlZW4sXG4gICAgJ3NwYWNlZCc6IHNwYWNlLWFyb3VuZCxcbiAgKTtcblxuICBAcmV0dXJuICQtemYtZmxleC1qdXN0aWZ5O1xufVxuXG5cbiQtemYtZmxleC1hbGlnbjogKFxuICAndG9wJzogZmxleC1zdGFydCxcbiAgJ2JvdHRvbSc6IGZsZXgtZW5kLFxuICAnbWlkZGxlJzogY2VudGVyLFxuICAnc3RyZXRjaCc6IHN0cmV0Y2gsXG4pO1xuXG4kLXpmLWZsZXgtZGlyZWN0aW9uOiAoXG4gICdyb3cnOiByb3csXG4gICdyb3ctcmV2ZXJzZSc6IHJvdy1yZXZlcnNlLFxuICAnY29sdW1uJzogY29sdW1uLFxuICAnY29sdW1uLXJldmVyc2UnOiBjb2x1bW4tcmV2ZXJzZSxcbik7XG5cbi8vLyBFbmFibGVzIGZsZXhib3ggYnkgYWRkaW5nIGBkaXNwbGF5OiBmbGV4YCB0byB0aGUgZWxlbWVudC5cbkBtaXhpbiBmbGV4IHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLy8vIEhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGFsaWducyB0aGUgaXRlbXMgd2l0aGluIGEgZmxleCBjb250YWluZXIuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR4IFtudWxsXSAtIEhvcml6b250YWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGBsZWZ0YCwgYHJpZ2h0YCwgYGNlbnRlcmAsIGBqdXN0aWZ5YCwgb3IgYHNwYWNlZGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCBob3Jpem9udGFsIGFsaWdubWVudC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR5IFtudWxsXSAtIFZlcnRpY2FsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgdG9wYCwgYGJvdHRvbWAsIGBtaWRkbGVgLCBvciBgc3RyZXRjaGAuIE9yLCBzZXQgaXQgdG8gYG51bGxgICh0aGUgZGVmYXVsdCkgdG8gbm90IHNldCB2ZXJ0aWNhbCBhbGlnbm1lbnQuXG5AbWl4aW4gZmxleC1hbGlnbigkeDogbnVsbCwgJHk6IG51bGwpIHtcbiAgQGlmICR4IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWp1c3RpZnksICR4KSB7XG4gICAgICAkeDogbWFwLWdldCgkLXpmLWZsZXgtanVzdGlmeSwgJHgpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiAnZmxleC1ncmlkLXJvdy1hbGlnbigpOiAjeyR4fSBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgaG9yaXpvbnRhbCBhbGlnbm1lbnQuIFVzZSBsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5LCBvciBzcGFjZWQuJztcbiAgICB9XG4gIH1cblxuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIHZlcnRpY2FsIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJztcbiAgICB9XG4gIH1cblxuICBqdXN0aWZ5LWNvbnRlbnQ6ICR4O1xuICBhbGlnbi1pdGVtczogJHk7XG59XG5cbi8vLyBWZXJ0aWNhbGx5IGFsaWduIGEgc2luZ2xlIGNvbHVtbiB3aXRoaW4gYSBmbGV4IHJvdy4gQXBwbHkgdGhpcyBtaXhpbiB0byBhIGZsZXggY29sdW1uLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkeTogbnVsbCkge1xuICBAaWYgJHkge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkLXpmLWZsZXgtYWxpZ24sICR5KSB7XG4gICAgICAkeTogbWFwLWdldCgkLXpmLWZsZXgtYWxpZ24sICR5KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1jb2x1bW4tYWxpZ24oKTogI3skeX0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGFsaWdubWVudC4gVXNlIHRvcCwgYm90dG9tLCBtaWRkbGUsIG9yIHN0cmV0Y2guJztcbiAgICB9XG4gIH1cblxuICBhbGlnbi1zZWxmOiAkeTtcbn1cblxuLy8vIENoYW5nZXMgdGhlIHNvdXJjZSBvcmRlciBvZiBhIGZsZXggY2hpbGQuIENoaWxkcmVuIHdpdGggbG93ZXIgbnVtYmVycyBhcHBlYXIgZmlyc3QgaW4gdGhlIGxheW91dC5cbi8vLyBAcGFyYW0ge051bWJlcn0gJG9yZGVyIFswXSAtIE9yZGVyIG51bWJlciB0byBhcHBseS5cbkBtaXhpbiBmbGV4LW9yZGVyKCRvcmRlcjogMCkge1xuICBvcmRlcjogJG9yZGVyO1xufVxuXG4vLy8gQ2hhbmdlIGZsZXgtZGlyZWN0aW9uXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZGlyZWN0aW9uIFtyb3ddIC0gRmxleCBkaXJlY3Rpb24gdG8gdXNlLiBDYW4gYmVcbi8vLyAgIC0gcm93IChkZWZhdWx0KTogc2FtZSBhcyB0ZXh0IGRpcmVjdGlvblxuLy8vICAgLSByb3ctcmV2ZXJzZTogb3Bwb3NpdGUgdG8gdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gY29sdW1uOiBzYW1lIGFzIHJvdyBidXQgdG9wIHRvIGJvdHRvbVxuLy8vICAgLSBjb2x1bW4tcmV2ZXJzZTogc2FtZSBhcyByb3ctcmV2ZXJzZSB0b3AgdG8gYm90dG9tXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogcm93KSB7XG4gIGZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8gSGlkZSBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIG9ubHkgZGlzcGxheWluZyBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBzaG93LWZvcigkc2l6ZSkge1xuICAkc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAvLyBVc2UgYSBwcmVjaXNpb24gdW5kZXIgMXB4IHRvIHN1cHBvcnQgYnJvd3NlciB6b29tLCBidXQgbm90IHRvIGxvdyB0byBhdm9pZCByb3VuZGluZy5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mb3VuZGF0aW9uL2ZvdW5kYXRpb24tc2l0ZXMvaXNzdWVzLzExMzEzXG4gICRzaXplOiAtemYtYnAtdG8tZW0oJHNpemUpIC0gMC4wMDEyNTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIGRvd24pIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgd2l0aGluIGEgY2VydGFpbiBicmVha3BvaW50LlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3Itb25seSgkc2l6ZSkge1xuICAkbG93ZXItYm91bmQtc2l6ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRzaXplKTtcbiAgJHVwcGVyLWJvdW5kLXNpemU6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRzaXplKTtcblxuICAvLyBtb3JlIG9mdGVuIHRoYW4gbm90IHRoaXMgd2lsbCBiZSBjb3JyZWN0LCBqdXN0IG9uZSB0aW1lIHJvdW5kIHRoZSBsb29wIGl0IHdvbid0IHNvIHNldCBpbiBzY29wZSBoZXJlXG4gICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKSAtIDAuMDAxMjU7XG4gIC8vIHRlc3QgYWN0dWFsIGxvd2VyLWJvdW5kLXNpemUsIGlmIDAgc2V0IGl0IHRvIDBlbVxuICBAaWYgc3RyaXAtdW5pdCgkbG93ZXItYm91bmQtc2l6ZSkgPT0gMCB7XG4gICAgJGxvd2VyLWJvdW5kOiAtemYtYnAtdG8tZW0oJGxvd2VyLWJvdW5kLXNpemUpO1xuICB9XG5cbiAgQGlmICR1cHBlci1ib3VuZC1zaXplID09IG51bGwge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgJHVwcGVyLWJvdW5kOiAtemYtYnAtdG8tZW0oJHVwcGVyLWJvdW5kLXNpemUpO1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGxvd2VyLWJvdW5kKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkdXBwZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8gU2hvdyBhbiBlbGVtZW50IGJ5IGRlZmF1bHQsIGFuZCBoaWRlIGl0IGFib3ZlIGEgY2VydGFpbiBzY3JlZW4gc2l6ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIGhpZGUtZm9yKCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvci1vbmx5KCRzaXplKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNpemUgb25seSkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi12aXNpYmlsaXR5LWNsYXNzZXMge1xuICAvLyBCYXNpYyBoaWRpbmcgY2xhc3Nlc1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB9XG4gIC52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgLy8gUmVzcG9uc2l2ZSB2aXNpYmlsaXR5IGNsYXNzZXNcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGlmICRzaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC5oaWRlLWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKCRzaXplKTtcbiAgICAgIH1cblxuICAgICAgLnNob3ctZm9yLSN7JHNpemV9IHtcbiAgICAgICAgQGluY2x1ZGUgc2hvdy1mb3IoJHNpemUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oaWRlLWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIGhpZGUtZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cblxuICAgIC5zaG93LWZvci0jeyRzaXplfS1vbmx5IHtcbiAgICAgIEBpbmNsdWRlIHNob3ctZm9yLW9ubHkoJHNpemUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNjcmVlbiByZWFkZXIgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIC8vIE5lZWQgYSBcImhpZGUtZm9yLXNyXCIgY2xhc3M/IEFkZCBhcmlhLWhpZGRlbj0ndHJ1ZScgdG8gdGhlIGVsZW1lbnRcbiAgLnNob3ctZm9yLXNyLFxuICAuc2hvdy1vbi1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGU7XG4gIH1cblxuICAvLyBPbmx5IGRpc3BsYXkgdGhlIGVsZW1lbnQgd2hlbiBpdCdzIGZvY3VzZWRcbiAgLnNob3ctb24tZm9jdXMge1xuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgQGluY2x1ZGUgZWxlbWVudC1pbnZpc2libGUtb2ZmO1xuICAgIH1cbiAgfVxuXG4gIC8vIExhbmRzY2FwZSBhbmQgcG9ydHJhaXQgdmlzaWJpbGl0eVxuICAuc2hvdy1mb3ItbGFuZHNjYXBlLFxuICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLmhpZGUtZm9yLWxhbmRzY2FwZSxcbiAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhbmRzY2FwZSkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQocG9ydHJhaXQpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gRGFyayBNb2RlIFZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWRhcmstbW9kZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuaGlkZS1mb3ItZGFyay1tb2RlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHtcbiAgICAuc2hvdy1mb3ItZGFyay1tb2RlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5oaWRlLWZvci1kYXJrLW1vZGUge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIElFMTArIFZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWllIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIEBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSksICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gICAgLnNob3ctZm9yLWllIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5oaWRlLWZvci1pZSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gU3RpY2t5IFZpc2liaWxpdHlcbiAgLnNob3ctZm9yLXN0aWNreSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuaXMtc3R1Y2sgLnNob3ctZm9yLXN0aWNreSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLmlzLXN0dWNrIC5oaWRlLWZvci1zdGlja3kge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwidXRmLThcIjtcbi8qKlxuICogZm9udHMuc2Nzc1xuICpcbiAqIEBwYWNrYWdlIFRJTERBXG4gKiBAdmVyc2lvbiAwLjAuMVxuICovXG5cbi8qIGNyaW1zb24tdGV4dC1yZWd1bGFyIC0gbGF0aW4gKi9cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICBmb250LWZhbWlseTogQ3JpbXNvblRleHQ7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgc3JjOiBsb2NhbCgnJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL2NyaW1zb24tdGV4dC9jcmltc29uLXRleHQtdjExLWxhdGluLXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIC8qIENocm9tZSAyNissIE9wZXJhIDIzKywgRmlyZWZveCAzOSsgKi9cbiAgICAgICAgIHVybCgnLi4vZm9udHMvY3JpbXNvbi10ZXh0L2NyaW1zb24tdGV4dC12MTEtbGF0aW4tcmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IC8qIENocm9tZSA2KywgRmlyZWZveCAzLjYrLCBJRSA5KywgU2FmYXJpIDUuMSsgKi9cbn1cbi8qIGNyaW1zb24tdGV4dC02MDAgLSBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIGZvbnQtZmFtaWx5OiBDcmltc29uVGV4dDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBzcmM6IGxvY2FsKCcnKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvY3JpbXNvbi10ZXh0L2NyaW1zb24tdGV4dC12MTEtbGF0aW4tNjAwLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCAvKiBDaHJvbWUgMjYrLCBPcGVyYSAyMyssIEZpcmVmb3ggMzkrICovXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL2NyaW1zb24tdGV4dC9jcmltc29uLXRleHQtdjExLWxhdGluLTYwMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IC8qIENocm9tZSA2KywgRmlyZWZveCAzLjYrLCBJRSA5KywgU2FmYXJpIDUuMSsgKi9cbn1cbi8qIGNyaW1zb24tdGV4dC03MDAgLSBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIGZvbnQtZmFtaWx5OiBDcmltc29uVGV4dDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBzcmM6IGxvY2FsKCcnKSxcbiAgICAgICAgIHVybCgnLi4vZm9udHMvY3JpbXNvbi10ZXh0L2NyaW1zb24tdGV4dC12MTEtbGF0aW4tNzAwLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCAvKiBDaHJvbWUgMjYrLCBPcGVyYSAyMyssIEZpcmVmb3ggMzkrICovXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL2NyaW1zb24tdGV4dC9jcmltc29uLXRleHQtdjExLWxhdGluLTcwMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7IC8qIENocm9tZSA2KywgRmlyZWZveCAzLjYrLCBJRSA5KywgU2FmYXJpIDUuMSsgKi9cbn1cblxuLyogc291cmNlLXNhbnMtcHJvLXJlZ3VsYXIgLSBsYXRpbiAqL1xuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIGZvbnQtZmFtaWx5OiBTb3VyY2VTYW5zUHJvO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHNyYzogbG9jYWwoJycpLFxuICAgICAgICAgdXJsKCcuLi9mb250cy9zb3VyY2Utc2Fucy9zb3VyY2Utc2Fucy1wcm8tdjE0LWxhdGluLXJlZ3VsYXIud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksIC8qIENocm9tZSAyNissIE9wZXJhIDIzKywgRmlyZWZveCAzOSsgKi9cbiAgICAgICAgIHVybCgnLi4vZm9udHMvc291cmNlLXNhbnMvc291cmNlLXNhbnMtcHJvLXYxNC1sYXRpbi1yZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgLyogQ2hyb21lIDYrLCBGaXJlZm94IDMuNissIElFIDkrLCBTYWZhcmkgNS4xKyAqL1xufVxuLyogc291cmNlLXNhbnMtcHJvLTYwMCAtIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4gICAgZm9udC1mYW1pbHk6IFNvdXJjZVNhbnNQcm87XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgc3JjOiBsb2NhbCgnJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL3NvdXJjZS1zYW5zL3NvdXJjZS1zYW5zLXByby12MTQtbGF0aW4tNjAwLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCAvKiBDaHJvbWUgMjYrLCBPcGVyYSAyMyssIEZpcmVmb3ggMzkrICovXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL3NvdXJjZS1zYW5zL3NvdXJjZS1zYW5zLXByby12MTQtbGF0aW4tNjAwLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgLyogQ2hyb21lIDYrLCBGaXJlZm94IDMuNissIElFIDkrLCBTYWZhcmkgNS4xKyAqL1xufVxuLyogc291cmNlLXNhbnMtcHJvLTcwMCAtIGxhdGluICovXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWRpc3BsYXk6IHN3YXA7XG4gICAgZm9udC1mYW1pbHk6IFNvdXJjZVNhbnNQcm87XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgc3JjOiBsb2NhbCgnJyksXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL3NvdXJjZS1zYW5zL3NvdXJjZS1zYW5zLXByby12MTQtbGF0aW4tNzAwLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCAvKiBDaHJvbWUgMjYrLCBPcGVyYSAyMyssIEZpcmVmb3ggMzkrICovXG4gICAgICAgICB1cmwoJy4uL2ZvbnRzL3NvdXJjZS1zYW5zL3NvdXJjZS1zYW5zLXByby12MTQtbGF0aW4tNzAwLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTsgLyogQ2hyb21lIDYrLCBGaXJlZm94IDMuNissIElFIDkrLCBTYWZhcmkgNS4xKyAqL1xufVxuIiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuLyoqXG4gKiB0eXBvLnNjc3NcbiAqXG4gKiBAcGFja2FnZSBUSUxEQVxuICogQHZlcnNpb24gMC4wLjFcbiAqL1xuXG4kY29sb3JzOiBtYXAtbWVyZ2UoJGNvbG9ycywgKFxuICAgIHByaW1hcnk6IGNvbG9yKCdtYW50aXMnKSxcbiAgICBzZWNvbmRhcnk6IGNvbG9yKCdjdWN1bWJlcicpLFxuICAgIGFsZXJ0OiAjRkY3MDcwLFxuICAgIHN1Y2Nlc3M6ICM4QkIzMURcbikpICFnbG9iYWw7XG5cbiRmb3VuZGF0aW9uLXBhbGV0dGU6IG1hcC1tZXJnZSgkZm91bmRhdGlvbi1wYWxldHRlLCAkY29sb3JzKTtcbkBpbmNsdWRlIGFkZC1mb3VuZGF0aW9uLWNvbG9ycztcblxuJGJ1dHRvbi1mb250LWZhbWlseTogJGhlcm8tZm9udC1mYW1pbHkgIWdsb2JhbDtcbiRidXR0b24tbWFyZ2luOiAkZ2xvYmFsLW1hcmdpbiAqIC41IDAgIWdsb2JhbDtcbiRidXR0b24tcGFkZGluZzogcmVtLWNhbGMoMTAgMTgpICFnbG9iYWw7XG4kYnV0dG9uLXJhZGl1czogMmVtICFnbG9iYWw7XG4kYnV0dG9uLXRyYW5zaXRpb246IGJvcmRlciAxMDBtcywgY29sb3IgMTAwbXMsIGJhY2tncm91bmQgMTAwbXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgMzAwbXMgZWFzZS1pbi1vdXQgIWdsb2JhbDtcblxuJGJ1dHRvbi1zaXplczogKFxuICAgIGRlZmF1bHQ6IHJlbS1jYWxjKDE3KVxuKSAhZ2xvYmFsO1xuXG4kYnV0dG9uLXBhbGV0dGU6ICRmb3VuZGF0aW9uLXBhbGV0dGU7XG5cbiRoZWFkZXItc3R5bGVzOiAoXG4gICAgeHM6IChcbiAgICAgICAgJ2gxJzogKCdmb250LXNpemUnOiAyNiwgJ2xpbmUtaGVpZ2h0JzogMS4yKSxcbiAgICAgICAgJ2gyJzogKCdmb250LXNpemUnOiAyNiwgJ2xpbmUtaGVpZ2h0JzogMS4yKSxcbiAgICAgICAgJ2gzJzogKCdmb250LXNpemUnOiAyNCwgJ2xpbmUtaGVpZ2h0JzogMS4yKSxcbiAgICAgICAgJ2g0JzogKCdmb250LXNpemUnOiAyMCwgJ2xpbmUtaGVpZ2h0JzogMS4yKSxcbiAgICAgICAgJ2g1JzogKCdmb250LXNpemUnOiAyMCwgJ2xpbmUtaGVpZ2h0JzogMS4yKSxcbiAgICAgICAgJ2g2JzogKCdmb250LXNpemUnOiAyMCwgJ2xpbmUtaGVpZ2h0JzogMS4yKSxcbiAgICApLFxuICAgIGxnOiAoXG4gICAgICAgICdoMSc6ICgnZm9udC1zaXplJzogNTAsICdsaW5lLWhlaWdodCc6IDEpLFxuICAgICAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQyLCAnbGluZS1oZWlnaHQnOiAxKSxcbiAgICAgICAgJ2gzJzogKCdmb250LXNpemUnOiAzNCwgJ2xpbmUtaGVpZ2h0JzogMSksXG4gICAgICAgICdoNCc6ICgnZm9udC1zaXplJzogMjYsICdsaW5lLWhlaWdodCc6IDEpLFxuICAgICksXG4pICFnbG9iYWw7XG5cbkBpbmNsdWRlIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1iYXNlO1xuXG5ib2R5IHtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE3KTtcbn1cblxuaDEsXG4uaDEge1xuICAgIGZvbnQtZmFtaWx5OiAkaGVyby1mb250LWZhbWlseTtcbiAgICBtYXJnaW4tYm90dG9tOiAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b20gKiAxLjU7XG59XG5cbmgyLFxuLmgyIHtcbiAgICBmb250LWZhbWlseTogJGhlcm8tZm9udC1mYW1pbHk7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xufVxuXG5oMyxcbi5oMyB7XG4gICAgZm9udC1mYW1pbHk6ICRoZXJvLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbn1cblxuaDQsXG4uaDQge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbn1cblxuaDUsXG4uaDUsXG5oNixcbi5oNiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xufVxuXG4udGV4dCB7XG4gICAgJi0tbGVhZCB7XG4gICAgICAgIGNvbG9yOiBjb2xvcignY3VjdW1iZXInKTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZXJvLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICB9XG5cbiAgICAmLS1ib2xkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgICAgIGNvbG9yOiBjb2xvcignbWFudGlzJyk7XG5cbiAgICAgICAgLnN0YWdlX19oZWFkZXIgJiB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNvbHNsaXN0IHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgY29sdW1uLWNvdW50OiAyO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogbWFwLWdldCgkZ3JpZC1jb2x1bW4tZ3V0dGVyLCBsZyk7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBicmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0taGVyb2xpc3Qge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBjb2x1bW4tY291bnQ6IDI7XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiBtYXAtZ2V0KCRncmlkLWNvbHVtbi1ndXR0ZXIsIGxnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoNTQpO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgY29sb3IoJ2dyZXktNjAwJyk7XG4gICAgICAgICAgICAgICAgY29sb3I6IGNvbG9yKCdtYW50aXMnKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKG9yZGVyLCBkZWNpbWFsLWxlYWRpbmctemVybyk7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRoZXJvLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyNCk7XG4gICAgICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IHJlbS1jYWxjKC0zNik7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKHJlbS1jYWxjKC0xOCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaSwgZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoMTQwKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkaGVyby1mb250LWZhbWlseTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgICAgIG1hcmdpbjogcmVtLWNhbGMoMCAwIDQpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5hIHtcbiAgICBjb2xvcjogY29sb3IoJ29saXZpbmUnKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogY29sb3IoJ2dyZXktNzAwJyk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogY29sb3IoJ2N1Y3VtYmVyJyk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbn1cblxuYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCBjb2xvcignZ3JleS0zMDAnKTtcbiAgICBjb2xvcjogY29sb3IoJ29saXZpbmUnKTtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICogMS41O1xuICAgIHBhZGRpbmc6IHJlbS1jYWxjKDUgMCAxMCAyMCk7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTkuNSAxNS44JyUzRSUzQ3BhdGggZD0nTTguNyAxLjhjLS45LjUtMS43LjktMi4zIDEuMy0uNS40LTEuMS45LTEuNyAxLjUtLjUuNi0xIDEuMi0xLjMgMS44LS4yLjctLjQgMS41LS42IDIuNWgxLjRjMS4yIDAgMi4yLjMgMi45LjkuNy42IDEgMS41IDEgMi42IDAgLjgtLjMgMS42LS45IDIuMy0uNi43LTEuNSAxLjEtMi41IDEuMS0xLjcgMC0yLjktLjYtMy42LTEuNy0uNy0xLTEuMS0yLjUtMS4xLTQuMyAwLTEuMy4zLTIuNC44LTMuNS41LTEgMS4yLTIgMi0yLjguOC0uOCAxLjctMS41IDIuNi0yLjFDNi4zLjggNyAuNCA3LjYgMGwxLjEgMS44em0xMC44IDBjLS45LjUtMS43IDEtMi4yIDEuNC0uNi40LTEuMS45LTEuNyAxLjUtLjYuNi0xIDEuMi0xLjMgMS45LS4zLjYtLjUgMS41LS42IDIuNWgxLjRjMS4yIDAgMi4yLjMgMi45LjkuNy42IDEgMS41IDEgMi42IDAgLjgtLjMgMS42LS45IDIuMy0uNi43LTEuNSAxLjEtMi41IDEuMS0xLjcgMC0yLjktLjYtMy42LTEuNy0uNy0xLjEtMS4xLTIuNS0xLjEtNC4zIDAtMS4zLjMtMi40LjgtMy41LjUtMSAxLjItMiAyLTIuOC44LS44IDEuNy0xLjUgMi41LTIuMS45LS42IDEuNy0xLjEgMi4zLTEuNGwxIDEuNnonIGZpbGw9JyUyMzdjYjk1NCcvJTNFJTNDL3N2ZyUzRSUwQVwiKTtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbTtcbiAgICAgICAgY29sb3I6IGNvbG9yKCdtYW50aXMnKTtcbiAgICAgICAgY29udGVudDogJ1xcMDBBMCc7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxLjIzMzRlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICB9XG5cbiAgICBwOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIGNpdGUge1xuICAgICAgICBjb2xvcjogY29sb3IoJ21hbnRpcycpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZXJvLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJy0gJztcbiAgICAgICAgfVxuICAgIH1cbn1cblxucGljdHVyZSB7XG4gICAgQGF0LXJvb3QgaW1nLCAmIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoMSk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbmZpZ2NhcHRpb24sXG4uZmlnY2FwdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoJ3doaXRlJyk7XG4gICAgY29sb3I6IGNvbG9yKCdncmV5LTYwMCcpO1xuICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMTQpO1xuICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMCk7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogcmVtLWNhbGMoMTIgMCA4KTtcblxuICAgIC5jZS1yaWdodCAmIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAxMDAlO1xuICAgIH1cbn1cblxuLmltYWdlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAuY29udGFjdF9fbWVkaWEgJi1lbWJlZCxcbiAgICAuY2UtbGVmdCAmLFxuICAgIC5jZS1yaWdodCAmIHtcbiAgICAgICAgbWFyZ2luOiB7XG4gICAgICAgICAgICBib3R0b206IHJlbS1jYWxjKDY4KTtcbiAgICAgICAgICAgIHJpZ2h0OiByZW0tY2FsYygyNik7XG4gICAgICAgIH07XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvbnRhY3RfX21lZGlhICYsXG4gICAgLmNlLWxlZnQgJiB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgIG1hcmdpbjoge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDY4KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICAuY29udGFjdF9fbWVkaWEgJixcbiAgICAgICAgLmNlLWxlZnQgJixcbiAgICAgICAgLmNlLXJpZ2h0ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29udGVudC1kb3R0ZWQoMTAwKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKDQwKTtcbiAgICAgICAgICAgIGJvdHRvbTogcmVtLWNhbGMoLTEyIC0gMjggKiAyKTtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcignY3VjdW1iZXInKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRoZXJvLWZvbnQtZmFtaWx5O1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyg0MCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjgpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiByZW0tY2FsYygyOTApO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKC0yIC0gMjgpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgLTEpO1xuICAgICAgICAgICAgei1pbmRleDogLTE7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBjb250ZW50LWRvdHRlZCgyNzIpO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoNDQwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jZS1yaWdodCAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICAgICBib3R0b206IHJlbS1jYWxjKC0xMiAtIDI4ICogMyk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKC0yIC0gMjggKiAzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250YWN0X19tZWRpYSAmLFxuICAgICAgICAuY2UtbGVmdCAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiByZW0tY2FsYygtMiAtIDI4ICogMyk7XG4gICAgICAgICAgICAgICAgdG9wOiByZW0tY2FsYygtMTIgLSAyOCAqIDMpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi52aWRlbyB7XG4gICAgJi1lbWJlZCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIGlmcmFtZSxcbiAgICB2aWRlbyB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgIH1cbn1cblxuLyogb3ZlcndyaXRpbmcgbGluZSA3MiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzICovXG5iLCBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkO1xufVxuXG51bCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAgIGxpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IGRvdHRlZCBjb2xvcignZ3JleS00MDAnKTtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDggMCA4IDE1KTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICBjb250ZW50OiAn4oCiJztcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICB0ZXh0LWluZGVudDogcmVtLWNhbGMoLTE1KTtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDAgMCAtOCk7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvcignZ3JleS0zMDAnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxub2wge1xuICAgIGNvdW50ZXItcmVzZXQ6IG9yZGVyO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwIDAgJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBsaSB7XG4gICAgICAgIGNvdW50ZXItaW5jcmVtZW50OiBvcmRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IGRvdHRlZCBjb2xvcignZ3JleS00MDAnKTtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDggMCA4IDIwKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKCdncmV5LTcwMCcpO1xuICAgICAgICAgICAgY29udGVudDogY291bnRlcnMob3JkZXIsICcuJykgJy4gJztcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICB0ZXh0LWluZGVudDogcmVtLWNhbGMoLTIwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb2wge1xuICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDAgMCAtOCk7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBjb2xvcignZ3JleS0zMDAnKTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtLWNhbGMoMzApO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogY291bnRlcnMob3JkZXIsICcuJykgJyAnO1xuICAgICAgICAgICAgICAgIHRleHQtaW5kZW50OiByZW0tY2FsYygtMzApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG50YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDIwKTtcbiAgICBtYXJnaW46ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbSAqIDI7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgY29sb3IoJ2dyZXktMzAwJyk7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgIH1cbn1cblxudHIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjb2xvcignZ3JleS0zMDAnKTtcbn1cblxudGQsIHRoIHtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygxMiAxNSk7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgLypcbiAgICAgKiBzdHJldGNoIGNlbGxzIHdpdGhvdXQgd2hpdGVzcGFjZVxuICAgICAqL1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiA4ZW07XG4gICAgfVxufVxuXG50aCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoJ2dyZXktMzAwJyk7XG59XG5cbmRsIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvcignZ3JleS0zMDAnKTtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjApO1xuICAgIG1hcmdpbjogMCAwICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgZHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcignZ3JleS0zMDAnKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTIgMTUpO1xuICAgIH1cbn1cblxuZGQge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiByZW0tY2FsYygxMiAxNSk7XG5cbiAgICAmICsgJiB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCBjb2xvcignZ3JleS0zMDAnKTtcbiAgICB9XG59XG5cbmhyIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiBjb2xvcignZ3JleS0zMDAnKTtcbiAgICBib3JkZXItd2lkdGg6IHJlbS1jYWxjKDEgMCAwKTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiByZW0tY2FsYygzNSkgYXV0bztcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgbWFyZ2luOiByZW0tY2FsYyg3MCkgYXV0bztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZShhdXRvLCAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gICAgICAgIG1heC13aWR0aDogJGdsb2JhbC13aWR0aCAtIHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpO1xuICAgIH1cbn1cblxuaWZyYW1lIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuIiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuLyoqXG4gKiBtaXhpbnMuc2Nzc1xuICpcbiAqIEBwYWNrYWdlIFRJTERBXG4gKiBAdmVyc2lvbiAwLjAuMVxuICovXG5cbkBtaXhpbiBsZXR0ZXItc3BhY2luZygkdmFsdWUpIHtcbiAgICBsZXR0ZXItc3BhY2luZzogdW5xdW90ZShjYWxjKCR2YWx1ZS8xMDAwKSArICdlbScpO1xufVxuXG5AbWl4aW4gY29udGVudC1kb3R0ZWQoJHZhbHVlKSB7XG4gICAgJGRvdHRlZDogJyc7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkdmFsdWUge1xuICAgICAgICAkZG90dGVkOiAkZG90dGVkICsgJ+KAoiAnO1xuICAgIH1cbiAgICBjb250ZW50OiAkZG90dGVkO1xufVxuIiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuLyoqXG4gKiBsYXlvdXQuc2Nzc1xuICpcbiAqIEBwYWNrYWdlIFRJTERBXG4gKiBAdmVyc2lvbiAwLjAuMVxuICovXG5cbjpyb290IHtcbiAgICBAZWFjaCAkbmFtZSwgJHZhbHVlIGluICRjb2xvcnMge1xuICAgICAgICAtLXRsLWNvbG9yLSN7JG5hbWV9OiAjeyR2YWx1ZX07XG4gICAgfVxufVxuXG5odG1sLFxuYm9keSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uc2l0ZSB7XG4gICAgJl9fd3JhcCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgJl9fbWFpbiB7XG4gICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYyg4MCk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4cyBkb3duKSB7XG4gICAgICAgICAgICBoeXBoZW5zOiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDY1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxMTApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDEzNSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIGhlYWRlci5zY3NzXG4gKlxuICogQHBhY2thZ2UgVElMREFcbiAqIEB2ZXJzaW9uIDAuMC4xXG4gKiBEYXRlOiAyMDIyLTA5LTE2XG4gKi9cbiRzZWxmOiAnLmhlYWRlcic7XG5cbiN7JHNlbGZ9IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcignd2hpdGUnKTtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDA7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAxMDBtcywgYm94LXNoYWRvdyAxMDBtcztcbiAgICB6LWluZGV4OiAxMDA7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICYtLWZpeGVkLFxuICAgICYtLXNvbGlkIHtcbiAgICAgICAgY29sb3I6IGNvbG9yKCdibGFjaycpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcignd2hpdGUnKTtcbiAgICB9XG5cbiAgICAmLS1maXhlZCB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAzMHB4IHJnYmEoYmxhY2ssIC4xNSk7XG4gICAgfVxuXG4gICAgJl9fcm93IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMTUgMCAxNik7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMTAwbXMsIHBhZGRpbmcgMTAwbXM7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMzAgMCAzMSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygzNiAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIFtkYXRhLXRvZ2dsZV0gJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1kIGRvd24pIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcignb2xpdmluZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skc2VsZn0tLWZpeGVkICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbS1jYWxjKDI1IDAgMjYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29sIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXNpemUoKTtcblxuICAgICAgICAmLS1zaHJpbmsge1xuICAgICAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCk7XG4gICAgICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXB1c2gge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1zaXplKDMpO1xuICAgICAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnJhbmQge1xuICAgICAgICBjb2xvcjogY29sb3IoJ2JsYWNrJyk7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDE4MCk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjogbWF4LXdpZHRoIDgwbXM7XG4gICAgICAgIHdpbGwtY2hhbmdlOiBtYXgtd2lkdGg7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKCdibGFjaycpO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4cyBkb3duKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDEyNSk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRzZWxmfS0tZml4ZWQgJixcbiAgICAgICAgW2RhdGEtdG9nZ2xlXSAmIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMTI1KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMTgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmlsbDogY29sb3IoJ21hbnRpcycpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMjAwbXMsIGZpbGwgMjAwbXM7XG4gICAgICAgICAgICB3aWxsLWNoYW5nZTogY29sb3IsIGZpbGw7XG5cbiAgICAgICAgICAgIFtkYXRhLXRvZ2dsZV0gJiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGNvbG9yKCd3aGl0ZScpO1xuICAgICAgICAgICAgICAgIGZpbGw6IGNvbG9yKCd3aGl0ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuLyoqXG4gKiBuYXZtYWluLnNjc3NcbiAqXG4gKiBAcGFja2FnZSBUSUxEQVxuICogQHZlcnNpb24gMC4wLjFcbiAqIERhdGU6IDIwMjItMDktMTZcbiAqL1xuJHNlbGY6ICcubmF2bWFpbic7XG5cbiN7JHNlbGZ9IHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1kIGRvd24pIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoJ29saXZpbmUnKTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg2NSAwKTtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwJSkgc2NhbGVZKDApO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm0sIHZpc2liaWxpdHk7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKGxnKTtcbiAgICB9XG5cbiAgICAuZG9tcmVhZHkgJiB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjUwbXMgZWFzZS1pbiwgdHJhbnNmb3JtIDMwMG1zIGVhc2UtaW4sIHZpc2liaWxpdHkgMjUwbXMgZWFzZS1pbjtcbiAgICB9XG5cbiAgICBbZGF0YS10b2dnbGVdICYge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGVZKDEpO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIFtkYXRhLWRlbGF5XSAmIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg0MCAyMCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoMCBtYXAtZ2V0KCRncmlkLWNvbHVtbi1ndXR0ZXIsIGxnKSAqIC41IDAgMCk7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1kIGRvd24pIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYyg1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBAaW5jbHVkZSBsZXR0ZXItc3BhY2luZygxNDApO1xuICAgICAgICBjb2xvcjogY29sb3IoJ3doaXRlJyk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LWZhbWlseTogJGhlcm8tZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxMCAwKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNyk7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygzIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcignd2hpdGUnKTtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zLCB3aWR0aCAyMDBtcztcbiAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYyg0MCk7XG4gICAgICAgICAgICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgd2lkdGg7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmhlYWRlci0tZml4ZWQgJixcbiAgICAgICAgICAgIC5oZWFkZXItLXNvbGlkICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoJ2JsYWNrJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IC41O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKCd3aGl0ZScpO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAuaGVhZGVyLS1maXhlZCAmLFxuICAgICAgICAgICAgLmhlYWRlci0tc29saWQgJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogY29sb3IoJ2JsYWNrJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAuODtcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoNjApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlci0tZml4ZWQgJixcbiAgICAgICAgLmhlYWRlci0tc29saWQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IGNvbG9yKCdibGFjaycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuLyoqXG4gKiBmb290ZXIuc2Nzc1xuICpcbiAqIEBwYWNrYWdlIFRJTERBXG4gKiBAdmVyc2lvbiAwLjAuMVxuICogRGF0ZTogMjAyMi0wOS0xNlxuICovXG4kc2VsZjogJy5mb290ZXInO1xuXG4jeyRzZWxmfSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoJ21hbnRpcycpO1xuICAgIGNvbG9yOiBjb2xvcignd2hpdGUnKTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogcmVtLWNhbGMoMjQgMCk7XG5cbiAgICAmX19yb3cge1xuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KCk7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb2wge1xuXG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBsZXR0ZXItc3BhY2luZygxNDApO1xuICAgICAgICBmb250LWZhbWlseTogJGhlcm8tZm9udC1mYW1pbHk7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMjApO1xuICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygxNyk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21ldGEge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWFyZ2luOiByZW0tY2FsYygxNyAwIDIpO1xuICAgIH1cblxuICAgICZfX25vdGUge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE0KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDIwKTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgY29sb3IoJ3doaXRlJyk7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiByZW0tY2FsYygxNyAwIDIwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuXG4gICAgICAgICYtLXNwYWNlZCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgICAgIGxpOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnXFwwMEEw4oCiJztcbiAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHJlbS1jYWxjKDQpO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiByZW0tY2FsYygyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYXYge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjApO1xuXG4gICAgICAgICAgICBsaTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDE1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKCd3aGl0ZScpO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wYXJ0bmVyIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsZyBkb3duKSB7XG4gICAgICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDggMCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBjb2xvcjogY29sb3IoJ3doaXRlJyk7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKCd3aGl0ZScpO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIHRyaWdnZXIuc2Nzc1xuICpcbiAqIEBwYWNrYWdlIFRJTERBXG4gKiBAdmVyc2lvbiAwLjAuMVxuICogRGF0ZTogMjAyMi0wOS0xNlxuICovXG4kc2VsZjogJy50cmlnZ2VyJztcblxuI3skc2VsZn0ge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDEwO1xuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgY29sb3I6IGNvbG9yKCdibGFjaycpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBjb2xvcjogY29sb3IoJ2JsYWNrJyk7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGhlaWdodDogcmVtLWNhbGMoMTQpO1xuICAgICAgICBtYXJnaW46IHJlbS1jYWxjKDIgMCk7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHdpZHRoOiByZW0tY2FsYygyNSk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgbWFyZ2luOiB7XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpLCAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcignbWFudGlzJyk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDIpO1xuICAgICAgICAgICAgbWFyZ2luOiByZW0tY2FsYyg2KSAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBpIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDIwMG1zLCBvcGFjaXR5IDIwMG1zIDI1MG1zIGVhc2U7XG4gICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMjApO1xuXG4gICAgICAgICAgICAjeyRzZWxmfV9fYnV0dG9uOmhvdmVyICYge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgI3skc2VsZn1fX2J1dHRvbjpob3ZlciAmIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAyMDBtcywgdG9wIDIwMG1zIDI1MG1zIGVhc2UsIHRyYW5zZm9ybSAyMDBtcyBlYXNlLWluLW91dDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNTAlLCAwKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDIwMG1zLCBib3R0b20gMjAwbXMgMjUwbXMgZWFzZSwgdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICB9XG5cbiAgICAgICAgW2RhdGEtdG9nZ2xlXSAmIHtcbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMjAwbXMsIG9wYWNpdHkgMjAwbXMgZWFzZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogcmVtLWNhbGMoMTUpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcignd2hpdGUnKTtcbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMjAwbXMsIHRvcCAyMDBtcyBlYXNlLCB0cmFuc2Zvcm0gMjAwbXMgMjUwbXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoJ3doaXRlJyk7XG4gICAgICAgICAgICAgICAgYm90dG9tOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCA1MCUsIDApO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDIwMG1zLCBib3R0b20gMjAwbXMgZWFzZSwgdHJhbnNmb3JtIDIwMG1zIDI1MG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKDE0MCk7XG4gICAgICAgIEBpbmNsdWRlIGhpZGUtZm9yKGxnKTtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LWZhbWlseTogJGhlcm8tZm9udC1mYW1pbHk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKDUpO1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMik7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXM7XG5cbiAgICAgICAgW2RhdGEtdG9nZ2xlXSAmIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIGZyYW1lLnNjc3NcbiAqXG4gKiBAcGFja2FnZSBUSUxEQVxuICogQHZlcnNpb24gMC4wLjFcbiAqIERhdGU6IDIwMjItMDktMTZcbiAqL1xuJHNlbGY6ICcuZnJhbWUnO1xuXG4jeyRzZWxmfSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJi1zcGFjZSB7XG4gICAgICAgICYtLWJlZm9yZSB7XG4gICAgICAgICAgICAmLW5vbmUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgICAgIC8vIHByZXZlbnQgY29sbGFwc2luZyB0b3AgbWFyZ2luXG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtZm91cnRoIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMzApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLWhhbGYge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygzMCk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYyg2MCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLWZ1bGwge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYyg2MCk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiByZW0tY2FsYygxMjApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFmdGVyIHtcbiAgICAgICAgICAgICYtZnVsbCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDYwKTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDEyMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLWhhbGYge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYygzMCk7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiByZW0tY2FsYyg2MCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLWZvdXJ0aCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHJlbS1jYWxjKDMwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi1ub25lIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIHdpZHRoOiAkZ3JpZC1yb3ctd2lkdGg7XG5cbiAgICAgICAgLmNlLWFib3ZlICYsXG4gICAgICAgIC5jZS1iZWxvdyAmLFxuICAgICAgICAuY2UtaW50ZXh0ICYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBjaGFyc2V0IFwidXRmLThcIjtcbi8qKlxuICogY2Uuc2Nzc1xuICpcbiAqIEBwYWNrYWdlIFRJTERBXG4gKiBAdmVyc2lvbiAwLjAuMVxuICogRGF0ZTogMjAyMi0wOS0xNlxuICovXG4kc2VsZjogJy5jZSc7XG5cbiN7JHNlbGZ9IHtcbiAgICAmLXRleHQsXG4gICAgJi10ZXh0cGljIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKGp1c3RpZnkpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygtMzApIC0gJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuICAgIH1cblxuICAgICYtYm9keXRleHQge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygzMCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAjeyRzZWxmfS1pbnRleHQgI3skc2VsZn0tZ2FsbGVyeSArICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1zaXplKDcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXNpemUoNik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRzZWxmfS1yaWdodCAmIHtcbiAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHNlbGZ9LWFib3ZlICYge1xuICAgICAgICB9XG5cbiAgICAgICAgI3skc2VsZn0tYmVsb3cgJiB7XG4gICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLXJvdyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1yb3cobmVzdCk7XG4gICAgICAgIEBpbmNsdWRlIC16Zi1icmVha3BvaW50LXZhbHVlKGF1dG8sICRncmlkLWNvbHVtbi1ndXR0ZXIpIHtcbiAgICAgICAgICAgICRwYWRkaW5nOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAqIC41IC0gcmVtLWNhbGMoNSk7XG5cbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFkZGluZztcbiAgICAgICAgfVxuXG4gICAgICAgICYgKyAmIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHNlbGZ9LWFib3ZlIFtkYXRhLWNlLWNvbHVtbnNdICYsXG4gICAgICAgICN7JHNlbGZ9LWJlbG93IFtkYXRhLWNlLWNvbHVtbnNdICYge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICogLTE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLWNvbHVtbiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIsIDEwKTtcblxuICAgICAgICBbZGF0YS1jZS1jb2x1bW5zXSAmIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRwYXJhZ3JhcGgtbWFyZ2luLWJvdHRvbTtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLXNpemUobnVsbCk7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiBncmlkLWNvbHVtbig2KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZCkge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogZ3JpZC1jb2x1bW4oMyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLWdhbGxlcnkge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMzApO1xuXG4gICAgICAgICN7JHNlbGZ9LWludGV4dCAmIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWQpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtc2l6ZSg1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxcHg7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLmNlLWJvcmRlciBpbWcge1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgY29sb3IoJ2dyZXktMzAwJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLXN1YmhlYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKDE0MCk7XG4gICAgICAgIGNvbG9yOiBjb2xvcignYmxhY2snKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkaGVyby1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxNyk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMik7XG4gICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDQpO1xuXG4gICAgICAgICYtLWFib3ZlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIHJlbS1jYWxjKDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi10YWJsZSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgfVxufVxuIiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuLyoqXG4gKiBzdGFnZS5zY3NzXG4gKlxuICogQHBhY2thZ2UgVElMREFcbiAqIEB2ZXJzaW9uIDAuMC4xXG4gKiBEYXRlOiAyMDIyLTA5LTE2XG4gKi9cbiRzZWxmOiAnLnN0YWdlJztcblxuI3skc2VsZn0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKCdtYW50aXMnKTtcbiAgICBjb2xvcjogY29sb3IoJ3doaXRlJyk7XG5cbiAgICAmX19yb3cge1xuICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygtODApO1xuICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoODApO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgbWFyZ2luOiB7XG4gICAgICAgICAgICAgICAgYm90dG9tOiByZW0tY2FsYyg1MCk7XG4gICAgICAgICAgICAgICAgdG9wOiByZW0tY2FsYygtMTEwKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtLWNhbGMoMTEwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGwpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKC0xMzUpO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDEzNSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoJ3doaXRlJyk7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGxlZnQ6IGdyaWQtY29sdW1uKDkpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiByZW0tY2FsYyhtYXAtZ2V0KCRncmlkLWNvbHVtbi1ndXR0ZXIsIGxnKSkgKiAuNTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGNhbGMoLTUwdncgLSAjeyRnbG9iYWwtd2lkdGggKiAuNX0pO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtY29sdW1uKDEyLCAwKTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgcGFkZGluZzoge1xuICAgICAgICAgICAgYm90dG9tOiByZW0tY2FsYyg1NSk7XG4gICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDQ1KTtcbiAgICAgICAgfTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtc2l6ZSg3KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3BhcnRuZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcignd2hpdGUnKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogcmVtLWNhbGMoMjApO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjIpO1xuICAgICAgICBwYWRkaW5nOiByZW0tY2FsYygxOCAyMik7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZCBkb3duKSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiByZW0tY2FsYygxMCk7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDE1MCk7XG4gICAgICAgICAgICBwYWRkaW5nOiByZW0tY2FsYyg5IDExKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbigxMik7XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChsZykge1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygyMCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogcmVtLWNhbGMoMjQpO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogZ3JpZC1jb2x1bW4oMiBvZiA3KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHA6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDM0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKDMwKTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZXJvLWZvbnQtZmFtaWx5O1xuXG4gICAgICAgIEBlYWNoICRwb2ludCwgJGhlYWRlciBpbiAkaGVhZGVyLXN0eWxlcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRwb2ludCkge1xuICAgICAgICAgICAgICAgICRzdHlsZTogbWFwLWdldCgkaGVhZGVyLCAnaDEnKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKG1hcC1nZXQoJHN0eWxlLCAnZm9udC1zaXplJykpO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBtYXAtZ2V0KCRzdHlsZSwgJ2xpbmUtaGVpZ2h0Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tZWRpYSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1zaXplKDUpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiByZW0tY2FsYygtNTApO1xuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGFjdCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTIpO1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcGFkZGluZy10b3A6IHJlbS1jYWxjKDU1KTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KG1kKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGdyaWQtY29sdW1uKDEgb2YgNyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIGJ1dHRvbi5zY3NzXG4gKlxuICogQHBhY2thZ2UgVElMREFcbiAqIEB2ZXJzaW9uIDAuMC4xXG4gKiBEYXRlOiAyMDIyLTA5LTE2XG4gKi9cbiRzZWxmOiAnLmJ1dHRvbic7XG5cbiN7JHNlbGZ9IHtcbiAgICBAaW5jbHVkZSBidXR0b24tYmFzZSgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKCdtYW50aXMnKTtcbiAgICBjb2xvcjogY29sb3IoJ3doaXRlJyk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsZykge1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDIwKTtcbiAgICAgICAgcGFkZGluZzoge1xuICAgICAgICAgICAgYm90dG9tOiByZW0tY2FsYyg4KTtcbiAgICAgICAgICAgIHRvcDogcmVtLWNhbGMoOCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiByZW0tY2FsYygxMCk7XG4gICAgfVxuXG4gICAgJi0tbGlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcignb2xpdmluZScpO1xuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKCdjdWN1bWJlcicpO1xuICAgICAgICBjb2xvcjogY29sb3IoJ3doaXRlJyk7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAmW2hyZWZePW1haWx0b10ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdLFxuICAgICZbcmVhZG9ubHldIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoJ2dyZXktNDAwJyk7XG4gICAgICAgIGNvbG9yOiBjb2xvcignZ3JleS03MDAnKTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcignZ3JleS00MDAnKTtcbiAgICAgICAgICAgIGNvbG9yOiBjb2xvcignZ3JleS03MDAnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBidXR0b25cbi8vLy9cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBidXR0b24gZWxlbWVudHMuXG4vLy8gQHR5cGUgRm9udFxuJGJ1dHRvbi1mb250LWZhbWlseTogaW5oZXJpdCAhZGVmYXVsdDtcblxuLy8vIEZvbnQgd2VpZ2h0IGZvciBidXR0b24gZWxlbWVudHMuXG4vLy8gSWdub3JlZCBpZiBudWxsIChkZWZhdWx0KVxuLy8vIEB0eXBlIEZvbnQtV2VpZ2h0XG4kYnV0dG9uLWZvbnQtd2VpZ2h0OiBudWxsICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBpbnNpZGUgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXBhZGRpbmc6IDAuODVlbSAxZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gYXJvdW5kIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1tYXJnaW46IDAgMCAkZ2xvYmFsLW1hcmdpbiAwICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmaWxsIGZvciBidXR0b25zLiBDYW4gZWl0aGVyIGJlIGBzb2xpZGAgb3IgYGhvbGxvd2AuXG4vLy8gQHR5cGUgS2V5d29yZFxuJGJ1dHRvbi1maWxsOiBzb2xpZCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBDb2xvclxuJGJ1dHRvbi1iYWNrZ3JvdW5kOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRidXR0b24tYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJ1dHRvbi1iYWNrZ3JvdW5kLCAkbGlnaHRuZXNzOiAtMTUlKSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgY29sb3IgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuXG4vLy8gQWx0ZXJuYXRpdmUgZm9udCBjb2xvciBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWNvbG9yLWFsdDogJGJsYWNrICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYnV0dG9ucywgZGVmYXVsdGVkIHRvIGdsb2JhbC1yYWRpdXMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgZm9yIGJ1dHRvbnMsIHRyYW5zcGFyZW50IGJ5IGRlZmF1bHRcbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLWJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHdpZHRoIGZvciBob2xsb3cgb3V0bGluZSBidXR0b25zXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcblxuLy8vIFNpemVzIGZvciBidXR0b25zLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1zaXplczogKFxuICB0aW55OiAwLjZyZW0sXG4gIHNtYWxsOiAwLjc1cmVtLFxuICBkZWZhdWx0OiAwLjlyZW0sXG4gIGxhcmdlOiAxLjI1cmVtLFxuKSAhZGVmYXVsdDtcblxuLy8vIENvbG9yaW5nIGNsYXNzZXMuIEEgbWFwIG9mIGNsYXNzZXMgdG8gb3V0cHV0IGluIHlvdXIgQ1NTLCBsaWtlIGAuc2Vjb25kYXJ5YCwgYC5zdWNjZXNzYCwgYW5kIHNvIG9uLlxuLy8vIEB0eXBlIE1hcFxuJGJ1dHRvbi1wYWxldHRlOiAkZm91bmRhdGlvbi1wYWxldHRlICFkZWZhdWx0O1xuXG4vLy8gb3BhY2l0eSBmb3IgYSBkaXNhYmxlZCBidXR0b24uXG4vLy8gQHR5cGUgTGlzdFxuJGJ1dHRvbi1vcGFjaXR5LWRpc2FibGVkOiAwLjI1ICFkZWZhdWx0O1xuXG4vLy8gQmFja2dyb3VuZCBjb2xvciBsaWdodG5lc3Mgb24gaG92ZXIgZm9yIGJ1dHRvbnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kYnV0dG9uLWJhY2tncm91bmQtaG92ZXItbGlnaHRuZXNzOiAtMjAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyIGZvciBob2xsb3cgYnV0dG9ucy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRidXR0b24taG9sbG93LWhvdmVyLWxpZ2h0bmVzczogLTUwJSAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWw6IGZsaXAgZnJvbSBtYXJnaW4tcmlnaHQgdG8gbWFyZ2luLWxlZnQgZm9yIGRlZmF1bHRzXG5AaWYgJGdsb2JhbC10ZXh0LWRpcmVjdGlvbiA9PSAncnRsJyB7XG4gICRidXR0b24tbWFyZ2luOiAwIDAgJGdsb2JhbC1tYXJnaW4gJGdsb2JhbC1tYXJnaW4gIWRlZmF1bHQ7XG59XG5cbi8vLyB0cmFuc2l0aW9ucyBmb3IgYnV0dG9ucy5cbi8vLyBAdHlwZSBMaXN0XG4kYnV0dG9uLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQsIGNvbG9yIDAuMjVzIGVhc2Utb3V0ICFkZWZhdWx0O1xuXG4vLy8gQWRkaXRpb25hbCByZXNwb25zaXZlIGNsYXNzZXMgZm9yIC5leHBhbmRlZFxuLy8vIEB0eXBlIEJvb2xlYW5cbiRidXR0b24tcmVzcG9uc2l2ZS1leHBhbmRlZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFRPRE86IERvY3VtZW50IGJ1dHRvbi1iYXNlKCkgbWl4aW5cbkBtaXhpbiBidXR0b24tYmFzZSB7XG4gIEBpbmNsdWRlIGRpc2FibGUtbW91c2Utb3V0bGluZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46ICRidXR0b24tbWFyZ2luO1xuXG4gIEBpZiAodHlwZS1vZigkYnV0dG9uLXBhZGRpbmcpID09ICdtYXAnKSB7XG4gICAgQGVhY2ggJHNpemUsICRwYWRkaW5nIGluICRidXR0b24tcGFkZGluZyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICAgIHBhZGRpbmc6ICRwYWRkaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgcGFkZGluZzogJGJ1dHRvbi1wYWRkaW5nO1xuICB9XG5cbiAgYm9yZGVyOiAkYnV0dG9uLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbi1yYWRpdXM7XG4gIHRyYW5zaXRpb246ICRidXR0b24tdHJhbnNpdGlvbjtcbiAgZm9udC1mYW1pbHk6ICRidXR0b24tZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogbWFwLWdldCgkYnV0dG9uLXNpemVzLCBkZWZhdWx0KTtcbiAgZm9udC13ZWlnaHQ6ICRidXR0b24tZm9udC13ZWlnaHQ7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vLy8gRXhwYW5kcyBhIGJ1dHRvbiB0byBtYWtlIGl0IGZ1bGwtd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFt0cnVlXSAtIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHRoZSBleHBhbmQgYmVoYXZpb3IuIFNldCB0byBgZmFsc2VgIHRvIHJldmVyc2UgdGhpcyBiZWhhdmlvci5cbkBtaXhpbiBidXR0b24tZXhwYW5kKCRleHBhbmQ6IHRydWUpIHtcbiAgQGlmICRleHBhbmQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICBAZWxzZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogJGJ1dHRvbi1tYXJnaW47XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGJhc2Ugc3R5bGVzIG9mIGEgaG9sbG93IG9yIGNsZWFyIGJ1dHRvbiBmaWxsaW5nIGFjY29yZGluZyB0byBgJGZpbGxgLlxuLy8vIFNlZSBtaXhpbiBgYnV0dG9uLWZpbGwtc3R5bGVgIGZvciB0aGUgZmlsbGluZyBzdHlsZXMuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkZmlsbCBbJGJ1dHRvbi1maWxsXSAtIFR5cGUgb2YgZmlsbGluZyBiZXR3ZWVuIGBob2xsb3dgIGFuZCBgY2xlYXJgLiBgc29saWRgIGhhcyBubyBlZmZlY3RzLlxuQG1peGluIGJ1dHRvbi1maWxsKFxuICAkZmlsbDogJGJ1dHRvbi1maWxsXG4pIHtcbiAgQGlmICRmaWxsID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdztcbiAgfVxuICBAZWxzZSBpZiAkZmlsbCA9PSBjbGVhciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWNsZWFyO1xuICB9XG59XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgc3R5bGVzIG9mIGEgc29saWQvaG9sbG93L2NsZWFyIGJ1dHRvbiBmaWxsaW5nIGFjY29yZGluZyB0byBgJGZpbGxgLlxuLy8vIFNlZSBtaXhpbnMgYGJ1dHRvbi1zdHlsZWAsIGBidXR0b24taG9sbG93LXN0eWxlYCBhbmQgYGJ1dHRvbi1jbGVhci1zdHlsZWAgZm9yIGVmZmVjdHMgb2YgdmlzdWFsIHN0eWxpbmcgcGFyYW1ldGVycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRmaWxsIFskYnV0dG9uLWZpbGxdIC0gVHlwZSBvZiBmaWxsaW5nIGJldHdlZW4gYGhvbGxvd2AgYW5kIGBjbGVhcmAuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQgWyRidXR0b24tYmFja2dyb3VuZF0gLSAtXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGJhY2tncm91bmQtaG92ZXIgWyRidXR0b24tYmFja2dyb3VuZC1ob3Zlcl0gLSAtXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIC1cbkBtaXhpbiBidXR0b24tZmlsbC1zdHlsZShcbiAgJGZpbGw6ICRidXR0b24tZmlsbCxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yXG4pIHtcbiAgQGlmICRmaWxsID09IHNvbGlkIHtcbiAgICBAaW5jbHVkZSBidXR0b24tc3R5bGUoJGJhY2tncm91bmQsICRiYWNrZ3JvdW5kLWhvdmVyLCAkY29sb3IpO1xuICB9XG4gIEBlbHNlIGlmICRmaWxsID09IGhvbGxvdyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWhvbGxvdy1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cbiAgQGVsc2UgaWYgJGZpbGwgPT0gY2xlYXIge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1jbGVhci1zdHlsZSgkYmFja2dyb3VuZCk7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZCBbJGJ1dHRvbi1iYWNrZ3JvdW5kXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkYmFja2dyb3VuZC1ob3ZlciBbJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyXSAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbiBvbiBob3Zlci4gU2V0IHRvIGBhdXRvYCB0byBoYXZlIHRoZSBtaXhpbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgaG92ZXIgY29sb3IuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYnV0dG9uLWNvbG9yXSAtIFRleHQgY29sb3Igb2YgdGhlIGJ1dHRvbi4gU2V0IHRvIGBhdXRvYCB0byBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGEgY29sb3IgYmFzZWQgb24gdGhlIGJhY2tncm91bmQgY29sb3IuXG5AbWl4aW4gYnV0dG9uLXN0eWxlKFxuICAkYmFja2dyb3VuZDogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkYmFja2dyb3VuZC1ob3ZlcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLFxuICAkY29sb3I6ICRidXR0b24tY29sb3IsXG4gICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1iYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzc1xuKSB7XG4gIEBpZiAkY29sb3IgPT0gYXV0byB7XG4gICAgJGNvbG9yOiBjb2xvci1waWNrLWNvbnRyYXN0KCRiYWNrZ3JvdW5kLCAoJGJ1dHRvbi1jb2xvciwgJGJ1dHRvbi1jb2xvci1hbHQpKTtcbiAgfVxuXG4gIEBpZiAkYmFja2dyb3VuZC1ob3ZlciA9PSBhdXRvIHtcbiAgICAkYmFja2dyb3VuZC1ob3Zlcjogc2NhbGUtY29sb3IoJGJhY2tncm91bmQsICRsaWdodG5lc3M6ICRiYWNrZ3JvdW5kLWhvdmVyLWxpZ2h0bmVzcyk7XG4gIH1cblxuICAvLyBEZWZhdWx0IGFuZCBkaXNhYmxlZCBzdGF0ZXNcbiAgJixcbiAgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0sXG4gICYuZGlzYWJsZWQ6aG92ZXIsICZbZGlzYWJsZWRdOmhvdmVyLFxuICAmLmRpc2FibGVkOmZvY3VzLCAmW2Rpc2FibGVkXTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGJhc2Ugc3R5bGVzIG9mIGEgaG9sbG93IGJ1dHRvbi5cbi8vLyBTZWUgbWl4aW4gYGJ1dHRvbi1ob2xsb3ctc3R5bGVgIGZvciB0aGUgZmlsbGluZyBzdHlsZXMuXG5AbWl4aW4gYnV0dG9uLWhvbGxvdyB7XG4gICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gU2V0cyB0aGUgdmlzdWFsIHN0eWxlIG9mIGEgaG9sbG93IGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tYmFja2dyb3VuZF0gLSBUZXh0IGFuZCBib3JkZXIgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkaG92ZXItbGlnaHRuZXNzIFskYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3NdIC0gQ29sb3IgbGlnaHRuZXNzIG9uIGhvdmVyLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRib3JkZXItd2lkdGggWyRidXR0b24taG9sbG93LWJvcmRlci13aWR0aF0gLSBCb3JkZXIgd2lkdGggb2YgdGhlIGJ1dHRvbi5cbkBtaXhpbiBidXR0b24taG9sbG93LXN0eWxlKFxuICAkY29sb3I6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGhvdmVyLWxpZ2h0bmVzczogJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzLFxuICAkYm9yZGVyLXdpZHRoOiAkYnV0dG9uLWhvbGxvdy1ib3JkZXItd2lkdGhcbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgLy8gRGVmYXVsdCBhbmQgZGlzYWJsZWQgc3RhdGVzXG4gICYsXG4gICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdLFxuICAmLmRpc2FibGVkOmhvdmVyLCAmW2Rpc2FibGVkXTpob3ZlcixcbiAgJi5kaXNhYmxlZDpmb2N1cywgJltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkY29sb3I7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgfVxuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIGJhc2Ugc3R5bGVzIG9mIGEgY2xlYXIgYnV0dG9uLlxuLy8vIFNlZSBtaXhpbiBgYnV0dG9uLWNsZWFyLXN0eWxlYCBmb3IgdGhlIGZpbGxpbmcgc3R5bGVzLlxuQG1peGluIGJ1dHRvbi1jbGVhciB7XG4gICYsICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdIHtcbiAgICAmLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFNldHMgdGhlIHZpc3VhbCBzdHlsZSBvZiBhIGNsZWFyIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tYmFja2dyb3VuZF0gLSBUZXh0IGNvbG9yIG9mIHRoZSBidXR0b24uXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGhvdmVyLWxpZ2h0bmVzcyBbJGJ1dHRvbi1ob2xsb3ctaG92ZXItbGlnaHRuZXNzXSAtIENvbG9yIGxpZ2h0bmVzcyBvbiBob3Zlci5cbkBtaXhpbiBidXR0b24tY2xlYXItc3R5bGUoXG4gICRjb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kLFxuICAkaG92ZXItbGlnaHRuZXNzOiAkYnV0dG9uLWhvbGxvdy1ob3Zlci1saWdodG5lc3Ncbikge1xuICAkY29sb3ItaG92ZXI6IHNjYWxlLWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGhvdmVyLWxpZ2h0bmVzcyk7XG5cbiAgLy8gRGVmYXVsdCBhbmQgZGlzYWJsZWQgc3RhdGVzXG4gICYsXG4gICYuZGlzYWJsZWQsICZbZGlzYWJsZWRdLFxuICAmLmRpc2FibGVkOmhvdmVyLCAmW2Rpc2FibGVkXTpob3ZlcixcbiAgJi5kaXNhYmxlZDpmb2N1cywgJltkaXNhYmxlZF06Zm9jdXMge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICB9XG59XG5cbi8vLyBBZGRzIGRpc2FibGVkIHN0eWxlcyB0byBhIGJ1dHRvbiBieSBmYWRpbmcgdGhlIGVsZW1lbnQgYW5kIHJlc2V0aW5nIHRoZSBjdXJzb3IuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcGFjaXR5IFskYnV0dG9uLW9wYWNpdHktZGlzYWJsZWRdIC0gT3BhY2l0eSBvZiB0aGUgZGlzYWJsZWQgYnV0dG9uLlxuQG1peGluIGJ1dHRvbi1kaXNhYmxlZChcbiAgJG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZFxuKSB7XG4gIG9wYWNpdHk6ICRidXR0b24tb3BhY2l0eS1kaXNhYmxlZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLy8vIEFkZHMgYSBkcm9wZG93biBhcnJvdyB0byBhIGJ1dHRvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJHNpemUgWzAuNGVtXSAtIFNpemUgb2YgdGhlIGFycm93LiBXZSByZWNvbW1lbmQgdXNpbmcgYW4gYGVtYCB2YWx1ZSBzbyB0aGUgdHJpYW5nbGUgc2NhbGVzIHdoZW4gdXNlZCBpbnNpZGUgZGlmZmVyZW50IHNpemVzIG9mIGJ1dHRvbnMuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFt3aGl0ZV0gLSBDb2xvciBvZiB0aGUgYXJyb3cuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvZmZzZXQgWyRidXR0b24tcGFkZGluZ10gLSBEaXN0YW5jZSBiZXR3ZWVuIHRoZSBhcnJvdyBhbmQgdGhlIHRleHQgb2YgdGhlIGJ1dHRvbi4gRGVmYXVsdHMgdG8gd2hhdGV2ZXIgdGhlIHJpZ2h0IHBhZGRpbmcgb2YgYSBidXR0b24gaXMuXG5AbWl4aW4gYnV0dG9uLWRyb3Bkb3duKFxuICAkc2l6ZTogMC40ZW0sXG4gICRjb2xvcjogJHdoaXRlLFxuICAkb2Zmc2V0OiBnZXQtc2lkZSgkYnV0dG9uLXBhZGRpbmcsIHJpZ2h0KVxuKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBjc3MtdHJpYW5nbGUoJHNpemUsICRjb2xvciwgZG93bik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC40ZW07IC8vIEFsaWducyB0aGUgYXJyb3cgd2l0aCB0aGUgdGV4dCBvZiB0aGUgYnV0dG9uXG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxvYXQ6ICN7JGdsb2JhbC1yaWdodH07XG4gICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogJG9mZnNldDtcbiAgfVxufVxuXG4vLy8gQWRkcyBhbGwgc3R5bGVzIGZvciBhIGJ1dHRvbi4gRm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHN0eWxlcywgdXNlIHRoZSBpbmRpdmlkdWFsIGJ1dHRvbiBtaXhpbnMuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkZXhwYW5kIFtmYWxzZV0gLSBTZXQgdG8gYHRydWVgIHRvIG1ha2UgdGhlIGJ1dHRvbiBmdWxsLXdpZHRoLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kIFskYnV0dG9uLWJhY2tncm91bmRdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uLlxuLy8vIEBwYXJhbSB7Q29sb3J9ICRiYWNrZ3JvdW5kLWhvdmVyIFskYnV0dG9uLWJhY2tncm91bmQtaG92ZXJdIC0gQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgYnV0dG9uIG9uIGhvdmVyLiBTZXQgdG8gYGF1dG9gIHRvIGhhdmUgdGhlIG1peGluIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBob3ZlciBjb2xvci5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgWyRidXR0b24tY29sb3JdIC0gVGV4dCBjb2xvciBvZiB0aGUgYnV0dG9uLiBTZXQgdG8gYGF1dG9gIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBjb2xvciBiYXNlZCBvbiB0aGUgYmFja2dyb3VuZCBjb2xvci5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzdHlsZSBbc29saWRdIC0gU2V0IHRvIGBob2xsb3dgIHRvIGNyZWF0ZSBhIGhvbGxvdyBidXR0b24uIFRoZSBjb2xvciBkZWZpbmVkIGluIGAkYmFja2dyb3VuZGAgd2lsbCBiZSB1c2VkIGFzIHRoZSBwcmltYXJ5IGNvbG9yIG9mIHRoZSBidXR0b24uXG5AbWl4aW4gYnV0dG9uKFxuICAkZXhwYW5kOiBmYWxzZSxcbiAgJGJhY2tncm91bmQ6ICRidXR0b24tYmFja2dyb3VuZCxcbiAgJGJhY2tncm91bmQtaG92ZXI6ICRidXR0b24tYmFja2dyb3VuZC1ob3ZlcixcbiAgJGNvbG9yOiAkYnV0dG9uLWNvbG9yLFxuICAkc3R5bGU6ICRidXR0b24tZmlsbFxuKSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1iYXNlO1xuICBAaW5jbHVkZSBidXR0b24tZmlsbCgkc3R5bGUpO1xuICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkc3R5bGUsICRiYWNrZ3JvdW5kLCAkYmFja2dyb3VuZC1ob3ZlciwgJGNvbG9yKTtcblxuICBAaWYgJGV4cGFuZCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDtcbiAgfVxufVxuXG5AbWl4aW4gZm91bmRhdGlvbi1idXR0b24ge1xuICAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b24oJHN0eWxlOiBub25lKTtcblxuICAgIC8vIFNpemVzXG4gICAgQGVhY2ggJHNpemUsICR2YWx1ZSBpbiBtYXAtcmVtb3ZlKCRidXR0b24tc2l6ZXMsIGRlZmF1bHQpIHtcbiAgICAgICYuI3skc2l6ZX0ge1xuICAgICAgICBmb250LXNpemU6ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLmV4cGFuZGVkIHsgQGluY2x1ZGUgYnV0dG9uLWV4cGFuZDsgfVxuXG4gICAgQGlmICRidXR0b24tcmVzcG9uc2l2ZS1leHBhbmRlZCB7XG4gICAgICBAZWFjaCAkc2l6ZSBpbiAkYnJlYWtwb2ludC1jbGFzc2VzIHtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSBvbmx5KSB7XG4gICAgICAgICAgJi4jeyRzaXplfS1vbmx5LWV4cGFuZGVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1leHBhbmQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgjeyRzaXplfSBkb3duKSB7XG4gICAgICAgICAgICAmLiN7JHNpemV9LWRvd24tZXhwYW5kZWQge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoI3skc2l6ZX0pIHtcbiAgICAgICAgICAgICYuI3skc2l6ZX0tZXhwYW5kZWQge1xuICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tZXhwYW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNvbGlkLCBob2xsb3cgJiBjbGVhciBzdHlsZXNcbiAgICBAZWFjaCAkZmlsbGluZyBpbiAoc29saWQgaG9sbG93IGNsZWFyKSB7XG4gICAgICAkc2VsZWN0b3I6IGlmKCRidXR0b24tZmlsbCA9PSAkZmlsbGluZywgbnVsbCwgJy4jeyRmaWxsaW5nfScpO1xuXG4gICAgICAmI3skc2VsZWN0b3J9IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwoJGZpbGxpbmcpO1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tZmlsbC1zdHlsZSgkZmlsbGluZyk7XG5cbiAgICAgICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkYnV0dG9uLXBhbGV0dGUge1xuICAgICAgICAgICYuI3skbmFtZX0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWZpbGwtc3R5bGUoJGZpbGxpbmcsICRjb2xvciwgYXV0bywgYXV0byk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZWQgc3RhdGVcbiAgICAmLmRpc2FibGVkLCAmW2Rpc2FibGVkXSB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLy8gRHJvcGRvd24gYXJyb3dcbiAgICAmLmRyb3Bkb3duIHtcbiAgICAgIEBpbmNsdWRlIGJ1dHRvbi1kcm9wZG93bjtcblxuICAgICAgQGlmICRidXR0b24tZmlsbCA9PSBob2xsb3cge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGJ1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaG9sbG93LCAmLmNsZWFyIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRidXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJGJ1dHRvbi1wYWxldHRlIHtcbiAgICAgICAgICAmLiN7JG5hbWV9IHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEJ1dHRvbiB3aXRoIGRyb3Bkb3duIGFycm93IG9ubHlcbiAgICAmLmFycm93LW9ubHk6OmFmdGVyIHtcbiAgICAgIHRvcDogLTAuMWVtO1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBtYXJnaW4tI3skZ2xvYmFsLWxlZnR9OiAwO1xuICAgIH1cbiAgfVxuXG4gIGEuYnV0dG9uIHsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby1xdWFsaWZ5aW5nLWVsZW1lbnRzXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIiAgICBAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIG5ldHdvcmsuc2Nzc1xuICpcbiAqIEBwYWNrYWdlIFRJTERBXG4gKiBAdmVyc2lvbiAwLjAuMVxuICogRGF0ZTogMjAyMi0wOS0xNlxuICovXG4kc2VsZjogJy5uZXR3b3JrJztcblxuI3skc2VsZn0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoMTQwKTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZXJvLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE3KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMTgpO1xuICAgICAgICB0ZXh0LWluZGVudDogMnB4O1xuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgbWFyZ2luOiByZW0tY2FsYygwIDAgMik7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYShjb2xvcignZ3JleS03MDAnKSwgLjUpO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luOiB7XG4gICAgICAgICAgICAgICAgYm90dG9tOiByZW0tY2FsYygxKTtcbiAgICAgICAgICAgICAgICByaWdodDogcmVtLWNhbGMoMTgpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgLnN0YWdlICYge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoY29sb3IoJ3doaXRlJyksIC41KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmxleDogMCAxIDBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogcmVtLWNhbGMoMTgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3BhY2l0eTogLjY7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IHJlbS1jYWxjKDIyKTtcbiAgICAgICAgICAgIHdpZHRoOiByZW0tY2FsYygyMik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIGNvbnRhY3Quc2Nzc1xuICpcbiAqIEBwYWNrYWdlIFRJTERBXG4gKiBAdmVyc2lvbiAwLjAuMVxuICogRGF0ZTogMjAyMi0wOS0xNlxuICovXG4kc2VsZjogJy5jb250YWN0JztcblxuI3skc2VsZn0ge1xuICAgICZfX3JvdyB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICB9XG5cbiAgICAmX19tZWRpYSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtc2l6ZSg1KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNDUpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bCkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1jb2x1bW4oMTApO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGdyaWQtY29sdW1uKDMpICogLTE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uZXN0IHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctbmVzdCgpO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGcpIHtcblxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcignZ3JleS0zMDAnKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGdyaWQtY29sdW1uKDMgb2YgMTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcihhdXRvLCAoXG4gICAgICAgICAgICB4czogbWFwLWdldCgkZ3JpZC1jb2x1bW4tZ3V0dGVyLCB4cyksXG4gICAgICAgICAgICBsZzogMTAwcHhcbiAgICAgICAgKSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yKCdncmV5LTMwMCcpO1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAgcGFkZGluZzoge1xuICAgICAgICAgICAgYm90dG9tOiByZW0tY2FsYyg1MCk7XG4gICAgICAgICAgICB0b3A6IHJlbS1jYWxjKDUwKTtcbiAgICAgICAgfTtcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHJlbS1jYWxjKG1hcC1nZXQoJGdyaWQtY29sdW1uLWd1dHRlciwgbGcpICogLjUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgQGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoMzApO1xuICAgICAgICBmb250LWZhbWlseTogJGhlcm8tZm9udC1mYW1pbHk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDM1KTtcblxuICAgICAgICBAZWFjaCAkcG9pbnQsICRoZWFkZXIgaW4gJGhlYWRlci1zdHlsZXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAkc3R5bGU6IG1hcC1nZXQoJGhlYWRlciwgJ2gxJyk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYyhtYXAtZ2V0KCRzdHlsZSwgJ2ZvbnQtc2l6ZScpKTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogbWFwLWdldCgkc3R5bGUsICdsaW5lLWhlaWdodCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsZXR0ZXItc3BhY2luZygxNDApO1xuICAgICAgICAgICAgY29sb3I6IGNvbG9yKCdibGFjaycpO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJGhlcm8tZm9udC1mYW1pbHk7XG4gICAgICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE3KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiByZW0tY2FsYygyMik7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiByZW0tY2FsYygxMCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIHNjcm9sbHRvcC5zY3NzXG4gKlxuICogQHBhY2thZ2UgVElMREFcbiAqIEB2ZXJzaW9uIDAuMC4xXG4gKiBEYXRlOiAyMDIyLTA5LTE2XG4gKi9cbiRzZWxmOiAnLnNjcm9sbHRvcCc7XG5cbiN7JHNlbGZ9IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDUwJSAtICN7JGdyaWQtcm93LXdpZHRoICogLjUgKyByZW0tY2FsYygxNDUpfSk7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDk5O1xuXG4gICAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJ2F1dG8nLCAkZ3JpZC1jb2x1bW4tZ3V0dGVyKSB7XG4gICAgICAgIGJvdHRvbTogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSkgKiAuNTtcbiAgICAgICAgcmlnaHQ6IHJlbS1jYWxjKCQtemYtYnAtdmFsdWUpICogLjU7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoJ29saXZpbmUnKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBjb2xvcjogY29sb3IoJ3doaXRlJyk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgaGVpZ2h0OiByZW0tY2FsYyg0NSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDIwMG1zLCBvcGFjaXR5IDIwMG1zLCB0cmFuc2Zvcm0gMjAwbXMsIHZpc2liaWxpdHkgMjAwbXM7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgd2lkdGg6IHJlbS1jYWxjKDQ1KTtcblxuICAgICAgICAmLS1zaG93IHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogY29sb3IoJ2N1Y3VtYmVyJyk7XG4gICAgICAgICAgICBjb2xvcjogY29sb3IoJ3doaXRlJyk7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBjaGFyc2V0IFwidXRmLThcIjtcbi8qKlxuICogcGFydG5lci5zY3NzXG4gKlxuICogQHBhY2thZ2UgVElMREFcbiAqIEB2ZXJzaW9uIDAuMC4xXG4gKiBEYXRlOiAyMDIyLTA5LTE2XG4gKi9cbiRzZWxmOiAnLnBhcnRuZXInO1xuXG4jeyRzZWxmfSB7XG4gICAgLnNpdGVfX21haW4gKyAmIHtcbiAgICAgICAgbWFyZ2luOiB7XG4gICAgICAgICAgICBib3R0b206IHJlbS1jYWxjKDkwKTtcbiAgICAgICAgICAgIHRvcDogcmVtLWNhbGMoLTMwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtZ3JpZC1zaXplKDEyKTtcbiAgICAgICAgQGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoMTQwKTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRoZXJvLWZvbnQtZmFtaWx5O1xuICAgICAgICBmb250LXNpemU6IHJlbS1jYWxjKDE3KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHJlbS1jYWxjKDIyKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMjUpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG5cbiAgICAmX19jb2wge1xuICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ndXR0ZXIoKTtcbiAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXgtd2lkdGg6IHJlbS1jYWxjKDE1MSk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogcmVtLWNhbGMoMjAxLjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19 */