/*!*****************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./public/css/w3.css ***!
  \*****************************************************************************************************************************************************************************************/
/* W3.CSS 2.61 by Jan Egil and Borge Refsnes. Do not remove this line */
*{box-sizing:border-box}
/* Extract from normalize.css by Nicolas Gallagher and Jonathan Neal git.io/normalize */
html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}
article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}
audio,canvas,video{display:inline-block;vertical-align:baseline}
audio:not([controls]){display:none;height:0}[hidden],template{display:none}
a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}
dfn{font-style:italic}mark{background:#ff0;color:#000}
small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-0.5em}sub{bottom:-0.25em}
img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}
hr{box-sizing:content-box}
code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}
button,input,select,textarea{font:inherit;margin:0}
button{overflow:visible}button,select{text-transform:none}
button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
input[type=checkbox],input[type=radio]{padding:0}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}
input[type=search]{box-sizing:content-box;-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}
input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}
fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}pre,textarea{overflow:auto}
/*End extract from normalize.css*/
html,body{font-family:Verdana,sans-serif;font-size:15px;line-height:1.5}html{overflow-x:hidden}
h1,h2,h3,h4,h5,h6,.w3-slim,.w3-wide{font-family:"Segoe UI",Arial,sans-serif}
h1{font-size:36px}h2{font-size:30px}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}h6{font-size:16px}
.w3-serif{font-family:"Times New Roman",Times,serif}
h1,h2,h3,h4,h5,h6{font-weight:400;margin:10px 0}.w3-wide{letter-spacing:4px}
h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{font-weight:inherit}
hr{height:0;border:0;border-top:1px solid #eee;margin:20px 0}
img{margin-bottom:-5px}a{color:inherit}
table{border-collapse:collapse;border-spacing:0;width:100%;display:table}
table,th,td{border:none}
.w3-table-all{border:1px solid #ccc}
.w3-bordered tr,.w3-table-all tr{border-bottom:1px solid #ddd}
.w3-striped tbody tr:nth-child(even){background-color:#f1f1f1}
.w3-table-all tr:nth-child(odd){background-color:#fff}
.w3-table-all tr:nth-child(even){background-color:#f1f1f1}
.w3-hoverable tbody tr:hover,.w3-ul.w3-hoverable li:hover{background-color:#ccc}
.w3-centered tr th,.w3-centered tr td{text-align:center}
.w3-table td,.w3-table th,.w3-table-all td,.w3-table-all th{padding:6px 8px;display:table-cell;text-align:left;vertical-align:top}
.w3-table th:first-child,.w3-table td:first-child,.w3-table-all th:first-child,.w3-table-all td:first-child{padding-left:16px}
.w3-btn,.w3-btn-block{border:none;display:inline-block;outline:0;padding:6px 16px;vertical-align:middle;overflow:hidden;text-decoration:none!important;color:#fff;background-color:#000;text-align:center;cursor:pointer;white-space:nowrap}
.w3-btn.w3-disabled,.w3-btn-block.w3-disabled,.w3-btn-floating.w3-disabled,.w3-btn:disabled,.w3-btn-floating:disabled,.w3-btn-floating-large.w3-disabled,.w3-btn-floating-large:disabled{cursor:not-allowed;opacity:0.3}
.w3-btn.w3-disabled *,.w3-btn-block.w3-disabled,.w3-btn-floating.w3-disabled *,.w3-btn:disabled *,.w3-btn-floating:disabled *{pointer-events:none}
.w3-btn.w3-disabled:hover,.w3-btn-block.w3-disabled:hover,.w3-btn:disabled:hover,.w3-btn-floating.w3-disabled:hover,.w3-btn-floating:disabled:hover,
.w3-btn-floating-large.w3-disabled:hover,.w3-btn-floating-large:disabled:hover{box-shadow:none}
.w3-btn:hover,.w3-btn-block:hover,.w3-btn-floating:hover,.w3-btn-floating-large:hover{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}
.w3-btn-block{width:100%}
.w3-btn,.w3-btn-floating,.w3-btn-floating-large,.w3-closenav,.w3-opennav{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}   
.w3-btn-floating,.w3-btn-floating-large{display:inline-block;text-align:center;color:#fff;background-color:#000;position:relative;overflow:hidden;z-index:1;padding:0;border-radius:50%;cursor:pointer;font-size:24px}
.w3-btn-floating{width:40px;height:40px;line-height:40px}
.w3-btn-floating-large{width:56px;height:56px;line-height:56px}
.w3-btn-group .w3-btn{float:left}
.w3-btn.w3-ripple{position:relative}
.w3-ripple:after{content:"";background:#90EE90;display:block;position:absolute;padding-top:300%;padding-left:350%;margin-left:-20px!important;margin-top:-120%;opacity:0;transition:.8s}
.w3-ripple:active:after{padding:0;margin:0;opacity:1;transition:0s}
.w3-badge,.w3-tag,.w3-sign{background-color:#000;color:#fff;display:inline-block;padding-left:8px;padding-right:8px;text-align:center}
.w3-badge{border-radius:50%}
ul.w3-ul{list-style-type:none;padding:0;margin:0}
ul.w3-ul li{padding:6px 2px 6px 16px;border-bottom:1px solid #ddd}
ul.w3-ul li:last-child{border-bottom:none}
.w3-image,.w3-tooltip,.w3-display-container{position:relative}
img.w3-image,.w3-image img{max-width:100%;height:auto}
.w3-image .w3-title{position:absolute;bottom:8px;left:16px;color:#fff;font-size:20px}
.w3-fluid{max-width:100%;height:auto}
.w3-tooltip .w3-text{display:none}
.w3-tooltip:hover .w3-text{display:inline-block}
.w3-navbar{list-style-type:none;margin:0;padding:0;overflow:hidden}
.w3-navbar li{float:left}.w3-navbar li a{display:block;padding:8px 16px}.w3-navbar li a:hover{color:#000;background-color:#ccc}
.w3-navbar .w3-dropdown-hover,.w3-navbar .w3-dropdown-click{position:static}
.w3-navbar .w3-dropdown-hover:hover,.w3-navbar .w3-dropdown-hover:first-child,.w3-navbar .w3-dropdown-click:hover{background-color:#ccc;color:#000}
.w3-navbar a,.w3-topnav a,.w3-sidenav a,.w3-dropnav a,.w3-dropdown-content a,.w3-accordion-content a{text-decoration:none!important}
.w3-navbar .w3-opennav.w3-right{float:right!important}.w3-topnav{padding:8px 8px}
.w3-topnav a{padding:0 8px;border-bottom:3px solid transparent;transition:border-bottom .3s}
.w3-topnav a:hover{border-bottom:3px solid #fff}.w3-topnav .w3-dropdown-hover a{border-bottom:0}
.w3-opennav,.w3-closenav{color:inherit}.w3-opennav:hover,.w3-closenav:hover{cursor:pointer;opacity:0.8}
.w3-btn,.w3-btn-floating,.w3-btn-floating-large,.w3-btn-block,.w3-hover-shadow,.w3-hover-opacity,
.w3-navbar a,.w3-sidenav a,.w3-dropnav a,.w3-pagination li a,.w3-hoverable tbody tr,.w3-hoverable li,.w3-accordion-content a,.w3-dropdown-content a,.w3-dropdown-click:hover,.w3-dropdown-hover:hover,.w3-opennav,.w3-closenav,.w3-closebtn,
.w3-hover-amber,.w3-hover-aqua,.w3-hover-blue,.w3-hover-light-blue,.w3-hover-brown,.w3-hover-cyan,.w3-hover-blue-grey,.w3-hover-green,.w3-hover-light-green,.w3-hover-indigo,.w3-hover-khaki,.w3-hover-lime,.w3-hover-orange,.w3-hover-deep-orange,.w3-hover-pink,
.w3-hover-purple,.w3-hover-deep-purple,.w3-hover-red,.w3-hover-sand,.w3-hover-teal,.w3-hover-yellow,.w3-hover-white,.w3-hover-black,.w3-hover-grey,.w3-hover-light-grey,.w3-hover-dark-grey,.w3-hover-text-amber,.w3-hover-text-aqua,.w3-hover-text-blue,.w3-hover-text-light-blue,
.w3-hover-text-brown,.w3-hover-text-cyan,.w3-hover-text-blue-grey,.w3-hover-text-green,.w3-hover-text-light-green,.w3-hover-text-indigo,.w3-hover-text-khaki,.w3-hover-text-lime,.w3-hover-text-orange,.w3-hover-text-deep-orange,.w3-hover-text-pink,.w3-hover-text-purple,
.w3-hover-text-deep-purple,.w3-hover-text-red,.w3-hover-text-sand,.w3-hover-text-teal,.w3-hover-text-yellow,.w3-hover-text-white,.w3-hover-text-black,.w3-hover-text-grey,.w3-hover-text-light-grey,.w3-hover-text-dark-grey
{transition:background-color .3s,color .15s,box-shadow .3s,opacity 0.3s}
.w3-sidenav{height:100%;width:200px;background-color:#fff;position:fixed!important;z-index:1;overflow:auto}
.w3-sidenav a{padding:4px 2px 4px 16px}.w3-sidenav a:hover{background-color:#ccc}.w3-sidenav a,.w3-dropnav a{display:block}
.w3-sidenav .w3-dropdown-hover:hover,.w3-sidenav .w3-dropdown-hover:first-child,.w3-sidenav .w3-dropdown-click:hover{background-color:#ccc;color:#000}
.w3-sidenav .w3-dropdown-hover,.w3-sidenav .w3-dropdown-click {width:100%}.w3-sidenav .w3-dropdown-hover .w3-dropdown-content,.w3-sidenav .w3-dropdown-click .w3-dropdown-content{min-width:100%}
.w3-main,#main{transition:margin-left .4s}
.w3-dropnav{background-color:#fff}.w3-dropnav a:hover{text-decoration:underline!important}
.w3-modal{z-index:3;display:none;padding-top:100px;position:fixed;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4)}
.w3-modal-content{margin:auto;background-color:#fff;position:relative;padding:0;outline:0;width:600px}.w3-closebtn{text-decoration:none;float:right;font-size:24px;font-weight:bold;color:inherit}
.w3-closebtn:hover,.w3-closebtn:focus{color:#000;text-decoration:none;cursor:pointer}
.w3-pagination{display:inline-block;padding:0;margin:0}.w3-pagination li{display:inline}
.w3-pagination li a{text-decoration:none;color:#000;float:left;padding:8px 16px}
.w3-pagination li a:hover,.w3-pagination li a:focus{background-color:#ccc}
.w3-input-group,.w3-group{margin-top:24px;margin-bottom:24px}
.w3-input{padding:8px;display:block;border:none;border-bottom:1px solid #808080;width:100%}
.w3-label{color:#009688}.w3-input:not(:valid)~.w3-validate{color:#f44336}
.w3-select{padding:4px 0;width:100%;color:#000;border:1px solid transparent;border-bottom:1px solid #009688}
.w3-select select:focus{color:#000;border:1px solid #009688}.w3-select option[disabled]{color:#009688}
.w3-dropdown-click,.w3-dropdown-hover{position:relative;display:inline-block;cursor:pointer}
.w3-dropdown-hover:hover .w3-dropdown-content{display:block;z-index:1}
.w3-dropdown-content{cursor:auto;color:#000;background-color:#fff;display:none;position:absolute;min-width:160px;margin:0;padding:0}
.w3-dropdown-content a{padding:6px 16px;display:block}
.w3-dropdown-content a:hover{background-color:#ccc}
.w3-accordion {width:100%;cursor:pointer}
.w3-accordion-content{cursor:auto;display:none;position:relative;width:100%;margin:0;padding:0}
.w3-accordion-content a{padding:6px 16px;display:block}.w3-accordion-content a:hover{background-color:#ccc}
.w3-progress-container{width:100%;height:1.5em;position:relative;background-color:#f1f1f1}
.w3-progressbar{background-color:#757575;height:100%;position:absolute;line-height:inherit}
input[type=checkbox].w3-check,input[type=radio].w3-radio{width:24px;height:24px;position:relative;top:6px}
input[type=checkbox].w3-check:checked+.w3-validate,input[type=radio].w3-radio:checked+.w3-validate{color:#009688} 
input[type=checkbox].w3-check:disabled+.w3-validate,input[type=radio].w3-radio:disabled+.w3-validate{color:#aaa}
.w3-responsive{overflow-x:auto}
.w3-container:after,.w3-row:after,.w3-row-padding:after,.w3-topnav:after,.w3-clear:after,.w3-btn-group:before,.w3-btn-group:after
{content:"";display:table;clear:both}
.w3-col,.w3-half,.w3-third,.w3-twothird,.w3-threequarter,.w3-quarter{float:left;width:100%}
.w3-col.s1{width:8.33333%}
.w3-col.s2{width:16.66666%}
.w3-col.s3{width:24.99999%}
.w3-col.s4{width:33.33333%}
.w3-col.s5{width:41.66666%}
.w3-col.s6{width:49.99999%}
.w3-col.s7{width:58.33333%}
.w3-col.s8{width:66.66666%}
.w3-col.s9{width:74.99999%}
.w3-col.s10{width:83.33333%}
.w3-col.s11{width:91.66666%}
.w3-col.s12,.w3-half,.w3-third,.w3-twothird,.w3-threequarter,.w3-quarter{width:99.99999%}
@media only screen and (min-width:601px){
.w3-col.m1{width:8.33333%}
.w3-col.m2{width:16.66666%}
.w3-col.m3,.w3-quarter{width:24.99999%}
.w3-col.m4,.w3-third{width:33.33333%}
.w3-col.m5{width:41.66666%}
.w3-col.m6,.w3-half{width:49.99999%}
.w3-col.m7{width:58.33333%}
.w3-col.m8,.w3-twothird{width:66.66666%}
.w3-col.m9,.w3-threequarter{width:74.99999%}
.w3-col.m10{width:83.33333%}
.w3-col.m11{width:91.66666%}
.w3-col.m12{width:99.99999%}}
@media only screen and (min-width:993px){
.w3-col.l1{width:8.33333%}
.w3-col.l2{width:16.66666%}
.w3-col.l3,.w3-quarter{width:24.99999%}
.w3-col.l4,.w3-third{width:33.33333%}
.w3-col.l5{width:41.66666%}
.w3-col.l6,.w3-half{width:49.99999%}
.w3-col.l7{width:58.33333%}
.w3-col.l8,.w3-twothird{width:66.66666%}
.w3-col.l9,.w3-threequarter{width:74.99999%}
.w3-col.l10{width:83.33333%}
.w3-col.l11{width:91.66666%}
.w3-col.l12{width:99.99999%}}
.w3-content{max-width:980px;margin:auto}
.w3-rest{overflow:hidden}
.w3-hide{display:none!important}.w3-show-block,.w3-show{display:block!important}.w3-show-inline-block{display:inline-block!important}
@media (max-width:600px){.w3-modal-content{margin:0 10px;width:auto!important}.w3-modal{padding-top:30px}}
@media (max-width:768px){.w3-modal-content{width:500px}.w3-modal{padding-top:50px}}
@media (min-width:993px){.w3-modal-content{width:900px}}
@media screen and (max-width:600px){.w3-topnav a{display:block}.w3-navbar li:not(.w3-opennav){float:none;width:100%!important}.w3-navbar li.w3-right{float:none!important}}	
@media screen and (max-width:600px){.w3-topnav .w3-dropdown-hover .w3-dropdown-content,.w3-navbar .w3-dropdown-click .w3-dropdown-content,.w3-navbar .w3-dropdown-hover .w3-dropdown-content{position:relative}}	
@media screen and (max-width:600px){.w3-topnav,.w3-navbar{text-align:center}}
@media (max-width:600px){.w3-hide-small{display:none!important}}
@media (max-width:992px) and (min-width:601px){.w3-hide-medium{display:none!important}}
@media (min-width:993px){.w3-hide-large{display:none!important}}
@media screen and (max-width:992px){.w3-sidenav.w3-collapse{display:none}.w3-main{margin-left:0!important}}
@media screen and (min-width:992px){.w3-sidenav.w3-collapse{display:block!important}}
.w3-top,.w3-bottom{position:fixed;width:100%;z-index:1}.w3-top{top:0}.w3-bottom{bottom:0}
.w3-overlay{position:fixed;display:none;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:2}
.w3-left{float:left!important}.w3-right{float:right!important}
.w3-tiny{font-size:10px!important}.w3-small{font-size:12px!important}
.w3-medium{font-size:15px!important}
.w3-large{font-size:18px!important}
.w3-xlarge{font-size:24px!important}
.w3-xxlarge{font-size:36px!important}
.w3-xxxlarge{font-size:48px!important}
.w3-jumbo{font-size:64px!important}
.w3-vertical{word-break:break-all;line-height:1;text-align:center;width:0.6em}
.w3-left-align{text-align:left!important}.w3-right-align{text-align:right!important}
.w3-justify{text-align:justify!important}
.w3-center{text-align:center!important}
.w3-display-topleft{position:absolute;left:0;top:0}.w3-display-topright{position:absolute;right:0;top:0}
.w3-display-bottomleft{position:absolute;left:0;bottom:0}.w3-display-bottomright{position:absolute;right:0;bottom:0}
.w3-display-middle{position:absolute;left:0;bottom:50%;width:100%;text-align:center}
.w3-display-topmiddle{position:absolute;left:0;top:0;width:100%;text-align:center}.w3-display-bottommiddle{position:absolute;left:0;bottom:0;width:100%;text-align:center}
.w3-circle{border-radius:50%!important}
.w3-round-small{border-radius:2px!important}.w3-round,.w3-round-medium{border-radius:4px!important}
.w3-round-large{border-radius:8px!important}.w3-round-xlarge{border-radius:16px!important}
.w3-round-xxlarge{border-radius:32px!important}.w3-round-jumbo{border-radius:64px!important}
.w3-border-0{border:0!important}
.w3-border{border:1px solid #ccc!important}
.w3-border-top{border-top:1px solid #ccc!important}.w3-border-bottom{border-bottom:1px solid #ccc!important}
.w3-border-left{border-left:1px solid #ccc!important}.w3-border-right{border-right:1px solid #ccc!important}
.w3-margin{margin:16px!important}.w3-margin-0{margin:0!important}
.w3-margin-top{margin-top:16px!important}.w3-margin-bottom{margin-bottom:16px!important}
.w3-margin-left{margin-left:16px!important}.w3-margin-right{margin-right:16px!important}
.w3-section{margin-top:16px!important;margin-bottom:16px!important}
/* Might be removed in a later version */
.w3-margin-4{margin:4px!important}.w3-margin-8{margin:8px!important}
.w3-margin-12{margin:12px!important}.w3-margin-16{margin:16px!important}.w3-margin-24{margin:24px!important}
.w3-margin-32{margin:32px!important}.w3-margin-48{margin:48px!important}.w3-margin-64{margin:64px!important}
/* End remove */
.w3-padding-tiny{padding:2px 4px!important}
.w3-padding-small{padding:4px 8px!important}
.w3-padding-medium,.w3-padding,.w3-form{padding:8px 16px!important}
.w3-padding-large{padding:12px 24px!important}
.w3-padding-xlarge{padding:16px 32px!important}
.w3-padding-xxlarge{padding:24px 48px!important}
.w3-padding-jumbo{padding:32px 64px!important}
.w3-padding-4,.w3-padding-hor-4{padding-top:4px!important;padding-bottom:4px!important}
.w3-padding-8,.w3-padding-hor-8{padding-top:8px!important;padding-bottom:8px!important}
.w3-padding-12,.w3-padding-hor-12{padding-top:12px!important;padding-bottom:12px!important}
.w3-padding-16,.w3-padding-hor-16{padding-top:16px!important;padding-bottom:16px!important}
.w3-padding-24,.w3-padding-hor-24{padding-top:24px!important;padding-bottom:24px!important}
.w3-padding-32,.w3-padding-hor-32{padding-top:32px!important;padding-bottom:32px!important}
.w3-padding-48,.w3-padding-hor-48{padding-top:48px!important;padding-bottom:48px!important}
.w3-padding-64,.w3-padding-hor-64{padding-top:64px!important;padding-bottom:64px!important}
.w3-padding-128,.w3-padding-hor-128{padding-top:128px!important;padding-bottom:128px!important}
.w3-padding-0{padding:0!important}
.w3-padding-ver-4{padding-left:4px!important;padding-right:4px!important}
.w3-padding-ver-8{padding-left:8px!important;padding-right:8px!important}
.w3-padding-ver-12{padding-left:12px!important;padding-right:12px!important}
.w3-padding-ver-16{padding-left:16px!important;padding-right:16px!important}
.w3-padding-ver-24{padding-left:24px!important;padding-right:24px!important}
.w3-padding-ver-32{padding-left:32px!important;padding-right:32px!important}
.w3-padding-ver-48{padding-left:48px!important;padding-right:48px!important}
.w3-padding-ver-64{padding-left:64px!important;padding-right:64px!important}
.w3-padding-top{padding-top:8px!important}.w3-padding-bottom{padding-bottom:8px!important}
.w3-padding-left{padding-left:16px!important}.w3-padding-right{padding-right:16px!important}
.w3-topbar{border-top:6px solid #ccc!important}.w3-bottombar{border-bottom:6px solid #ccc!important}
.w3-leftbar{border-left:6px solid #ccc!important}.w3-rightbar{border-right:6px solid #ccc!important}
.w3-row-padding,.w3-row-padding>.w3-half,.w3-row-padding>.w3-third,.w3-row-padding>.w3-twothird,.w3-row-padding>.w3-threequarter,.w3-row-padding>.w3-quarter,.w3-row-padding>.w3-col{padding:0 8px}
.w3-spin{animation:w3-spin 2s infinite linear;-webkit-animation:w3-spin 2s infinite linear}
@keyframes w3-spin{
0%{transform: rotate(0deg)}
100%{transform:rotate(359deg)}}
.w3-container{padding:0.01em 16px}
.w3-example{background-color:#f1f1f1;padding:0.01em 16px}
.w3-code{font-family:Consolas,"courier new";font-size:16px;line-height:1.4;width:auto;background-color:#fff;padding:8px 12px;border-left:4px solid #009688;word-wrap:break-word}
.w3-example,.w3-code,.w3-reference{margin:20px 0}
.w3-card{border:1px solid #ccc}
.w3-card-2,.w3-example{box-shadow:0 2px 4px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12)!important}
.w3-card-4,.w3-hover-shadow:hover{box-shadow:0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)!important}
.w3-card-8{box-shadow:0 8px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)!important}
.w3-card-12{box-shadow:0 12px 16px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19)!important}
.w3-card-16{box-shadow:0 16px 24px 0 rgba(0,0,0,0.22),0 25px 55px 0 rgba(0,0,0,0.21)!important}
.w3-card-24{box-shadow:0 24px 24px 0 rgba(0,0,0,0.2),0 40px 77px 0 rgba(0,0,0,0.22)!important}
.w3-animate-fading{animation:fading 10s infinite}
@keyframes fading{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
.w3-animate-opacity{animation:opac 1.5s}
@keyframes opac{from{opacity:0} to{opacity:1}}
.w3-animate-top{position:relative;animation:animatetop 0.4s}
@keyframes animatetop{from{top:-300px;opacity:0} to{top:0;opacity:1}}
.w3-animate-left{position:relative;animation:animateleft 0.4s}
@keyframes animateleft{from{left:-300px;opacity:0} to{left:0;opacity:1}}
.w3-animate-right{position:relative;animation:animateright 0.4s}
@keyframes animateright{from{right:-300px;opacity:0} to{right:0;opacity:1}}
.w3-animate-bottom{position:relative;animation:animatebottom 0.4s}
@keyframes animatebottom{from{bottom:-300px;opacity:0} to{bottom:0;opacity:1}}
.w3-animate-zoom {animation:animatezoom 0.6s}
@keyframes animatezoom{from{transform:scale(0)} to{transform:scale(1)}}
.w3-animate-input{transition:width 0.4s ease-in-out}.w3-animate-input:focus{width:100%!important}
.w3-transparent{background-color:transparent!important}
.w3-hover-none:hover{box-shadow:none!important;background-color:transparent!important}
.w3-amber,.w3-hover-amber:hover{color:#000!important;background-color:#ffc107!important}
.w3-aqua,.w3-hover-aqua:hover{color:#000!important;background-color:#00ffff!important}
.w3-blue,.w3-hover-blue:hover{color:#fff!important;background-color:#2196F3!important}
.w3-light-blue,.w3-hover-light-blue:hover{color:#000!important;background-color:#87CEEB!important}
.w3-brown,.w3-hover-brown:hover{color:#fff!important;background-color:#795548!important}
.w3-cyan,.w3-hover-cyan:hover{color:#000!important;background-color:#00bcd4!important}
.w3-blue-grey,.w3-hover-blue-grey:hover{color:#fff!important;background-color:#607d8b!important}
.w3-green,.w3-hover-green:hover{color:#fff!important;background-color:#4CAF50!important}
.w3-light-green,.w3-hover-light-green:hover{color:#000!important;background-color:#8bc34a!important}
.w3-indigo,.w3-hover-indigo:hover{color:#fff!important;background-color:#3f51b5!important}
.w3-khaki,.w3-hover-khaki:hover{color:#000!important;background-color:#f0e68c!important}
.w3-lime,.w3-hover-lime:hover{color:#000!important;background-color:#cddc39!important}
.w3-orange,.w3-hover-orange:hover{color:#000!important;background-color:#ff9800!important}
.w3-deep-orange,.w3-hover-deep-orange:hover{color:#fff!important;background-color:#ff5722!important}
.w3-pink,.w3-hover-pink:hover{color:#fff!important;background-color:#e91e63!important}
.w3-purple,.w3-hover-purple:hover{color:#fff!important;background-color:#9c27b0!important}
.w3-deep-purple,.w3-hover-deep-purple:hover{color:#fff!important;background-color:#673ab7!important}
.w3-red,.w3-hover-red:hover{color:#fff!important;background-color:#f44336!important}
.w3-sand,.w3-hover-sand:hover{color:#000!important;background-color:#fdf5e6!important}
.w3-teal,.w3-hover-teal:hover{color:#fff!important;background-color:#009688!important}
.w3-yellow,.w3-hover-yellow:hover{color:#000!important;background-color:#ffeb3b!important}
.w3-white,.w3-hover-white:hover{color:#000!important;background-color:#fff!important}
.w3-black,.w3-hover-black:hover{color:#fff!important;background-color:#000!important}
.w3-grey,.w3-hover-grey:hover{color:#000!important;background-color:#9e9e9e!important}
.w3-light-grey,.w3-hover-light-grey:hover{color:#000!important;background-color:#f1f1f1!important}
.w3-dark-grey,.w3-hover-dark-grey:hover{color:#fff!important;background-color:#616161!important}
.w3-pale-red,.w3-hover-pale-red:hover{color:#000!important;background-color:#ffe7e7!important}.w3-pale-green,.w3-hover-pale-green:hover{color:#000!important;background-color:#e7ffe7!important}
.w3-pale-yellow,.w3-hover-pale-yellow:hover{color:#000!important;background-color:#ffffd7!important}.w3-pale-blue,.w3-hover-pale-blue:hover{color:#000!important;background-color:#e7ffff!important}
.w3-text-amber,.w3-hover-text-amber:hover{color:#ffc107!important}
.w3-text-aqua,.w3-hover-text-aqua:hover{color:#00ffff!important}
.w3-text-blue,.w3-hover-text-blue:hover{color:#2196F3!important}
.w3-text-light-blue,.w3-hover-text-light-blue:hover{color:#87CEEB!important}
.w3-text-brown,.w3-hover-text-brown:hover{color:#795548!important}
.w3-text-cyan,.w3-hover-text-cyan:hover{color:#00bcd4!important}
.w3-text-blue-grey,.w3-hover-text-blue-grey:hover{color:#607d8b!important}
.w3-text-green,.w3-hover-text-green:hover{color:#4CAF50!important}
.w3-text-light-green,.w3-hover-text-light-green:hover{color:#8bc34a!important}
.w3-text-indigo,.w3-hover-text-indigo:hover{color:#3f51b5!important}
.w3-text-khaki,.w3-hover-text-khaki:hover{color:#b4aa50!important}
.w3-text-lime,.w3-hover-text-lime:hover{color:#cddc39!important}
.w3-text-orange,.w3-hover-text-orange:hover{color:#ff9800!important}
.w3-text-deep-orange,.w3-hover-text-deep-orange:hover{color:#ff5722!important}
.w3-text-pink,.w3-hover-text-pink:hover{color:#e91e63!important}
.w3-text-purple,.w3-hover-text-purple:hover{color:#9c27b0!important}
.w3-text-deep-purple,.w3-hover-text-deep-purple:hover{color:#673ab7!important}
.w3-text-red,.w3-hover-text-red:hover{color:#f44336!important}
.w3-text-sand,.w3-hover-text-sand:hover{color:#fdf5e6!important}
.w3-text-teal,.w3-hover-text-teal:hover{color:#009688!important}
.w3-text-yellow,.w3-hover-text-yellow:hover{color:#d2be0e!important}
.w3-text-white,.w3-hover-text-white:hover{color:#fff!important}
.w3-text-black,.w3-hover-text-black:hover{color:#000!important}
.w3-text-grey,.w3-hover-text-grey:hover{color:#757575!important}
.w3-text-light-grey,.w3-hover-text-light-grey:hover{color:#f1f1f1!important}
.w3-text-dark-grey,.w3-hover-text-dark-grey:hover{color:#3a3a3a!important}
.w3-border-amber,.w3-hover-border-amber:hover{border-color:#ffc107!important}
.w3-border-aqua,.w3-hover-border-aqua:hover{border-color:#00ffff!important}
.w3-border-blue,.w3-hover-border-blue:hover{border-color:#2196F3!important}
.w3-border-light-blue,.w3-hover-border-light-blue:hover{border-color:#87CEEB!important}
.w3-border-brown,.w3-hover-border-brown:hover{border-color:#795548!important}
.w3-border-cyan,.w3-hover-border-cyan:hover{border-color:#00bcd4!important}
.w3-border-blue-grey,.w3-hover-blue-grey:hover{border-color:#607d8b!important}
.w3-border-green,.w3-hover-border-green:hover{border-color:#4CAF50!important}
.w3-border-light-green,.w3-hover-border-light-green:hover{border-color:#8bc34a!important}
.w3-border-indigo,.w3-hover-border-indigo:hover{border-color:#3f51b5!important}
.w3-border-khaki,.w3-hover-border-khaki:hover{border-color:#f0e68c!important}
.w3-border-lime,.w3-hover-border-lime:hover{border-color:#cddc39!important}
.w3-border-orange,.w3-hover-border-orange:hover{border-color:#ff9800!important}
.w3-border-deep-orange,.w3-hover-border-deep-orange:hover{border-color:#ff5722!important}
.w3-border-pink,.w3-hover-border-pink:hover{border-color:#e91e63!important}
.w3-border-purple,.w3-hover-border-purple:hover{border-color:#9c27b0!important}
.w3-border-deep-purple,.w3-hover-border-deep-purple:hover{border-color:#673ab7!important}
.w3-border-red,.w3-hover-border-red:hover{border-color:#f44336!important}
.w3-border-sand,.w3-hover-border-sand:hover{border-color:#fdf5e6!important}
.w3-border-teal,.w3-hover-border-teal:hover{border-color:#009688!important}
.w3-border-yellow,.w3-hover-border-yellow:hover{border-color:#ffeb3b!important}
.w3-border-white,.w3-hover-border-white:hover{border-color:#fff!important}
.w3-border-black,.w3-hover-border-black:hover{border-color:#000!important}
.w3-border-grey,.w3-hover-border-grey:hover{border-color:#9e9e9e!important}
.w3-border-light-grey,.w3-hover-border-light-grey:hover{border-color:#f1f1f1!important}
.w3-border-dark-grey,.w3-hover-border-dark-grey:hover{border-color:#616161!important}
.w3-border-pale-red,.w3-hover-border-pale-red:hover{border-color:#ffe7e7!important}.w3-border-pale-green,.w3-hover-border-pale-green:hover{border-color:#e7ffe7!important}
.w3-border-pale-yellow,.w3-hover-border-pale-yellow:hover{border-color:#ffffd7!important}.w3-border-pale-blue,.w3-hover-border-pale-blue:hover{border-color:#e7ffff!important}
.w3-opacity,.w3-hover-opacity:hover{opacity:0.60}
.w3-text-shadow{text-shadow:1px 1px 0 #444}.w3-text-shadow-white{text-shadow:1px 1px 0 #ddd}

/*!******************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./public/css/xploo_variables.css ***!
  \******************************************************************************************************************************************************************************************************/
/* Variable declaration */
/* WARNING: "-" in the name is unsupported! */
/* WARNING: As used in Javascript no space after ":" is allowed */
:root {
    /* Ratio of the responsiveness
        Its usage: calc(<min size in rem>rem + <max - min size in rem> * var(--RESPONSIVE-RATIO)). Ex: calc(1.2rem + 0.7 * var(--RESPONSIVE-RATIO))
        Its syntax (important): 100vw for the current screen width, 120rem for 1920px, 31rem for 496px */
    --RESPONSIVE-RATIO: (100vw - 31rem) / (120 - 31);
	--MARKERS_SIZE:40;
	--FONT-FAMILY:"Figtree",sans-serif;
    --COLOR_FONT: white;

    --SHADE_SURFACE: 233;
  	--SAT_SURFACE: 27%;
    --COLOR_SURFACE_10: hsl(var(--SHADE_SURFACE),var(--SAT_SURFACE),15%);  /* = Azur 10/2025 #1D2033; */
	--COLOR_SURFACE_20: hsl(var(--SHADE_SURFACE),var(--SAT_SURFACE),25%);
	--COLOR_SURFACE_30: hsl(var(--SHADE_SURFACE),var(--SAT_SURFACE),35%);
	--COLOR_SURFACE_40: hsl(var(--SHADE_SURFACE),var(--SAT_SURFACE),45%);
	--COLOR_SURFACE_50: hsl(var(--SHADE_SURFACE),var(--SAT_SURFACE),55%);
	--COLOR_SURFACE_60: hsl(var(--SHADE_SURFACE),var(--SAT_SURFACE),65%);
	--COLOR_SURFACE_70: hsl(var(--SHADE_SURFACE),var(--SAT_SURFACE),75%);
	--COLOR_SURFACE_80: hsl(var(--SHADE_SURFACE),var(--SAT_SURFACE),85%);
	--COLOR_SURFACE_90: hsl(var(--SHADE_SURFACE),var(--SAT_SURFACE),95%);

    --COLOR_POI_LABEL: hsl(233,27%,25%);

  	--SHADE_ACTION: 22;	/* 24=EsayJet, 80=nice green */
  	--SAT_ACTION: 100%;
	--COLOR_ACTION_40: hsl(var(--SHADE_ACTION),var(--SAT_ACTION),40%);
	--COLOR_ACTION_50: hsl(var(--SHADE_ACTION),var(--SAT_ACTION),50%); 
	--COLOR_ACTION_60: hsl(var(--SHADE_ACTION),var(--SAT_ACTION),60%);
	--COLOR_ACTION_70: hsl(var(--SHADE_ACTION),var(--SAT_ACTION),70%);
	--COLOR_ACTION_80: hsl(var(--SHADE_ACTION),var(--SAT_ACTION),80%);
	--COLOR_ACTION_90: hsl(var(--SHADE_ACTION),var(--SAT_ACTION),90%);

	--SHADE_BLUE : 195;
  	--SAT_BLUE : 100%;
	--BLUE_50:hsl(var(--SHADE_BLUE),var(--SAT_BLUE),50%);   /*DEEP_SKY_BLUE:#00BFFF*/

	--WHITE: #ffffff;
	--BEIGE: #FCF2ED;
	--BLACK: #000000;

	--DARKER_BLUE: #0A1C2A;
	--LIGHTER_BLUE: #1A3A4F;
	--DAY_PINK: #E85490;/* hsl(336, 76%, 62%)	*/
	--DAY_YELLOW:#ffd500;/* #FFCC00D9=hsl(48, 100%, 50%) */
	--DAY_CYAN:#07DBF2;/*hsl(185.9,94.4%,48.8%) */
	--DAY_GREEN:#8EC800;/* hsl(77.4,100%,39.2%) */
	--DAY_PURPLE:#8E76D5;/*#c941ff/*#B233E5= hsl(283, 77%, 55%) */
	--WARNING_RED:hsl(0, 100%, 50%);
	--MARKER_TEXT_COLOR: var(--COLOR_SURFACE_10);
	--EXC_MARKER_FILL_COLOR: #ffffff;
	--NAVBAR_DEFAULT_FILL_COLOR: var(--COLOR_SURFACE_30);
	--NAVBAR_HOVER_FILL_COLOR: var(--COLOR_SURFACE_50);

/*
###############################################################################################################################################################
INPUT NEUMORPHISM EFFECT
###############################################################################################################################################################
*/

	--NEUMORPHISM_BOX_SHADOW:
		inset 6px 6px 12px rgba(0, 0, 0, 0.35),
        inset -6px -6px 12px rgba(255, 255, 255, 0.2),
		3px 3px 6px rgba(0, 0, 0, 0.3),
		-3px -3px 6px rgba(255, 255, 255, 0.2);

/*
###############################################################################################################################################################
HEADER
###############################################################################################################################################################
*/

	--HEADER_HEIGHT: 52px;
    --HEADER_BUTTON_HEIGHT: 40px;

/*
###############################################################################################################################################################
SEARCH BAR
###############################################################################################################################################################
*/

	--SEARCH_BAR_BACKGROUND_COLOR: rgba(26, 58, 79, 0.25);
	--SEARCH_BAR_BOX_SHADOW: 
		-5px 0 25px rgba(0, 0, 0, 0.3),
		inset 0 0 2px rgba(255, 255, 255, 0.35),
		-20px 0 50px rgba(0, 0, 0, 0.2);
	--SEARCH_BAR_ELEMENTS_ACTIVE: linear-gradient(to right, var(--COLOR_ACTION_40), var(--COLOR_ACTION_60));
	--REQUIRED_FIELD_COLOR: #FF4500; /* Orange-red color for required field indicators */

/*
###############################################################################################################################################################
SETTINGS WINDOW
###############################################################################################################################################################
*/

	--SETTINGS_WINDOW_WIDTH: 100%;

/*
###############################################################################################################################################################
SIDER / TIMELINE
###############################################################################################################################################################
*/

	--RIGHT_BAR_WIDTH:448px;	/* 03/05/2023 22% 28rem */  /* Damien Suggestion: 490px */  /* Google Maps: 408px */
	--DOUBLED_RIGHT_BAR_WIDTH: calc(var(--RIGHT_BAR_WIDTH) * 2);

/*
###############################################################################################################################################################
PLANNER PAGE
###############################################################################################################################################################
*/

	/* --RIGHT_BAR_WIDTH: 33%;
    --POI_PAGE_WIDTH: 33%; */
	/* TOTAL           100% */

/*
###############################################################################################################################################################
PLANNER PAGE (ON MOBILE)
###############################################################################################################################################################
*/

	--MOBILE_NAV_HEIGHT: 7%;
    /* Values at planification */
	--MOBILE_MAP_HEIGHT: 50%;
    --MOBILE_SIDER_HEIGHT: 43%;
    /* Values at navigation */
    --MOBILE_MAP_HEIGHT_AT_NAV: 61%;
    --MOBILE_SIDER_HEIGHT_AT_NAV: 32%;
    /* TOTAL           100% */

/*
###############################################################################################################################################################
LANDING BAR
###############################################################################################################################################################
*/

	--LANDING_BAR_RATIO:1.4;

/*
###############################################################################################################################################################
BUTTONS
###############################################################################################################################################################
*/

	--BUTTON_BORDER_RADIUS: 32px /* Airbnb 32px */;
	--FORM_SHADOW_BLACK: 3px 0px 10px 0 rgb(0 0 0);
	--FORM_SHADOW_WHITE: 0px 0px 2px 2px var(--COLOR_SURFACE_90);
    --FORM_SHADOW_ORANGE: 0px 0px 2px 2px var(--COLOR_ACTION_50);
    --FORM_SHADOW_RED: 0px 0px 2px 2px var(--WARNING_RED); /* Shadow for warnings */

/*
###############################################################################################################################################################
BADGES
###############################################################################################################################################################
*/

    /* Badge Nouveau */
    --BADGE_NEW_GRADIENT_FROM: #FF5252; /* Rouge clair */
    --BADGE_NEW_GRADIENT_TO: #B71C1C; /* Rouge foncé */
    --BADGE_NEW_TEXT_COLOR: var(--WHITE);
    --BADGE_NEW_BORDER: rgba(183, 28, 28, 0.3);
    
    /* Badge Bientôt */
    --BADGE_COMING_SOON_GRADIENT_FROM: #E0E0E0; /* Argent clair */
    --BADGE_COMING_SOON_GRADIENT_TO: #A9A9A9; /* Argent foncé */
    --BADGE_COMING_SOON_TEXT_COLOR: var(--COLOR_SURFACE_10);
    --BADGE_COMING_SOON_BORDER: rgba(169, 169, 169, 0.3);
    
    /* Badge Populaire */
    --BADGE_POPULAR_GRADIENT_FROM: #FFD700; /* Jaune doré */
    --BADGE_POPULAR_GRADIENT_TO: #FFA500; /* Jaune orangé */
    --BADGE_POPULAR_TEXT_COLOR: var(--COLOR_SURFACE_10);
    --BADGE_POPULAR_BORDER: rgba(255, 165, 0, 0.3);
    
    /* Badge Beta */
    --BADGE_BETA_GRADIENT_FROM: #E85490; /* Rose clair */
    --BADGE_BETA_GRADIENT_TO: #D13B7B; /* Rose foncé */
    --BADGE_BETA_TEXT_COLOR: var(--WHITE);
    --BADGE_BETA_BORDER: rgba(209, 59, 123, 0.3);

/*
###############################################################################################################################################################
GEOCODER
###############################################################################################################################################################
*/

	--GEOCODER_WIDTH: 250px;
	--GEOCODER_POI_WIDTH: 250px;
	--GEOCODER_POI_WIDTH_MOBILE: 60%;

/*
###############################################################################################################################################################
RANGE CONTAINER
###############################################################################################################################################################
*/

	--RANGE_CONTAINER_WIDTH: 100%;

/*
###############################################################################################################################################################
SIDE BAR
###############################################################################################################################################################
*/

	--SIDE_BAR_TRANSITION: 1s;
	--TIME1: 0s;	/* Duration of the spinner gear1 rotation */
 	--TIME2: 0s;	/* Duration of the spinner gear2 rotation */

/*
###############################################################################################################################################################
MAP SIDER TABLE
###############################################################################################################################################################
*/

	--TABLE_COL1_WIDTH: 6%;
    --TABLE_COL2_WIDTH: 34%;
    --TABLE_COL3_WIDTH: 9%;
    --TABLE_COL4_WIDTH: 21%;
    --TABLE_COL5_WIDTH: 23%;
    --TABLE_COL6_WIDTH: 7%;
    /* TOTAL           100% */
    /* Before the adaptation to small mobile
	--TABLE_COL1_WIDTH: 6%;
    --TABLE_COL2_WIDTH: 30%;
    --TABLE_COL3_WIDTH: 13%;
    --TABLE_COL4_WIDTH: 22%;
    --TABLE_COL5_WIDTH: 23%;
    --TABLE_COL6_WIDTH: 6%;
    TOTAL           100% */

/*
###############################################################################################################################################################
MAP
###############################################################################################################################################################
*/

	--MAP_ELEMENT_MARGIN: 8px;
	--MAP_FILTERS_HEIGHT: 32px;
	--MAP_FILTERS_WIDTH: 32px;

/*
###############################################################################################################################################################
DATE PICKER
###############################################################################################################################################################
*/

	 --DATE_PICKER_FONT_COEF: 1.2;
	 --DATE_PICKER_BACKGROUND_COLOR: var(--COLOR_SURFACE_20);

/*
###############################################################################################################################################################
LOGIN
###############################################################################################################################################################
*/

	--login-primary-color: var(--COLOR_ACTION_50);
	--login-secondary-color: var(--COLOR_ACTION_40);
	--login-bg-color: var(--COLOR_SURFACE_90);
	--login-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
	--login-border-radius: 12px;

/*
###############################################################################################################################################################
NOTIFICATION SETTINGS MODAL (notification preferences)
###############################################################################################################################################################
*/

	/* Notification Modal */
	--NOTIFICATION_MODAL_OVERLAY_BG: rgba(0, 0, 0, 0.75);
	--NOTIFICATION_MODAL_BACKDROP_BLUR: blur(5px);
	--NOTIFICATION_MODAL_CONTENT_BG: rgba(255, 255, 255, 0.65);
	--NOTIFICATION_MODAL_CONTENT_PADDING: 40px 30px 30px;
	--NOTIFICATION_MODAL_BORDER_RADIUS: 20px;
	--NOTIFICATION_MODAL_MAX_WIDTH: 500px;
	--NOTIFICATION_MODAL_SHADOW: 0 25px 50px rgba(0, 0, 0, 0.4);
	--NOTIFICATION_MODAL_ANIMATION: modalScaleIn 0.4s ease-out;

	/* Notification Modal Header */
	--NOTIFICATION_HEADER_TITLE_COLOR: #333;
	--NOTIFICATION_HEADER_TITLE_SIZE: 24px;
	--NOTIFICATION_HEADER_TITLE_WEIGHT: 600;
	--NOTIFICATION_HEADER_DESC_COLOR: #666;
	--NOTIFICATION_HEADER_DESC_SIZE: 15px;
	--NOTIFICATION_HEADER_LINE_HEIGHT: 1.5;

	/* Notification List */
	--NOTIFICATION_LIST_COLOR: #666;
	--NOTIFICATION_LIST_LINE_HEIGHT: 1.6;
	--NOTIFICATION_LIST_MARGIN_BOTTOM: 25px;
	--NOTIFICATION_LIST_ITEM_GAP: 10px;
	--NOTIFICATION_LIST_ITEM_MARGIN: 8px;

	/* Notification Buttons */
	--NOTIFICATION_BTN_PADDING: 12px 25px;
	--NOTIFICATION_BTN_BORDER_RADIUS: 25px;
	--NOTIFICATION_BTN_FONT_SIZE: 14px;
	--NOTIFICATION_BTN_FONT_WEIGHT: 500;
	--NOTIFICATION_BTN_TRANSITION: all 0.3s ease;
	--NOTIFICATION_BTN_GAP: 10px;

	/* Notification Button Primary (Activate) */
	--NOTIFICATION_BTN_PRIMARY_BG: linear-gradient(135deg, #28a745, #20c997);
	--NOTIFICATION_BTN_PRIMARY_COLOR: var(--WHITE);
	--NOTIFICATION_BTN_PRIMARY_SHADOW: 0 8px 20px rgba(40, 167, 69, 0.3);

	/* Notification Button Test */
	--NOTIFICATION_BTN_TEST_BG: #007bff;
	--NOTIFICATION_BTN_TEST_COLOR: var(--WHITE);
	--NOTIFICATION_BTN_TEST_SHADOW: 0 8px 20px rgba(0, 123, 255, 0.3);

	/* Notification Button Vibration */
	--NOTIFICATION_BTN_VIBRATION_BG: #ff6b35;
	--NOTIFICATION_BTN_VIBRATION_COLOR: var(--WHITE);
	--NOTIFICATION_BTN_VIBRATION_SHADOW: 0 8px 20px rgba(255, 107, 53, 0.3);

	/* Notification Responsive */
	--NOTIFICATION_BREAKPOINT_MOBILE: 768px;

/*
###############################################################################################################################################################
NOTIFICATION CACHE UPDATE
###############################################################################################################################################################
*/

	/* Cache Update Modal - Z-Index & Layout */
	--CACHE_UPDATE_MODAL_Z_INDEX: 10000;
	--CACHE_UPDATE_MODAL_FONT_FAMILY: "Figtree", sans-serif;
	
	/* Cache Update Modal - Background & Colors */
	--CACHE_UPDATE_MODAL_BG: #28a76cc2;
	--CACHE_UPDATE_MODAL_COLOR: var(--WHITE);
	
	/* Cache Update Modal - Spacing & Sizing */
	--CACHE_UPDATE_MODAL_PADDING: 1rem 1.25rem;
	--CACHE_UPDATE_MODAL_BORDER_RADIUS: 0.75rem;
	--CACHE_UPDATE_MODAL_GAP: 0.5rem;
	--CACHE_UPDATE_MODAL_MIN_WIDTH_DESKTOP: 23.75rem;
	--CACHE_UPDATE_MODAL_MAX_WIDTH: 31.25rem;
	
	/* Cache Update Modal - Desktop Positioning */
	--CACHE_UPDATE_MODAL_DESKTOP_BOTTOM: 1.25rem;
	--CACHE_UPDATE_MODAL_DESKTOP_RIGHT: 1.25rem;
	--CACHE_UPDATE_MODAL_BOX_SHADOW_DESKTOP: 0 0.5rem 1.5625rem rgba(40, 167, 69, 0.3);
	
	/* Cache Update Modal - Mobile Positioning */
	--CACHE_UPDATE_MODAL_MOBILE_TOP: 0;
	--CACHE_UPDATE_MODAL_MOBILE_LEFT: 0;
	--CACHE_UPDATE_MODAL_MOBILE_RIGHT: 0;
	--CACHE_UPDATE_MODAL_BOX_SHADOW_MOBILE: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.3);
	
	/* Cache Update Modal - Typography */
	--CACHE_UPDATE_MODAL_TITLE_SIZE: 1rem;
	--CACHE_UPDATE_MODAL_TITLE_WEIGHT: 700;
	--CACHE_UPDATE_MODAL_MESSAGE_SIZE: 0.875rem;
	--CACHE_UPDATE_MODAL_MESSAGE_OPACITY: 0.9;
	--CACHE_UPDATE_MODAL_HINT_SIZE: 0.75rem;
	--CACHE_UPDATE_MODAL_HINT_OPACITY: 0.8;
	--CACHE_UPDATE_MODAL_HINT_ICON_MARGIN: 0.375rem;
	
	/* Cache Update Modal - Action Button */
	--CACHE_UPDATE_MODAL_ACTION_BG: rgba(255, 255, 255, 0.2);
	--CACHE_UPDATE_MODAL_ACTION_BG_HOVER: rgba(255, 255, 255, 0.3);
	--CACHE_UPDATE_MODAL_ACTION_BORDER: 1px solid rgba(255, 255, 255, 0.3);
	--CACHE_UPDATE_MODAL_ACTION_COLOR: var(--WHITE);
	--CACHE_UPDATE_MODAL_ACTION_PADDING: 0.5rem 1rem;
	--CACHE_UPDATE_MODAL_ACTION_RADIUS: 1.25rem;
	--CACHE_UPDATE_MODAL_ACTION_FONT_SIZE: 0.875rem;
	--CACHE_UPDATE_MODAL_ACTION_FONT_WEIGHT: 500;
	--CACHE_UPDATE_MODAL_ACTION_TRANSITION: all 0.3s ease;
	
	/* Cache Update Modal - Animations */
	--CACHE_UPDATE_MODAL_ANIMATION_DESKTOP: slideInUp 0.5s ease-out;
	--CACHE_UPDATE_MODAL_ANIMATION_MOBILE: slideDown 0.5s ease-out;

/*
###############################################################################################################################################################
NOTIFICATIONS SENSOR CHECK SYSTEM
###############################################################################################################################################################
*/

	/* SENSOR CHECK - FONT & OVERLAY */
	--SENSOR_FONT_FAMILY: "Figtree", sans-serif;
	--SENSOR_MODAL_OVERLAY_BG: rgba(0, 0, 0, 0.75);
	--SENSOR_MODAL_OVERLAY_Z_INDEX: 10002;
	--SENSOR_MODAL_OVERLAY_PADDING: 20px;
	--SENSOR_MODAL_OVERLAY_BACKDROP: blur(5px);
	--SENSOR_MODAL_OVERLAY_ANIMATION: sensorFadeIn 0.3s ease-out;

	/* SENSOR CHECK - MODAL CONTENT */
	--SENSOR_MODAL_CONTENT_RADIUS: 20px;
	--SENSOR_MODAL_CONTENT_MAX_WIDTH: 500px;
	--SENSOR_MODAL_CONTENT_BOX_SHADOW: 0 25px 50px rgba(0, 0, 0, 0.4);
	--SENSOR_MODAL_CONTENT_BORDER: 2px solid rgba(255, 255, 255, 0.3);
	--SENSOR_MODAL_CONTENT_PADDING: 40px 30px;
	--SENSOR_MODAL_CONTENT_ANIMATION: sensorModalScaleIn 0.4s ease-out;
	--SENSOR_MODAL_CONTENT_COLOR: var(--WHITE);

	/* SENSOR CHECK - MODAL THEMES */
	--SENSOR_MODAL_CRITICAL_BG:  #ff3300;
	--SENSOR_MODAL_ERROR_BG: #ff9100;
	--SENSOR_MODAL_WARNING_BG:  #e7d000;
	--SENSOR_MODAL_INSTRUCTIONS_BG: var(--WHITE);
	--SENSOR_MODAL_INSTRUCTIONS_COLOR: #333;

	/* SENSOR CHECK - CLOSE BUTTON */
	--SENSOR_CLOSE_BTN_TOP: 15px;
	--SENSOR_CLOSE_BTN_RIGHT: 15px;
	--SENSOR_CLOSE_BTN_BG: rgba(0, 0, 0, 0.2);
	--SENSOR_CLOSE_BTN_COLOR: var(--WHITE);
	--SENSOR_CLOSE_BTN_FONT_SIZE: 32px;
	--SENSOR_CLOSE_BTN_SIZE: 35px;
	--SENSOR_CLOSE_BTN_TRANSITION: all 0.2s ease;
	--SENSOR_CLOSE_BTN_BG_HOVER: rgba(0, 0, 0, 0.4);
	--SENSOR_CLOSE_BTN_INSTRUCTIONS_BG: rgba(0, 0, 0, 0.05);
	--SENSOR_CLOSE_BTN_INSTRUCTIONS_COLOR: #666;
	--SENSOR_CLOSE_BTN_INSTRUCTIONS_BG_HOVER: rgba(0, 0, 0, 0.1);
	--SENSOR_CLOSE_BTN_INSTRUCTIONS_COLOR_HOVER: #333;

	/* SENSOR CHECK - MODAL ICON & TITLE */
	--SENSOR_MODAL_ICON_SIZE: 70px;
	--SENSOR_MODAL_ICON_MARGIN: 20px;
	--SENSOR_MODAL_ICON_ANIMATION: sensorPulse 2s ease-in-out infinite;
	--SENSOR_MODAL_TITLE_SIZE: 24px;
	--SENSOR_MODAL_TITLE_WEIGHT: 700;
	--SENSOR_MODAL_TITLE_MARGIN: 25px;
	--SENSOR_MODAL_TITLE_SHADOW: 0 2px 10px rgba(0, 0, 0, 0.2);
	--SENSOR_MODAL_INSTRUCTIONS_TITLE_COLOR: #dc3545;
	--SENSOR_MODAL_INSTRUCTIONS_TITLE_SIZE: 22px;

	/* SENSOR CHECK - WARNINGS LIST */
	--SENSOR_WARNINGS_LIST_MARGIN_BOTTOM: 30px;
	--SENSOR_WARNING_ITEM_PADDING: 15px;
	--SENSOR_WARNING_ITEM_MARGIN_BOTTOM: 12px;
	--SENSOR_WARNING_ITEM_BG: rgba(255, 255, 255, 0.15);
	--SENSOR_WARNING_ITEM_BORDER_RADIUS: 12px;
	--SENSOR_WARNING_ITEM_BACKDROP: blur(10px);
	--SENSOR_WARNING_ITEM_BORDER_LEFT_WIDTH: 4px;
	--SENSOR_WARNING_ITEM_BORDER_LEFT_COLOR: rgba(255, 255, 255, 0.5);
	--SENSOR_WARNING_ITEM_TRANSITION: all 0.3s ease;
	--SENSOR_WARNING_ITEM_BG_HOVER: rgba(255, 255, 255, 0.2);
	--SENSOR_WARNING_ITEM_TRANSLATE: 5px;
	--SENSOR_WARNING_ICON_SIZE: 24px;
	--SENSOR_WARNING_ICON_MARGIN: 15px;
	--SENSOR_WARNING_MESSAGE_FONT_SIZE: 15px;
	--SENSOR_WARNING_MESSAGE_LINE_HEIGHT: 1.5;
	--SENSOR_WARNING_MESSAGE_FONT_WEIGHT: 500;

	/* SENSOR CHECK - SEVERITY COLORS */
	--SENSOR_COLOR_CRITICAL: #dc3545;
	--SENSOR_COLOR_HIGH: #ff6b35;
	--SENSOR_COLOR_MEDIUM: #ffc107;
	--SENSOR_COLOR_WARNING: #ff9800;
	--SENSOR_COLOR_LOW: #17a2b8;
	--SENSOR_WARNING_BG_CRITICAL: rgba(220, 53, 69, 0.2);
	--SENSOR_WARNING_BG_HIGH: rgba(255, 107, 53, 0.2);
	--SENSOR_WARNING_BG_MEDIUM: rgba(255, 193, 7, 0.2);
	--SENSOR_WARNING_BG_WARNING: rgba(255, 152, 0, 0.2);
	--SENSOR_WARNING_BG_LOW: rgba(23, 162, 184, 0.2);

	/* SENSOR CHECK - ACTION BUTTONS */
	--SENSOR_ACTIONS_GAP: 12px;
	--SENSOR_ACTIONS_MARGIN_TOP: 25px;
	--SENSOR_ACTION_BTN_PADDING: 14px 28px;
	--SENSOR_ACTION_BTN_RADIUS: 25px;
	--SENSOR_ACTION_BTN_FONT_SIZE: 16px;
	--SENSOR_ACTION_BTN_FONT_WEIGHT: 600;
	--SENSOR_ACTION_BTN_GAP: 10px;
	--SENSOR_ACTION_BTN_TRANSITION: all 0.3s ease;

	/* SENSOR CHECK - Primary Button */
	--SENSOR_ACTION_BTN_PRIMARY_BG: var(--WHITE);
	--SENSOR_ACTION_BTN_PRIMARY_COLOR: #dc3545;
	--SENSOR_ACTION_BTN_PRIMARY_COLOR_WARNING: #ff9800;
	--SENSOR_ACTION_BTN_PRIMARY_BG_INSTRUCTIONS: linear-gradient(135deg, #28a745, #20c997);
	--SENSOR_ACTION_BTN_PRIMARY_COLOR_INSTRUCTIONS: var(--WHITE);
	--SENSOR_ACTION_BTN_PRIMARY_SHADOW: 0 4px 15px rgba(0, 0, 0, 0.2);
	--SENSOR_ACTION_BTN_PRIMARY_SHADOW_HOVER: 0 6px 20px rgba(0, 0, 0, 0.3);

	/* SENSOR CHECK - Secondary Button */
	--SENSOR_ACTION_BTN_SECONDARY_BG: rgba(255, 255, 255, 0.2);
	--SENSOR_ACTION_BTN_SECONDARY_COLOR: var(--WHITE);
	--SENSOR_ACTION_BTN_SECONDARY_BORDER: 1px solid rgba(255, 255, 255, 0.3);
	--SENSOR_ACTION_BTN_SECONDARY_BG_HOVER: rgba(255, 255, 255, 0.3);
	--SENSOR_ACTION_BTN_SECONDARY_BG_INSTRUCTIONS: rgba(0, 0, 0, 0.05);
	--SENSOR_ACTION_BTN_SECONDARY_COLOR_INSTRUCTIONS: #666;
	--SENSOR_ACTION_BTN_SECONDARY_BORDER_INSTRUCTIONS: 1px solid #ddd;
	--SENSOR_ACTION_BTN_SECONDARY_BG_INSTRUCTIONS_HOVER: rgba(0, 0, 0, 0.08);
	--SENSOR_ACTION_BTN_SECONDARY_COLOR_INSTRUCTIONS_HOVER: #333;

	/* SENSOR CHECK - Tertiary Button */
	--SENSOR_ACTION_BTN_TERTIARY_COLOR: rgba(255, 255, 255, 0.8);
	--SENSOR_ACTION_BTN_TERTIARY_FONT_SIZE: 14px;
	--SENSOR_ACTION_BTN_TERTIARY_PADDING: 10px 20px;
	--SENSOR_ACTION_BTN_TERTIARY_COLOR_HOVER: var(--WHITE);
	--SENSOR_ACTION_BTN_TERTIARY_COLOR_INSTRUCTIONS: #999;
	--SENSOR_ACTION_BTN_TERTIARY_COLOR_INSTRUCTIONS_HOVER: #666;

	/* SENSOR CHECK - INSTRUCTIONS */
	--SENSOR_INSTRUCTIONS_MARGIN: 20px 0;
	--SENSOR_INSTRUCTIONS_TITLE_COLOR: #dc3545;
	--SENSOR_INSTRUCTIONS_TITLE_MARGIN: 20px;
	--SENSOR_INSTRUCTIONS_TITLE_SIZE: 18px;
	--SENSOR_INSTRUCTIONS_TITLE_WEIGHT: 600;
	--SENSOR_INSTRUCTIONS_TITLE_ALIGN: center;
	--SENSOR_INSTRUCTIONS_TITLE_ICON_MARGIN: 8px;
	--SENSOR_INSTRUCTION_STEP_PADDING: 12px 15px;
	--SENSOR_INSTRUCTION_STEP_MARGIN: 10px;
	--SENSOR_INSTRUCTION_STEP_BG: #f8f9fa;
	--SENSOR_INSTRUCTION_STEP_BORDER: 4px solid #dc3545;
	--SENSOR_STEP_NUMBER_BG: #dc3545;
	--SENSOR_STEP_NUMBER_COLOR: var(--WHITE);
	--SENSOR_STEP_NUMBER_RADIUS: 50%;
	--SENSOR_STEP_NUMBER_SIZE: 28px;
	--SENSOR_STEP_NUMBER_FONT_SIZE: 14px;
	--SENSOR_STEP_NUMBER_FONT_WEIGHT: 700;
	--SENSOR_STEP_NUMBER_MARGIN: 15px;
	--SENSOR_INSTRUCTION_TEXT_FONT_SIZE: 15px;
	--SENSOR_INSTRUCTION_TEXT_COLOR: #333;

	/* SENSOR CHECK - SUCCESS BANNER */
	--SENSOR_SUCCESS_BANNER_TOP: 20px;
	--SENSOR_SUCCESS_BANNER_BG: linear-gradient(135deg, #28a745, #20c997);
	--SENSOR_SUCCESS_BANNER_COLOR: var(--WHITE);
	--SENSOR_SUCCESS_BANNER_PADDING: 16px 24px;
	--SENSOR_SUCCESS_BANNER_RADIUS: 12px;
	--SENSOR_SUCCESS_BANNER_SHADOW: 0 8px 25px rgba(40, 167, 69, 0.3);
	--SENSOR_SUCCESS_BANNER_Z_INDEX: 10003;
	--SENSOR_SUCCESS_BANNER_ANIMATION: slideDownSuccess 0.5s ease-out;
	--SENSOR_SUCCESS_BANNER_MAX_WIDTH: 90%;
	--SENSOR_SUCCESS_BANNER_GAP: 12px;
	--SENSOR_SUCCESS_ICON_SIZE: 20px;

	/* SENSOR CHECK - CONNECTION STATUS */
	--SENSOR_CONNECTION_GAP: 8px;
	--SENSOR_CONNECTION_PADDING: 8px 16px;
	--SENSOR_CONNECTION_RADIUS: 20px;
	--SENSOR_CONNECTION_FONT_SIZE: 14px;
	--SENSOR_CONNECTION_FONT_WEIGHT: 500;
	--SENSOR_CONNECTION_MARGIN: 10px 0;
	--SENSOR_CONNECTION_ICON_SIZE: 16px;
	--SENSOR_CONNECTION_ONLINE_BG: rgba(40, 167, 69, 0.2);
	--SENSOR_CONNECTION_ONLINE_COLOR: #28a745;
	--SENSOR_CONNECTION_OFFLINE_BG: rgba(220, 53, 69, 0.2);
	--SENSOR_CONNECTION_OFFLINE_COLOR: #dc3545;
	--SENSOR_CONNECTION_SLOW_BG: rgba(255, 193, 7, 0.2);
	--SENSOR_CONNECTION_SLOW_COLOR: #ffc107;

	/* SENSOR CHECK - STATUS BADGES */
	--SENSOR_STATUS_BADGE_GAP: 6px;
	--SENSOR_STATUS_BADGE_PADDING: 6px 12px;
	--SENSOR_STATUS_BADGE_RADIUS: 15px;
	--SENSOR_STATUS_BADGE_FONT_SIZE: 13px;
	--SENSOR_STATUS_BADGE_FONT_WEIGHT: 500;
	--SENSOR_STATUS_BADGE_MARGIN: 5px;
	--SENSOR_STATUS_AVAILABLE_BG: rgba(40, 167, 69, 0.2);
	--SENSOR_STATUS_AVAILABLE_COLOR: #28a745;
	--SENSOR_STATUS_DENIED_BG: rgba(220, 53, 69, 0.2);
	--SENSOR_STATUS_DENIED_COLOR: #dc3545;
	--SENSOR_STATUS_UNAVAILABLE_BG: rgba(108, 117, 125, 0.2);
	--SENSOR_STATUS_UNAVAILABLE_COLOR: #6c757d;

	/* SENSOR CHECK - MOBILE RESPONSIVE */
	--SENSOR_MODAL_MOBILE_MAX_WIDTH: 90%;
	--SENSOR_MODAL_MOBILE_PADDING: 30px 20px;
	--SENSOR_MODAL_ICON_SIZE_MOBILE: 50px;
	--SENSOR_MODAL_TITLE_SIZE_MOBILE: 20px;
	--SENSOR_WARNING_MESSAGE_FONT_SIZE_MOBILE: 14px;
	--SENSOR_ACTION_BTN_PADDING_MOBILE: 12px 24px;
	--SENSOR_ACTION_BTN_FONT_SIZE_MOBILE: 15px;

/*
###############################################################################################################################################################
NOTIFICATIONS PWA INSTALLATION SYSTEM - MODALS & BANNERS
###############################################################################################################################################################
*/

	/* PWA System - Colors */
	--PWA_COLOR_INSTALL: linear-gradient(135deg, #FF6B35, #F7931E);
	--PWA_COLOR_INSTALL_SHADOW: 0 8px 25px rgba(255, 107, 53, 0.3);
	--PWA_COLOR_OPEN_APP: linear-gradient(135deg, #28a745, #20c997);
	--PWA_COLOR_OPEN_APP_SHADOW: 0 8px 25px rgba(40, 167, 69, 0.3);
	--PWA_COLOR_INCOGNITO: linear-gradient(135deg, #6c5ce7, #a29bfe);
	--PWA_COLOR_INCOGNITO_SHADOW: 0 8px 25px rgba(108, 92, 231, 0.3);
	--PWA_COLOR_WHITE: var(--WHITE);

	/* PWA Banners */
	--PWA_BANNER_PADDING: 30px 20px 20px 20px;
	--PWA_BANNER_BORDER_RADIUS: 12px;
	--PWA_BANNER_BORDER: 2px solid rgba(255,255,255,0.3);
	--PWA_BANNER_SHADOW: 0 4px 12px rgba(0,0,0,0.3);
	--PWA_BANNER_DESKTOP_BOTTOM: 20px;
	--PWA_BANNER_DESKTOP_RIGHT: 20px;
	--PWA_BANNER_ANIMATION_DURATION: 0.5s;
	--PWA_BANNER_TITLE_SIZE: 16px;
	--PWA_BANNER_TITLE_WEIGHT: 600;
	--PWA_BANNER_MESSAGE_SIZE: 14px;
	--PWA_BANNER_MESSAGE_OPACITY: 0.95;

	/* PWA Close Button */
	--PWA_CLOSE_BTN_TOP: 12px;
	--PWA_CLOSE_BTN_RIGHT: 12px;
	--PWA_CLOSE_BTN_BG: rgba(0,0,0,0.1);
	--PWA_CLOSE_BTN_BG_HOVER: rgba(0,0,0,0.2);
	--PWA_CLOSE_BTN_SIZE: 30px;
	--PWA_CLOSE_BTN_FONT_SIZE: 32px;
	--PWA_CLOSE_BTN_RADIUS: 50%;
	--PWA_CLOSE_BTN_TRANSITION: all 0.2s ease;

	/* PWA Close Button (Modal context) */
	--PWA_MODAL_CLOSE_BTN_TOP: 15px;
	--PWA_MODAL_CLOSE_BTN_RIGHT: 15px;
	--PWA_MODAL_CLOSE_BTN_BG: rgba(0,0,0,0.2);
	--PWA_MODAL_CLOSE_BTN_BG_HOVER: rgba(0,0,0,0.4);
	--PWA_MODAL_CLOSE_BTN_SIZE: 35px;
	--PWA_MODAL_CLOSE_BTN_FONT_SIZE: 28px;

	/* PWA Close Button (Instructions context) */
	--PWA_INSTRUCTIONS_CLOSE_BTN_BG: rgba(0,0,0,0.05);
	--PWA_INSTRUCTIONS_CLOSE_BTN_BG_HOVER: rgba(0,0,0,0.1);
	--PWA_INSTRUCTIONS_CLOSE_BTN_COLOR: #666;
	--PWA_INSTRUCTIONS_CLOSE_BTN_COLOR_HOVER: #333;
	--PWA_INSTRUCTIONS_CLOSE_BTN_SIZE: 40px;
	--PWA_INSTRUCTIONS_CLOSE_BTN_FONT_SIZE: 32px;

	/* PWA Action Button */
	--PWA_ACTION_BTN_BG: rgba(255,255,255,0.2);
	--PWA_ACTION_BTN_BG_HOVER: rgba(255,255,255,0.3);
	--PWA_ACTION_BTN_BORDER: 1px solid rgba(255,255,255,0.3);
	--PWA_ACTION_BTN_PADDING: 10px 32px;
	--PWA_ACTION_BTN_RADIUS: 25px;
	--PWA_ACTION_BTN_FONT_SIZE: 15px;
	--PWA_ACTION_BTN_FONT_WEIGHT: 600;
	--PWA_ACTION_BTN_TRANSITION: all 0.3s ease;

	/* PWA Modal */
	--PWA_MODAL_OVERLAY_BG: rgba(0,0,0,0.75);
	--PWA_MODAL_BACKDROP_BLUR: blur(5px);
	--PWA_MODAL_PADDING: 20px;
	--PWA_MODAL_ANIMATION: fadeIn 0.3s ease-out;

	/* PWA Modal Content */
	--PWA_MODAL_CONTENT_RADIUS: 20px;
	--PWA_MODAL_CONTENT_MAX_WIDTH: 500px;
	--PWA_MODAL_CONTENT_PADDING: 40px 30px;
	--PWA_MODAL_CONTENT_SHADOW: 0 25px 50px rgba(0,0,0,0.4);
	--PWA_MODAL_CONTENT_BORDER: 2px solid rgba(255,255,255,0.3);
	--PWA_MODAL_CONTENT_ANIMATION: modalScaleIn 0.4s ease-out;

	/* PWA Modal Instructions */
	--PWA_INSTRUCTIONS_BG: var(--WHITE);
	--PWA_INSTRUCTIONS_COLOR: #333;
	--PWA_INSTRUCTIONS_MAX_WIDTH: 600px;
	--PWA_INSTRUCTIONS_MAX_HEIGHT: 90vh;
	--PWA_INSTRUCTIONS_PADDING: 30px 20px;
	--PWA_INSTRUCTIONS_ANIMATION: modalFadeIn 0.4s ease-out;

	/* PWA Modal Icon */
	--PWA_MODAL_ICON_SIZE: 60px;
	--PWA_MODAL_ICON_MARGIN: 20px;

	/* PWA Modal Title */
	--PWA_MODAL_TITLE_SIZE: 24px;
	--PWA_MODAL_TITLE_WEIGHT: 700;
	--PWA_MODAL_TITLE_MARGIN: 15px;
	--PWA_MODAL_TITLE_SHADOW: 0 2px 10px rgba(0,0,0,0.2);

	/* PWA Instructions Title */
	--PWA_INSTRUCTIONS_TITLE_COLOR: #FF6B35;
	--PWA_INSTRUCTIONS_TITLE_COLOR_GREEN: #28a745;
	--PWA_INSTRUCTIONS_TITLE_COLOR_PURPLE: #6c5ce7;
	--PWA_INSTRUCTIONS_TITLE_SIZE: 20px;
	--PWA_INSTRUCTIONS_TITLE_WEIGHT: 600;
	--PWA_INSTRUCTIONS_TITLE_MARGIN: 25px;

	/* PWA Modal Description */
	--PWA_MODAL_DESC_SIZE: 16px;
	--PWA_MODAL_DESC_OPACITY: 0.95;
	--PWA_MODAL_DESC_MARGIN: 30px;
	--PWA_MODAL_DESC_LINE_HEIGHT: 1.5;
	--PWA_INSTRUCTIONS_DESC_COLOR: #555;

	/* PWA Primary Button */
	--PWA_PRIMARY_BTN_BG: var(--WHITE);
	--PWA_PRIMARY_BTN_COLOR_INSTALL: #FF6B35;
	--PWA_PRIMARY_BTN_COLOR_OPEN_APP: #28a745;
	--PWA_PRIMARY_BTN_PADDING: 16px 48px;
	--PWA_PRIMARY_BTN_RADIUS: 30px;
	--PWA_PRIMARY_BTN_FONT_SIZE: 18px;
	--PWA_PRIMARY_BTN_FONT_WEIGHT: 700;
	--PWA_PRIMARY_BTN_SHADOW: 0 8px 20px rgba(0,0,0,0.2);
	--PWA_PRIMARY_BTN_SHADOW_HOVER: 0 12px 30px rgba(0,0,0,0.3);
	--PWA_PRIMARY_BTN_TRANSITION: all 0.3s ease;
	--PWA_PRIMARY_BTN_GAP: 12px;

	/* PWA Footer Note */
	--PWA_FOOTER_NOTE_MARGIN: 25px;
	--PWA_FOOTER_NOTE_SIZE: 13px;
	--PWA_FOOTER_NOTE_OPACITY: 0.8;

	/* PWA Instruction Steps */
	--PWA_STEP_MARGIN: 20px;
	--PWA_STEP_PADDING: 15px;
	--PWA_STEP_BG: #f8f9fa;
	--PWA_STEP_RADIUS: 10px;
	--PWA_STEP_BORDER_LEFT_WIDTH: 4px;
	--PWA_STEP_BORDER_COLOR: #FF6B35;
	--PWA_STEP_BORDER_COLOR_GREEN: #28a745;
	--PWA_STEP_BORDER_COLOR_PURPLE: #6c5ce7;

	/* PWA Step Number */
	--PWA_STEP_NUMBER_BG: #FF6B35;
	--PWA_STEP_NUMBER_BG_GREEN: #28a745;
	--PWA_STEP_NUMBER_BG_PURPLE: #6c5ce7;
	--PWA_STEP_NUMBER_COLOR: var(--WHITE);
	--PWA_STEP_NUMBER_SIZE: 28px;
	--PWA_STEP_NUMBER_FONT_SIZE: 14px;
	--PWA_STEP_NUMBER_WEIGHT: bold;
	--PWA_STEP_NUMBER_MARGIN: 15px;

	/* PWA Step Text */
	--PWA_STEP_TEXT_COLOR: #333;
	--PWA_STEP_TEXT_SIZE: 15px;

	/* PWA Highlight Box */
	--PWA_HIGHLIGHT_RADIUS: 10px;
	--PWA_HIGHLIGHT_PADDING: 15px;
	--PWA_HIGHLIGHT_MARGIN: 25px;
	--PWA_HIGHLIGHT_COLOR: var(--WHITE);

	/* PWA Info Box */
	--PWA_INFO_BOX_BG: #e8f4fd;
	--PWA_INFO_BOX_BG_YELLOW: #fff3cd;
	--PWA_INFO_BOX_BORDER: 1px solid #bee5eb;
	--PWA_INFO_BOX_BORDER_YELLOW: 1px solid #ffeaa7;
	--PWA_INFO_BOX_RADIUS: 12px;
	--PWA_INFO_BOX_PADDING: 20px;
	--PWA_INFO_BOX_MARGIN: 25px;
	--PWA_INFO_BOX_COLOR: #0c5460;
	--PWA_INFO_BOX_COLOR_YELLOW: #856404;
	--PWA_INFO_BOX_ICON_SIZE: 16px;
	--PWA_INFO_BOX_ICON_MARGIN: 6px;

	/* PWA Copy Button */
	--PWA_COPY_BTN_BG: linear-gradient(135deg, #6c5ce7, #a29bfe);
	--PWA_COPY_BTN_BG_SUCCESS: linear-gradient(135deg, #28a745, #20c997);
	--PWA_COPY_BTN_COLOR: var(--WHITE);
	--PWA_COPY_BTN_PADDING: 10px 18px;
	--PWA_COPY_BTN_RADIUS: 20px;
	--PWA_COPY_BTN_FONT_SIZE: 13px;
	--PWA_COPY_BTN_FONT_WEIGHT: 500;
	--PWA_COPY_BTN_SHADOW: 0 3px 8px rgba(108, 92, 231, 0.3);
	--PWA_COPY_BTN_SHADOW_HOVER: 0 6px 16px rgba(108, 92, 231, 0.4);
	--PWA_COPY_BTN_TRANSITION: all 0.3s;

	/* PWA Browser Box */
	--PWA_BROWSER_BOX_MARGIN: 18px;
	--PWA_BROWSER_BOX_PADDING: 15px;
	--PWA_BROWSER_BOX_BG: #f8f9fa;
	--PWA_BROWSER_BOX_RADIUS: 10px;
	--PWA_BROWSER_BOX_BORDER_WIDTH: 4px;
	--PWA_BROWSER_BOX_BORDER_CHROME: #4285F4;
	--PWA_BROWSER_BOX_BORDER_FIREFOX: #FF9500;
	--PWA_BROWSER_BOX_BORDER_SAFARI: #007AFF;
	--PWA_BROWSER_BOX_BORDER_ANDROID: #34A853;
	--PWA_BROWSER_BOX_HEADER_MARGIN: 8px;
	--PWA_BROWSER_BOX_ICON_SIZE: 18px;
	--PWA_BROWSER_BOX_ICON_MARGIN: 10px;
	--PWA_BROWSER_BOX_TITLE_SIZE: 16px;
	--PWA_BROWSER_BOX_CONTENT_SIZE: 14px;
	--PWA_BROWSER_BOX_CONTENT_MARGIN: 30px;

	/* PWA Open App Steps */
	--PWA_OPEN_APP_STEP_RADIUS: 15px;
	--PWA_OPEN_APP_STEP_PADDING: 25px;
	--PWA_OPEN_APP_STEP_MARGIN: 25px;
	--PWA_OPEN_APP_STEP_SECONDARY_BG: #f8f9fa;
	--PWA_OPEN_APP_STEP_SECONDARY_BORDER: 2px solid #28a745;
	--PWA_OPEN_APP_STEP_NUMBER_SIZE: 40px;
	--PWA_OPEN_APP_STEP_NUMBER_FONT_SIZE: 20px;
	--PWA_OPEN_APP_STEP_NUMBER_MARGIN: 15px;
	--PWA_OPEN_APP_STEP_TITLE_SIZE: 18px;
	--PWA_OPEN_APP_STEP_TITLE_WEIGHT: 600;
	--PWA_OPEN_APP_STEP_SUBTITLE_SIZE: 14px;
	--PWA_OPEN_APP_HELP_BOX_BG: var(--WHITE);
	--PWA_OPEN_APP_HELP_BOX_PADDING: 15px;
	--PWA_OPEN_APP_HELP_BOX_RADIUS: 10px;
	--PWA_OPEN_APP_HELP_BOX_MARGIN: 15px;
	--PWA_OPEN_APP_HELP_BOX_BORDER: 1px dashed #dee2e6;
	--PWA_OPEN_APP_HELP_TITLE_SIZE: 13px;
	--PWA_OPEN_APP_HELP_TITLE_COLOR: #666;
	--PWA_OPEN_APP_HELP_CONTENT_SIZE: 14px;
	--PWA_OPEN_APP_HELP_CONTENT_COLOR: #333;

	/* PWA App Icon */
	--PWA_APP_ICON_SIZE: 22px;
	--PWA_APP_ICON_RADIUS: 6px;
	--PWA_APP_ICON_SHADOW: 0 2px 8px rgba(0,0,0,0.15);

	/* PWA Success Banner */
	--PWA_SUCCESS_BANNER_TOP: 20px;
	--PWA_SUCCESS_BANNER_PADDING: 16px 24px;
	--PWA_SUCCESS_BANNER_RADIUS: 12px;
	--PWA_SUCCESS_BANNER_MAX_WIDTH: 90%;
	--PWA_SUCCESS_BANNER_ICON_SIZE: 18px;
	--PWA_SUCCESS_BANNER_ICON_MARGIN: 8px;
	--PWA_SUCCESS_BANNER_ANIMATION: slideDownSuccess 0.5s ease-out;

	/* PWA Safari Share Icon */
	--PWA_SAFARI_SHARE_ICON_SIZE: 17px;
	--PWA_SAFARI_SHARE_ICON_MARGIN: 4px;

	/* PWA Responsive */
	--PWA_BREAKPOINT_DESKTOP: 769px;
	--PWA_BREAKPOINT_MOBILE: 768px;

	/* PWA Common Values */
	--PWA_FONT_FAMILY: 'Figtree', sans-serif;
	--PWA_Z_INDEX_MODAL_OVERLAY: 10002;
	--PWA_Z_INDEX_BANNER: 10000;
	--PWA_Z_INDEX_CLOSE_BTN: 10;

	/* PWA Common Spacings */
	--PWA_SPACING_XXS: 4px;
	--PWA_SPACING_XS: 5px;
	--PWA_SPACING_SM: 6px;
	--PWA_SPACING_MD: 8px;
	--PWA_SPACING_LG: 10px;
	--PWA_SPACING_XL: 15px;
	--PWA_SPACING_2XL: 16px;
	--PWA_SPACING_3XL: 18px;
	--PWA_SPACING_4XL: 20px;

	/* PWA Common Sizes */
	--PWA_WIDTH_FULL: 100%;
	--PWA_WIDTH_90: 90%;
	--PWA_WIDTH_ICON: 20px;
	--PWA_MAX_WIDTH_BANNER_INNER: 1200px;
	--PWA_MAX_WIDTH_INSTRUCTIONS_DESKTOP: 600px;
	--PWA_MAX_WIDTH_INSTRUCTIONS_MOBILE: 450px;
	--PWA_MAX_WIDTH_MODAL_MOBILE: 90%;
	--PWA_LINE_HEIGHT_TIGHT: 1;
	--PWA_LINE_HEIGHT_NORMAL: 1.6;
	--PWA_TEXT_SHADOW_NONE: none;

	/* PWA Opacity values */
	--PWA_OPACITY_FULL: 1;
	--PWA_OPACITY_HIGH: 0.9;

	/* PWA Border radius values */
	--PWA_RADIUS_CIRCLE: 50%;

	/* PWA Browser Edge color */
	--PWA_BROWSER_BOX_BORDER_EDGE: #0078D4;

	/* PWA Modal Responsive Padding */
	--PWA_MODAL_CONTENT_PADDING_MOBILE: 30px 20px;
	--PWA_INSTRUCTIONS_PADDING_DESKTOP: 30px;

	/* PWA Margin values */
	--PWA_MARGIN_ZERO: 0;
	--PWA_MARGIN_AUTO: 0 auto;

	/* PWA Gap values */
	--PWA_GAP_SM: 10px;

/*
###############################################################################################################################################################
FORMS UNIFIED VARIABLES
###############################################################################################################################################################
*/

	/* Form containers */
	--FORM_CONTAINER_MAX_WIDTH: 1300px;
	--FORM_CONTAINER_WIDTH: 90%;
	--FORM_CONTAINER_PADDING: 1.5rem 3rem;
	--FORM_CONTAINER_PADDING_MOBILE: 0.5rem 1.5rem;
	--FORM_CONTAINER_BORDER_RADIUS: var(--BUTTON_BORDER_RADIUS);
	--FORM_CONTAINER_SHADOW: 0 15px 30px rgba(0, 0, 0, 0.3), 0 10px 10px rgba(0, 0, 0, 0.2);
	--FORM_CONTAINER_BACKGROUND: linear-gradient(135deg, var(--COLOR_SURFACE_20) 0%, var(--COLOR_SURFACE_10) 100%);
	
	/* Form headers */
	--FORM_HEADER_BACKGROUND: linear-gradient(to right, var(--COLOR_ACTION_40), var(--COLOR_ACTION_60));
	--FORM_HEADER_PADDING: 2rem 1.5rem;
	--FORM_HEADER_TEXT_COLOR: var(--WHITE);
	--FORM_HEADER_TITLE_SIZE: 2.2rem;
	--FORM_HEADER_SUBTITLE_SIZE: 1.2rem;

	/* Form inputs */
	--FORM_INPUT_BACKGROUND: var(--WHITE);
	--FORM_INPUT_BACKGROUND_DARK: #4a5568;
	--FORM_INPUT_BORDER_RADIUS: 12px;
	--FORM_INPUT_PADDING: 0.8rem 1rem;
	--FORM_INPUT_PADDING_WITH_ICON: 0.8rem 1rem 0.8rem 45px;
	--FORM_INPUT_FONT_SIZE: 1rem;
	--FORM_INPUT_BORDER_COLOR: transparent;
	--FORM_INPUT_BORDER_COLOR_FOCUS: var(--COLOR_ACTION_50);
	--FORM_INPUT_SHADOW: inset 4px 4px 8px rgba(0, 0, 0, 0.1), inset -4px -4px 8px rgba(255, 255, 255, 0.8), 4px 4px 10px rgba(0, 0, 0, 0.05);
	--FORM_INPUT_SHADOW_FOCUS: inset 2px 2px 5px rgba(0, 0, 0, 0.1), inset -2px -2px 5px rgba(255, 255, 255, 0.8), 0 0 0 3px rgba(255, 94, 0, 0.2);
	--FORM_INPUT_TEXT_COLOR: var(--COLOR_SURFACE_10);
	--FORM_INPUT_TEXT_COLOR_DARK: #e2e8f0;

	/* Form labels */
	--FORM_LABEL_COLOR: var(--COLOR_SURFACE_70);
	--FORM_LABEL_FONT_WEIGHT: 500;
	--FORM_LABEL_MARGIN_BOTTOM: 0.5rem;
	--FORM_LABEL_FONT_SIZE: 1rem;

	/* Form icons */
	--FORM_ICON_COLOR: var(--COLOR_ACTION_40);
	--FORM_ICON_COLOR_FOCUS: var(--COLOR_ACTION_60);
	--FORM_ICON_POSITION_LEFT: 15px;
	--FORM_ICON_SIZE: 20px;

	/* Form buttons */
	--FORM_BUTTON_BACKGROUND: linear-gradient(135deg, var(--COLOR_ACTION_40), var(--COLOR_ACTION_60));
	--FORM_BUTTON_COLOR: var(--WHITE);
	--FORM_BUTTON_HEIGHT: 50px;
	--FORM_BUTTON_FONT_SIZE: 1rem;
	--FORM_BUTTON_FONT_WEIGHT: 600;
	--FORM_BUTTON_BORDER_RADIUS: var(--BUTTON_BORDER_RADIUS);
	--FORM_BUTTON_SHADOW: 6px 6px 12px rgba(0, 0, 0, 0.25), -4px -4px 12px rgba(255, 255, 255, 0.1), inset 1px 1px 2px rgba(255, 255, 255, 0.2), inset 4px 4px 8px rgba(255, 255, 255, 0.2), inset -4px -4px 8px rgba(0, 0, 0, 0.2);
	--FORM_BUTTON_SHADOW_HOVER: 8px 8px 16px rgba(0, 0, 0, 0.3), -5px -5px 15px rgba(255, 255, 255, 0.1), inset 2px 2px 4px rgba(255, 255, 255, 0.3);
	--FORM_BUTTON_SHADOW_ACTIVE: 3px 3px 6px rgba(0, 0, 0, 0.2), -2px -2px 6px rgba(255, 255, 255, 0.1), inset 2px 2px 4px rgba(0, 0, 0, 0.1), inset -2px -2px 4px rgba(255, 255, 255, 0.05);

	/* Form checkboxes */
	--FORM_CHECKBOX_SIZE: 22px;
	--FORM_CHECKBOX_BORDER_COLOR: var(--COLOR_SURFACE_60);
	--FORM_CHECKBOX_BORDER_COLOR_CHECKED: var(--COLOR_ACTION_50);
	--FORM_CHECKBOX_BACKGROUND_CHECKED: var(--COLOR_ACTION_50);
	--FORM_CHECKBOX_BORDER_RADIUS: 4px;
	--FORM_CHECKBOX_CHECK_COLOR: var(--WHITE);
	--FORM_CHECKBOX_CHECK_SIZE: 22px;

	/* Form spacing */
	--FORM_FIELD_MARGIN_BOTTOM: 1.5rem;
	--FORM_SECTION_MARGIN_BOTTOM: 2rem;

	/* Form errors */
	--FORM_ERROR_COLOR: #dc3545;
	--FORM_ERROR_FONT_SIZE: 0.875rem;
	--FORM_ERROR_MARGIN_TOP: 0.25rem;
	--FORM_ERROR_BORDER_COLOR: #dc3545;
	--FORM_ERROR_SHADOW: inset 2px 2px 5px rgba(220, 53, 69, 0.1), inset -2px -2px 5px rgba(255, 255, 255, 0.8), 0 0 0 3px rgba(220, 53, 69, 0.2);

	/* Form alerts */
	--FORM_ALERT_PADDING: 1.25rem 1.5rem 1.25rem 3rem;
	--FORM_ALERT_BORDER_RADIUS: 12px;
	--FORM_ALERT_MARGIN_BOTTOM: 1.5rem;
	--FORM_ALERT_FONT_WEIGHT: 500;
	--FORM_ALERT_FONT_SIZE: 1rem;
	--FORM_ALERT_SHADOW: 0 4px 12px rgba(0, 0, 0, 0.15);
	--FORM_ALERT_SUCCESS_BACKGROUND: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%);
	--FORM_ALERT_SUCCESS_COLOR: #155724;
	--FORM_ALERT_SUCCESS_BORDER: 4px solid #28a745;
	--FORM_ALERT_ERROR_BACKGROUND: linear-gradient(135deg, #f8d7da 0%, #f5c6cb 100%);
	--FORM_ALERT_ERROR_COLOR: #721c24;
	--FORM_ALERT_ERROR_BORDER: 4px solid #dc3545;

	/* Form responsive breakpoints */
	--FORM_BREAKPOINT_TABLET: 896px;
	--FORM_BREAKPOINT_MOBILE: 480px;
	--FORM_BREAKPOINT_SMALL_MOBILE: 320px;

	/* Form animations */
	--FORM_TRANSITION_DURATION: 0.3s;
	--FORM_ANIMATION_DURATION: 0.8s;
	--FORM_ANIMATION_DELAY: 0.1s;

}

/*!***************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./public/css/xploo_global.css ***!
  \***************************************************************************************************************************************************************************************************/
/*
###############################################################################################################################################################
© 2017 Franck Durand
All Rights Reserved
THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH ARE THE PROPERTY OF FRANCK DURAND OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
###############################################################################################################################################################

CSS Selectors
	* HTML element selector: element name. Ex: p {text-align: center; color: red;}
	* HTML id selector: "#" + id. Ex: #map
	* HTML class selector: "." + class name. Ex: .Sidebar
CSS naming rules
	* Base rules:
		- class name: lowercase_names_with_underscore
		- variable name: UPPERCASE_NAMES. "-" is unsupported!
	* BEM rules: block__element--modifier (https://openclassrooms.com/fr/courses/6106181-simplifiez-vous-le-css-avec-sass/6595809-creez-des-selecteurs-html-avec-la-methodologie-bem)
With Eclipse CTRL+SPACE to get the syntax auto suggestion (Preference>Web>CSS>editor>contentAssist)

*/		  

/* Make visible the focus (for debugging)
/* input:focus {background-color: yellow;}  */

/* Hyperlinks */
a:link {
  color: var(--COLOR_ACTION_50);
  background-color: transparent;
  text-decoration: none; /*underline*/
}

a:visited {
  color: var(--COLOR_ACTION_50);/*before blue*/
  background-color: transparent;
  text-decoration: none;
}

a:hover {
  color: var(--COLOR_ACTION_50);/*red*/
  background-color: transparent;
  text-decoration: underline;
  
}

a:active {
  color: white;
  background-color:var(--COLOR_SURFACE_30);/* A VERIFIER URGENT*/
  text-decoration: underline;
}

/* */
.w3-deep-orange, .w3-hover-deep-orange:hover{
	color:#fff!important;
	background-color:var(--COLOR_ACTION_50)!important;
	/* background-image: linear-gradient(to right, var(--COLOR_ACTION_40), var(--COLOR_ACTION_60)); */
}
.w3-orange,.w3-hover-orange:hover{
	color:#fff!important;
	background-color:var(--COLOR_ACTION_60)!important;
}
.w3-dark-grey,.w3-hover-dark-grey:hover{
	color:#fff!important;
	background-color:var(--COLOR_SURFACE_10)!important;
}
.w3-grey,.w3-hover-grey:hover{
	color:#fff!important; /* color:#000!important; */
	background-color:var(--COLOR_SURFACE_40)!important;
	background-image: initial;
}
.w3-light-grey,.w3-hover-light-grey:hover{
	color:#000!important;
	background-color:var(--COLOR_SURFACE_60)!important
}
.w3-white,.w3-hover-white:hover{
	color:#000!important;
	background-color:var(--WHITE)!important
}

.w3-btn, .w3-btn-block{
	border-radius: var(--BUTTON_BORDER_RADIUS);
	cursor:pointer;
}

.w3-btn:hover,.w3-btn-block:hover,.w3-btn-floating:hover,.w3-btn-floating-large:hover{
	box-shadow: var(--FORM_SHADOW_WHITE);
	/* box-shadow:0 1px 20px 0 hsl(var(--SHADE_SURFACE),var(--SAT_SURFACE),70%); */
	/*0 6px 20px 0 rgba(255,255,0,0.9);*/
}

 .poi_list_table .w3-btn {
	height: 22px;
    padding: 5px 10px;
	} 

/* style for a symbol*/
.x-symbol {
 	color:var(--WHITE);
	/*font-size:.88rem;*/
	/*top:-0.15rem; in this case, padding--botton doesn't function*/
	padding-left: 0.20rem;
	height:100%;
	position: relative;
  	top:-2px;
	/* position:absolute;*/  	                 
}
input{
	/* color: var(--COLOR_ACTION_50); */
	background-color: transparent;
	border: none;
	font-size: 0.75rem;
    font-weight: bold;
}

/*style for a checkbox in the POIS list*/
input[type=checkbox] {
  	position: relative;
	border: 0.12rem solid var(--COLOR_ACTION_50);
	border-radius: 0.12rem;
	background: var(--COLOR_SURFACE_10);
	cursor: pointer;
	line-height: 0;
	/*margin: 0 .6em 0 0;*/
	outline: 0;
	padding: 0 !important;
	/* vertical-align: text-top; */
	height: 0.80rem;
	width: 0.80rem;
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
  	opacity: 1;
}

input[type=checkbox]:hover {
  opacity: 1;
}

input[type=checkbox]:checked {
  background-color:var(--COLOR_ACTION_50);
  opacity: 1;
}

input[type=checkbox]:before {
  content: '';
  position: absolute;
  right: 50%;
  top: 50%;
  width: 0.16rem/*4px*/;
  height: 0.46rem/*10px*/;
  border: solid var(--COLOR_SURFACE_10);
  border-width: 0 2px 2px 0;
  /* margin: -0.5px -0.5px 0 -0.5px; */
  transform: rotate(45deg) translate(-50%, -50%);
  z-index: 2;
}

/* Sélectionne tous les éléments input de type radio */
input[type=radio] {
  /* Supprime les styles par défaut */
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  /* Ajoute la taille et la bordure */
  width: 0.7rem;
  height: 0.7rem;
  border: 0.12rem solid var(--COLOR_ACTION_50);
  /* Ajoute le style de la case */
  border-radius: 50%;
  margin-left: 12px;
}

/* Sélectionne les boutons radio cochés */
input[type=radio]:checked {
  /* Change la couleur du point intérieur de la case cochée */
  background-color: var(--COLOR_ACTION_50);
}

.radio-list {
    font-weight: normal !important;
}

 html, body {
    overscroll-behavior-y: contain; /* Disable the pull-to-refresh everywhere on Android+Chrome */
    touch-action: pan-y pan-x; /* Disable the pull-to-refresh everywhere on iOS+Safari */
    overflow: hidden; /* Disable the pull-to-refresh everywhere on iOS+Safari */
    height: 100%;
    margin: 0;
    padding: 0;
    font-family: var(--FONT-FAMILY);
    font-size: 100%;
    background-color: var(--COLOR_SURFACE_10);
    color: var(--COLOR_FONT);
}

/* styles in px Poppins sans serif instead of Segoe UI*/
h1 {
	font-family: var(--FONT-FAMILY);
	font-size:1.06rem;/* 17, 20px / ancienne version : soit 30px ou 1.875 rem (=30px/16px) */
}
h2 {
	/* 3 next lines for truncating a too long text.Ref: https://codepen.io/DesignerAshishOrg/pen/JoYZOB */
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
	font-family: var(--FONT-FAMILY);
	font-size:0.95rem;/* 13,15px / ancienne version :  soit 26px ou 1.63 rem (=26px/16px) */
	/* font-weight: bold; */
	margin: 0rem;
}
h3 {
	font-family: var(--FONT-FAMILY);
	font-size:0.75rem/* 12, 14px / ancienne version :  soit 24px ou 1.5 rem (=24px/16px) */
}
h4 {
	font-family: var(--FONT-FAMILY);
	font-size:0.69rem/* 11, 12px / ancienne version :  soit 20px ou 1.25 rem (=20px/16px) */
}
h5 {
	font-family: var(--FONT-FAMILY);
	font-size:0.63rem/* 10,11px / ancienne version :  soit 18px ou 1.13 rem (=18px/16px) */
}
h6 {
	font-family: var(--FONT-FAMILY);
	font-size:0.56rem/* 9, 10px / ancienne version :  soit 16px ou 1 rem (=11px/16px) */
}

/*
###############################################################################################################################################################
LEGAL INFORMATION
###############################################################################################################################################################
*/

/* title {
	display: block!important;
    margin: 0 auto;
    text-align: center;
    color: white;
    font-size: 1.5rem;
    padding-top: 1rem;
    font-weight: bold;
} */
.editorial h1 {
	/* display: block!important; */
    margin-top: 9rem;
    text-align: center;
    color: white;
    font-size: 1.125rem;
    padding-top: 0.5rem;
    font-weight: bold;
}
.editorial h1:nth-of-type(2) {
	margin-top: 0.5rem !important;
	color: hsl(var(--SHADE_ACTION),var(--SAT_ACTION),50%);
}

.editorial h2 {
	font-size: 1rem !important;/* 17, 20px / old version : or 30px ou 1.875 rem (=30px/16px) */
	/* text-indent: 20px; */
	padding-left: 40px;
    padding-right: 4px;
    /* text-wrap: wrap; */
}

.editorial h3 {
		font-size:0.8125rem !important;/* 13,15px / old version :  or 26px ou 1.63 rem (=26px/16px) */
		/* text-indent: 45px; */
		padding-left: 45px;
    	padding-right: 4px;
	}
.editorial h4 {
		font-size:0.8125rem !important;
		/* text-indent: 125px; */
		padding-left: 60px;
    	padding-right: 4px;
	}

.editorial .info h4 {
		text-indent: 0px !important;
	}

.editorial .info h4 span {
		color:var(--COLOR_SURFACE_70);
	}
	
.info i{
	font-size: 30px;
	padding-top: 30px;
	margin-right: 30px;
	color: hsl(var(--SHADE_SURFACE), var(--SAT_SURFACE), 50%);
	text-align: center;
	width: 20px;
	line-height: 1.5rem;
}

.editorial p {
	/* text-indent: 50px; */
	font-size:0.75rem !important;
	padding: 0 100px;
	text-align: justify;
}
@media screen and (max-width: 896px) {
	.editorial p {
		padding: 0 10%;
	}
}
.editorial ul{
		font-size:0.75rem !important;
		list-style-type:disc !important;
		margin-left: 20px !important;
		padding-left: 150px;
		padding-right: 350px;
	}
@media screen and (max-width: 896px) {
		.editorial ul{
			padding-left: 15%;
			padding-right: 13%;
		}
	}
.editorial li{
		padding-bottom: 10px;
	}

/*Put the word "Display" in the passeword form
.password-container{
	display: flex;
	align-items: center;
}
.toggle-password{
	padding-left: 10px;
}*/

/* How to format a password */
	.password-strength li{
		text-indent: 25px;
		padding-bottom: 0px !important;
		font-size: 0.75rem !important;
	}

	.form h1{ /* title h1 for the New Customer? */
		margin-top: 0rem !important;
		padding-top: 0rem !important;
	}
	.form h4{ /* title h4 for Inscrivez-vous */
		text-indent: 0rem;
		text-align: center;
	}

	form ul{
		color: red;
		padding-left: 0px !important;
		margin-bottom: 0px !important;
		/*margin-left: 0px !important;
		padding-left: 0px !important;
		padding-right: 0px !important; */
	}
	form li{
		list-style-type:none !important;
	}

	/*
###############################################################################################################################################################
	*/

	/* the line*/
	.line-with-text {
		display: flex;
		justify-content: center;
		align-items: center;
		margin: 20px 0;
	}
	.line-with-text::before,
	.line-with-text::after {
		content: '';
		flex: 1;
		border-bottom: 1px solid hsl(var(--SHADE_SURFACE),var(--SAT_SURFACE),30%);
	}
	.line-with-text::before {
		margin-right:1rem;
	}
	.line-with-text::after {
		margin-left: 1rem;
	}
	/* The 2 ways to connect Facebook or Google*/
	.fcb-login {
		display: flex;
		align-items: center;
		/* border: 1px solid #ddd; */
		border-radius: var(--BUTTON_BORDER_RADIUS);
		background-color: hsl(var(--SHADE_SURFACE),var(--SAT_SURFACE),40%)!important;
		margin-bottom: 0.625rem;
  		padding: 0.625rem;
  		text-align: center;
  		text-decoration: none;
  		/* color: #333; */
  		font-weight: bold;
		/*margin: 10px 0;  Ajoute un espace au-dessus et en dessous */
		/* Style supplémentaire si nécessaire */
	}
	.social-icon {
		width: 24px; 
		height: auto;
		margin-right: 0.625rem; 
		margin-left: 6.25rem;
	  }

/*
###############################################################################################################################################################
VARIOUS FORMS
###############################################################################################################################################################
*/

.form-container{
	display: flex;
    justify-content: center;
    align-items: center;
}
.form{
	width: 478px !important;
}

.editorial label{
	width: auto;
	margin-top: 1.5rem;
	margin-bottom: 0rem !important;
}

.form-outline{
	margin-bottom: opx !important;
	margin-top: 1.5rem;
}

.form-control{
	border-radius: var(--BUTTON_BORDER_RADIUS) !important;
	display: block;
    width: 100%;
    padding: .375rem .75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #333;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid #ced4da;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border-radius: .25rem;
    transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}

.form-check-label{
	display: flex;
	justify-content: center;
	font-size: 0.8rem;
}

.form-container input[type=checkbox] {
	vertical-align: text-top !important; 
}

.form-check-input:checked[type=checkbox]{
	background-image: none;
}

.form-check-label, .form-check-input {
	display: inline-block;
}

form input[type="submit"]{
	font-size:1rem;
	color:#fff!important;
	background-image: linear-gradient(to right, var(--COLOR_ACTION_40), var(--COLOR_ACTION_60));
	border-radius: var(--BUTTON_BORDER_RADIUS);
	cursor:pointer;
	width: 100%;
	height: 34px;
	margin-top: 1.5rem !important;
	margin-bottom: 0.5rem !important;
	}

.btn-primary{
	font-size:1rem;
	color:#fff!important;
	background-image: linear-gradient(to right, var(--COLOR_ACTION_40), var(--COLOR_ACTION_60));
	border-radius: var(--BUTTON_BORDER_RADIUS);
	cursor:pointer;
	width: 100%;
	height: 34px;
	margin-top: 1.5rem !important;
	margin-bottom: 0.5rem !important;
}

@media screen and (max-width: 896px) and (orientation: portrait){
	.form-container {
		height: auto; /* Height adjustment for small screens */
		width:100%;
		padding: 20px;  
	}

	.editorial label {
		font-size: 1rem;
		/* background-color: #7b54e8; */
		width: 96%; /* Allows label to adapt to container width */
		margin-left: 0; /* Removes the specific offset */
	}

	.form-control {
        width: 100%; /* Allows form fields to extend to full width */
        margin-left: 0; /* Removes the specific offset */
    }

	.form-consent > div:nth-child(1){
		display: flex;
		flex-direction: row-reverse;
	}

    form input[type="submit"] {
        width: 100%; /* Adaptation de la largeur du bouton au conteneur */
        height: auto; /* Ajuste la hauteur pour un meilleur toucher sur les petits écrans */
        padding: 10px 20px; /* Augmente le padding pour un meilleur aspect */
    }
}

/* Tooltips */
.tooltip {
  position: relative;
  display: inline-block;
  /*border-bottom: 0.06rem dotted black;*/
}

.tooltip .tooltiptext {
  visibility: hidden;
  width: 7.5rem;/*120px*/
  background-color: darkorange;
  color: #fff;
  text-align: center;
  border-radius: 0.38rem;/*6px*/
  padding: 0.19rem 0rem;/*3px*/
  
  /* Position the tooltip */
  position: absolute;
  z-index: 1;
  top: 100%;
  left: 50%;
  margin-left: 0rem;	/* Originally at -60px centering the tooltip on the text, 0px allowing the see the tooltip even on the extreme left of our Robot table */
}

.tooltip:hover .tooltiptext {
  visibility: visible;
}

/*
###############################################################################################################################################################
TABLES
###############################################################################################################################################################
*/

/*table {*/
/* 	   border-collapse: separate;	Collapse for 100% width */
/*     white-space: normal; */
/*     line-height: normal; */
/*     font-weight: normal; */
/*     font-size: small; */
/*     font-style: normal; */
/*     color: -internal-quirk-inherit; */
/*     text-align: start; */
/*     border-spacing: 0.06rem; */
/*     background-color: #f1f1f1; */
/*}*/

/*
###############################################################################################################################################################
IMAGES
###############################################################################################################################################################
*/

/* Images of the POI list */
img.list {
    position: absolute;
    z-index: 1;	/* Put the image in the background compared to the Poi table */
	-o-object-fit: cover;
	   object-fit: cover;	/* Fit the image in the container associated with the 2 next code lines */
	width: 100%;
    height: 100%;
    /*aspect-ratio: 4/3;  Impose the ratio on all images even in portrait. Not good enough. Ideally 3/2 */
    top: 50%;	/* Center the image in the container */
  	left: 50%;	/* Center the image in the container */
	transform: translate(-50%, -50%);	/* Center the image in the container */
}

/* Container of images for positionning and cropping them */
div.img_container {
	z-index: 0;
	height: 100%;/*calc(100% - 18.5px);	Previously height: 100%; covering the entire table */
	overflow: hidden;	/* Crop (Hide) the part of the image outside of the container */
	position: absolute;
	bottom: 0rem;
    border-top-right-radius: 10px;  /* round top-right corner */
    border-bottom-right-radius: 10px;  /* round bottom-right corner */
	right: 0px;
}
@supports (aspect-ratio: 3/2) {	/* If aspect-ratio is supported (browser < mid 2021, Chrome < v103) */
	div.img_container {
		aspect-ratio: 3/2;	/* Ensure the right ratio and whatever the sidebar size. Ideally 3/2 */
		width: auto;
	}
}
@supports not (aspect-ratio: 3/2) { /* If aspect-ratio is NOT supported (browser < mid 2021, Chrome < v103) */
	div.img_container {
		width: 103px;	/* All attemps to use other technics failed */
	}
}

/*
###############################################################################################################################################################
MAPBOX MAP
###############################################################################################################################################################
*/

/* Always set the map height explicitly to define the size of the div element that contains the map. */
#map {
 	position: absolute;
	margin: 0;
	padding: 0;	
	height: 100%;
	width: 100%;
    border-radius: 25px 0 0 0;
}

/* #map canvas {
	cursor: crosshair;	defined now in the JavaScript code
} */

#features {	/* Window to display the features properties */
    position: absolute;
    top: 40%;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    overflow: auto;
    background: rgba(255, 255, 255, 0.8);
    font-size: 11;
}

/* For phones and small screens */
@media screen and (max-width: 896px) {
    #map {
        border-radius: 0;
    }
}

/* Map markers */
.marker_container {
	margin: 0rem;
	visibility: visible;
	opacity: 80%;
}

/* .marker_animation {
	transform-origin: bottom;
} */

.marker_label {	
	font-size: 0rem;
	text-align: center;
	color: black;
	width: 12.5rem;
	position: absolute;
	left: 100%;
	transform: translate(-50%, -50%);
}


/*
###############################################################################################################################################################
DEBUG WINDOW
###############################################################################################################################################################
*/

.debug-window {
	position: fixed;
	bottom: 30px;
	right: 5%;
	width: auto;
	height: auto;
	background-color: var(--COLOR_SURFACE_20);
	border-radius: var(--BUTTON_BORDER_RADIUS);
	z-index: 11 ;
}

.debug-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background: var(--COLOR_SURFACE_30);
	padding: 10px;
	cursor: grab;
	border-radius: var(--BUTTON_BORDER_RADIUS);
}

.debug-header:active { cursor:grabbing; }

#debug-title {
	font-size: 1.07rem;
	font-weight: bold;
}


.debug-body {
	padding: 10px;
}

.debug-body p {
	font-size: 0.6rem;
	margin: 0px;
	color:var(--WHITE);
}


/* Small preview swatch */
.debug-colorctl .swatch{width:100%;height:20px;margin-top:6px;border:1px solid #0001;border-radius:6px}
.debug-colorctl label{display:flex;gap:6px;align-items:center;justify-content:space-between;margin:4px 0}


/* Button to get a full screen mode on Android */
/* #fullscreen-btn {
	z-index:5;
	Width: 100%;
	border-radius: var(--BUTTON_BORDER_RADIUS);
} */

.debug-window input[type="range"] {
    height: 10px;
}

.debug-window input[type="range"]::-webkit-slider-thumb {
    width: 20px;
    height: 20px;
}


/*
###############################################################################################################################################################
PLAN MODE
###############################################################################################################################################################
*/

.plan-mode-button svg {
    fill: var(--COLOR_SURFACE_50);  /* = COLOR_PLAN_MODE in JS */
    cursor:pointer;
    width: 16px;
    height: 16px;
}

.plan_mode_button_lock svg, .plan_mode_button_add svg {
	margin-bottom: 7px;
}

.plan_mode_button_delete svg {
	margin-top: 7px;
}

.plan-mode-button:hover svg {
    fill: var(--COLOR_ACTION_50);
    transform: scale(1.5);
}

.tran-mode-button {
	display: flex;
    align-items: flex-end;
    justify-content: flex-end;
	flex-direction: row-reverse;
	color: var(--COLOR_ACTION_50);
    cursor:pointer;
}

/*
###############################################################################################################################################################
SPECIFIC BUTTONS
###############################################################################################################################################################
*/

.info-button {
    border: none;
    font-size: 0.57rem;
    background-color: transparent;
}

.circle-temp {
	position: absolute;
	bottom: 2px;
	right: 2px;
	width: 12px;
	height: 12px;
    border-radius: 50%;
	background-color: white;
  }

/*
###############################################################################################################################################################
UNICODE SYMBOLS
###############################################################################################################################################################
*/

  .black-symbol {
    color: black; /* set text color to black */
    filter: grayscale(100%); /* apply grayscale filter */
  }
  .grey-symbol {
    filter: grayscale(100%) contrast(300%) brightness(400%);
  }
  .white-symbol {
    color: white; /* set text color to white */
    filter: brightness(10000%); /* set brightness to 10000% to make element white */
	padding: 0;
    /* font-size: 15px; */
  }
  
/*
###############################################################################################################################################################
SVG SYMBOLS
###############################################################################################################################################################
*/

#settings-symbol {
	position: relative;
    top: 2px;
    width: 20px;
    height: 20px;
    fill: white;
}

/*
###############################################################################################################################################################
2 gears animated symbol
	- origin: https://www.w3schools.com/howto/howto_js_responsive_navbar_dropdown.asp
	- previously:
		- origin: spinner from https://codepen.io/vineethtrv/pen/NWxZqMM in SCSS
		- & replaced by .spinner
		- animation converted by ChatGPT
###############################################################################################################################################################
*/

#spinner {
	position: absolute;
	display: none;
	width: 200px;
	top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
	fill: #FFFFFF;
}

.small {
	 animation: counter-rotation var(--TIME1) infinite linear;
  transform-origin: 100.136px 225.345px; }


.medium {
	 animation: rotation var(--TIME2)  infinite linear;
  transform-origin: 254.675px 379.447px; }
@keyframes rotation {
    from {transform: rotate(0deg);}
    to   {transform: rotate(359deg);}
}
@keyframes counter-rotation {
    from {transform: rotate(359deg);}
    to   {transform: rotate(0deg);}
}


/*
###############################################################################################################################################################
TOUR NUMBERS
###############################################################################################################################################################
*/

.custom-marker {
	position: relative;
	width: 100px; /* Adjust the width as per your requirement */
	height: 100px; /* Adjust the height as per your requirement */
}

.marker-background {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent background */
	border-radius: 50%; /* Make the background round */
}

.marker-label {
	position: relative;
	width: 200px; /* Adjust the width as per your requirement */
	height: 100px; /* Adjust the height as per your requirement */
	top: 50%;
	left: 50%;
	transform: translate(-50%, -15%);
	color: rgba(255, 255, 255, 0.3);
	font-size: 70px; /* Adjust the font size as per your requirement */
	font-weight: bold;
	text-align: center;
}


/*
###############################################################################################################################################################
NAVIGATION
###############################################################################################################################################################
*/

.nav-marker {
	width: 36px;
	height: 25px;
	border-radius: 50%;
	cursor: pointer;
	background-color: rgb(0, 174, 255);
    border: 3px solid white; /* white border around the marker */
    box-shadow: 0 0 0 10px rgba(0, 174, 255, 0.3); /* visible halo */
}


/*
###############################################################################################################################################################
CLOSE BUTTON
###############################################################################################################################################################
*/

.close-btn {
    position: absolute;
    right: 10px;
    top: 10px;
	padding: 0;
	font-size: 1.75rem;
	font-weight: bold;
    background-color:rgba(0, 0, 0, 0.5);
    border: none;
    color: var(--WHITE);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

.close-btn:hover {
    background: var(--COLOR_ACTION_50);
    transform: rotate(90deg);
}

.close-btn svg {
    transform: rotate(45deg) scale(0.7);
    fill: white;
    width: 27px;
    height: 27px;
}
/*!*********************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./public/css/xploo_global_defer.css ***!
  \*********************************************************************************************************************************************************************************************************/
/*
###############################################################################################################################################################
© 2017 Franck Durand
All Rights Reserved
THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH ARE THE PROPERTY OF FRANCK DURAND OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
###############################################################################################################################################################

CSS Selectors
	* HTML element selector: element name. Ex: p {text-align: center; color: red;}
	* HTML id selector: "#" + id. Ex: #map
	* HTML class selector: "." + class name. Ex: .Sidebar
CSS naming rules
	* Base rules:
		- class name: lowercase_names_with_underscore
		- variable name: UPPERCASE_NAMES. "-" is unsupported!
	* BEM rules: block__element--modifier (https://openclassrooms.com/fr/courses/6106181-simplifiez-vous-le-css-avec-sass/6595809-creez-des-selecteurs-html-avec-la-methodologie-bem)

*/		  

/* Make visible the focus (for debugging)
/* input:focus {background-color: yellow;}  */

/* Variable declaration */
/* WARNING: "-" in the name is unsupported! */
/* WARNING: As used in Javascript no space after ":" is allowed */


/*
###############################################################################################################################################################
Date range picker
*/
.apply-btn {
    background-image: linear-gradient(to right,var(--COLOR_ACTION_40), var(--COLOR_ACTION_60))!important;
    border: none!important;
}

.date-picker-wrapper {
    z-index: 1050!important;
    background-color: rgba(255, 255, 255, 0)!important;
    color: var(--COLOR_ACTION_50)!important;
    border: 1px solid transparent!important;
    border-radius: var(--BUTTON_BORDER_RADIUS);
    box-sizing: border-box;
    box-shadow: 
    inset 4px 4px 8px rgba(0, 0, 0, 0.6),
    inset -4px -4px 8px rgba(255, 255, 255, 0.2),
    3px 3px 6px rgba(0, 0, 0, 0.3),
    -3px -3px 6px rgba(255, 255, 255, 0.2);
    box-shadow: var(--NEUMORPHISM_BOX_SHADOW);
    display: block!important;
}

/* Dates + Duration title */
.date-picker-wrapper {
    font-size: unset!important; /* Franck : modifié. font-size: 12px; */
}

.date-picker-wrapper .drp_top-bar {
    display: none;
}

/* Duration tooltip */
.date-picker-wrapper .date-range-length-tip {
    font-size: unset!important; /* Franck : modifié. font-size: 12px; */
}

/* Months */
.date-picker-wrapper table .caption {
    height: 60px!important;   /* Franck : modifié. height: 40px; */
}

/* Weekdays and months */
.date-picker-wrapper th {
    font-size: calc(0.88rem * var(--DATE_PICKER_FONT_COEF));    /* Franck : modifié. font-size: 0.88rem; */
}

.date-picker-wrapper .month-wrapper table th {
    line-height: 18px!important;
}


.date-picker-wrapper b {
    color: var(--COLOR_ACTION_50)!important;
    font-size: var(--FONT-FAMILY)!important;
    font-weight: bold!important;
}

.date-picker-wrapper .month-wrapper {
    border: 1px solid transparent!important;
    background-color: rgba(255, 255, 255, 0)!important; /* Franck : modifié. background-color: var(--COLOR_SURFACE_10)!important; */
    color: var(--COLOR_SURFACE_80)!important;
}

/* Days */
.date-picker-wrapper .month-wrapper table .day.toMonth {
    font-size: calc(12px * var(--DATE_PICKER_FONT_COEF));    /* Franck : ajouté. font-size: 12px; */
    padding: 12px 10px;
    color: var(--WHITE)!important;
}

/*
Date range selection range
*/
.date-picker-wrapper .month-wrapper table .day.toMonth.hovering {
	background-color: var(--LIGHTER_BLUE)!important;
	}
/*
Date range tooltips
*/	
.date-picker-wrapper .date-range-length-tip{
	background-color: var(--COLOR_SURFACE_30)!important;
	color: var(--COLOR_ACTION_50)!important;
}
.date-picker-wrapper .date-range-length-tip:after {
	border-top: 4px solid var(--COLOR_SURFACE_30)!important;
}

.date-picker-wrapper .day.real-today{
    background-color: var(--COLOR_SURFACE_10)!important;
    border: 1px solid var(--COLOR_ACTION_50)!important;
    border-radius: 0.25rem;
}
.date-picker-wrapper .first-date-selected{
    background-color: var(--COLOR_ACTION_50)!important;
    color: var(--WHITE)!important;
}
 .date-picker-wrapper .last-date-selected {
    background-color: var(--COLOR_ACTION_50)!important;
    color: var(--WHITE)!important;
 }
 .date-picker-wrapper .month-wrapper table .day.checked{
    background-color: var(--COLOR_ACTION_50)!important;
    color: var(--WHITE)!important;
 }

.month-wrapper table .day.real-today.checked, .date-picker-wrapper .month-wrapper table .day.real-today.hovering {
	background-color: var(--COLOR_ACTION_50)!important;
    color: var(--WHITE)!important;
    border-radius: 0.25rem;
}

.month-element {
  display: inline;  /* Month name on 1 line instead of 2 */
}
/* .month-name{
    font-size: 12px;
    color:var(--COLOR_SURFACE_70)!important;
} */

/*.date-picker-wrapper .month-wrapper table .day.toMonth.valid {
	background-color: var(--GREY)!important;
}*/

.dur-box {
    cursor:pointer;
    color: var(--COLOR_ACTION_60);
    width: 100%;
}

.dur-box-manual, .time-box-manual {
	color: deepskyblue!important;
    cursor:pointer;
}

.io-box {
    font-size: 0.8rem;
    top: -2px;
    right: -3px;
    position: relative;
    white-space: nowrap;
    display: inline-block;
    font-weight: bold;
    color: var(--COLOR_ACTION_60);
}

/* .io-box-manual:checked {
	background-color: deepskyblue!important;
    border: 0.12rem solid deepskyblue!important;
}

.io-box-manual {
	background-color: black!important;
    border: 0.12rem solid deepskyblue!important;
} */

/* The icon of the typ="time" inputs */
#right-bar__body input[type="time"]::-webkit-calendar-picker-indicator {
    position: relative;
    right: 5px; /* Move to the left */
    /* display: none; */    /* hide the default icon */
    background: transparent;
}

#right-bar__body input[type="time"] {
    width: 80px;
    border: 0;
    /* background-color:#00000000; */
    color: var(--COLOR_ACTION_60);
    /* text-align: right; */
}
#right-bar__body input[type="time"][value="00:00"] {
    text-decoration: line-through;
}

/* Android : remove arrow */
#right-bar__body input[type="time"] {
  -webkit-appearance: none; 
}
/* Android : remove margin previsouly used by the arrow */
#right-bar__body input[type="time"]::-webkit-date-and-time-value {
  margin: 0; 
}

/* Remove the default up-down arrows (spinners) */
/* Pour les navigateurs basés sur WebKit comme Chrome, Safari */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {	
	-webkit-appearance: none;
    margin: 0;
}
/* Pour Firefox */
input[type="number"] {
    -moz-appearance: textfield;
}
/* Pour IE */
input[type="number"]::-ms-clear,
input[type="number"]::-ms-reveal {
    display: none;
}

input[type="number"] {
    border: 0;
    background-color:#00000000;
    color: var(--COLOR_ACTION_60);
    text-align: right;
    /* padding: 0 5px 0 0; */
    width: 1.7rem;
    cursor: pointer;
}

input[type="number"]::-moz-placeholder {
   color: var(--COLOR_ACTION_50);
}

input[type="number"]::placeholder {
   color: var(--COLOR_ACTION_50);
}

input[type="number"] ul {
    color: var(--COLOR_ACTION_50)!important;
    text-align: right;
    width: 1.2rem;	/* Size reduced especially for the empty case: "--:--" */
    -moz-appearance: textfield;
}


/*
###############################################################################################################################################################
Dropdown list for number inputs
*/

.input_dropdown {
    position: relative;
    display: inline-block;
    cursor: pointer;
  }
  
  .input_dropbtn {
    border: none;
    background: none;
  }
  
  .input_dropdown-content {
    z-index: 5;
    position: absolute;
    left: -30px;
    top: 41px;
    width: 50px;
    height: auto !important;
    background-color: #fff;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    border-radius: 5px;
    overflow: hidden;
    width:auto;
  }
  
  .input_dropdown-content a {
    color: black;
    padding: 7px 10px;
    text-decoration: none;
    display: block;
    text-align: center; 
  }
  
  .input-number {
    width: 100%;
    text-align: right;
  }
  
  .input_dropdown-content a.selected {
    background-color: #007bff;
    color: white;
  }

/*
###############################################################################################################################################################
RESPONSIVE
###############################################################################################################################################################
*/

@media screen and (max-width: 896px) {
  .date-picker-wrapper .month-wrapper table .day.toMonth {
    padding-left: 3px !important;
    padding-right: 3px !important;
  }

  .date-picker-wrapper {
    width: 100%;
    padding: 0px !important;
  }

  .date-picker-wrapper .month-wrapper table, .date-picker-wrapper .month-wrapper table.month2 {
        width: 100% !important;
        float: none !important;
        margin: 0 !important;
    }
}
/*!***************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./public/css/xploo_cookie.css ***!
  \***************************************************************************************************************************************************************************************************/
/*
###############################################################################################################################################################
COOKIE
###############################################################################################################################################################
*/

#close_cookie {
	display: none;
}

#close_cookie:checked+#cookie_consent_popup {
	display: none;
}

#cookie_consent_popup {
	z-index: 11;
	position: fixed;
	background-color: hsla(var(--SHADE_SURFACE),var(--SAT_SURFACE),40%, 0.35);
	padding: 10px 25px;
	border-radius: var(--BUTTON_BORDER_RADIUS);
	box-shadow: 0 0 50px rgba(0, 0, 0, 0.3);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}

#cookie_consent_popup h1{
	font-size: 1.4rem/*1.2em*/;
	text-align: center;
	font-weight: bold;
	color: white;
}

#cookie_consent_popup h2{
	font-size: 1.0rem/*1.0em*/;
	color: white;
	font-weight: bold;
}

#cookie_consent_popup h1:before{
	content: "";
	padding: 0;
}

#cookie_consent_popup p{
	font-size: 0.8rem ;/*0.7em */
	color: white;
	margin-top: 0;

}

#cookie_consent_popup input[type=checkbox] {
    height: 15px;
    width: 15px;
}

#cookie_consent_popup #close_cookie_box{
	position: absolute;
	top: 1.25rem; right: 1.25rem;/*20px*/
	cursor: Gnter;
	font-size: 1.3rem/*1.3em*/;
}

#cookie_consent_popup #ok_cookie_box{
	position: absolute;
	bottom: 1.25rem;right:1.25rem/*20px*/;
	cursor: pointer;
	font-size: 1.6rem/*1.6em*/ ;
	padding: 0.63rem 1.25rem/*10 et 20px*/;
	font-weight: 700;
	color:white;
}

.flex {
	display: flex;
    justify-content: space-between;
    align-items: center;
}

.t-c-4-1-o1 {
    order: 1;
    flex: 4;
    padding-right: 8px;
}

.t-c-4-1-o2 {
    position: relative;
    height: 25px;
}

.t-c-4-1-o2 {
    order: 2;
    padding-right: 8px;
}

.Cookie-buttons-container {
    text-align: center;
    border-radius: var(--BUTTON_BORDER_RADIUS);
}

.Cookie-buttons-container button {
    margin: 0 3px;
}

body::before {
	content: "";
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.7);
	z-index: 10;
	display: none;
}

body.cookie-popup-visible::before {
	display: block;
}

/*
###############################################################################################################################################################
RESPONSIVE
###############################################################################################################################################################
*/

/* For phones and small screens */
@media screen and (max-width: 896px) {
	/* a calc based on the side bar width is NOT supported */
	#cookie_consent_popup {
		top: calc(var(--HEADER_HEIGHT));
		width: 100%;
		height: calc(100% - var(--HEADER_HEIGHT));
		overflow-y: scroll;
	}
}

/* For PCs and larger screens */
@media screen and (min-width: 897px) {
	#cookie_consent_popup {
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 35%;
		height: auto;
		margin: 0 auto; /* Center the box horizontally */
	}
}
/*!***************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./public/css/xploo_header.css ***!
  \***************************************************************************************************************************************************************************************************/
/*
###############################################################################################################################################################
HEADER
###############################################################################################################################################################
*/

.header {
    height: var(--HEADER_HEIGHT);
    position: sticky;
    top: 0;
    width: 100%;
    z-index: 12;
    display: flex;
    flex-direction: column;
    padding: 0 20px;
    transition: height 0.3s ease;
}

.header::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: -1; /* Will be added by JS when scrolling */
    backdrop-filter: none; /* Will be added by JS when scrolling */
}

.header-top {
    height: var(--HEADER_HEIGHT);
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Specific rule for the planner page */
body[data-route="planner"] .header {
    background-color: transparent;
}

/*
###############################################################################################################################################################
LOGO
###############################################################################################################################################################
*/

.logo {
    transition: transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1);
}

body[data-route="planner"] .logo {
    margin-left: 7%;
}

.logo:hover {
    transform: scale(1.1);
    animation: elastic-bounce 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes elastic-bounce {
    0% { transform: scale(1); }
    20% { transform: scale(1.15); }
    40% { transform: scale(1.05); }
    60% { transform: scale(1.12); }
    80% { transform: scale(1.08); }
    100% { transform: scale(1.1); }
}

.logo svg {
    height: 40px;
    margin-top: 10px;
    width: auto;
}

.logo svg path,
.logo svg text {
    fill: var(--COLOR_FONT) !important;
}

/* Elastic/spring animation for different browser supports. https://matthewlein.com/tools/ceaser, https://easings.net/fr */
.elastic {
    transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
    transition-duration: 0.5s;
    transition-property: transform;
}

/*
###############################################################################################################################################################
VERSION BADGE (ADMIN ONLY)
###############################################################################################################################################################
*/

.version-badge {
    cursor: pointer;
    margin-left: 12px;
    padding: 2px 5px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 700;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Red-orange pulse animation for new version */
/* @keyframes pulseNewVersion {
    0%, 100% { 
        background: linear-gradient(135deg, #ff6b35 0%, #f7931e 100%);
        box-shadow: 0 3px 8px rgba(255, 107, 53, 0.5);
        transform: scale(1);
    }
    50% { 
        background: linear-gradient(135deg, #ff8c5a 0%, #ffb347 100%);
        box-shadow: 0 6px 16px rgba(255, 107, 53, 0.8);
        transform: scale(1.05);
    }
} */

/* Badge with new version - animation active */
/* .version-badge.new-version.pulsing {
    animation: pulseNewVersion 1.5s ease-in-out infinite;
    border-color: rgba(255,255,255,0.6);
} */

/* Badge with new version - remains orange even without animation */
.version-badge.new-version {
    background: linear-gradient(135deg, #ff6b35 0%, #f7931e 100%) !important;
}

/* Badge inner elements */
/* .version-badge > span:first-child {
    font-size: 16px;
} */

#version-number {
    font-size: 0.7rem;
}

#version-time {
    font-size: 0.7rem;
}

/*
###############################################################################################################################################################
HEADER ICONS
###############################################################################################################################################################
*/

.header-icon {
    width: 1.4rem;
    height: 1.4rem;
}

/*
###############################################################################################################################################################
HEADER BUTTONS
###############################################################################################################################################################
*/

.header-top-right {
    order: 2;
    display: flex;
    align-items: center;
    gap: 10px;
}

.burger-menu {
    display: flex;
}

.scroll-to-top-button, #save_trip_button, #share_trip_button, #settings_button {
    display: none;
}

.burger-menu,
.scroll-to-top-button,
#user-menu-button, 
#save_trip_button, 
#share_trip_button, 
#view_trips_button, 
#settings_button {
    background: linear-gradient(to right, var(--COLOR_ACTION_40), var(--COLOR_ACTION_60));
    padding: 0.4rem;
    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 
    inset 4px 4px 8px rgba(255, 255, 255, 0.2),
    inset -4px -4px 8px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
}

.burger-menu:hover, 
.scroll-to-top-button:hover,
#user-menu-button:hover, 
#save_trip_button:hover, 
#share_trip_button:hover, 
#view_trips_button:hover, 
#settings_button:hover {
    box-shadow: 
        inset 4px 4px 8px rgba(0, 0, 0, 0.2),
        inset -4px -4px 8px rgba(255, 255, 255, 0.1);
    transform: scale(1.2);
}

/*
###############################################################################################################################################################
HEADER SEARCH BAR (on scroll and on the planner page)
###############################################################################################################################################################
*/

.header-top .header-searchbar {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: -moz-fit-content;
    width: fit-content;
    z-index: 5;
}

/*
###############################################################################################################################################################
AUTH LINKS & LANGUAGE DROPDOWN
###############################################################################################################################################################
*/

.auth-links {
    display: flex;
    align-items: center;
    gap: 20px;
}

.header-dropdown {
    position: relative;
    display: inline-block;
}

.header-dropdown a {
    color: var(--COLOR_SURFACE_90);
    text-decoration: none;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-radius: var(--BUTTON_BORDER_RADIUS);
    transition: all 0.3s ease;
}

.header-dropdown a:hover {
    background-color: rgba(0, 0, 0, 0.05);
}

.header-dropdown .arrow-down {
    width: 12px;
    height: 12px;
    transition: transform 0.3s ease;
}

.header-dropdown div {
    position: absolute;
    right: 0;
    top: 100%;
    min-width: 120px;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
    border-radius: 8px;
    padding: 8px 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.3s ease;
    z-index: 1002;
    backdrop-filter: blur(30px);
    background-color: rgba(255, 255, 255, 0.1);
}

.header-dropdown:hover div {
    opacity: 1;
    visibility: visible;
    transform: translateY(5px);
}

.header-dropdown:hover .arrow-down {
    transform: rotate(180deg);
}

.header-dropdown div a {
    display: block;
    padding: 10px 15px;
    color: var(--COLOR_SURFACE_80);
    border-radius: 0;
}

.header-dropdown div a:hover {
    background-color: var(--ORANGE_10);
    color: var(--COLOR_ACTION_60);
    font-weight: 600;
}

.header-dropdown .dropbtn {
    cursor: pointer;
}

.header-dropdown .dropbtn[href*="login"] {
    background: linear-gradient(to right, var(--COLOR_ACTION_40), var(--COLOR_ACTION_60));
    color: white;
    padding: 8px 16px;
    border-radius: var(--BUTTON_BORDER_RADIUS);
    transition: all 0.3s ease;
}

.header-dropdown .dropbtn[href*="login"]:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

/*
###############################################################################################################################################################
RESPONSIVE
###############################################################################################################################################################
*/

@media screen and (max-width: 1046px) {
    .scroll-to-top-button, #scroll-to-top-icon {
        display: flex;
    }
}

@media screen and (max-width: 896px) {
    .logo svg {
        height: 40px;
    }

	.editorial .logo {
		position: relative;
		display: inline-block;	
	}

    .header-icon {
        width: 1.1rem;
        height: 1.1rem;
    }

    .auth-links {
        gap: 0px;
    }

    /* Version badge responsive */
    /* .version-badge {
        font-size: 13px !important;
        padding: 6px 10px !important;
        margin-left: 8px !important;
    } */

    /* Position mobile buttons to the right of the custom geocoder in #map (only on planner page) */
    body[data-route="planner"] #save_trip_button_mobile,
    body[data-route="planner"] #view_trips_button_mobile {
        position: absolute;
        top: 12px;
        z-index: 9;
        padding: 4px;
        border-radius: 20px;
        border: 1px solid rgba(255, 255, 255, 0.1);
        box-shadow: 
            inset 4px 4px 8px rgba(255, 255, 255, 0.2),
            inset -4px -4px 8px rgba(0, 0, 0, 0.2);
        background: linear-gradient(to right, var(--COLOR_ACTION_40), var(--COLOR_ACTION_60));
        transition: all 0.3s ease;
        align-items: center;
        justify-content: center;
    }

    /* Specific position for the "save trip" button (to the left of the "view trips" button) */
    body[data-route="planner"] #save_trip_button_mobile {
        left: 75%;
    }

    /* Specific position for the "view trips" button (rightmost) */
    body[data-route="planner"] #view_trips_button_mobile {
        left: 65%;   
    }

    /* Hover effect for mobile buttons: invert shadow and scale up */
    body[data-route="planner"] #save_trip_button_mobile:hover,
    body[data-route="planner"] #view_trips_button_mobile:hover {
        box-shadow: 
            inset 4px 4px 8px rgba(0, 0, 0, 0.2),
            inset -4px -4px 8px rgba(255, 255, 255, 0.1);
        transform: scale(1.1);
    }

    /* Set icon size inside mobile buttons */
    body[data-route="planner"] #save_trip_button_mobile .header-icon,
    body[data-route="planner"] #view_trips_button_mobile .header-icon {
        width: 20px;
        height: 20px;
    }
}

/*
###############################################################################################################################################################
SCROLL BAR
###############################################################################################################################################################
*/

::-webkit-scrollbar {
	width: 6px;
    height: 6px;
}
/* Track */
::-webkit-scrollbar-track {
    background: var(--COLOR_SURFACE_30);
	/* background-image: linear-gradient(to top, var(--COLOR_SURFACE_30), var(--COLOR_SURFACE_50)); */
	border-radius: 6px;
}
/* Handle */
::-webkit-scrollbar-thumb {
    background: var(--COLOR_ACTION_50);
    /* background: linear-gradient(to bottom, var(--COLOR_ACTION_40), var(--COLOR_ACTION_60)); */
    border-radius: 6px;
}
/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
    background: var(--COLOR_ACTION_70);
	/* background-image: linear-gradient(to top, var(--COLOR_SURFACE_80), white); */
}
/*!***************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./public/css/xploo_footer.css ***!
  \***************************************************************************************************************************************************************************************************/
/*
###############################################################################################################################################################
FOOTER
###############################################################################################################################################################
*/

.page-footer {
    margin-top: 60px;;
    width: 100%;
    background-color: var(--DARKER_BLUE);
    padding: 1rem 0.5rem;
}

.legals-box {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
    padding: 1rem 0;
}

.legals-box:first-child {
    border-bottom: 1px solid var(--COLOR_SURFACE_70);
}

.legals-box a {
    color: var(--COLOR_SURFACE_70);
    text-decoration: none;
    font-size: 0.9rem;
    transition: color 0.3s ease;
}

.legals-box a:hover {
    color: var(--COLOR_ACTION_50);
}

.legals-box:last-child {
    color: var(--COLOR_SURFACE_70);
    font-size: 0.8rem;
    text-align: center;
}

.legals-box .icon {
    height: 22px;
    filter: grayscale(50%) contrast(30%) !important;
}

/*
###############################################################################################################################################################
RESPONSIVE
###############################################################################################################################################################
*/

@media screen and (max-width: 768px) {
    .footer {
        padding: 0.75rem 0.5rem;
    }
    
    .legals-box {
        gap: 1rem;
        padding: 0.25rem 0;
    }
    
    .legals-box a {
        font-size: 0.8rem;
    }
    
    .legals-box:last-child {
        font-size: 0.7rem;
    }
}

@media screen and (max-width: 480px) {
    .legals-box {
        flex-direction: column;
        align-items: center;
        gap: 0.8rem;
    }
}
/*!**********************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./public/css/xploo_notifications.css ***!
  \**********************************************************************************************************************************************************************************************************/
/*
###############################################################################################################################################################
XPLOO NOTIFICATIONS
###############################################################################################################################################################
*/

/*
###############################################################################################################################################################
PWA INSTALLATION SYSTEM - BANNERS
###############################################################################################################################################################
*/

.xploo-pwa-banner {
    font-family: var(--PWA_FONT_FAMILY);
}

/* Banner Content - Base Styles */
.xploo-pwa-banner-content {
    color: var(--PWA_COLOR_WHITE);
    padding: var(--PWA_BANNER_PADDING);
    z-index: var(--PWA_Z_INDEX_BANNER);
}

/* Banner Content - Desktop */
.xploo-pwa-banner-content.desktop {
    position: fixed;
    bottom: var(--PWA_BANNER_DESKTOP_BOTTOM);
    right: var(--PWA_BANNER_DESKTOP_RIGHT);
    border-radius: var(--PWA_BANNER_BORDER_RADIUS);
    border: var(--PWA_BANNER_BORDER);
    animation: slideInUp var(--PWA_BANNER_ANIMATION_DURATION) ease-out;
}

/* Banner Content - Mobile */
.xploo-pwa-banner-content.mobile {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    box-shadow: var(--PWA_BANNER_SHADOW);
    animation: slideDown var(--PWA_BANNER_ANIMATION_DURATION) ease-out;
}

/* Banner Color Schemes */
.xploo-pwa-banner-content.install {
    background: var(--PWA_COLOR_INSTALL);
    box-shadow: var(--PWA_COLOR_INSTALL_SHADOW);
}

.xploo-pwa-banner-content.open-app {
    background: var(--PWA_COLOR_OPEN_APP);
    box-shadow: var(--PWA_COLOR_OPEN_APP_SHADOW);
}

.xploo-pwa-banner-content.incognito {
    background: var(--PWA_COLOR_INCOGNITO);
    border: var(--PWA_BANNER_BORDER);
    box-shadow: var(--PWA_COLOR_INCOGNITO_SHADOW);
}

/* Banner Inner Content */
.xploo-pwa-banner-inner {
    max-width: var(--PWA_MAX_WIDTH_BANNER_INNER);
    margin: var(--PWA_MARGIN_AUTO);
}

.xploo-pwa-banner-text {
    margin-bottom: var(--PWA_SPACING_2XL);
}

.xploo-pwa-banner-title {
    font-weight: var(--PWA_BANNER_TITLE_WEIGHT);
    font-size: var(--PWA_BANNER_TITLE_SIZE);
    margin-bottom: var(--PWA_SPACING_MD);
}

.xploo-pwa-banner-title i {
    margin-right: var(--PWA_SPACING_MD);
}

.xploo-pwa-banner-message {
    font-size: var(--PWA_BANNER_MESSAGE_SIZE);
    opacity: var(--PWA_BANNER_MESSAGE_OPACITY);
}

.xploo-pwa-banner-actions {
    text-align: center;
}

/*
###############################################################################################################################################################
PWA INSTALLATION SYSTEM - MODALS
###############################################################################################################################################################
*/

/* Modal Overlay */
.xploo-pwa-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--PWA_MODAL_OVERLAY_BG);
    z-index: var(--PWA_Z_INDEX_MODAL_OVERLAY);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--PWA_MODAL_PADDING);
    backdrop-filter: var(--PWA_MODAL_BACKDROP_BLUR);
    animation: var(--PWA_MODAL_ANIMATION);
}

/* Modal Content Base */
.xploo-pwa-modal-content {
    border-radius: var(--PWA_MODAL_CONTENT_RADIUS);
    max-width: var(--PWA_MODAL_CONTENT_MAX_WIDTH);
    width: var(--PWA_WIDTH_FULL);
    position: relative;
    animation: var(--PWA_MODAL_CONTENT_ANIMATION);
    box-shadow: var(--PWA_MODAL_CONTENT_SHADOW);
    border: var(--PWA_MODAL_CONTENT_BORDER);
    padding: var(--PWA_MODAL_CONTENT_PADDING);
    text-align: center;
    color: var(--PWA_COLOR_WHITE);
}

/* Modal Content - Install Theme */
.xploo-pwa-modal-content.install {
    background: var(--PWA_COLOR_INSTALL);
}

/* Modal Content - Open App Theme */
.xploo-pwa-modal-content.open-app {
    background: var(--PWA_COLOR_OPEN_APP);
}

/* Modal Content - Instructions Theme */
.xploo-pwa-modal-content.instructions {
    background: var(--PWA_INSTRUCTIONS_BG);
    color: var(--PWA_INSTRUCTIONS_COLOR);
}

/* Modal Icon */
.xploo-pwa-modal-icon {
    font-size: var(--PWA_MODAL_ICON_SIZE);
    margin-bottom: var(--PWA_MODAL_ICON_MARGIN);
}

/* Modal Title */
.xploo-pwa-modal-title {
    font-size: var(--PWA_MODAL_TITLE_SIZE);
    font-weight: var(--PWA_MODAL_TITLE_WEIGHT);
    margin-bottom: var(--PWA_MODAL_TITLE_MARGIN);
    text-shadow: var(--PWA_MODAL_TITLE_SHADOW);
}

.xploo-pwa-modal-content.instructions .xploo-pwa-modal-title {
    text-shadow: var(--PWA_TEXT_SHADOW_NONE);
    color: var(--PWA_INSTRUCTIONS_TITLE_COLOR);
    font-size: var(--PWA_INSTRUCTIONS_TITLE_SIZE);
    font-weight: var(--PWA_INSTRUCTIONS_TITLE_WEIGHT);
    margin-bottom: var(--PWA_INSTRUCTIONS_TITLE_MARGIN);
}

/* Modal Description */
.xploo-pwa-modal-description {
    font-size: var(--PWA_MODAL_DESC_SIZE);
    opacity: var(--PWA_MODAL_DESC_OPACITY);
    margin-bottom: var(--PWA_MODAL_DESC_MARGIN);
    line-height: var(--PWA_MODAL_DESC_LINE_HEIGHT);
}

.xploo-pwa-modal-content.instructions .xploo-pwa-modal-description {
    opacity: var(--PWA_OPACITY_FULL);
    color: var(--PWA_INSTRUCTIONS_DESC_COLOR);
}

/* Modal Primary Button */
.xploo-pwa-modal-primary-btn {
    background: var(--PWA_PRIMARY_BTN_BG);
    color: var(--PWA_PRIMARY_BTN_COLOR_INSTALL);
    border: none;
    padding: var(--PWA_PRIMARY_BTN_PADDING);
    border-radius: var(--PWA_PRIMARY_BTN_RADIUS);
    font-size: var(--PWA_PRIMARY_BTN_FONT_SIZE);
    font-weight: var(--PWA_PRIMARY_BTN_FONT_WEIGHT);
    cursor: pointer;
    transition: var(--PWA_PRIMARY_BTN_TRANSITION);
    box-shadow: var(--PWA_PRIMARY_BTN_SHADOW);
    display: inline-flex;
    align-items: center;
    gap: var(--PWA_PRIMARY_BTN_GAP);
}

.xploo-pwa-modal-primary-btn:hover {
    transform: translateY(-3px) scale(1.05);
    box-shadow: var(--PWA_PRIMARY_BTN_SHADOW_HOVER);
}

.xploo-pwa-modal-content.open-app .xploo-pwa-modal-primary-btn {
    color: var(--PWA_PRIMARY_BTN_COLOR_OPEN_APP);
}

/* Modal Footer Note */
.xploo-pwa-modal-footer-note {
    margin-top: var(--PWA_FOOTER_NOTE_MARGIN);
    font-size: var(--PWA_FOOTER_NOTE_SIZE);
    opacity: var(--PWA_FOOTER_NOTE_OPACITY);
}

/* Instructions Modal - Specific Styles */
.xploo-pwa-modal-content.instructions {
    max-width: var(--PWA_INSTRUCTIONS_MAX_WIDTH);
    max-height: var(--PWA_INSTRUCTIONS_MAX_HEIGHT);
    overflow-y: auto;
    animation: var(--PWA_INSTRUCTIONS_ANIMATION);
    padding: 0;
}

.xploo-pwa-instructions-content {
    text-align: center;
    padding: var(--PWA_INSTRUCTIONS_PADDING);
    color: var(--PWA_INSTRUCTIONS_COLOR);
}

.xploo-pwa-instructions-title {
    color: var(--PWA_INSTRUCTIONS_TITLE_COLOR);
    margin-bottom: var(--PWA_INSTRUCTIONS_TITLE_MARGIN);
    font-size: var(--PWA_INSTRUCTIONS_TITLE_SIZE);
    font-weight: var(--PWA_INSTRUCTIONS_TITLE_WEIGHT);
    text-align: center;
}

.xploo-pwa-instructions-title.green {
    color: var(--PWA_INSTRUCTIONS_TITLE_COLOR_GREEN);
}

.xploo-pwa-instructions-title.purple {
    color: var(--PWA_INSTRUCTIONS_TITLE_COLOR_PURPLE);
}

.xploo-pwa-instructions-title i {
    margin-right: var(--PWA_SPACING_MD);
    font-size: var(--PWA_SPACING_3XL);
}

.xploo-pwa-instructions-description {
    margin-bottom: var(--PWA_INSTRUCTIONS_TITLE_MARGIN);
    color: var(--PWA_INSTRUCTIONS_DESC_COLOR);
    font-size: var(--PWA_MODAL_DESC_SIZE);
    line-height: var(--PWA_MODAL_DESC_LINE_HEIGHT);
}

.xploo-pwa-instructions-steps {
    text-align: left;
    margin: var(--PWA_MARGIN_AUTO);
    line-height: var(--PWA_LINE_HEIGHT_NORMAL);
}

.xploo-pwa-instruction-step {
    margin-bottom: var(--PWA_STEP_MARGIN);
    display: flex;
    align-items: flex-start;
    padding: var(--PWA_STEP_PADDING);
    background: var(--PWA_STEP_BG);
    border-radius: var(--PWA_STEP_RADIUS);
    border-left: var(--PWA_STEP_BORDER_LEFT_WIDTH) solid var(--PWA_STEP_BORDER_COLOR);
}

.xploo-pwa-instruction-step.green {
    border-left-color: var(--PWA_STEP_BORDER_COLOR_GREEN);
}

.xploo-pwa-instruction-step.purple {
    border-left-color: var(--PWA_STEP_BORDER_COLOR_PURPLE);
}

.xploo-pwa-instruction-number {
    background: var(--PWA_STEP_NUMBER_BG);
    color: var(--PWA_STEP_NUMBER_COLOR);
    border-radius: var(--PWA_RADIUS_CIRCLE);
    width: var(--PWA_STEP_NUMBER_SIZE);
    height: var(--PWA_STEP_NUMBER_SIZE);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: var(--PWA_STEP_NUMBER_MARGIN);
    font-size: var(--PWA_STEP_NUMBER_FONT_SIZE);
    font-weight: var(--PWA_STEP_NUMBER_WEIGHT);
    flex-shrink: 0;
}

.xploo-pwa-instruction-number.green {
    background: var(--PWA_STEP_NUMBER_BG_GREEN);
}

.xploo-pwa-instruction-number.purple {
    background: var(--PWA_STEP_NUMBER_BG_PURPLE);
}

.xploo-pwa-instruction-text {
    color: var(--PWA_STEP_TEXT_COLOR);
    font-size: var(--PWA_STEP_TEXT_SIZE);
}

.xploo-pwa-instruction-highlight {
    background: var(--PWA_COLOR_INSTALL);
    border-radius: var(--PWA_HIGHLIGHT_RADIUS);
    padding: var(--PWA_HIGHLIGHT_PADDING);
    margin-top: var(--PWA_HIGHLIGHT_MARGIN);
    color: var(--PWA_HIGHLIGHT_COLOR);
}

.xploo-pwa-instruction-highlight.green {
    background: var(--PWA_COLOR_OPEN_APP);
}

.xploo-pwa-instruction-highlight.purple {
    background: var(--PWA_COLOR_INCOGNITO);
}

.xploo-pwa-instruction-highlight i {
    margin-right: var(--PWA_SPACING_MD);
}

/* Info Box */
.xploo-pwa-info-box {
    background: var(--PWA_INFO_BOX_BG);
    border: var(--PWA_INFO_BOX_BORDER);
    border-radius: var(--PWA_INFO_BOX_RADIUS);
    padding: var(--PWA_INFO_BOX_PADDING);
    margin-bottom: var(--PWA_INFO_BOX_MARGIN);
    color: var(--PWA_INFO_BOX_COLOR);
}

.xploo-pwa-info-box.yellow {
    background: var(--PWA_INFO_BOX_BG_YELLOW);
    border: var(--PWA_INFO_BOX_BORDER_YELLOW);
    color: var(--PWA_INFO_BOX_COLOR_YELLOW);
}

.xploo-pwa-info-box i {
    margin-right: var(--PWA_INFO_BOX_ICON_MARGIN);
    font-size: var(--PWA_INFO_BOX_ICON_SIZE);
}

/* Copy URL Button */
.xploo-pwa-copy-btn {
    background: var(--PWA_COPY_BTN_BG);
    color: var(--PWA_COPY_BTN_COLOR);
    border: none;
    padding: var(--PWA_COPY_BTN_PADDING);
    border-radius: var(--PWA_COPY_BTN_RADIUS);
    font-size: var(--PWA_COPY_BTN_FONT_SIZE);
    font-weight: var(--PWA_COPY_BTN_FONT_WEIGHT);
    cursor: pointer;
    transition: var(--PWA_COPY_BTN_TRANSITION);
    box-shadow: var(--PWA_COPY_BTN_SHADOW);
}

.xploo-pwa-copy-btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--PWA_COPY_BTN_SHADOW_HOVER);
}

.xploo-pwa-copy-btn.success {
    background: var(--PWA_COPY_BTN_BG_SUCCESS);
}

.xploo-pwa-copy-btn i {
    margin-right: var(--PWA_SPACING_SM);
}

/* Special styling for iOS Safari SVG icon */
.xploo-pwa-safari-share-icon {
    width: var(--PWA_SAFARI_SHARE_ICON_SIZE);
    height: var(--PWA_SAFARI_SHARE_ICON_SIZE);
    vertical-align: middle;
    margin: var(--PWA_MARGIN_ZERO) var(--PWA_SAFARI_SHARE_ICON_MARGIN);
    display: inline-block;
}

/* Browser-specific instruction boxes */
.xploo-pwa-browser-box {
    margin-bottom: var(--PWA_BROWSER_BOX_MARGIN);
    padding: var(--PWA_BROWSER_BOX_PADDING);
    background: var(--PWA_BROWSER_BOX_BG);
    border-radius: var(--PWA_BROWSER_BOX_RADIUS);
}

.xploo-pwa-browser-box.chrome {
    border-left: var(--PWA_BROWSER_BOX_BORDER_WIDTH) solid var(--PWA_BROWSER_BOX_BORDER_CHROME);
}

.xploo-pwa-browser-box.firefox {
    border-left: var(--PWA_BROWSER_BOX_BORDER_WIDTH) solid var(--PWA_BROWSER_BOX_BORDER_FIREFOX);
}

.xploo-pwa-browser-box.safari {
    border-left: var(--PWA_BROWSER_BOX_BORDER_WIDTH) solid var(--PWA_BROWSER_BOX_BORDER_SAFARI);
}

.xploo-pwa-browser-box.android {
    border-left: var(--PWA_BROWSER_BOX_BORDER_WIDTH) solid var(--PWA_BROWSER_BOX_BORDER_ANDROID);
}

.xploo-pwa-browser-box-header {
    display: flex;
    align-items: center;
    margin-bottom: var(--PWA_BROWSER_BOX_HEADER_MARGIN);
}

.xploo-pwa-browser-box-header i {
    font-size: var(--PWA_BROWSER_BOX_ICON_SIZE);
    margin-right: var(--PWA_BROWSER_BOX_ICON_MARGIN);
    width: var(--PWA_WIDTH_ICON);
}

.xploo-pwa-browser-box-header i.fa-chrome {
    color: var(--PWA_BROWSER_BOX_BORDER_CHROME);
}

.xploo-pwa-browser-box-header i.fa-edge {
    color: var(--PWA_BROWSER_BOX_BORDER_EDGE);
}

.xploo-pwa-browser-box-header i.fa-firefox-browser {
    color: var(--PWA_BROWSER_BOX_BORDER_FIREFOX);
}

.xploo-pwa-browser-box-header i.fa-safari {
    color: var(--PWA_BROWSER_BOX_BORDER_SAFARI);
}

.xploo-pwa-browser-box-header i.fa-android {
    color: var(--PWA_BROWSER_BOX_BORDER_ANDROID);
}

.xploo-pwa-browser-box-header strong {
    color: var(--PWA_STEP_TEXT_COLOR);
    font-size: var(--PWA_BROWSER_BOX_TITLE_SIZE);
}

.xploo-pwa-browser-box-content {
    color: var(--PWA_INSTRUCTIONS_DESC_COLOR);
    font-size: var(--PWA_BROWSER_BOX_CONTENT_SIZE);
    margin-left: var(--PWA_BROWSER_BOX_CONTENT_MARGIN);
}

.xploo-pwa-browser-box-content i {
    margin: var(--PWA_MARGIN_ZERO) var(--PWA_SPACING_XXS);
}

/* Open App Instructions - Specific styles */
.xploo-pwa-open-app-step {
    border-radius: var(--PWA_OPEN_APP_STEP_RADIUS);
    padding: var(--PWA_OPEN_APP_STEP_PADDING);
    margin-bottom: var(--PWA_OPEN_APP_STEP_MARGIN);
}

.xploo-pwa-open-app-step.primary {
    background: var(--PWA_COLOR_OPEN_APP);
    color: var(--PWA_COLOR_WHITE);
    box-shadow: var(--PWA_COLOR_OPEN_APP_SHADOW);
}

.xploo-pwa-open-app-step.secondary {
    background: var(--PWA_OPEN_APP_STEP_SECONDARY_BG);
    border: var(--PWA_OPEN_APP_STEP_SECONDARY_BORDER);
}

.xploo-pwa-open-app-step-content {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--PWA_SPACING_XL);
}

.xploo-pwa-open-app-step-number {
    border-radius: var(--PWA_RADIUS_CIRCLE);
    width: var(--PWA_OPEN_APP_STEP_NUMBER_SIZE);
    height: var(--PWA_OPEN_APP_STEP_NUMBER_SIZE);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: var(--PWA_OPEN_APP_STEP_NUMBER_MARGIN);
    font-weight: bold;
    font-size: var(--PWA_OPEN_APP_STEP_NUMBER_FONT_SIZE);
}

.xploo-pwa-open-app-step-number.white {
    background: var(--PWA_COLOR_WHITE);
    color: var(--PWA_STEP_NUMBER_BG_GREEN);
}

.xploo-pwa-open-app-step-number.green {
    background: var(--PWA_STEP_NUMBER_BG_GREEN);
    color: var(--PWA_COLOR_WHITE);
}

.xploo-pwa-open-app-step-text {
    text-align: left;
}

.xploo-pwa-open-app-step-title {
    font-size: var(--PWA_OPEN_APP_STEP_TITLE_SIZE);
    font-weight: var(--PWA_OPEN_APP_STEP_TITLE_WEIGHT);
    margin-bottom: var(--PWA_SPACING_XS);
}

.xploo-pwa-open-app-step.primary .xploo-pwa-open-app-step-title {
    margin-bottom: var(--PWA_SPACING_XS);
}

.xploo-pwa-open-app-step.secondary .xploo-pwa-open-app-step-title {
    color: var(--PWA_STEP_NUMBER_BG_GREEN);
    margin-bottom: var(--PWA_SPACING_MD);
    display: flex;
    align-items: center;
    gap: var(--PWA_GAP_SM);
}

.xploo-pwa-open-app-step-subtitle {
    font-size: var(--PWA_OPEN_APP_STEP_SUBTITLE_SIZE);
}

.xploo-pwa-open-app-step.primary .xploo-pwa-open-app-step-subtitle {
    opacity: var(--PWA_OPACITY_HIGH);
}

.xploo-pwa-open-app-step.secondary .xploo-pwa-open-app-step-subtitle {
    color: var(--PWA_OPEN_APP_HELP_TITLE_COLOR);
}

.xploo-pwa-open-app-help-box {
    background: var(--PWA_OPEN_APP_HELP_BOX_BG);
    padding: var(--PWA_OPEN_APP_HELP_BOX_PADDING);
    border-radius: var(--PWA_OPEN_APP_HELP_BOX_RADIUS);
    margin-top: var(--PWA_OPEN_APP_HELP_BOX_MARGIN);
    border: var(--PWA_OPEN_APP_HELP_BOX_BORDER);
}

.xploo-pwa-open-app-help-title {
    font-size: var(--PWA_OPEN_APP_HELP_TITLE_SIZE);
    color: var(--PWA_OPEN_APP_HELP_TITLE_COLOR);
    margin-bottom: var(--PWA_SPACING_MD);
}

.xploo-pwa-open-app-help-title i {
    margin-right: var(--PWA_SPACING_SM);
    color: var(--PWA_STEP_NUMBER_BG_GREEN);
}

.xploo-pwa-open-app-help-content {
    font-size: var(--PWA_OPEN_APP_HELP_CONTENT_SIZE);
    color: var(--PWA_OPEN_APP_HELP_CONTENT_COLOR);
}

.xploo-pwa-app-icon {
    width: var(--PWA_APP_ICON_SIZE);
    height: var(--PWA_APP_ICON_SIZE);
    border-radius: var(--PWA_APP_ICON_RADIUS);
    box-shadow: var(--PWA_APP_ICON_SHADOW);
}

.xploo-pwa-modal-close-action-btn {
    background: var(--PWA_COLOR_OPEN_APP);
    color: var(--PWA_COLOR_WHITE);
    border: none;
    padding: var(--PWA_PRIMARY_BTN_PADDING);
    border-radius: var(--PWA_PRIMARY_BTN_RADIUS);
    font-size: var(--PWA_PRIMARY_BTN_FONT_SIZE);
    font-weight: var(--PWA_PRIMARY_BTN_FONT_WEIGHT);
    cursor: pointer;
    transition: var(--PWA_PRIMARY_BTN_TRANSITION);
    box-shadow: var(--PWA_COLOR_OPEN_APP_SHADOW);
}

.xploo-pwa-modal-close-action-btn:hover {
    transform: translateY(-3px) scale(1.05);
    box-shadow: var(--PWA_PRIMARY_BTN_SHADOW_HOVER);
}

.xploo-pwa-modal-close-action-btn i {
    margin-right: var(--PWA_SPACING_MD);
}

/*
###############################################################################################################################################################
PWA INSTALLATION SYSTEM - BUTTONS
###############################################################################################################################################################
*/

/* Install/Action Button */
.xploo-pwa-action-btn {
    background: var(--PWA_ACTION_BTN_BG);
    border: var(--PWA_ACTION_BTN_BORDER);
    color: var(--PWA_COLOR_WHITE);
    padding: var(--PWA_ACTION_BTN_PADDING);
    border-radius: var(--PWA_ACTION_BTN_RADIUS);
    font-size: var(--PWA_ACTION_BTN_FONT_SIZE);
    font-weight: var(--PWA_ACTION_BTN_FONT_WEIGHT);
    cursor: pointer;
    transition: var(--PWA_ACTION_BTN_TRANSITION);
    white-space: nowrap;
    display: inline-block;
}

.xploo-pwa-action-btn:hover {
    background: var(--PWA_ACTION_BTN_BG_HOVER);
    transform: translateY(-2px);
}

/*
###############################################################################################################################################################
PWA INSTALLATION SYSTEM - SUCCESS MESSAGE
###############################################################################################################################################################
*/

.xploo-pwa-success-banner {
    position: fixed;
    top: var(--PWA_SUCCESS_BANNER_TOP);
    left: 50%;
    transform: translateX(-50%);
    background: var(--PWA_COLOR_OPEN_APP);
    color: var(--PWA_COLOR_WHITE);
    padding: var(--PWA_SUCCESS_BANNER_PADDING);
    border-radius: var(--PWA_SUCCESS_BANNER_RADIUS);
    box-shadow: var(--PWA_COLOR_OPEN_APP_SHADOW);
    z-index: var(--PWA_Z_INDEX_BANNER);
    font-family: var(--PWA_FONT_FAMILY);
    animation: var(--PWA_SUCCESS_BANNER_ANIMATION);
    max-width: var(--PWA_SUCCESS_BANNER_MAX_WIDTH);
    text-align: center;
}

.xploo-pwa-success-banner i {
    margin-right: var(--PWA_SUCCESS_BANNER_ICON_MARGIN);
    font-size: var(--PWA_SUCCESS_BANNER_ICON_SIZE);
}

/*
###############################################################################################################################################################
NOTIFICATION SETTINGS MODAL (notification preferences)
###############################################################################################################################################################
*/

/* Notification Settings Modal Container */
.xploo-notification-settings-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: var(--PWA_WIDTH_FULL);
    height: var(--PWA_WIDTH_FULL);
    background: var(--NOTIFICATION_MODAL_OVERLAY_BG);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: var(--PWA_Z_INDEX_BANNER);
    backdrop-filter: var(--NOTIFICATION_MODAL_BACKDROP_BLUR);
    animation: fadeIn 0.3s ease-out;
}

/* Notification Settings Modal Content */
.xploo-notification-settings-content {
    background: var(--NOTIFICATION_MODAL_CONTENT_BG);
    padding: var(--NOTIFICATION_MODAL_CONTENT_PADDING);
    border-radius: var(--NOTIFICATION_MODAL_BORDER_RADIUS);
    max-width: var(--NOTIFICATION_MODAL_MAX_WIDTH);
    width: var(--PWA_WIDTH_90);
    margin: var(--PWA_SPACING_4XL);
    box-shadow: var(--NOTIFICATION_MODAL_SHADOW);
    position: relative;
    animation: var(--NOTIFICATION_MODAL_ANIMATION);
}

/* Notification Settings Modal Header */
.xploo-notification-settings-header {
    margin-bottom: var(--PWA_SPACING_4XL);
    text-align: center;
}

.xploo-notification-settings-title {
    margin: var(--PWA_MARGIN_ZERO) var(--PWA_MARGIN_ZERO) var(--PWA_SPACING_XL) var(--PWA_MARGIN_ZERO);
    color: var(--NOTIFICATION_HEADER_TITLE_COLOR);
    font-size: var(--NOTIFICATION_HEADER_TITLE_SIZE);
    font-weight: var(--NOTIFICATION_HEADER_TITLE_WEIGHT);
}

.xploo-notification-settings-description {
    color: var(--NOTIFICATION_HEADER_DESC_COLOR);
    line-height: var(--NOTIFICATION_HEADER_LINE_HEIGHT);
    font-size: var(--NOTIFICATION_HEADER_DESC_SIZE);
    margin-bottom: var(--PWA_SPACING_LG);
}

/* Notification Settings List */
.xploo-notification-settings-list {
    color: var(--NOTIFICATION_LIST_COLOR);
    line-height: var(--NOTIFICATION_LIST_LINE_HEIGHT);
    margin: 0 0 var(--NOTIFICATION_LIST_MARGIN_BOTTOM) 0;
    padding-left: 0;
    list-style: none;
    text-align: left;
}

.xploo-notification-settings-list li {
    margin-bottom: var(--NOTIFICATION_LIST_ITEM_MARGIN);
    padding-left: 0;
    display: flex;
    align-items: flex-start;
    gap: var(--NOTIFICATION_LIST_ITEM_GAP);
}

/* Notification Settings Actions */
.xploo-notification-settings-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--NOTIFICATION_BTN_GAP);
    justify-content: center;
    align-items: center;
}

/* Notification Settings Buttons */
.xploo-notification-btn {
    border: none;
    padding: var(--NOTIFICATION_BTN_PADDING);
    border-radius: var(--NOTIFICATION_BTN_BORDER_RADIUS);
    font-size: var(--NOTIFICATION_BTN_FONT_SIZE);
    font-weight: var(--NOTIFICATION_BTN_FONT_WEIGHT);
    cursor: pointer;
    transition: var(--NOTIFICATION_BTN_TRANSITION);
    white-space: nowrap;
}

.xploo-notification-btn-primary {
    background: var(--NOTIFICATION_BTN_PRIMARY_BG);
    color: var(--NOTIFICATION_BTN_PRIMARY_COLOR);
}

.xploo-notification-btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: var(--NOTIFICATION_BTN_PRIMARY_SHADOW);
}

.xploo-notification-btn-test {
    background: var(--NOTIFICATION_BTN_TEST_BG);
    color: var(--NOTIFICATION_BTN_TEST_COLOR);
}

.xploo-notification-btn-test:hover {
    transform: translateY(-2px);
    box-shadow: var(--NOTIFICATION_BTN_TEST_SHADOW);
}

.xploo-notification-btn-vibration {
    background: var(--NOTIFICATION_BTN_VIBRATION_BG);
    color: var(--NOTIFICATION_BTN_VIBRATION_COLOR);
}

.xploo-notification-btn-vibration:hover {
    transform: translateY(-2px);
    box-shadow: var(--NOTIFICATION_BTN_VIBRATION_SHADOW);
}

/* Admin-only buttons visibility */
.xploo-notification-btn-admin {
    display: none;
}

.xploo-notification-btn-admin.is-admin {
    display: inline-block;
}

/*
###############################################################################################################################################################
CACHE UPDATE NOTIFICATION MODAL
###############################################################################################################################################################
*/

.xploo-cache-update-modal {
    position: fixed;
    z-index: var(--CACHE_UPDATE_MODAL_Z_INDEX);
    color: var(--CACHE_UPDATE_MODAL_COLOR);
    font-family: var(--CACHE_UPDATE_MODAL_FONT_FAMILY);
    cursor: pointer;
    animation: var(--CACHE_UPDATE_MODAL_ANIMATION_DESKTOP);
    display: flex;
    justify-content: center;
}

.xploo-cache-update-modal.is-desktop {
    bottom: var(--CACHE_UPDATE_MODAL_DESKTOP_BOTTOM);
    right: var(--CACHE_UPDATE_MODAL_DESKTOP_RIGHT);
    min-width: var(--CACHE_UPDATE_MODAL_MIN_WIDTH_DESKTOP);
    max-width: var(--CACHE_UPDATE_MODAL_MAX_WIDTH);
}

.xploo-cache-update-modal.is-mobile {
    top: var(--CACHE_UPDATE_MODAL_MOBILE_TOP);
    left: var(--CACHE_UPDATE_MODAL_MOBILE_LEFT);
    right: var(--CACHE_UPDATE_MODAL_MOBILE_RIGHT);
    animation: var(--CACHE_UPDATE_MODAL_ANIMATION_MOBILE);
}

.xploo-cache-update-inner {
    background: var(--CACHE_UPDATE_MODAL_BG);
    backdrop-filter: blur(15px) saturate(180%);
    border-radius: var(--CACHE_UPDATE_MODAL_BORDER_RADIUS);
    padding: var(--CACHE_UPDATE_MODAL_PADDING);
    box-shadow: var(--CACHE_UPDATE_MODAL_BOX_SHADOW_DESKTOP);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--CACHE_UPDATE_MODAL_GAP);
    width: 100%;
    position: relative;
}

.xploo-cache-update-modal.is-mobile .xploo-cache-update-inner {
    border-radius: 0;
    box-shadow: var(--CACHE_UPDATE_MODAL_BOX_SHADOW_MOBILE);
    justify-content: space-between;
    max-width: var(--CACHE_UPDATE_MODAL_MAX_WIDTH);
    margin: 0 auto;
    width: 100%;
}

.xploo-cache-update-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--CACHE_UPDATE_MODAL_GAP);
    flex: 1;
    min-width: 0;
}

.xploo-cache-update-title {
    font-size: var(--CACHE_UPDATE_MODAL_TITLE_SIZE);
    font-weight: var(--CACHE_UPDATE_MODAL_TITLE_WEIGHT);
    margin: 0;
}

.xploo-cache-update-message {
    font-size: var(--CACHE_UPDATE_MODAL_MESSAGE_SIZE);
    opacity: var(--CACHE_UPDATE_MODAL_MESSAGE_OPACITY);
    line-height: 1.4;
    margin: 0;
}

.xploo-cache-update-hint {
    font-size: var(--CACHE_UPDATE_MODAL_HINT_SIZE);
    opacity: var(--CACHE_UPDATE_MODAL_HINT_OPACITY);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--CACHE_UPDATE_MODAL_HINT_ICON_MARGIN);
}

.xploo-cache-update-hint i {
    font-size: var(--CACHE_UPDATE_MODAL_HINT_SIZE);
}

.xploo-cache-update-action {
    background: var(--CACHE_UPDATE_MODAL_ACTION_BG);
    border: var(--CACHE_UPDATE_MODAL_ACTION_BORDER);
    color: var(--CACHE_UPDATE_MODAL_ACTION_COLOR);
    padding: var(--CACHE_UPDATE_MODAL_ACTION_PADDING);
    border-radius: var(--CACHE_UPDATE_MODAL_ACTION_RADIUS);
    font-size: var(--CACHE_UPDATE_MODAL_ACTION_FONT_SIZE);
    font-weight: var(--CACHE_UPDATE_MODAL_ACTION_FONT_WEIGHT);
    cursor: pointer;
    transition: var(--CACHE_UPDATE_MODAL_ACTION_TRANSITION);
    white-space: nowrap;
    font-family: inherit;
    line-height: 1.1;
}

.xploo-cache-update-action:hover,
.xploo-cache-update-action:focus {
    background: var(--CACHE_UPDATE_MODAL_ACTION_BG_HOVER);
}

.xploo-cache-update-action:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.4);
}

.xploo-cache-update-modal.is-desktop .xploo-cache-update-action {
    display: none;
}

.xploo-cache-update-modal.is-mobile .xploo-cache-update-hint {
    display: none;
}

.xploo-cache-update-modal:focus-visible {
    outline: none;
}


/*
###############################################################################################################################################################
ANIMATIONS
###############################################################################################################################################################
*/

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes slideDown {
    from {
        transform: translateY(-100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes slideUp {
    from {
        transform: translateY(0);
        opacity: 1;
    }
    to {
        transform: translateY(-100%);
        opacity: 0;
    }
}

@keyframes slideInUp {
    from {
        transform: translateY(100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes slideOutDown {
    from {
        transform: translateY(0);
        opacity: 1;
    }
    to {
        transform: translateY(100%);
        opacity: 0;
    }
}

@keyframes modalScaleIn {
    from {
        opacity: 0;
        transform: scale(0.7) translateY(30px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes modalFadeIn {
    from {
        opacity: 0;
        transform: scale(0.8) translateY(20px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes slideDownSuccess {
    from {
        transform: translateX(-50%) translateY(-100%);
        opacity: 0;
    }
    to {
        transform: translateX(-50%) translateY(0);
        opacity: 1;
    }
}

/*
###############################################################################################################################################################
RESPONSIVE
###############################################################################################################################################################
*/

/* Desktop - wider modal for instructions */
@media (min-width: 769px) {
    .xploo-pwa-modal-content.instructions {
        max-width: var(--PWA_MAX_WIDTH_INSTRUCTIONS_DESKTOP);
    }

    .xploo-pwa-instructions-content {
        padding: var(--PWA_INSTRUCTIONS_PADDING_DESKTOP) !important;
    }
}

/* Mobile - narrower modal */
@media (max-width: 768px) {
    .xploo-pwa-modal-content {
        max-width: var(--PWA_MAX_WIDTH_MODAL_MOBILE);
        padding: var(--PWA_MODAL_CONTENT_PADDING_MOBILE);
    }

    .xploo-pwa-modal-content.instructions {
        max-width: var(--PWA_MAX_WIDTH_INSTRUCTIONS_MOBILE);
    }
}

/* Responsive buttons */
@media (max-width: 768px) {
    .xploo-notification-settings-actions {
        flex-direction: column;
        width: var(--PWA_WIDTH_FULL);
    }

    .xploo-notification-btn {
        width: var(--PWA_WIDTH_FULL);
        text-align: center;
    }
}

@media (min-width: 769px) {
    .xploo-notification-settings-actions {
        flex-direction: row;
        justify-content: center;
    }
}

/*
###############################################################################################################################################################
UTILITY CLASSES
###############################################################################################################################################################
*/

/* Font Awesome Icons Support */
.xploo-pwa-modal-content .fas,
.xploo-pwa-modal-content .fab {
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands" !important;
    font-weight: 900;
}

/* Box Sizing Reset for Modal Content */
.xploo-pwa-modal-content * {
    box-sizing: border-box;
}

/*!*********************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./public/css/xploo_sensor_check.css ***!
  \*********************************************************************************************************************************************************************************************************/
/*
###############################################################################################################################################################
XPLOO SENSOR CHECK - MODALS & ALERTS
Styles for sensor and connectivity checking system
###############################################################################################################################################################
*/

/*
###############################################################################################################################################################
MODAL OVERLAY & BASE
###############################################################################################################################################################
*/

.xploo-sensor-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--SENSOR_MODAL_OVERLAY_BG);
    z-index: var(--SENSOR_MODAL_OVERLAY_Z_INDEX);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--SENSOR_MODAL_OVERLAY_PADDING);
    backdrop-filter: var(--SENSOR_MODAL_OVERLAY_BACKDROP);
    /* animation: var(--SENSOR_MODAL_OVERLAY_ANIMATION); */
    font-family: var(--SENSOR_FONT_FAMILY);
}

.xploo-sensor-modal-content {
    border-radius: var(--SENSOR_MODAL_CONTENT_RADIUS);
    max-width: var(--SENSOR_MODAL_CONTENT_MAX_WIDTH);
    width: 100%;
    position: relative;
    /* animation: var(--SENSOR_MODAL_CONTENT_ANIMATION); */
    /* box-shadow: var(--SENSOR_MODAL_CONTENT_BOX_SHADOW);
    border: var(--SENSOR_MODAL_CONTENT_BORDER); */
    padding: var(--SENSOR_MODAL_CONTENT_PADDING);
    text-align: center;
    color: var(--SENSOR_MODAL_CONTENT_COLOR);
}

/*
###############################################################################################################################################################
MODAL THEMES
###############################################################################################################################################################
*/

/* Critical - Offline, no connection */
.xploo-sensor-modal-content.critical {
    background: var(--SENSOR_MODAL_CRITICAL_BG);
    /* animation: sensorModalScaleIn 0.4s ease-out, sensorShake 0.5s ease-out 0.3s; */
}

/* Error/Warning - GPS denied, compass unavailable */
.xploo-sensor-modal-content.error {
    background: var(--SENSOR_MODAL_ERROR_BG);
}

.xploo-sensor-modal-content.warning {
    background: var(--SENSOR_MODAL_WARNING_BG);
}

/* Info/Instructions */
.xploo-sensor-modal-content.instructions {
    background: var(--SENSOR_MODAL_INSTRUCTIONS_BG);
    color: var(--SENSOR_MODAL_INSTRUCTIONS_COLOR);
}

/*
###############################################################################################################################################################
MODAL ELEMENTS
###############################################################################################################################################################
*/


/* Modal Icon */
.xploo-sensor-modal-icon {
    font-size: var(--SENSOR_MODAL_ICON_SIZE);
    margin-bottom: var(--SENSOR_MODAL_ICON_MARGIN);
    /* animation: var(--SENSOR_MODAL_ICON_ANIMATION); */
}

/* Modal Title */
.xploo-sensor-modal-title {
    font-size: var(--SENSOR_MODAL_TITLE_SIZE);
    font-weight: var(--SENSOR_MODAL_TITLE_WEIGHT);
    margin-bottom: var(--SENSOR_MODAL_TITLE_MARGIN);
    text-shadow: var(--SENSOR_MODAL_TITLE_SHADOW);
}

.xploo-sensor-modal-content.instructions .xploo-sensor-modal-title {
    text-shadow: none;
    color: var(--SENSOR_MODAL_INSTRUCTIONS_TITLE_COLOR);
    font-size: var(--SENSOR_MODAL_INSTRUCTIONS_TITLE_SIZE);
}

/*
###############################################################################################################################################################
WARNING LIST
###############################################################################################################################################################
*/

.xploo-sensor-warnings-list {
    margin-bottom: var(--SENSOR_WARNINGS_LIST_MARGIN_BOTTOM);
    text-align: left;
}

.xploo-sensor-warning-item {
    display: flex;
    align-items: center;
    padding: var(--SENSOR_WARNING_ITEM_PADDING);
    margin-bottom: var(--SENSOR_WARNING_ITEM_MARGIN_BOTTOM);
    background: var(--SENSOR_WARNING_ITEM_BG);
    border-radius: var(--SENSOR_WARNING_ITEM_BORDER_RADIUS);
    backdrop-filter: var(--SENSOR_WARNING_ITEM_BACKDROP);
    border-left: var(--SENSOR_WARNING_ITEM_BORDER_LEFT_WIDTH) solid var(--SENSOR_WARNING_ITEM_BORDER_LEFT_COLOR);
    transition: var(--SENSOR_WARNING_ITEM_TRANSITION);
}

.xploo-sensor-warning-item:hover {
    background: var(--SENSOR_WARNING_ITEM_BG_HOVER);
    transform: translateX(var(--SENSOR_WARNING_ITEM_TRANSLATE));
}

.xploo-sensor-warning-item.critical {
    border-left-color: var(--SENSOR_COLOR_CRITICAL);
    background: var(--SENSOR_WARNING_BG_CRITICAL);
}

.xploo-sensor-warning-item.high {
    border-left-color: var(--SENSOR_COLOR_HIGH);
    background: var(--SENSOR_WARNING_BG_HIGH);
}

.xploo-sensor-warning-item.medium {
    border-left-color: var(--SENSOR_COLOR_MEDIUM);
    background: var(--SENSOR_WARNING_BG_MEDIUM);
}

.xploo-sensor-warning-item.warning {
    border-left-color: var(--SENSOR_COLOR_WARNING);
    background: var(--SENSOR_WARNING_BG_WARNING);
}

.xploo-sensor-warning-item.low {
    border-left-color: var(--SENSOR_COLOR_LOW);
    background: var(--SENSOR_WARNING_BG_LOW);
}

.xploo-sensor-warning-icon {
    font-size: var(--SENSOR_WARNING_ICON_SIZE);
    margin-right: var(--SENSOR_WARNING_ICON_MARGIN);
    flex-shrink: 0;
}

.xploo-sensor-warning-message {
    font-size: var(--SENSOR_WARNING_MESSAGE_FONT_SIZE);
    line-height: var(--SENSOR_WARNING_MESSAGE_LINE_HEIGHT);
    font-weight: var(--SENSOR_WARNING_MESSAGE_FONT_WEIGHT);
}

/*
###############################################################################################################################################################
ACTION BUTTONS
###############################################################################################################################################################
*/

.xploo-sensor-actions {
    display: flex;
    flex-direction: column;
    gap: var(--SENSOR_ACTIONS_GAP);
    margin-top: var(--SENSOR_ACTIONS_MARGIN_TOP);
}

.xploo-sensor-action-btn {
    border: none;
    padding: var(--SENSOR_ACTION_BTN_PADDING);
    border-radius: var(--SENSOR_ACTION_BTN_RADIUS);
    font-size: var(--SENSOR_ACTION_BTN_FONT_SIZE);
    font-weight: var(--SENSOR_ACTION_BTN_FONT_WEIGHT);
    cursor: pointer;
    transition: var(--SENSOR_ACTION_BTN_TRANSITION);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--SENSOR_ACTION_BTN_GAP);
    font-family: var(--SENSOR_FONT_FAMILY);
}

/* Primary Button */
.xploo-sensor-action-btn.primary {
    background: var(--SENSOR_ACTION_BTN_PRIMARY_BG);
    color: var(--SENSOR_ACTION_BTN_PRIMARY_COLOR);
    box-shadow: var(--SENSOR_ACTION_BTN_PRIMARY_SHADOW);
}

.xploo-sensor-action-btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: var(--SENSOR_ACTION_BTN_PRIMARY_SHADOW_HOVER);
}

.xploo-sensor-modal-content.warning .xploo-sensor-action-btn.primary {
    color: var(--SENSOR_ACTION_BTN_PRIMARY_COLOR_WARNING);
}

.xploo-sensor-modal-content.instructions .xploo-sensor-action-btn.primary {
    background: var(--SENSOR_ACTION_BTN_PRIMARY_BG_INSTRUCTIONS);
    color: var(--SENSOR_ACTION_BTN_PRIMARY_COLOR_INSTRUCTIONS);
}

/* Secondary Button */
.xploo-sensor-action-btn.secondary {
    background: var(--SENSOR_ACTION_BTN_SECONDARY_BG);
    color: var(--SENSOR_ACTION_BTN_SECONDARY_COLOR);
    border: var(--SENSOR_ACTION_BTN_SECONDARY_BORDER);
}

.xploo-sensor-action-btn.secondary:hover {
    background: var(--SENSOR_ACTION_BTN_SECONDARY_BG_HOVER);
    transform: translateY(-2px);
}

.xploo-sensor-modal-content.instructions .xploo-sensor-action-btn.secondary {
    background: var(--SENSOR_ACTION_BTN_SECONDARY_BG_INSTRUCTIONS);
    color: var(--SENSOR_ACTION_BTN_SECONDARY_COLOR_INSTRUCTIONS);
    border: var(--SENSOR_ACTION_BTN_SECONDARY_BORDER_INSTRUCTIONS);
}

.xploo-sensor-modal-content.instructions .xploo-sensor-action-btn.secondary:hover {
    background: var(--SENSOR_ACTION_BTN_SECONDARY_BG_INSTRUCTIONS_HOVER);
    color: var(--SENSOR_ACTION_BTN_SECONDARY_COLOR_INSTRUCTIONS_HOVER);
}

/* Tertiary Button (Continue anyway) */
.xploo-sensor-action-btn.tertiary {
    background: transparent;
    color: var(--SENSOR_ACTION_BTN_TERTIARY_COLOR);
    border: none;
    font-size: var(--SENSOR_ACTION_BTN_TERTIARY_FONT_SIZE);
    padding: var(--SENSOR_ACTION_BTN_TERTIARY_PADDING);
}

.xploo-sensor-action-btn.tertiary:hover {
    color: var(--SENSOR_ACTION_BTN_TERTIARY_COLOR_HOVER);
    text-decoration: underline;
}

.xploo-sensor-modal-content.instructions .xploo-sensor-action-btn.tertiary {
    color: var(--SENSOR_ACTION_BTN_TERTIARY_COLOR_INSTRUCTIONS);
}

.xploo-sensor-modal-content.instructions .xploo-sensor-action-btn.tertiary:hover {
    color: var(--SENSOR_ACTION_BTN_TERTIARY_COLOR_INSTRUCTIONS_HOVER);
}

/*
###############################################################################################################################################################
INSTRUCTIONS
###############################################################################################################################################################
*/

.xploo-sensor-instructions {
    text-align: left;
    margin: var(--SENSOR_INSTRUCTIONS_MARGIN);
}

.xploo-sensor-instructions h4 {
    color: var(--SENSOR_INSTRUCTIONS_TITLE_COLOR);
    margin-bottom: var(--SENSOR_INSTRUCTIONS_TITLE_MARGIN);
    font-size: var(--SENSOR_INSTRUCTIONS_TITLE_SIZE);
    font-weight: var(--SENSOR_INSTRUCTIONS_TITLE_WEIGHT);
    text-align: var(--SENSOR_INSTRUCTIONS_TITLE_ALIGN);
}

.xploo-sensor-instructions h4 i {
    margin-right: var(--SENSOR_INSTRUCTIONS_TITLE_ICON_MARGIN);
}

.xploo-sensor-instruction-step {
    display: flex;
    align-items: center;
    padding: var(--SENSOR_INSTRUCTION_STEP_PADDING);
    margin-bottom: var(--SENSOR_INSTRUCTION_STEP_MARGIN);
    background: var(--SENSOR_INSTRUCTION_STEP_BG);
    border-radius: 10px;
    border-left: var(--SENSOR_INSTRUCTION_STEP_BORDER);
}

.xploo-sensor-step-number {
    background: var(--SENSOR_STEP_NUMBER_BG);
    color: var(--SENSOR_STEP_NUMBER_COLOR);
    border-radius: var(--SENSOR_STEP_NUMBER_RADIUS);
    width: var(--SENSOR_STEP_NUMBER_SIZE);
    height: var(--SENSOR_STEP_NUMBER_SIZE);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: var(--SENSOR_STEP_NUMBER_MARGIN);
    font-size: var(--SENSOR_STEP_NUMBER_FONT_SIZE);
    font-weight: var(--SENSOR_STEP_NUMBER_FONT_WEIGHT);
    flex-shrink: 0;
}

.xploo-sensor-instruction-step span:last-child {
    font-size: var(--SENSOR_INSTRUCTION_TEXT_FONT_SIZE);
    color: var(--SENSOR_INSTRUCTION_TEXT_COLOR);
}

/*
###############################################################################################################################################################
SUCCESS BANNER
###############################################################################################################################################################
*/

.xploo-sensor-success-banner {
    position: fixed;
    top: var(--SENSOR_SUCCESS_BANNER_TOP);
    left: 50%;
    transform: translateX(-50%);
    background: var(--SENSOR_SUCCESS_BANNER_BG);
    color: var(--SENSOR_SUCCESS_BANNER_COLOR);
    padding: var(--SENSOR_SUCCESS_BANNER_PADDING);
    border-radius: var(--SENSOR_SUCCESS_BANNER_RADIUS);
    box-shadow: var(--SENSOR_SUCCESS_BANNER_SHADOW);
    z-index: var(--SENSOR_SUCCESS_BANNER_Z_INDEX);
    font-family: var(--SENSOR_FONT_FAMILY);
    /* animation: var(--SENSOR_SUCCESS_BANNER_ANIMATION); */
    max-width: var(--SENSOR_SUCCESS_BANNER_MAX_WIDTH);
    text-align: center;
    display: flex;
    align-items: center;
    gap: var(--SENSOR_SUCCESS_BANNER_GAP);
}

.xploo-sensor-success-banner i {
    font-size: var(--SENSOR_SUCCESS_ICON_SIZE);
}

@keyframes slideDownSuccess {
    from {
        transform: translateX(-50%) translateY(-100%);
        opacity: 0;
    }
    to {
        transform: translateX(-50%) translateY(0);
        opacity: 1;
    }
}

/*
###############################################################################################################################################################
CONNECTION STATUS INDICATORS
###############################################################################################################################################################
*/

.xploo-sensor-connection-indicator {
    display: inline-flex;
    align-items: center;
    gap: var(--SENSOR_CONNECTION_GAP);
    padding: var(--SENSOR_CONNECTION_PADDING);
    border-radius: var(--SENSOR_CONNECTION_RADIUS);
    font-size: var(--SENSOR_CONNECTION_FONT_SIZE);
    font-weight: var(--SENSOR_CONNECTION_FONT_WEIGHT);
    margin: var(--SENSOR_CONNECTION_MARGIN);
}

.xploo-sensor-connection-indicator.online {
    background: var(--SENSOR_CONNECTION_ONLINE_BG);
    color: var(--SENSOR_CONNECTION_ONLINE_COLOR);
}

.xploo-sensor-connection-indicator.offline {
    background: var(--SENSOR_CONNECTION_OFFLINE_BG);
    color: var(--SENSOR_CONNECTION_OFFLINE_COLOR);
}

.xploo-sensor-connection-indicator.slow {
    background: var(--SENSOR_CONNECTION_SLOW_BG);
    color: var(--SENSOR_CONNECTION_SLOW_COLOR);
}

.xploo-sensor-connection-indicator i {
    font-size: var(--SENSOR_CONNECTION_ICON_SIZE);
}

/*
###############################################################################################################################################################
SENSOR STATUS BADGES
###############################################################################################################################################################
*/

.xploo-sensor-status-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--SENSOR_STATUS_BADGE_GAP);
    padding: var(--SENSOR_STATUS_BADGE_PADDING);
    border-radius: var(--SENSOR_STATUS_BADGE_RADIUS);
    font-size: var(--SENSOR_STATUS_BADGE_FONT_SIZE);
    font-weight: var(--SENSOR_STATUS_BADGE_FONT_WEIGHT);
    margin: var(--SENSOR_STATUS_BADGE_MARGIN);
}

.xploo-sensor-status-badge.available {
    background: var(--SENSOR_STATUS_AVAILABLE_BG);
    color: var(--SENSOR_STATUS_AVAILABLE_COLOR);
}

.xploo-sensor-status-badge.denied {
    background: var(--SENSOR_STATUS_DENIED_BG);
    color: var(--SENSOR_STATUS_DENIED_COLOR);
}

.xploo-sensor-status-badge.unavailable {
    background: var(--SENSOR_STATUS_UNAVAILABLE_BG);
    color: var(--SENSOR_STATUS_UNAVAILABLE_COLOR);
}

/*
###############################################################################################################################################################
ANIMATIONS
###############################################################################################################################################################
*/

@keyframes sensorFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes sensorModalScaleIn {
    from {
        opacity: 0;
        transform: scale(0.7) translateY(30px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes sensorPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

@keyframes sensorShake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
    20%, 40%, 60%, 80% { transform: translateX(5px); }
}

/*
###############################################################################################################################################################
RESPONSIVE
###############################################################################################################################################################
*/

@media (max-width: 768px) {
    .xploo-sensor-modal-content {
        max-width: var(--SENSOR_MODAL_MOBILE_MAX_WIDTH);
        padding: var(--SENSOR_MODAL_MOBILE_PADDING);
    }

    .xploo-sensor-modal-icon {
        font-size: var(--SENSOR_MODAL_ICON_SIZE_MOBILE);
    }

    .xploo-sensor-modal-title {
        font-size: var(--SENSOR_MODAL_TITLE_SIZE_MOBILE);
    }

    .xploo-sensor-warning-message {
        font-size: var(--SENSOR_WARNING_MESSAGE_FONT_SIZE_MOBILE);
    }

    .xploo-sensor-action-btn {
        padding: var(--SENSOR_ACTION_BTN_PADDING_MOBILE);
        font-size: var(--SENSOR_ACTION_BTN_FONT_SIZE_MOBILE);
    }
}

/*
###############################################################################################################################################################
UTILITY CLASSES
###############################################################################################################################################################
*/

/* Font Awesome Icons Support */
.xploo-sensor-modal-content .fas,
.xploo-sensor-modal-content .fab {
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands" !important;
    font-weight: 900;
}

/* Box Sizing Reset */
.xploo-sensor-modal-content * {
    box-sizing: border-box;
}

/*!*********************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./public/css/xploo_menu_sidebar.css ***!
  \*********************************************************************************************************************************************************************************************************/
/*
###############################################################################################################################################################
MENU SIDEBAR
###############################################################################################################################################################
*/

.dropdown {
	float: left;
	overflow: hidden;
	height: 100%;
}

.dropdown .dropbtn {
	height: 100%;
	border: none;
	border-radius: var(--BUTTON_BORDER_RADIUS);
	outline: none;
	color: white;
	padding: 10px 25px;
	background-color: inherit;
	font-family: inherit;
	margin: 0;
	white-space: nowrap;
    text-decoration: none;
}

.menu-sidebar {
    position: fixed;
    top: var(--HEADER_HEIGHT);
    right: 0;
    width: 350px;
    height: auto; /* height: calc(100vh - var(--HEADER_HEIGHT)); */
    background-color: var(--SEARCH_BAR_BACKGROUND_COLOR);
    backdrop-filter: blur(45px) saturate(180%);
    background-clip: padding-box;
    /* transform-origin: right center; */
    transform: translateX(100%) perspective(1000px) rotateY(90deg);
    will-change: transform;
    z-index: 15;
    /* transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1); */
    /* box-shadow: 
        -5px 0 25px rgba(0, 0, 0, 0.3),
        inset 0 0 2px rgba(255, 255, 255, 0.15),
        -20px 0 50px rgba(0, 0, 0, 0.2); */
    padding: 5px 20px;
    overflow-x: hidden;
    /* border-radius: var(--BUTTON_BORDER_RADIUS) 0 0 var(--BUTTON_BORDER_RADIUS);
    box-sizing: border-box; */
}

.menu-sidebar.active {
    transform: translateX(0) perspective(1000px) rotateY(0deg);
    right: 0;
    height: calc(100% - var(--MOBILE_NAV_HEIGHT))!important;
}

.menu-sidebar-item {
    border-radius: var(--BUTTON_BORDER_RADIUS);
    margin: 18px 0;
    transform: translateZ(20px);
    transition: transform 0.3s ease;
}

.menu-sidebar-item:hover {
    transform: translateZ(30px) scale(1.02);
}

.menu-sidebar-item:not(:last-child)::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 80%;
    height: 1px;
    background: linear-gradient(to right, transparent, var(--COLOR_SURFACE_80) 30%, var(--COLOR_SURFACE_80) 70%, transparent);
}

.menu-sidebar-button {
    width: 100%;
    padding: 15px 20px;
    background: transparent;
    border: none;
    color: white;
    text-align: left;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    transition: all 0.3s ease;
    font-size: 0.9rem;
    font-weight: bold;
    border-radius: var(--BUTTON_BORDER_RADIUS);
}

.menu-sidebar-button:hover,
.menu-sidebar-button:focus,
.menu-sidebar-button.active {
    background: linear-gradient(to right, var(--COLOR_ACTION_40), var(--COLOR_ACTION_60));
    color: white;
    box-shadow: 
    inset 4px 4px 8px rgba(0, 0, 0, 0.05),
    inset -4px -4px 8px rgba(255, 255, 255, 0.3);
}

.menu-sidebar-button:focus,
.menu-sidebar-button.active {
    font-weight: 400;
    border-radius: var(--BUTTON_BORDER_RADIUS) var(--BUTTON_BORDER_RADIUS) 0 0;
}

.menu-sidebar-submenu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 0 0 var(--BUTTON_BORDER_RADIUS) var(--BUTTON_BORDER_RADIUS);
}

.menu-sidebar-submenu.active {
    max-height: 500px;
}

.menu-sidebar-submenu a {
    display: block;
    padding: 12px 20px 12px 40px;
    color: white;
    text-decoration: none;
    transition: all 0.3s ease;
}

.menu-sidebar-submenu a:hover {
    background-image: linear-gradient(to right, var(--COLOR_ACTION_40), var(--COLOR_ACTION_60));
    color: white;
    box-shadow: 
    4px 4px 8px rgba(0, 0, 0, 0.15),
    -4px -4px 8px rgba(255, 255, 255, 0.1),
    inset 4px 4px 8px rgba(255, 255, 255, 0.2),
    inset -4px -4px 8px rgba(255, 255, 255, 0.3);

}

.arrow-down {
    width: 12px;
    height: 12px;
    fill: var(--COLOR_ACTION_50);
    transition: transform 0.3s ease;
}

.arrow-up {
    width: 12px;
    height: 12px;
    fill: var(--COLOR_ACTION_50);
    transition: transform 0.3s ease;
    transform: rotate(180deg);
}


.menu-sidebar-button.active .arrow-down {
    transform: rotate(180deg);
}

/* body {
    position: relative;  A NE PAS METTRE CAR CASSE L'IMPRESSION PDF (1 SEULE PAGE IMPRIMEE)
    overflow-x: hidden;
    width: 100%;
} */

/*
###############################################################################################################################################################
RESPONSIVE
###############################################################################################################################################################
*/

@media screen and (max-width: 896px) {
	.dropdown .dropbtn {
	display: none;
	padding: 10px 10px;
	}
}

@media screen and (max-width: 480px) {
    .menu-sidebar {
        width: 100%;
        right: -100%;
    }

    .menu-sidebar-item:not(:last-child)::after {
        width: 90%;
    }
}

@supports (backdrop-filter: none) {
    .menu-sidebar {
        backdrop-filter: blur(45px) saturate(180%);
    }
}
/*!******************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./public/css/xploo_assistant.css ***!
  \******************************************************************************************************************************************************************************************************/
.tooltip{
	position:absolute;
	width:250px;
	left:0;
	top:0;
	background-color:black;
	color:white;
	z-index:8;
	border:2px solid white;
	border-radius:5px;
	filter:progid:DXImageTransform.Microsoft.Alpha(opacity=70);
}
.tooltip p{
	margin:0px;	/* Added for Xploo */
	padding:10px;
	font-size:14px;
	text-shadow:none;
	font-style:italic;
}
.tooltip_arrow{
	position:absolute;
	background-color:transparent;
	background-repeat:no-repeat;
}
.tooltip_arrow_T,
.tooltip_arrow_B,
.tooltip_arrow_TL,
.tooltip_arrow_TR,
.tooltip_arrow_BL,
.tooltip_arrow_BR{
	background-image:url(/build/images/topbottom.b493b78a.png);
	width:13px;
	height:7px;
}
.tooltip_arrow_L,
.tooltip_arrow_R,
.tooltip_arrow_LT,
.tooltip_arrow_LB,
.tooltip_arrow_RT,
.tooltip_arrow_RB{
	background-image:url(/build/images/leftright.819f5af5.png);
	/* background-color: white; */
	width:7px;
	height:13px;
}
.tooltip_arrow_T{
	background-position:0px -7px;
	top:-7px;
	left:50%;
	margin-left:-3.5px;
}

/* Specific adjustment : shift the top arrow to the right for the day all button */
.tooltip.tooltip--day-all .tooltip_arrow_T {
    left: calc(50% - 100px);
}

/* Specific adjustment : slightly shift the top arrow to the left for the exclude list tooltip */
.tooltip.tooltip--exclude .tooltip_arrow_T {
    left: calc(50% - 12px);
}

/* Specific adjustment : shift the top arrow to the right for the view trips button */
.tooltip.tooltip--view-trips-button .tooltip_arrow_T {
    left: calc(50% + 45px);
}

/* Specific adjustment : shift the top arrow to the right for the burger menu button */
.tooltip.tooltip--burger-menu-button .tooltip_arrow_T {
    left: calc(50% + 90px);
}

.tooltip_arrow_TL{
	background-position:0px -7px;
	top:-7px;
	left:5px;
}
.tooltip_arrow_TR{
	background-position:0px -7px;
	top:-7px;
	right:5px;
}
.tooltip_arrow_B{
	background-position:0px 0px;
	bottom:-7px;
	left:50%;
	margin-left:-3.5px;
}
.tooltip_arrow_BL{
	background-position:0px 0px;
	bottom:-7px;
	left:5px;
}
.tooltip_arrow_BR{
	background-position:0px 0px;
	bottom:-7px;
	right:5px;
}
.tooltip_arrow_L{
	background-position:-7px 0px;
	top:50%;
	margin-top:-6.5px;
	left:-7px;
}
.tooltip_arrow_LT{
	background-position:-7px 0px;
	top:5px;
	left:-7px;
}
.tooltip_arrow_LB{
	background-position:-7px 0px;
	bottom:5px;
	left:-7px;
}
.tooltip_arrow_R{
	background-position:0px 0px;
	top:50%;
	margin-top:-6.5px;
	right:-7px;
}
.tooltip_arrow_RT{
	background-position:0px 0px;
	top:5px;
	right:-7px;
}
.tooltip_arrow_RB{
	background-position:0px 0px;
	bottom:5px;
	right:-7px;
}
/* Grey semi-transparent layer on the full page */
.overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000000;
    opacity: 0.50;
    z-index: 13;
    pointer-events: auto;     /* ensure overlay captures clicks */
}

.tourcontrols{
	position:fixed;
	top:20px;
	right:-300px;
	width:270px;
	background: var(--COLOR_SURFACE_10);
	color:var(--WHITE);
	text-shadow:0px 0px 1px #fff;
	font-size:16px;
	padding:10px;
	border-radius:5px;
	z-index:9999;
}
.tourcontrols p{
	margin:0px;	/* Added for Xploo */
	}
.tourcontrols a{
	font-size:11px;
	color:#f0f0f0;
	cursor:pointer;
	font-weight:normal;
	text-decoration:underline;
	margin:10px;
}
.tourcontrols a:hover{
	color:#fff;
}
/* .close{
	position:absolute;
	top:6px;
	right:7px;
	width:10px;
	height:10px;
	background:var(--COLOR_SURFACE_10) url(../images/close.gif) no-repeat center center;
	cursor:pointer;
} */

.tourcontrols p{
	padding:10px;
}
.button{
	white-space: nowrap;
	/* display:block; */	/* Removed for Xploo */
	/* float:left; */	/* Removed for Xploo */
	margin:10px 0px 10px 10px;
	cursor:pointer;
	background: #c63929;
	background: -moz-linear-gradient(0% 100% 90deg, #891100 0%, #B51700 50%, #c63929 50%, #EE432E 100%);
	background: -webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #ee432e), color-stop(0.5, #c63929), color-stop(0.5, #b51700), color-stop(1, #891100));
	border: 1px solid #951100;
	border-radius: 5px;
	box-shadow: inset 0px 0px 0px 1px rgba(255, 115, 100, 0.4), 0 1px 3px #333;
	color: #fff;
	font-size: 13px;
	font-weight: bold;
	letter-spacing: 1px;
	line-height: 1;
	padding:6px 7px;
	text-align: center;
	text-shadow: 0px -1px 1px rgba(0, 0, 0, .8);
}
.button:hover {
	background: #cb0500;
	background: -moz-linear-gradient(0% 100% 90deg, #a20601 0%, #cb0500 50%, #db504d 50%, #f37873 100%);
	background: -webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #f37873), color-stop(0.5, #db504d), color-stop(0.5, #cb0500), color-stop(1, #a20601));
}
.button:active{
	background: #b30300;
	background: -moz-linear-gradient(0% 100% 90deg, #700d00 0%, #9c1500 50%, #ad3224 50%, #d43c28 100%);
	background: -webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #d43c28), color-stop(0.5, #ad3224), color-stop(0.5, #9c1500), color-stop(1, #700d00));
	box-shadow: inset 0px 0px 0px 1px rgba(255, 115, 100, 0.4);
}

/*
###############################################################################################################################################################
ASSISTANT NEW STYLES
###############################################################################################################################################################
*/

.assist-window-new {
    position: fixed;
    background: var(--COLOR_SURFACE_20);
    /* background: linear-gradient(135deg, var(--COLOR_SURFACE_10) 0%, var(--DARK_BLUE) 50%, var(--DARKER_BLUE) 100%); */
    color: var(--COLOR_SURFACE_90);
    padding: 15px 20px;
    border-radius: 8px;
    border: 1px solid var(--COLOR_SURFACE_90);
    /* box-shadow: 0 4px 12px rgba(0,0,0,0.15); */
	box-shadow: 
	4px 4px 8px rgba(0, 0, 0, 0.25),
	-2px -2px 6px rgba(255, 255, 255, 0.1),
	inset 4px 4px 8px rgba(255, 255, 255, 0.2),
	inset -4px -4px 8px rgba(0, 0, 0, 0.2);
    z-index: 12;
    font-size: 14px;
    max-width: 350px;
    animation: assistFadeIn 0.5s ease-out;
    display: block;
}

@keyframes assistFadeIn {
    from {
        opacity: 0;
        transform: translateY(10px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/*
###############################################################################################################################################################
ASSISTANT OLD
###############################################################################################################################################################
*/

.assist-window {
	z-index:14;
    background-color: rgba(202, 202, 202, 0.3);
    backdrop-filter: blur(15px) saturate(180%);
	border-radius: var(--BUTTON_BORDER_RADIUS);
    left: 50%;
	transform: translateX(-50%);
	position: absolute;
	width: 50%;
	max-width: 500px;
    top: 50%;
    left: 50%;
    /* transform: translate(-50%,-50%); */
    /* padding: 3px 24px 3px 24px; */
}

.assist-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	/* background: var(--COLOR_SURFACE_30); */
    /* background-color: rgba(202, 202, 202, 0.3); */
    backdrop-filter: blur(15px) saturate(180%);
	color: var(--COLOR_FONT);
    padding: 0.8rem 1rem;
	border-radius: 50px;
}

.assist-body {
	display: inline-block;
}

.assist-body p {
	font-size: 0.8rem;
	padding: 0px 20px 0px 20px;
	color:var(--COLOR_FONT);
}

.assist-body label {
	font-size: 0.9rem;
	padding: 10px 2px 0px 10px;
	color:var(--COLOR_FONT);
}

.assist-body input {
	margin-left: 20px;
}

.assist-button-bar{
	display: flex;
    flex-wrap: nowrap;
    justify-content: space-evenly;
    padding: 0px 24px 10px 24px;
}

/*
###############################################################################################################################################################
RESPONSIVE STYLES
###############################################################################################################################################################
*/

/* Mobile responsive styles for assistant windows */
@media screen and (max-width: 896px) {
    .assist-window {
        width: 90%;
        max-width: 320px;
        padding: 0;
    }
    
    .assist-header {
        /* padding: 8px 16px; */
        font-size: 0.9rem;
    }
    
    .assist-body p {
        font-size: 0.75rem;
        padding: 8px 16px;
    }
    
    .assist-body label {
        font-size: 0.8rem;
        padding: 8px 2px 0px 8px;
    }
    
    .assist-body input {
        margin-left: 16px;
    }
    
    .assist-button-bar {
        padding: 8px 16px;
    }
    
    .assist-window-new {
        max-width: 280px;
        padding: 12px 16px;
        font-size: 13px;
    }
    
    /* Tooltip styles for mobile */
    .tooltip {
        max-width: 200px !important;
        padding: 8px 12px !important;
        font-size: 13px !important;
        border-radius: 6px !important;
    }
    
    .tooltip p {
        font-size: 13px !important;
        margin: 0 !important;
        line-height: 1.3 !important;
    }
}

/* Extra small mobile devices */
@media screen and (max-width: 480px) {
    .assist-window {
        width: 95%;
        max-width: 280px;
    }
    
    .assist-header {
        /* padding: 6px 12px; */
        font-size: 0.85rem;
    }
    
    .assist-body p {
        font-size: 0.7rem;
        padding: 6px 12px;
    }
    
    .assist-body label {
        font-size: 0.75rem;
        padding: 6px 2px 0px 6px;
    }
    
    .assist-body input {
        margin-left: 12px;
    }
    
    .assist-button-bar {
        padding: 6px 12px;
    }
    
    .assist-window-new {
        max-width: 250px;
        padding: 10px 14px;
        font-size: 12px;
    }
    
    /* Tooltip styles for extra small mobile devices */
    .tooltip {
        max-width: 150px !important;
        padding: 0px !important;
        font-size: 12px !important;
    }
    
    .tooltip p {
        font-size: 12px !important;
        line-height: 1.2 !important;
    }
}

/*!***************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./public/css/xploo_badges.css ***!
  \***************************************************************************************************************************************************************************************************/
/*
###############################################################################################################################################################
BADGES (to indicate feature status)
###############################################################################################################################################################
*/

.xploo-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--FONT-FAMILY);
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.25rem 0.5rem;
  border-radius: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  line-height: 1;
  white-space: nowrap;
  margin-left: 0.5rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  border: 1px solid transparent;
  transition: all 0.2s ease;
}

.xploo-badge:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
}

/* Badge "Nouveau" */
.xploo-badge--new {
  background: linear-gradient(135deg, var(--BADGE_NEW_GRADIENT_FROM), var(--BADGE_NEW_GRADIENT_TO));
  color: var(--BADGE_NEW_TEXT_COLOR);
  border-color: var(--BADGE_NEW_BORDER);
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
}

/* Badge "Bientôt" */
.xploo-badge--coming-soon {
  background: linear-gradient(135deg, var(--BADGE_COMING_SOON_GRADIENT_FROM), var(--BADGE_COMING_SOON_GRADIENT_TO));
  color: var(--BADGE_COMING_SOON_TEXT_COLOR);
  border-color: var(--BADGE_COMING_SOON_BORDER);
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
}

/* Badge "Populaire" */
.xploo-badge--popular {
  background: linear-gradient(135deg, var(--BADGE_POPULAR_GRADIENT_FROM), var(--BADGE_POPULAR_GRADIENT_TO));
  color: var(--BADGE_POPULAR_TEXT_COLOR);
  border-color: var(--BADGE_POPULAR_BORDER);
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
}

/* Badge "Beta" */
.xploo-badge--beta {
  background: linear-gradient(135deg, var(--BADGE_BETA_GRADIENT_FROM), var(--BADGE_BETA_GRADIENT_TO));
  color: var(--BADGE_BETA_TEXT_COLOR);
  border-color: var(--BADGE_BETA_BORDER);
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
}

.xploo-badge--pulse {
  animation: badge-pulse 2s 2;
}

@keyframes badge-pulse {
  0% {
    transform: scale(1);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  }
  50% {
    transform: scale(1.05);
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(255, 255, 255, 0.1);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  }
}

/*
###############################################################################################################################################################
RESPONSIVE
###############################################################################################################################################################
*/

@media screen and (max-width: 896px) {
  .xploo-badge {
    /* font-size: 0.6rem;
    padding: 0.2rem 0.5rem; */
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 0 !important;
    height: 0 !important;
  }
} 
/*!**************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[2]!./public/css/xploo_trips.css ***!
  \**************************************************************************************************************************************************************************************************/
/*
###############################################################################################################################################################
TRIPS
###############################################################################################################################################################
*/

:root {
    /* --primary-color: #ff7500;
    --primary-hover: #e65c00; */
    --secondary-color: #2c3e50;
    --accent-color: #ffd700;
    --light-color: #f8f9fa;
    --dark-color: #232526;
    --grey-color: #6c757d;
    --success-color: #28a745;
    --danger-color: #dc3545;
    --warning-color: #ffc107;
    --info-color: #17a2b8;
    --shadow-lg: 0 10px 20px rgba(0, 0, 0, 0.2), 0 6px 6px rgba(0, 0, 0, 0.15), inset 4px 4px 8px rgba(0, 0, 0, 0.05), inset -4px -4px 8px rgba(255, 255, 255, 0.3);
    --radius-sm: 5px;
    --radius-md: 10px;
    --radius-lg: 20px;
    --transition-fast: all 0.2s ease;
    --transition-normal: all 0.3s ease;
    --transition-slow: all 0.5s ease;
}

/*
###############################################################################################################################################################
PAGE LAYOUT
###############################################################################################################################################################
*/

.trips-container {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--COLOR_SURFACE_20);
    /* background-color: var(--LIGHTER_BLUE); */
    z-index: 1001;
    opacity: 0;
    transition: opacity 0.3s ease;
    flex-direction: column;
    overflow: hidden;
}

.trips-container.open {
    display: flex;
    opacity: 1;
}

.trips-container.closing {
    opacity: 0;
}

.trips-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	background-color: var(--COLOR_SURFACE_10);
	padding: 0.8rem 1rem;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.trips-title {
	display: flex;
	align-items: center;
	font-size: 1.1rem;
	font-weight: bold;
	margin: 0;
	color: var(--WHITE);
}

.trips-icon {
	font-size: 16px;
	margin-right: 8px;
	color: var(--COLOR_ACTION_50);
}

/* .close-btn {
    background-color:rgba(0, 0, 0, 0.5);
    border: none;
    color: var(--WHITE);
    cursor: pointer;
    font-size: 1.8rem;
    padding: 0;
    transition: var(--transition-normal);
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.close-btn:hover {
    color: var(--WHITE);
    background-color: var(--COLOR_ACTION_50);
} */

.trips-body {
	flex: 1;
	overflow-y: auto;
	padding: 2rem 5% 0rem 5%;
	color: var(--WHITE);
}

.dashboard-layout {
    display: flex;
    flex-direction: row;
    gap: 20px;
    width: 100%;
    max-width: 1550px;
    margin: 0 auto;
}

.trips-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/*
###############################################################################################################################################################
TRIPS CONTENT
###############################################################################################################################################################
*/

.trips-content-wrapper {
    margin-bottom: 20px;
}

.info-message {
    background-color: rgba(12, 37, 51, 0.4);
    border-left: 4px solid var(--COLOR_ACTION_50);
    padding: 15px;
    margin-bottom: 2rem;
    color: var(--BEIGE);
    border-radius: var(--radius-sm);
    font-size: 0.95rem;
    display: flex;
    align-items: center;
}

.info-message i {
    color: var(--COLOR_ACTION_50);
    margin-right: 10px;
    font-size: 1.2rem;
}

.view-controls {
    display: flex;
    gap: 10px;
    margin-top: 20px;
    justify-content: center;
}

.view-button {
    display: flex;
    align-items: center;
    padding: 8px 15px;
    background-color: rgba(255, 255, 255, 0.1);
    border: 1px solid var(--COLOR_SURFACE_40);
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-weight: 500;
    transition: var(--transition-normal);
    color: var(--BEIGE);
}

.view-button i {
    margin-right: 8px;
}

.view-button.active {
    background-color: var(--COLOR_ACTION_50);
    color: white;
    border-color: var(--COLOR_ACTION_50);
}

.view-button:hover:not(.active) {
    background-color: rgba(255, 255, 255, 0.2);
    border-color: var(--COLOR_ACTION_50);
    transform: translateY(-2px);
}

/*
###############################################################################################################################################################
VIEW CONTAINERS
###############################################################################################################################################################
*/

.view-container {
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.view-container.active {
    display: block;
    opacity: 1;
}

/*
###############################################################################################################################################################
LIST VIEW
###############################################################################################################################################################
*/

.table-responsive {
    background-color: var(--COLOR_SURFACE_90);
    border-radius: var(--radius-lg);
    padding: 30px 30px 10px 30px;
    overflow: hidden;
}

.table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: auto;
}

.table thead th {
    background-color: var(--BEIGE);
    color: var(--secondary-color);
    font-weight: 600;
    padding: 15px 10px;
    text-align: left;
    border-bottom: 2px solid #e9ecef;
    white-space: nowrap;
}

.table thead th:nth-child(1) { width: 20%; } /* Nom - plus large pour le contenu principal */
.table thead th:nth-child(2) { width: 15%; } /* Destination */
.table thead th:nth-child(3) { width: 17%; } /* Dates */
.table thead th:nth-child(4) { width: 8%; }  /* Durée - compact */
.table thead th:nth-child(5) { width: 8%; }  /* Voyageurs - compact */
.table thead th:nth-child(6) { width: 10%; } /* Créé */
.table thead th:nth-child(7) { width: 10%; } /* Modifié */
/* .table thead th:nth-child(8) { width: 12%; } /* Partagé (si présent) */
.table thead th:last-child { width: 10%; }   /* Actions - compact mais suffisant */

.table thead th:last-child, /* Actions */
.table thead th:nth-child(8), /* Partagé (si présent) */
.table td:nth-child(5) { /* Voyageurs */
    text-align: center;
    white-space: nowrap;
}

.table tbody tr {
    transition: var(--transition-normal);
    border-bottom: 1px solid var(--COLOR_SURFACE_80);
    background: var(--COLOR_SURFACE_90);
}

.table tbody tr:last-child {
    border-bottom: none;
}

.table tbody tr:hover {
    background-color: white;
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
}

.table td {
    padding: 25px 10px;
    vertical-align: middle;
    color: var(--COLOR_SURFACE_20);
}

.destination-badge, .duration-badge {
    display: inline-block;
    background: var(--COLOR_ACTION_50);
    /* background: linear-gradient(135deg, var(--primary-color), #ff9d50); */
    color: var(--BEIGE);
    padding: 5px 10px;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
}

.shared-badge {
    display: inline-block;
    background: linear-gradient(135deg, var(--success-color), #5ddf82);
    color: white;
    padding: 5px 10px;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    white-space: nowrap;
}

.not-shared-badge {
    display: inline-block;
    background-color: #e9ecef;
    color: var(--grey-color);
    padding: 5px 10px;
    border-radius: 20px;
    font-size: 0.85rem;
}

.trip-actions {
    display: flex;
    gap: 15px;
    justify-content: flex-start;
}

.action-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--grey-color);
    font-size: 1.2rem;
    transition: var(--transition-normal);
    padding: 8px;
    border-radius: 50%;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.view-trip-btn:hover {
    color: var(--info-color);
    background-color: rgba(52, 152, 219, 0.1);
}

.share-btn:hover {
    color: var(--warning-color);
    background-color: rgba(40, 167, 69, 0.1);
}

.rename-btn:hover {
    color: var(--success-color);
    background-color: rgba(255, 193, 7, 0.1);
}

.delete-btn:hover {
    color: var(--danger-color);
    background-color: rgba(220, 53, 69, 0.1);
}

.inline-form {
    display: inline;
}

/*
###############################################################################################################################################################
GRID VIEW
###############################################################################################################################################################
*/

.trips-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
    gap: 20px;
}

.trip-card {
    background-color: var(--BEIGE);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    transition: var(--transition-normal);
    display: flex;
    flex-direction: column;
    height: 100%;
}

.trip-card:hover {
    transform: translateY(-10px);
    box-shadow: var(--shadow-lg);
}

.trip-card-header {
    padding: 20px;
    background: var(--COLOR_ACTION_50);
    /* background: linear-gradient(135deg, var(--primary-color), #ff9d50); */
    color: white;
    position: relative;
}

.trip-card-header h3 {
    margin: 0 0 15px 0;
    font-weight: 700;
    font-size: 1.3rem;
}

.destination-tag {
    position: absolute;
    top: 20px;
    right: 20px;
    background-color: rgba(255, 255, 255, 0.2);
    padding: 5px 10px;
    border-radius: 20px;
    font-size: 0.85rem;
    backdrop-filter: blur(5px);
}

.trip-card-body {
    padding: 20px;
    flex-grow: 1;
}

.trip-info {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.trip-info p {
    margin: 0;
    color: var(--secondary-color);
    display: flex;
    align-items: center;
}

.trip-info p i {
    width: 20px;
    margin-right: 10px;
    color: var(--COLOR_ACTION_50);
}

.trip-card-footer {
    padding: 15px 20px;
    border-top: 1px solid #f1f3f5;
    display: flex;
    gap: 10px;
    justify-content: space-between;
}

.card-action-btn {
    flex: 1;
    padding: 8px 0;
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-weight: 500;
    font-size: 0.9rem;
    transition: var(--transition-normal);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.card-action-btn i {
    font-size: 0.85rem;
}

.card-action-btn.view-trip-btn {
    background-color: var(--info-color);
    color: white;
}

.card-action-btn.view-trip-btn:hover {
    background-color: #2980b9;
}

.card-action-btn.rename-btn {
    background-color: var(--success-color);
    color: white;
}

.card-action-btn.rename-btn:hover {
    background-color: #218838;
}

.card-action-btn.delete-btn {
    background-color: var(--danger-color);
    color: white;
}

.card-action-btn.delete-btn:hover {
    background-color: #bd2130;
}

.delete-form {
  position: absolute;   /* on le sort du flux */
  left: -9999px;        /* on le déplace hors écran */
  width: 1px;
  height: 1px;
  overflow: hidden;     /* on évite tout débordement */
}


/*
###############################################################################################################################################################
TIMELINE VIEW
###############################################################################################################################################################
*/

.timeline {
    position: relative;
    margin: 0 auto;
}

.timeline::after {
    content: '';
    position: absolute;
    width: 6px;
    background-color: #e9ecef;
    top: 0;
    bottom: 0;
    left: 50%;
    margin-left: -3px;
    border-radius: 3px;
}

.timeline-item {
    padding: 10px 40px;
    position: relative;
    width: 50%;
    box-sizing: border-box;
    margin-bottom: 30px;
}

.timeline-item::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    background-color: white;
    border: 4px solid var(--COLOR_ACTION_50);
    top: 15px;
    border-radius: 50%;
    z-index: 1;
    box-shadow: var(--shadow-lg);
}

.timeline-item.left {
    left: 0;
}

.timeline-item.right {
    left: 50%;
}

.timeline-item.left::after {
    right: -10px;
}

.timeline-item.right::after {
    left: -10px;
}

.timeline-content {
    background-color: var(--BEIGE);
    padding: 20px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    position: relative;
    transition: var(--transition-normal);
}

.timeline-content:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.timeline-date {
    position: absolute;
    top: -10px;
    background: var(--COLOR_ACTION_50);
    /* background: linear-gradient(135deg, var(--primary-color), #ff9d50); */
    color: white;
    border-radius: 20px;
    padding: 5px 15px;
    font-size: 0.85rem;
    font-weight: 500;
}

.timeline-item.left .timeline-date {
    right: 20px;
}

.timeline-item.right .timeline-date {
    left: 20px;
}

.timeline-content h3 {
    margin: 20px 0 15px 0;
    color: var(--secondary-color);
    font-weight: 600;
}

.timeline-badge {
    display: inline-block;
    background-color: #f8f9fa;
    color: var(--secondary-color);
    padding: 5px 10px;
    border-radius: var(--radius-sm);
    font-size: 0.9rem;
    margin-bottom: 15px;
}

.timeline-details {
    margin-bottom: 15px;
}

.timeline-details p {
    margin: 5px 0;
    color: var(--grey-color);
    display: flex;
    align-items: center;
}

.timeline-details p i {
    width: 20px;
    margin-right: 10px;
    color: var(--COLOR_ACTION_50);
}

.timeline-details p i.fa-share-alt {
    color: var(--success-color);
}

.timeline-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.timeline-btn {
    flex: 1;
    min-width: 100px;
    padding: 8px 15px;
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-weight: 500;
    font-size: 0.9rem;
    transition: var(--transition-normal);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.timeline-btn i {
    font-size: 0.85rem;
}

.timeline-btn.view-trip-btn {
    background-color: var(--info-color);
    color: white;
}

.timeline-btn.view-trip-btn:hover {
    background-color: #2980b9;
}

.timeline-btn.rename-btn {
    background-color: var(--success-color);
    color: white;
}

.timeline-btn.rename-btn:hover {
    background-color: #218838;
}

.timeline-btn.delete-btn {
    background-color: var(--danger-color);
    color: white;
}

.timeline-btn.delete-btn:hover {
    background-color: #bd2130;
}

.timeline-delete-form {
    flex: 1;
    min-width: 100px;
}

/*
###############################################################################################################################################################
EMPTY STATE
###############################################################################################################################################################
*/

.empty-state {
    text-align: center;
    padding: 50px 20px;
}

.empty-icon {
    font-size: 4rem;
    color: #d1d6db;
    margin-bottom: 20px;
}

.empty-state p {
    color: var(--grey-color);
    margin-bottom: 20px;
    font-size: 1.1rem;
}

.create-trip-btn {
    display: inline-block;
    background-color: var(--COLOR_ACTION_50) !important;
    color: white !important;
    padding: 10px 20px;
    border-radius: var(--radius-sm);
    text-decoration: none;
    font-weight: 500;
    transition: var(--transition-normal);
}

.create-trip-btn:hover {
    background-color: var(--COLOR_ACTION_40) !important;
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
    text-decoration: none;
}

/*
###############################################################################################################################################################
MODAL
###############################################################################################################################################################
*/

.modal {
    display: none; /* This will be changed to 'flex' by JavaScript to show the modal */
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(3px);
    align-items: center;
    justify-content: center;
}

.modal-content {
    background-color: var(--COLOR_SURFACE_20);
    width: 90%;
    max-width: 400px;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    z-index: 10000;
    position: relative;
}


.modal-content h2 {
    margin: 0;
    padding: 20px;
    color: var(--BEIGE);
    background-color: var(--COLOR_ACTION_50);
    font-size: 1.3rem;
    font-weight: 600;
    border-bottom: 1px solid #e9ecef;
}

.modal-body {
    padding: 40px;
}

.input-group {
    position: relative;
    margin-bottom: 40px;
}

.input-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--FORM_ICON_COLOR);
}

#modalInput {
    width: 100%;
    padding: 12px 10px 12px 35px;
    border: 1px solid #e9ecef;
    border-radius: var(--radius-sm);
    font-size: 1rem;
    transition: var(--transition-normal);
    background-color: var(--FORM_INPUT_BACKGROUND);
}

#modalInput:focus {
    outline: none;
    border-color: var(--COLOR_ACTION_50);
    box-shadow: 0 0 0 3px rgba(255, 117, 0, 0.2);
}

.modal-btn {
    width: 100%;
    padding: 12px;
    background-color: var(--COLOR_ACTION_50);
    color: white;
    border: none;
    border-radius: var(--radius-sm);
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
    transition: var(--transition-normal);
}

.modal-btn:hover {
    background-color: var(--COLOR_ACTION_40);
}

/*
###############################################################################################################################################################
SHARE
###############################################################################################################################################################
*/

.share-options {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.share-option {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px;
    border: none;
    border-radius: var(--radius-sm);
    font-weight: 500;
    cursor: pointer;
    transition: var(--transition-normal);
    color: white;
}

.share-option[data-platform="facebook"] {
    background-color: #3b5998;
}

.share-option[data-platform="twitter"] {
    background-color: #1da1f2;
}

.share-option[data-platform="whatsapp"] {
    background-color: #25d366;
}

.share-option[data-platform="email"] {
    background-color: #ea4335;
}

.share-option[data-platform="teams"] {
    background-color: #6264a7;
}

.share-option:hover {
    opacity: 0.9;
    transform: translateY(-2px);
}

.share-link-container {
    margin-bottom: 30px;
}

.share-link-container label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    color: var(--secondary-color);
}

.share-link-container .input-group {
    display: flex;
    margin-bottom: 0 !important;
}

.share-link-container input {
    flex: 1;
    padding: 10px 12px;
    border: 1px solid #e9ecef;
    border-right: none;
    border-radius: var(--radius-sm) 0 0 var(--radius-sm);
    font-size: 0.9rem;
    color: var(--COLOR_FONT);
}

.copy-link-btn {
    padding: 0 15px;
    background-color: var(--COLOR_ACTION_50);
    color: white;
    border: none;
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    cursor: pointer;
    transition: var(--transition-normal);
}

.copy-link-btn:hover {
    background-color: var(--COLOR_ACTION_40);
}

/* Styles pour l'affichage des boutons de partage dans la vue Grid */
.card-action-btn.share-btn {
    background-color: var(--warning-color);
    color: white;
}

.card-action-btn.share-btn:hover {
    background-color: #d39e00;
}

/* Styles pour l'affichage des boutons de partage dans la vue Timeline */
.timeline-btn.share-btn {
    background-color: var(--warning-color);
    color: white;
}

.timeline-btn.share-btn:hover {
    background-color: #d39e00;
}

/*
###############################################################################################################################################################
ANIMATIONS
###############################################################################################################################################################
*/

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes slideInFromLeft {
    from { opacity: 0; transform: translateX(-30px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes slideInFromRight {
    from { opacity: 0; transform: translateX(30px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes glowPulse {
    0% { box-shadow: 0 0 0 0 rgba(255, 117, 0, 0.4); }
    70% { box-shadow: 0 0 0 15px rgba(255, 117, 0, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 117, 0, 0); }
}

/*
###############################################################################################################################################################
RESPONSIVE
###############################################################################################################################################################
*/

@media (max-width: 1200px) {
    .timeline::after {
        left: 31px;
    }
    
    .timeline-item {
        width: 100%;
        padding-left: 70px;
        padding-right: 25px;
    }
    
    .timeline-item.right {
        left: 0;
    }
    
    .timeline-item.left::after,
    .timeline-item.right::after {
        left: 21px;
    }
    
    .timeline-item.left .timeline-date,
    .timeline-item.right .timeline-date {
        left: 70px;
    }
}

@media (max-width: 992px) {
    .dashboard-layout {
        flex-direction: column;
    }
}

@media (max-width: 768px) {
    .view-controls {
        justify-content: flex-start;
        flex-wrap: wrap;
    }
    
    .table-responsive {
        padding: 10px;
        background-color: transparent;
    }
    
    .table thead {
        display: none;
    }
    
    .table tbody tr {
        display: block;
        margin-bottom: 30px;
        border: 1px solid #e9ecef;
        border-radius: var(--radius-md);
        padding: 15px;
    }
    
    .table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        text-align: right;
        padding: 5px 0;
        border-bottom: 1px solid #f1f3f5;
    }
    
    .table td:last-child {
        border-bottom: none;
    }
    
    .table td::before {
        content: attr(data-label);
        font-weight: 600;
        text-align: left;
        color: var(--secondary-color);
    }
    
    .table td[data-label="Voyageurs"] {
        justify-content: space-between;
        gap: 5px;
    }
    
    .table td[data-label="Voyageurs"]::before {
        text-align: left;
        margin-right: auto;
    }
    
    .table td[data-label="Partagé avec"] {
        justify-content: space-between;
    }
    
    .table td[data-label="Partagé avec"]::before {
        text-align: left;
        margin-right: auto;
    }

    td[data-label="Voyageurs"] i.fa-user,
    td[data-label="Voyageurs"] i.fa-users {
        margin-left: 5px;
    }
    
    .trips-grid {
        grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    }
    
    .view-controls {
        flex-wrap: wrap;
    }
    
    .view-button {
        flex: 1;
    }
    
    .timeline-actions {
        flex-direction: column;
    }
    
    .timeline-btn {
        width: 100%;
    }
    
    .timeline-delete-form {
        width: 100%;
    }
}

@media (max-width: 576px) {
    .dashboard-layout {
        gap: 15px;
    }
    
    .trip-actions {
        flex-wrap: wrap;
    }
    
    .action-btn {
        flex: 1;
    }

    /* Ensure modal stays centered on mobile devices */
    .modal-content {
        width: 90%;
        max-width: 90%;
    }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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O1FBQ0ksZUFBZTtJQUNuQjs7SUFFQTtRQUNJLE9BQU87SUFDWDs7SUFFQTtRQUNJLHNCQUFzQjtJQUMxQjs7SUFFQTtRQUNJLFdBQVc7SUFDZjs7SUFFQTtRQUNJLFdBQVc7SUFDZjtBQUNKOztBQUVBO0lBQ0k7UUFDSSxTQUFTO0lBQ2I7O0lBRUE7UUFDSSxlQUFlO0lBQ25COztJQUVBO1FBQ0ksT0FBTztJQUNYOztJQUVBLGtEQUFrRDtJQUNsRDtRQUNJLFVBQVU7UUFDVixjQUFjO0lBQ2xCO0FBQ0osQyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3B1YmxpYy9jc3MvdzMuY3NzIiwid2VicGFjazovLy8uL3B1YmxpYy9jc3MveHBsb29fdmFyaWFibGVzLmNzcyIsIndlYnBhY2s6Ly8vLi9wdWJsaWMvY3NzL3hwbG9vX2dsb2JhbC5jc3MiLCJ3ZWJwYWNrOi8vLy4vcHVibGljL2Nzcy94cGxvb19nbG9iYWxfZGVmZXIuY3NzIiwid2VicGFjazovLy8uL3B1YmxpYy9jc3MveHBsb29fY29va2llLmNzcyIsIndlYnBhY2s6Ly8vLi9wdWJsaWMvY3NzL3hwbG9vX2hlYWRlci5jc3MiLCJ3ZWJwYWNrOi8vLy4vcHVibGljL2Nzcy94cGxvb19mb290ZXIuY3NzIiwid2VicGFjazovLy8uL3B1YmxpYy9jc3MveHBsb29fbm90aWZpY2F0aW9ucy5jc3MiLCJ3ZWJwYWNrOi8vLy4vcHVibGljL2Nzcy94cGxvb19zZW5zb3JfY2hlY2suY3NzIiwid2VicGFjazovLy8uL3B1YmxpYy9jc3MveHBsb29fbWVudV9zaWRlYmFyLmNzcyIsIndlYnBhY2s6Ly8vLi9wdWJsaWMvY3NzL3hwbG9vX2Fzc2lzdGFudC5jc3MiLCJ3ZWJwYWNrOi8vLy4vcHVibGljL2Nzcy94cGxvb19iYWRnZXMuY3NzIiwid2VicGFjazovLy8uL3B1YmxpYy9jc3MveHBsb29fdHJpcHMuY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIFczLkNTUyAyLjYxIGJ5IEphbiBFZ2lsIGFuZCBCb3JnZSBSZWZzbmVzLiBEbyBub3QgcmVtb3ZlIHRoaXMgbGluZSAqL1xuKnstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9XG4vKiBFeHRyYWN0IGZyb20gbm9ybWFsaXplLmNzcyBieSBOaWNvbGFzIEdhbGxhZ2hlciBhbmQgSm9uYXRoYW4gTmVhbCBnaXQuaW8vbm9ybWFsaXplICovXG5odG1sey1tcy10ZXh0LXNpemUtYWRqdXN0OjEwMCU7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCV9Ym9keXttYXJnaW46MH1cbmFydGljbGUsYXNpZGUsZGV0YWlscyxmaWdjYXB0aW9uLGZpZ3VyZSxmb290ZXIsaGVhZGVyLGhncm91cCxtYWluLG1lbnUsbmF2LHNlY3Rpb24sc3VtbWFyeXtkaXNwbGF5OmJsb2NrfVxuYXVkaW8sY2FudmFzLHZpZGVve2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfVxuYXVkaW86bm90KFtjb250cm9sc10pe2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MH1baGlkZGVuXSx0ZW1wbGF0ZXtkaXNwbGF5Om5vbmV9XG5he2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9YTphY3RpdmUsYTpob3ZlcntvdXRsaW5lOjB9YWJiclt0aXRsZV17Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkfVxuZGZue2ZvbnQtc3R5bGU6aXRhbGljfW1hcmt7YmFja2dyb3VuZDojZmYwO2NvbG9yOiMwMDB9XG5zbWFsbHtmb250LXNpemU6ODAlfXN1YixzdXB7Zm9udC1zaXplOjc1JTtsaW5lLWhlaWdodDowO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfVxuc3Vwe3RvcDotMC41ZW19c3Vie2JvdHRvbTotMC4yNWVtfVxuaW1ne2JvcmRlcjowfXN2Zzpub3QoOnJvb3Qpe292ZXJmbG93OmhpZGRlbn1maWd1cmV7bWFyZ2luOjFlbSA0MHB4fVxuaHJ7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3h9XG5jb2RlLGtiZCxwcmUsc2FtcHtmb250LWZhbWlseTptb25vc3BhY2UsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19XG5idXR0b24saW5wdXQsc2VsZWN0LHRleHRhcmVhe2ZvbnQ6aW5oZXJpdDttYXJnaW46MH1cbmJ1dHRvbntvdmVyZmxvdzp2aXNpYmxlfWJ1dHRvbixzZWxlY3R7dGV4dC10cmFuc2Zvcm06bm9uZX1cbmJ1dHRvbixodG1sIGlucHV0W3R5cGU9YnV0dG9uXSxpbnB1dFt0eXBlPXJlc2V0XSxpbnB1dFt0eXBlPXN1Ym1pdF17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtjdXJzb3I6cG9pbnRlcn1cbmJ1dHRvbltkaXNhYmxlZF0saHRtbCBpbnB1dFtkaXNhYmxlZF17Y3Vyc29yOmRlZmF1bHR9XG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXJ7Ym9yZGVyOjA7cGFkZGluZzowfVxuaW5wdXRbdHlwZT1jaGVja2JveF0saW5wdXRbdHlwZT1yYWRpb117cGFkZGluZzowfVxuaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31cbmlucHV0W3R5cGU9c2VhcmNoXXtib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveH1cbmlucHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixpbnB1dFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9XG5maWVsZHNldHtib3JkZXI6MXB4IHNvbGlkICNjMGMwYzA7bWFyZ2luOjAgMnB4O3BhZGRpbmc6LjM1ZW0gLjYyNWVtIC43NWVtfVxubGVnZW5ke2JvcmRlcjowO3BhZGRpbmc6MH1wcmUsdGV4dGFyZWF7b3ZlcmZsb3c6YXV0b31cbi8qRW5kIGV4dHJhY3QgZnJvbSBub3JtYWxpemUuY3NzKi9cbmh0bWwsYm9keXtmb250LWZhbWlseTpWZXJkYW5hLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE1cHg7bGluZS1oZWlnaHQ6MS41fWh0bWx7b3ZlcmZsb3cteDpoaWRkZW59XG5oMSxoMixoMyxoNCxoNSxoNiwudzMtc2xpbSwudzMtd2lkZXtmb250LWZhbWlseTpcIlNlZ29lIFVJXCIsQXJpYWwsc2Fucy1zZXJpZn1cbmgxe2ZvbnQtc2l6ZTozNnB4fWgye2ZvbnQtc2l6ZTozMHB4fWgze2ZvbnQtc2l6ZToyNHB4fWg0e2ZvbnQtc2l6ZToyMHB4fWg1e2ZvbnQtc2l6ZToxOHB4fWg2e2ZvbnQtc2l6ZToxNnB4fVxuLnczLXNlcmlme2ZvbnQtZmFtaWx5OlwiVGltZXMgTmV3IFJvbWFuXCIsVGltZXMsc2VyaWZ9XG5oMSxoMixoMyxoNCxoNSxoNntmb250LXdlaWdodDo0MDA7bWFyZ2luOjEwcHggMH0udzMtd2lkZXtsZXR0ZXItc3BhY2luZzo0cHh9XG5oMSBhLGgyIGEsaDMgYSxoNCBhLGg1IGEsaDYgYXtmb250LXdlaWdodDppbmhlcml0fVxuaHJ7aGVpZ2h0OjA7Ym9yZGVyOjA7Ym9yZGVyLXRvcDoxcHggc29saWQgI2VlZTttYXJnaW46MjBweCAwfVxuaW1ne21hcmdpbi1ib3R0b206LTVweH1he2NvbG9yOmluaGVyaXR9XG50YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Ym9yZGVyLXNwYWNpbmc6MDt3aWR0aDoxMDAlO2Rpc3BsYXk6dGFibGV9XG50YWJsZSx0aCx0ZHtib3JkZXI6bm9uZX1cbi53My10YWJsZS1hbGx7Ym9yZGVyOjFweCBzb2xpZCAjY2NjfVxuLnczLWJvcmRlcmVkIHRyLC53My10YWJsZS1hbGwgdHJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RkZH1cbi53My1zdHJpcGVkIHRib2R5IHRyOm50aC1jaGlsZChldmVuKXtiYWNrZ3JvdW5kLWNvbG9yOiNmMWYxZjF9XG4udzMtdGFibGUtYWxsIHRyOm50aC1jaGlsZChvZGQpe2JhY2tncm91bmQtY29sb3I6I2ZmZn1cbi53My10YWJsZS1hbGwgdHI6bnRoLWNoaWxkKGV2ZW4pe2JhY2tncm91bmQtY29sb3I6I2YxZjFmMX1cbi53My1ob3ZlcmFibGUgdGJvZHkgdHI6aG92ZXIsLnczLXVsLnczLWhvdmVyYWJsZSBsaTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNjY2N9XG4udzMtY2VudGVyZWQgdHIgdGgsLnczLWNlbnRlcmVkIHRyIHRke3RleHQtYWxpZ246Y2VudGVyfVxuLnczLXRhYmxlIHRkLC53My10YWJsZSB0aCwudzMtdGFibGUtYWxsIHRkLC53My10YWJsZS1hbGwgdGh7cGFkZGluZzo2cHggOHB4O2Rpc3BsYXk6dGFibGUtY2VsbDt0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ246dG9wfVxuLnczLXRhYmxlIHRoOmZpcnN0LWNoaWxkLC53My10YWJsZSB0ZDpmaXJzdC1jaGlsZCwudzMtdGFibGUtYWxsIHRoOmZpcnN0LWNoaWxkLC53My10YWJsZS1hbGwgdGQ6Zmlyc3QtY2hpbGR7cGFkZGluZy1sZWZ0OjE2cHh9XG4udzMtYnRuLC53My1idG4tYmxvY2t7Ym9yZGVyOm5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3V0bGluZTowO3BhZGRpbmc6NnB4IDE2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO292ZXJmbG93OmhpZGRlbjt0ZXh0LWRlY29yYXRpb246bm9uZSFpbXBvcnRhbnQ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7dGV4dC1hbGlnbjpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwfVxuLnczLWJ0bi53My1kaXNhYmxlZCwudzMtYnRuLWJsb2NrLnczLWRpc2FibGVkLC53My1idG4tZmxvYXRpbmcudzMtZGlzYWJsZWQsLnczLWJ0bjpkaXNhYmxlZCwudzMtYnRuLWZsb2F0aW5nOmRpc2FibGVkLC53My1idG4tZmxvYXRpbmctbGFyZ2UudzMtZGlzYWJsZWQsLnczLWJ0bi1mbG9hdGluZy1sYXJnZTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTowLjN9XG4udzMtYnRuLnczLWRpc2FibGVkICosLnczLWJ0bi1ibG9jay53My1kaXNhYmxlZCwudzMtYnRuLWZsb2F0aW5nLnczLWRpc2FibGVkICosLnczLWJ0bjpkaXNhYmxlZCAqLC53My1idG4tZmxvYXRpbmc6ZGlzYWJsZWQgKntwb2ludGVyLWV2ZW50czpub25lfVxuLnczLWJ0bi53My1kaXNhYmxlZDpob3ZlciwudzMtYnRuLWJsb2NrLnczLWRpc2FibGVkOmhvdmVyLC53My1idG46ZGlzYWJsZWQ6aG92ZXIsLnczLWJ0bi1mbG9hdGluZy53My1kaXNhYmxlZDpob3ZlciwudzMtYnRuLWZsb2F0aW5nOmRpc2FibGVkOmhvdmVyLFxuLnczLWJ0bi1mbG9hdGluZy1sYXJnZS53My1kaXNhYmxlZDpob3ZlciwudzMtYnRuLWZsb2F0aW5nLWxhcmdlOmRpc2FibGVkOmhvdmVye2JveC1zaGFkb3c6bm9uZX1cbi53My1idG46aG92ZXIsLnczLWJ0bi1ibG9jazpob3ZlciwudzMtYnRuLWZsb2F0aW5nOmhvdmVyLC53My1idG4tZmxvYXRpbmctbGFyZ2U6aG92ZXJ7Ym94LXNoYWRvdzowIDhweCAxNnB4IDAgcmdiYSgwLDAsMCwwLjIpLDAgNnB4IDIwcHggMCByZ2JhKDAsMCwwLDAuMTkpfVxuLnczLWJ0bi1ibG9ja3t3aWR0aDoxMDAlfVxuLnczLWJ0biwudzMtYnRuLWZsb2F0aW5nLC53My1idG4tZmxvYXRpbmctbGFyZ2UsLnczLWNsb3NlbmF2LC53My1vcGVubmF2ey13ZWJraXQtdG91Y2gtY2FsbG91dDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTsta2h0bWwtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0gICBcbi53My1idG4tZmxvYXRpbmcsLnczLWJ0bi1mbG9hdGluZy1sYXJnZXtkaXNwbGF5OmlubGluZS1ibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwMDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47ei1pbmRleDoxO3BhZGRpbmc6MDtib3JkZXItcmFkaXVzOjUwJTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MjRweH1cbi53My1idG4tZmxvYXRpbmd7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtsaW5lLWhlaWdodDo0MHB4fVxuLnczLWJ0bi1mbG9hdGluZy1sYXJnZXt3aWR0aDo1NnB4O2hlaWdodDo1NnB4O2xpbmUtaGVpZ2h0OjU2cHh9XG4udzMtYnRuLWdyb3VwIC53My1idG57ZmxvYXQ6bGVmdH1cbi53My1idG4udzMtcmlwcGxle3Bvc2l0aW9uOnJlbGF0aXZlfVxuLnczLXJpcHBsZTphZnRlcntjb250ZW50OlwiXCI7YmFja2dyb3VuZDojOTBFRTkwO2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246YWJzb2x1dGU7cGFkZGluZy10b3A6MzAwJTtwYWRkaW5nLWxlZnQ6MzUwJTttYXJnaW4tbGVmdDotMjBweCFpbXBvcnRhbnQ7bWFyZ2luLXRvcDotMTIwJTtvcGFjaXR5OjA7dHJhbnNpdGlvbjouOHN9XG4udzMtcmlwcGxlOmFjdGl2ZTphZnRlcntwYWRkaW5nOjA7bWFyZ2luOjA7b3BhY2l0eToxO3RyYW5zaXRpb246MHN9XG4udzMtYmFkZ2UsLnczLXRhZywudzMtc2lnbntiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Y29sb3I6I2ZmZjtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLWxlZnQ6OHB4O3BhZGRpbmctcmlnaHQ6OHB4O3RleHQtYWxpZ246Y2VudGVyfVxuLnczLWJhZGdle2JvcmRlci1yYWRpdXM6NTAlfVxudWwudzMtdWx7bGlzdC1zdHlsZS10eXBlOm5vbmU7cGFkZGluZzowO21hcmdpbjowfVxudWwudzMtdWwgbGl7cGFkZGluZzo2cHggMnB4IDZweCAxNnB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGR9XG51bC53My11bCBsaTpsYXN0LWNoaWxke2JvcmRlci1ib3R0b206bm9uZX1cbi53My1pbWFnZSwudzMtdG9vbHRpcCwudzMtZGlzcGxheS1jb250YWluZXJ7cG9zaXRpb246cmVsYXRpdmV9XG5pbWcudzMtaW1hZ2UsLnczLWltYWdlIGltZ3ttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b31cbi53My1pbWFnZSAudzMtdGl0bGV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjhweDtsZWZ0OjE2cHg7Y29sb3I6I2ZmZjtmb250LXNpemU6MjBweH1cbi53My1mbHVpZHttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b31cbi53My10b29sdGlwIC53My10ZXh0e2Rpc3BsYXk6bm9uZX1cbi53My10b29sdGlwOmhvdmVyIC53My10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfVxuLnczLW5hdmJhcntsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7b3ZlcmZsb3c6aGlkZGVufVxuLnczLW5hdmJhciBsaXtmbG9hdDpsZWZ0fS53My1uYXZiYXIgbGkgYXtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6OHB4IDE2cHh9LnczLW5hdmJhciBsaSBhOmhvdmVye2NvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjojY2NjfVxuLnczLW5hdmJhciAudzMtZHJvcGRvd24taG92ZXIsLnczLW5hdmJhciAudzMtZHJvcGRvd24tY2xpY2t7cG9zaXRpb246c3RhdGljfVxuLnczLW5hdmJhciAudzMtZHJvcGRvd24taG92ZXI6aG92ZXIsLnczLW5hdmJhciAudzMtZHJvcGRvd24taG92ZXI6Zmlyc3QtY2hpbGQsLnczLW5hdmJhciAudzMtZHJvcGRvd24tY2xpY2s6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojY2NjO2NvbG9yOiMwMDB9XG4udzMtbmF2YmFyIGEsLnczLXRvcG5hdiBhLC53My1zaWRlbmF2IGEsLnczLWRyb3BuYXYgYSwudzMtZHJvcGRvd24tY29udGVudCBhLC53My1hY2NvcmRpb24tY29udGVudCBhe3RleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudH1cbi53My1uYXZiYXIgLnczLW9wZW5uYXYudzMtcmlnaHR7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50fS53My10b3BuYXZ7cGFkZGluZzo4cHggOHB4fVxuLnczLXRvcG5hdiBhe3BhZGRpbmc6MCA4cHg7Ym9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7LXdlYmtpdC10cmFuc2l0aW9uOmJvcmRlci1ib3R0b20gLjNzO3RyYW5zaXRpb246Ym9yZGVyLWJvdHRvbSAuM3N9XG4udzMtdG9wbmF2IGE6aG92ZXJ7Ym9yZGVyLWJvdHRvbTozcHggc29saWQgI2ZmZn0udzMtdG9wbmF2IC53My1kcm9wZG93bi1ob3ZlciBhe2JvcmRlci1ib3R0b206MH1cbi53My1vcGVubmF2LC53My1jbG9zZW5hdntjb2xvcjppbmhlcml0fS53My1vcGVubmF2OmhvdmVyLC53My1jbG9zZW5hdjpob3ZlcntjdXJzb3I6cG9pbnRlcjtvcGFjaXR5OjAuOH1cbi53My1idG4sLnczLWJ0bi1mbG9hdGluZywudzMtYnRuLWZsb2F0aW5nLWxhcmdlLC53My1idG4tYmxvY2ssLnczLWhvdmVyLXNoYWRvdywudzMtaG92ZXItb3BhY2l0eSxcbi53My1uYXZiYXIgYSwudzMtc2lkZW5hdiBhLC53My1kcm9wbmF2IGEsLnczLXBhZ2luYXRpb24gbGkgYSwudzMtaG92ZXJhYmxlIHRib2R5IHRyLC53My1ob3ZlcmFibGUgbGksLnczLWFjY29yZGlvbi1jb250ZW50IGEsLnczLWRyb3Bkb3duLWNvbnRlbnQgYSwudzMtZHJvcGRvd24tY2xpY2s6aG92ZXIsLnczLWRyb3Bkb3duLWhvdmVyOmhvdmVyLC53My1vcGVubmF2LC53My1jbG9zZW5hdiwudzMtY2xvc2VidG4sXG4udzMtaG92ZXItYW1iZXIsLnczLWhvdmVyLWFxdWEsLnczLWhvdmVyLWJsdWUsLnczLWhvdmVyLWxpZ2h0LWJsdWUsLnczLWhvdmVyLWJyb3duLC53My1ob3Zlci1jeWFuLC53My1ob3Zlci1ibHVlLWdyZXksLnczLWhvdmVyLWdyZWVuLC53My1ob3Zlci1saWdodC1ncmVlbiwudzMtaG92ZXItaW5kaWdvLC53My1ob3Zlci1raGFraSwudzMtaG92ZXItbGltZSwudzMtaG92ZXItb3JhbmdlLC53My1ob3Zlci1kZWVwLW9yYW5nZSwudzMtaG92ZXItcGluayxcbi53My1ob3Zlci1wdXJwbGUsLnczLWhvdmVyLWRlZXAtcHVycGxlLC53My1ob3Zlci1yZWQsLnczLWhvdmVyLXNhbmQsLnczLWhvdmVyLXRlYWwsLnczLWhvdmVyLXllbGxvdywudzMtaG92ZXItd2hpdGUsLnczLWhvdmVyLWJsYWNrLC53My1ob3Zlci1ncmV5LC53My1ob3Zlci1saWdodC1ncmV5LC53My1ob3Zlci1kYXJrLWdyZXksLnczLWhvdmVyLXRleHQtYW1iZXIsLnczLWhvdmVyLXRleHQtYXF1YSwudzMtaG92ZXItdGV4dC1ibHVlLC53My1ob3Zlci10ZXh0LWxpZ2h0LWJsdWUsXG4udzMtaG92ZXItdGV4dC1icm93biwudzMtaG92ZXItdGV4dC1jeWFuLC53My1ob3Zlci10ZXh0LWJsdWUtZ3JleSwudzMtaG92ZXItdGV4dC1ncmVlbiwudzMtaG92ZXItdGV4dC1saWdodC1ncmVlbiwudzMtaG92ZXItdGV4dC1pbmRpZ28sLnczLWhvdmVyLXRleHQta2hha2ksLnczLWhvdmVyLXRleHQtbGltZSwudzMtaG92ZXItdGV4dC1vcmFuZ2UsLnczLWhvdmVyLXRleHQtZGVlcC1vcmFuZ2UsLnczLWhvdmVyLXRleHQtcGluaywudzMtaG92ZXItdGV4dC1wdXJwbGUsXG4udzMtaG92ZXItdGV4dC1kZWVwLXB1cnBsZSwudzMtaG92ZXItdGV4dC1yZWQsLnczLWhvdmVyLXRleHQtc2FuZCwudzMtaG92ZXItdGV4dC10ZWFsLC53My1ob3Zlci10ZXh0LXllbGxvdywudzMtaG92ZXItdGV4dC13aGl0ZSwudzMtaG92ZXItdGV4dC1ibGFjaywudzMtaG92ZXItdGV4dC1ncmV5LC53My1ob3Zlci10ZXh0LWxpZ2h0LWdyZXksLnczLWhvdmVyLXRleHQtZGFyay1ncmV5XG57LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzLGNvbG9yIC4xNXMsYm94LXNoYWRvdyAuM3Msb3BhY2l0eSAwLjNzO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuM3MsY29sb3IgLjE1cyxib3gtc2hhZG93IC4zcyxvcGFjaXR5IDAuM3N9XG4udzMtc2lkZW5hdntoZWlnaHQ6MTAwJTt3aWR0aDoyMDBweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7cG9zaXRpb246Zml4ZWQhaW1wb3J0YW50O3otaW5kZXg6MTtvdmVyZmxvdzphdXRvfVxuLnczLXNpZGVuYXYgYXtwYWRkaW5nOjRweCAycHggNHB4IDE2cHh9LnczLXNpZGVuYXYgYTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNjY2N9LnczLXNpZGVuYXYgYSwudzMtZHJvcG5hdiBhe2Rpc3BsYXk6YmxvY2t9XG4udzMtc2lkZW5hdiAudzMtZHJvcGRvd24taG92ZXI6aG92ZXIsLnczLXNpZGVuYXYgLnczLWRyb3Bkb3duLWhvdmVyOmZpcnN0LWNoaWxkLC53My1zaWRlbmF2IC53My1kcm9wZG93bi1jbGljazpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7Y29sb3I6IzAwMH1cbi53My1zaWRlbmF2IC53My1kcm9wZG93bi1ob3ZlciwudzMtc2lkZW5hdiAudzMtZHJvcGRvd24tY2xpY2sge3dpZHRoOjEwMCV9LnczLXNpZGVuYXYgLnczLWRyb3Bkb3duLWhvdmVyIC53My1kcm9wZG93bi1jb250ZW50LC53My1zaWRlbmF2IC53My1kcm9wZG93bi1jbGljayAudzMtZHJvcGRvd24tY29udGVudHttaW4td2lkdGg6MTAwJX1cbi53My1tYWluLCNtYWlue3RyYW5zaXRpb246bWFyZ2luLWxlZnQgLjRzfVxuLnczLWRyb3BuYXZ7YmFja2dyb3VuZC1jb2xvcjojZmZmfS53My1kcm9wbmF2IGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSFpbXBvcnRhbnR9XG4udzMtbW9kYWx7ei1pbmRleDozO2Rpc3BsYXk6bm9uZTtwYWRkaW5nLXRvcDoxMDBweDtwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvdmVyZmxvdzphdXRvO2JhY2tncm91bmQtY29sb3I6cmdiKDAsMCwwKTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC40KX1cbi53My1tb2RhbC1jb250ZW50e21hcmdpbjphdXRvO2JhY2tncm91bmQtY29sb3I6I2ZmZjtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjA7b3V0bGluZTowO3dpZHRoOjYwMHB4fS53My1jbG9zZWJ0bnt0ZXh0LWRlY29yYXRpb246bm9uZTtmbG9hdDpyaWdodDtmb250LXNpemU6MjRweDtmb250LXdlaWdodDpib2xkO2NvbG9yOmluaGVyaXR9XG4udzMtY2xvc2VidG46aG92ZXIsLnczLWNsb3NlYnRuOmZvY3Vze2NvbG9yOiMwMDA7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOnBvaW50ZXJ9XG4udzMtcGFnaW5hdGlvbntkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjA7bWFyZ2luOjB9LnczLXBhZ2luYXRpb24gbGl7ZGlzcGxheTppbmxpbmV9XG4udzMtcGFnaW5hdGlvbiBsaSBhe3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMwMDA7ZmxvYXQ6bGVmdDtwYWRkaW5nOjhweCAxNnB4fVxuLnczLXBhZ2luYXRpb24gbGkgYTpob3ZlciwudzMtcGFnaW5hdGlvbiBsaSBhOmZvY3Vze2JhY2tncm91bmQtY29sb3I6I2NjY31cbi53My1pbnB1dC1ncm91cCwudzMtZ3JvdXB7bWFyZ2luLXRvcDoyNHB4O21hcmdpbi1ib3R0b206MjRweH1cbi53My1pbnB1dHtwYWRkaW5nOjhweDtkaXNwbGF5OmJsb2NrO2JvcmRlcjpub25lO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM4MDgwODA7d2lkdGg6MTAwJX1cbi53My1sYWJlbHtjb2xvcjojMDA5Njg4fS53My1pbnB1dDpub3QoOnZhbGlkKX4udzMtdmFsaWRhdGV7Y29sb3I6I2Y0NDMzNn1cbi53My1zZWxlY3R7cGFkZGluZzo0cHggMDt3aWR0aDoxMDAlO2NvbG9yOiMwMDA7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMDA5Njg4fVxuLnczLXNlbGVjdCBzZWxlY3Q6Zm9jdXN7Y29sb3I6IzAwMDtib3JkZXI6MXB4IHNvbGlkICMwMDk2ODh9LnczLXNlbGVjdCBvcHRpb25bZGlzYWJsZWRde2NvbG9yOiMwMDk2ODh9XG4udzMtZHJvcGRvd24tY2xpY2ssLnczLWRyb3Bkb3duLWhvdmVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2N1cnNvcjpwb2ludGVyfVxuLnczLWRyb3Bkb3duLWhvdmVyOmhvdmVyIC53My1kcm9wZG93bi1jb250ZW50e2Rpc3BsYXk6YmxvY2s7ei1pbmRleDoxfVxuLnczLWRyb3Bkb3duLWNvbnRlbnR7Y3Vyc29yOmF1dG87Y29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO21pbi13aWR0aDoxNjBweDttYXJnaW46MDtwYWRkaW5nOjB9XG4udzMtZHJvcGRvd24tY29udGVudCBhe3BhZGRpbmc6NnB4IDE2cHg7ZGlzcGxheTpibG9ja31cbi53My1kcm9wZG93bi1jb250ZW50IGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojY2NjfVxuLnczLWFjY29yZGlvbiB7d2lkdGg6MTAwJTtjdXJzb3I6cG9pbnRlcn1cbi53My1hY2NvcmRpb24tY29udGVudHtjdXJzb3I6YXV0bztkaXNwbGF5Om5vbmU7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTttYXJnaW46MDtwYWRkaW5nOjB9XG4udzMtYWNjb3JkaW9uLWNvbnRlbnQgYXtwYWRkaW5nOjZweCAxNnB4O2Rpc3BsYXk6YmxvY2t9LnczLWFjY29yZGlvbi1jb250ZW50IGE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojY2NjfVxuLnczLXByb2dyZXNzLWNvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDoxLjVlbTtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kLWNvbG9yOiNmMWYxZjF9XG4udzMtcHJvZ3Jlc3NiYXJ7YmFja2dyb3VuZC1jb2xvcjojNzU3NTc1O2hlaWdodDoxMDAlO3Bvc2l0aW9uOmFic29sdXRlO2xpbmUtaGVpZ2h0OmluaGVyaXR9XG5pbnB1dFt0eXBlPWNoZWNrYm94XS53My1jaGVjayxpbnB1dFt0eXBlPXJhZGlvXS53My1yYWRpb3t3aWR0aDoyNHB4O2hlaWdodDoyNHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDo2cHh9XG5pbnB1dFt0eXBlPWNoZWNrYm94XS53My1jaGVjazpjaGVja2VkKy53My12YWxpZGF0ZSxpbnB1dFt0eXBlPXJhZGlvXS53My1yYWRpbzpjaGVja2VkKy53My12YWxpZGF0ZXtjb2xvcjojMDA5Njg4fSBcbmlucHV0W3R5cGU9Y2hlY2tib3hdLnczLWNoZWNrOmRpc2FibGVkKy53My12YWxpZGF0ZSxpbnB1dFt0eXBlPXJhZGlvXS53My1yYWRpbzpkaXNhYmxlZCsudzMtdmFsaWRhdGV7Y29sb3I6I2FhYX1cbi53My1yZXNwb25zaXZle292ZXJmbG93LXg6YXV0b31cbi53My1jb250YWluZXI6YWZ0ZXIsLnczLXJvdzphZnRlciwudzMtcm93LXBhZGRpbmc6YWZ0ZXIsLnczLXRvcG5hdjphZnRlciwudzMtY2xlYXI6YWZ0ZXIsLnczLWJ0bi1ncm91cDpiZWZvcmUsLnczLWJ0bi1ncm91cDphZnRlclxue2NvbnRlbnQ6XCJcIjtkaXNwbGF5OnRhYmxlO2NsZWFyOmJvdGh9XG4udzMtY29sLC53My1oYWxmLC53My10aGlyZCwudzMtdHdvdGhpcmQsLnczLXRocmVlcXVhcnRlciwudzMtcXVhcnRlcntmbG9hdDpsZWZ0O3dpZHRoOjEwMCV9XG4udzMtY29sLnMxe3dpZHRoOjguMzMzMzMlfVxuLnczLWNvbC5zMnt3aWR0aDoxNi42NjY2NiV9XG4udzMtY29sLnMze3dpZHRoOjI0Ljk5OTk5JX1cbi53My1jb2wuczR7d2lkdGg6MzMuMzMzMzMlfVxuLnczLWNvbC5zNXt3aWR0aDo0MS42NjY2NiV9XG4udzMtY29sLnM2e3dpZHRoOjQ5Ljk5OTk5JX1cbi53My1jb2wuczd7d2lkdGg6NTguMzMzMzMlfVxuLnczLWNvbC5zOHt3aWR0aDo2Ni42NjY2NiV9XG4udzMtY29sLnM5e3dpZHRoOjc0Ljk5OTk5JX1cbi53My1jb2wuczEwe3dpZHRoOjgzLjMzMzMzJX1cbi53My1jb2wuczExe3dpZHRoOjkxLjY2NjY2JX1cbi53My1jb2wuczEyLC53My1oYWxmLC53My10aGlyZCwudzMtdHdvdGhpcmQsLnczLXRocmVlcXVhcnRlciwudzMtcXVhcnRlcnt3aWR0aDo5OS45OTk5OSV9XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjAxcHgpe1xuLnczLWNvbC5tMXt3aWR0aDo4LjMzMzMzJX1cbi53My1jb2wubTJ7d2lkdGg6MTYuNjY2NjYlfVxuLnczLWNvbC5tMywudzMtcXVhcnRlcnt3aWR0aDoyNC45OTk5OSV9XG4udzMtY29sLm00LC53My10aGlyZHt3aWR0aDozMy4zMzMzMyV9XG4udzMtY29sLm01e3dpZHRoOjQxLjY2NjY2JX1cbi53My1jb2wubTYsLnczLWhhbGZ7d2lkdGg6NDkuOTk5OTklfVxuLnczLWNvbC5tN3t3aWR0aDo1OC4zMzMzMyV9XG4udzMtY29sLm04LC53My10d290aGlyZHt3aWR0aDo2Ni42NjY2NiV9XG4udzMtY29sLm05LC53My10aHJlZXF1YXJ0ZXJ7d2lkdGg6NzQuOTk5OTklfVxuLnczLWNvbC5tMTB7d2lkdGg6ODMuMzMzMzMlfVxuLnczLWNvbC5tMTF7d2lkdGg6OTEuNjY2NjYlfVxuLnczLWNvbC5tMTJ7d2lkdGg6OTkuOTk5OTklfX1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDo5OTNweCl7XG4udzMtY29sLmwxe3dpZHRoOjguMzMzMzMlfVxuLnczLWNvbC5sMnt3aWR0aDoxNi42NjY2NiV9XG4udzMtY29sLmwzLC53My1xdWFydGVye3dpZHRoOjI0Ljk5OTk5JX1cbi53My1jb2wubDQsLnczLXRoaXJke3dpZHRoOjMzLjMzMzMzJX1cbi53My1jb2wubDV7d2lkdGg6NDEuNjY2NjYlfVxuLnczLWNvbC5sNiwudzMtaGFsZnt3aWR0aDo0OS45OTk5OSV9XG4udzMtY29sLmw3e3dpZHRoOjU4LjMzMzMzJX1cbi53My1jb2wubDgsLnczLXR3b3RoaXJke3dpZHRoOjY2LjY2NjY2JX1cbi53My1jb2wubDksLnczLXRocmVlcXVhcnRlcnt3aWR0aDo3NC45OTk5OSV9XG4udzMtY29sLmwxMHt3aWR0aDo4My4zMzMzMyV9XG4udzMtY29sLmwxMXt3aWR0aDo5MS42NjY2NiV9XG4udzMtY29sLmwxMnt3aWR0aDo5OS45OTk5OSV9fVxuLnczLWNvbnRlbnR7bWF4LXdpZHRoOjk4MHB4O21hcmdpbjphdXRvfVxuLnczLXJlc3R7b3ZlcmZsb3c6aGlkZGVufVxuLnczLWhpZGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0udzMtc2hvdy1ibG9jaywudzMtc2hvd3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0udzMtc2hvdy1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fVxuQG1lZGlhIChtYXgtd2lkdGg6NjAwcHgpey53My1tb2RhbC1jb250ZW50e21hcmdpbjowIDEwcHg7d2lkdGg6YXV0byFpbXBvcnRhbnR9LnczLW1vZGFse3BhZGRpbmctdG9wOjMwcHh9fVxuQG1lZGlhIChtYXgtd2lkdGg6NzY4cHgpey53My1tb2RhbC1jb250ZW50e3dpZHRoOjUwMHB4fS53My1tb2RhbHtwYWRkaW5nLXRvcDo1MHB4fX1cbkBtZWRpYSAobWluLXdpZHRoOjk5M3B4KXsudzMtbW9kYWwtY29udGVudHt3aWR0aDo5MDBweH19XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjYwMHB4KXsudzMtdG9wbmF2IGF7ZGlzcGxheTpibG9ja30udzMtbmF2YmFyIGxpOm5vdCgudzMtb3Blbm5hdil7ZmxvYXQ6bm9uZTt3aWR0aDoxMDAlIWltcG9ydGFudH0udzMtbmF2YmFyIGxpLnczLXJpZ2h0e2Zsb2F0Om5vbmUhaW1wb3J0YW50fX1cdFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo2MDBweCl7LnczLXRvcG5hdiAudzMtZHJvcGRvd24taG92ZXIgLnczLWRyb3Bkb3duLWNvbnRlbnQsLnczLW5hdmJhciAudzMtZHJvcGRvd24tY2xpY2sgLnczLWRyb3Bkb3duLWNvbnRlbnQsLnczLW5hdmJhciAudzMtZHJvcGRvd24taG92ZXIgLnczLWRyb3Bkb3duLWNvbnRlbnR7cG9zaXRpb246cmVsYXRpdmV9fVx0XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjYwMHB4KXsudzMtdG9wbmF2LC53My1uYXZiYXJ7dGV4dC1hbGlnbjpjZW50ZXJ9fVxuQG1lZGlhIChtYXgtd2lkdGg6NjAwcHgpey53My1oaWRlLXNtYWxse2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fVxuQG1lZGlhIChtYXgtd2lkdGg6OTkycHgpIGFuZCAobWluLXdpZHRoOjYwMXB4KXsudzMtaGlkZS1tZWRpdW17ZGlzcGxheTpub25lIWltcG9ydGFudH19XG5AbWVkaWEgKG1pbi13aWR0aDo5OTNweCl7LnczLWhpZGUtbGFyZ2V7ZGlzcGxheTpub25lIWltcG9ydGFudH19XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjk5MnB4KXsudzMtc2lkZW5hdi53My1jb2xsYXBzZXtkaXNwbGF5Om5vbmV9LnczLW1haW57bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnR9fVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo5OTJweCl7LnczLXNpZGVuYXYudzMtY29sbGFwc2V7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9fVxuLnczLXRvcCwudzMtYm90dG9te3Bvc2l0aW9uOmZpeGVkO3dpZHRoOjEwMCU7ei1pbmRleDoxfS53My10b3B7dG9wOjB9LnczLWJvdHRvbXtib3R0b206MH1cbi53My1vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO2Rpc3BsYXk6bm9uZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjUpO3otaW5kZXg6Mn1cbi53My1sZWZ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS53My1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRhbnR9XG4udzMtdGlueXtmb250LXNpemU6MTBweCFpbXBvcnRhbnR9LnczLXNtYWxse2ZvbnQtc2l6ZToxMnB4IWltcG9ydGFudH1cbi53My1tZWRpdW17Zm9udC1zaXplOjE1cHghaW1wb3J0YW50fVxuLnczLWxhcmdle2ZvbnQtc2l6ZToxOHB4IWltcG9ydGFudH1cbi53My14bGFyZ2V7Zm9udC1zaXplOjI0cHghaW1wb3J0YW50fVxuLnczLXh4bGFyZ2V7Zm9udC1zaXplOjM2cHghaW1wb3J0YW50fVxuLnczLXh4eGxhcmdle2ZvbnQtc2l6ZTo0OHB4IWltcG9ydGFudH1cbi53My1qdW1ib3tmb250LXNpemU6NjRweCFpbXBvcnRhbnR9XG4udzMtdmVydGljYWx7d29yZC1icmVhazpicmVhay1hbGw7bGluZS1oZWlnaHQ6MTt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDowLjZlbX1cbi53My1sZWZ0LWFsaWdue3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnR9LnczLXJpZ2h0LWFsaWdue3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fVxuLnczLWp1c3RpZnl7dGV4dC1hbGlnbjpqdXN0aWZ5IWltcG9ydGFudH1cbi53My1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fVxuLnczLWRpc3BsYXktdG9wbGVmdHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjB9LnczLWRpc3BsYXktdG9wcmlnaHR7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH1cbi53My1kaXNwbGF5LWJvdHRvbWxlZnR7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTowfS53My1kaXNwbGF5LWJvdHRvbXJpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7Ym90dG9tOjB9XG4udzMtZGlzcGxheS1taWRkbGV7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTo1MCU7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcn1cbi53My1kaXNwbGF5LXRvcG1pZGRsZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcn0udzMtZGlzcGxheS1ib3R0b21taWRkbGV7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO2JvdHRvbTowO3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXJ9XG4udzMtY2lyY2xle2JvcmRlci1yYWRpdXM6NTAlIWltcG9ydGFudH1cbi53My1yb3VuZC1zbWFsbHtib3JkZXItcmFkaXVzOjJweCFpbXBvcnRhbnR9LnczLXJvdW5kLC53My1yb3VuZC1tZWRpdW17Ym9yZGVyLXJhZGl1czo0cHghaW1wb3J0YW50fVxuLnczLXJvdW5kLWxhcmdle2JvcmRlci1yYWRpdXM6OHB4IWltcG9ydGFudH0udzMtcm91bmQteGxhcmdle2JvcmRlci1yYWRpdXM6MTZweCFpbXBvcnRhbnR9XG4udzMtcm91bmQteHhsYXJnZXtib3JkZXItcmFkaXVzOjMycHghaW1wb3J0YW50fS53My1yb3VuZC1qdW1ib3tib3JkZXItcmFkaXVzOjY0cHghaW1wb3J0YW50fVxuLnczLWJvcmRlci0we2JvcmRlcjowIWltcG9ydGFudH1cbi53My1ib3JkZXJ7Ym9yZGVyOjFweCBzb2xpZCAjY2NjIWltcG9ydGFudH1cbi53My1ib3JkZXItdG9we2JvcmRlci10b3A6MXB4IHNvbGlkICNjY2MhaW1wb3J0YW50fS53My1ib3JkZXItYm90dG9te2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2MhaW1wb3J0YW50fVxuLnczLWJvcmRlci1sZWZ0e2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2NjIWltcG9ydGFudH0udzMtYm9yZGVyLXJpZ2h0e2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjYyFpbXBvcnRhbnR9XG4udzMtbWFyZ2lue21hcmdpbjoxNnB4IWltcG9ydGFudH0udzMtbWFyZ2luLTB7bWFyZ2luOjAhaW1wb3J0YW50fVxuLnczLW1hcmdpbi10b3B7bWFyZ2luLXRvcDoxNnB4IWltcG9ydGFudH0udzMtbWFyZ2luLWJvdHRvbXttYXJnaW4tYm90dG9tOjE2cHghaW1wb3J0YW50fVxuLnczLW1hcmdpbi1sZWZ0e21hcmdpbi1sZWZ0OjE2cHghaW1wb3J0YW50fS53My1tYXJnaW4tcmlnaHR7bWFyZ2luLXJpZ2h0OjE2cHghaW1wb3J0YW50fVxuLnczLXNlY3Rpb257bWFyZ2luLXRvcDoxNnB4IWltcG9ydGFudDttYXJnaW4tYm90dG9tOjE2cHghaW1wb3J0YW50fVxuLyogTWlnaHQgYmUgcmVtb3ZlZCBpbiBhIGxhdGVyIHZlcnNpb24gKi9cbi53My1tYXJnaW4tNHttYXJnaW46NHB4IWltcG9ydGFudH0udzMtbWFyZ2luLTh7bWFyZ2luOjhweCFpbXBvcnRhbnR9XG4udzMtbWFyZ2luLTEye21hcmdpbjoxMnB4IWltcG9ydGFudH0udzMtbWFyZ2luLTE2e21hcmdpbjoxNnB4IWltcG9ydGFudH0udzMtbWFyZ2luLTI0e21hcmdpbjoyNHB4IWltcG9ydGFudH1cbi53My1tYXJnaW4tMzJ7bWFyZ2luOjMycHghaW1wb3J0YW50fS53My1tYXJnaW4tNDh7bWFyZ2luOjQ4cHghaW1wb3J0YW50fS53My1tYXJnaW4tNjR7bWFyZ2luOjY0cHghaW1wb3J0YW50fVxuLyogRW5kIHJlbW92ZSAqL1xuLnczLXBhZGRpbmctdGlueXtwYWRkaW5nOjJweCA0cHghaW1wb3J0YW50fVxuLnczLXBhZGRpbmctc21hbGx7cGFkZGluZzo0cHggOHB4IWltcG9ydGFudH1cbi53My1wYWRkaW5nLW1lZGl1bSwudzMtcGFkZGluZywudzMtZm9ybXtwYWRkaW5nOjhweCAxNnB4IWltcG9ydGFudH1cbi53My1wYWRkaW5nLWxhcmdle3BhZGRpbmc6MTJweCAyNHB4IWltcG9ydGFudH1cbi53My1wYWRkaW5nLXhsYXJnZXtwYWRkaW5nOjE2cHggMzJweCFpbXBvcnRhbnR9XG4udzMtcGFkZGluZy14eGxhcmdle3BhZGRpbmc6MjRweCA0OHB4IWltcG9ydGFudH1cbi53My1wYWRkaW5nLWp1bWJve3BhZGRpbmc6MzJweCA2NHB4IWltcG9ydGFudH1cbi53My1wYWRkaW5nLTQsLnczLXBhZGRpbmctaG9yLTR7cGFkZGluZy10b3A6NHB4IWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTo0cHghaW1wb3J0YW50fVxuLnczLXBhZGRpbmctOCwudzMtcGFkZGluZy1ob3ItOHtwYWRkaW5nLXRvcDo4cHghaW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjhweCFpbXBvcnRhbnR9XG4udzMtcGFkZGluZy0xMiwudzMtcGFkZGluZy1ob3ItMTJ7cGFkZGluZy10b3A6MTJweCFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MTJweCFpbXBvcnRhbnR9XG4udzMtcGFkZGluZy0xNiwudzMtcGFkZGluZy1ob3ItMTZ7cGFkZGluZy10b3A6MTZweCFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MTZweCFpbXBvcnRhbnR9XG4udzMtcGFkZGluZy0yNCwudzMtcGFkZGluZy1ob3ItMjR7cGFkZGluZy10b3A6MjRweCFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MjRweCFpbXBvcnRhbnR9XG4udzMtcGFkZGluZy0zMiwudzMtcGFkZGluZy1ob3ItMzJ7cGFkZGluZy10b3A6MzJweCFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MzJweCFpbXBvcnRhbnR9XG4udzMtcGFkZGluZy00OCwudzMtcGFkZGluZy1ob3ItNDh7cGFkZGluZy10b3A6NDhweCFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206NDhweCFpbXBvcnRhbnR9XG4udzMtcGFkZGluZy02NCwudzMtcGFkZGluZy1ob3ItNjR7cGFkZGluZy10b3A6NjRweCFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206NjRweCFpbXBvcnRhbnR9XG4udzMtcGFkZGluZy0xMjgsLnczLXBhZGRpbmctaG9yLTEyOHtwYWRkaW5nLXRvcDoxMjhweCFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MTI4cHghaW1wb3J0YW50fVxuLnczLXBhZGRpbmctMHtwYWRkaW5nOjAhaW1wb3J0YW50fVxuLnczLXBhZGRpbmctdmVyLTR7cGFkZGluZy1sZWZ0OjRweCFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDo0cHghaW1wb3J0YW50fVxuLnczLXBhZGRpbmctdmVyLTh7cGFkZGluZy1sZWZ0OjhweCFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDo4cHghaW1wb3J0YW50fVxuLnczLXBhZGRpbmctdmVyLTEye3BhZGRpbmctbGVmdDoxMnB4IWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjEycHghaW1wb3J0YW50fVxuLnczLXBhZGRpbmctdmVyLTE2e3BhZGRpbmctbGVmdDoxNnB4IWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjE2cHghaW1wb3J0YW50fVxuLnczLXBhZGRpbmctdmVyLTI0e3BhZGRpbmctbGVmdDoyNHB4IWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjI0cHghaW1wb3J0YW50fVxuLnczLXBhZGRpbmctdmVyLTMye3BhZGRpbmctbGVmdDozMnB4IWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjMycHghaW1wb3J0YW50fVxuLnczLXBhZGRpbmctdmVyLTQ4e3BhZGRpbmctbGVmdDo0OHB4IWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjQ4cHghaW1wb3J0YW50fVxuLnczLXBhZGRpbmctdmVyLTY0e3BhZGRpbmctbGVmdDo2NHB4IWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OjY0cHghaW1wb3J0YW50fVxuLnczLXBhZGRpbmctdG9we3BhZGRpbmctdG9wOjhweCFpbXBvcnRhbnR9LnczLXBhZGRpbmctYm90dG9te3BhZGRpbmctYm90dG9tOjhweCFpbXBvcnRhbnR9XG4udzMtcGFkZGluZy1sZWZ0e3BhZGRpbmctbGVmdDoxNnB4IWltcG9ydGFudH0udzMtcGFkZGluZy1yaWdodHtwYWRkaW5nLXJpZ2h0OjE2cHghaW1wb3J0YW50fVxuLnczLXRvcGJhcntib3JkZXItdG9wOjZweCBzb2xpZCAjY2NjIWltcG9ydGFudH0udzMtYm90dG9tYmFye2JvcmRlci1ib3R0b206NnB4IHNvbGlkICNjY2MhaW1wb3J0YW50fVxuLnczLWxlZnRiYXJ7Ym9yZGVyLWxlZnQ6NnB4IHNvbGlkICNjY2MhaW1wb3J0YW50fS53My1yaWdodGJhcntib3JkZXItcmlnaHQ6NnB4IHNvbGlkICNjY2MhaW1wb3J0YW50fVxuLnczLXJvdy1wYWRkaW5nLC53My1yb3ctcGFkZGluZz4udzMtaGFsZiwudzMtcm93LXBhZGRpbmc+LnczLXRoaXJkLC53My1yb3ctcGFkZGluZz4udzMtdHdvdGhpcmQsLnczLXJvdy1wYWRkaW5nPi53My10aHJlZXF1YXJ0ZXIsLnczLXJvdy1wYWRkaW5nPi53My1xdWFydGVyLC53My1yb3ctcGFkZGluZz4udzMtY29se3BhZGRpbmc6MCA4cHh9XG4udzMtc3BpbnthbmltYXRpb246dzMtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7LXdlYmtpdC1hbmltYXRpb246dzMtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXJ9XG5ALXdlYmtpdC1rZXlmcmFtZXMgdzMtc3BpbntcbjAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfVxuMTAwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzU5ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM1OWRlZyl9fVxuQGtleWZyYW1lcyB3My1zcGlue1xuMCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTogcm90YXRlKDBkZWcpfVxuMTAwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzU5ZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM1OWRlZyl9fVxuLnczLWNvbnRhaW5lcntwYWRkaW5nOjAuMDFlbSAxNnB4fVxuLnczLWV4YW1wbGV7YmFja2dyb3VuZC1jb2xvcjojZjFmMWYxO3BhZGRpbmc6MC4wMWVtIDE2cHh9XG4udzMtY29kZXtmb250LWZhbWlseTpDb25zb2xhcyxcImNvdXJpZXIgbmV3XCI7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MS40O3dpZHRoOmF1dG87YmFja2dyb3VuZC1jb2xvcjojZmZmO3BhZGRpbmc6OHB4IDEycHg7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkICMwMDk2ODg7d29yZC13cmFwOmJyZWFrLXdvcmR9XG4udzMtZXhhbXBsZSwudzMtY29kZSwudzMtcmVmZXJlbmNle21hcmdpbjoyMHB4IDB9XG4udzMtY2FyZHtib3JkZXI6MXB4IHNvbGlkICNjY2N9XG4udzMtY2FyZC0yLC53My1leGFtcGxle2JveC1zaGFkb3c6MCAycHggNHB4IDAgcmdiYSgwLDAsMCwwLjE2KSwwIDJweCAxMHB4IDAgcmdiYSgwLDAsMCwwLjEyKSFpbXBvcnRhbnR9XG4udzMtY2FyZC00LC53My1ob3Zlci1zaGFkb3c6aG92ZXJ7Ym94LXNoYWRvdzowIDRweCA4cHggMCByZ2JhKDAsMCwwLDAuMiksMCA2cHggMjBweCAwIHJnYmEoMCwwLDAsMC4xOSkhaW1wb3J0YW50fVxuLnczLWNhcmQtOHtib3gtc2hhZG93OjAgOHB4IDE2cHggMCByZ2JhKDAsMCwwLDAuMiksMCA2cHggMjBweCAwIHJnYmEoMCwwLDAsMC4xOSkhaW1wb3J0YW50fVxuLnczLWNhcmQtMTJ7Ym94LXNoYWRvdzowIDEycHggMTZweCAwIHJnYmEoMCwwLDAsMC4yNCksMCAxN3B4IDUwcHggMCByZ2JhKDAsMCwwLDAuMTkpIWltcG9ydGFudH1cbi53My1jYXJkLTE2e2JveC1zaGFkb3c6MCAxNnB4IDI0cHggMCByZ2JhKDAsMCwwLDAuMjIpLDAgMjVweCA1NXB4IDAgcmdiYSgwLDAsMCwwLjIxKSFpbXBvcnRhbnR9XG4udzMtY2FyZC0yNHtib3gtc2hhZG93OjAgMjRweCAyNHB4IDAgcmdiYSgwLDAsMCwwLjIpLDAgNDBweCA3N3B4IDAgcmdiYSgwLDAsMCwwLjIyKSFpbXBvcnRhbnR9XG4udzMtYW5pbWF0ZS1mYWRpbmd7LXdlYmtpdC1hbmltYXRpb246ZmFkaW5nIDEwcyBpbmZpbml0ZTthbmltYXRpb246ZmFkaW5nIDEwcyBpbmZpbml0ZX1cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRpbmd7MCV7b3BhY2l0eTowfTUwJXtvcGFjaXR5OjF9MTAwJXtvcGFjaXR5OjB9fVxuQGtleWZyYW1lcyBmYWRpbmd7MCV7b3BhY2l0eTowfTUwJXtvcGFjaXR5OjF9MTAwJXtvcGFjaXR5OjB9fVxuLnczLWFuaW1hdGUtb3BhY2l0eXstd2Via2l0LWFuaW1hdGlvbjpvcGFjIDEuNXM7YW5pbWF0aW9uOm9wYWMgMS41c31cbkAtd2Via2l0LWtleWZyYW1lcyBvcGFje2Zyb217b3BhY2l0eTowfSB0b3tvcGFjaXR5OjF9fVxuQGtleWZyYW1lcyBvcGFje2Zyb217b3BhY2l0eTowfSB0b3tvcGFjaXR5OjF9fVxuLnczLWFuaW1hdGUtdG9we3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYW5pbWF0aW9uOmFuaW1hdGV0b3AgMC40czthbmltYXRpb246YW5pbWF0ZXRvcCAwLjRzfVxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGV0b3B7ZnJvbXt0b3A6LTMwMHB4O29wYWNpdHk6MH0gdG97dG9wOjA7b3BhY2l0eToxfX1cbkBrZXlmcmFtZXMgYW5pbWF0ZXRvcHtmcm9te3RvcDotMzAwcHg7b3BhY2l0eTowfSB0b3t0b3A6MDtvcGFjaXR5OjF9fVxuLnczLWFuaW1hdGUtbGVmdHtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LWFuaW1hdGlvbjphbmltYXRlbGVmdCAwLjRzO2FuaW1hdGlvbjphbmltYXRlbGVmdCAwLjRzfVxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGVsZWZ0e2Zyb217bGVmdDotMzAwcHg7b3BhY2l0eTowfSB0b3tsZWZ0OjA7b3BhY2l0eToxfX1cbkBrZXlmcmFtZXMgYW5pbWF0ZWxlZnR7ZnJvbXtsZWZ0Oi0zMDBweDtvcGFjaXR5OjB9IHRve2xlZnQ6MDtvcGFjaXR5OjF9fVxuLnczLWFuaW1hdGUtcmlnaHR7cG9zaXRpb246cmVsYXRpdmU7LXdlYmtpdC1hbmltYXRpb246YW5pbWF0ZXJpZ2h0IDAuNHM7YW5pbWF0aW9uOmFuaW1hdGVyaWdodCAwLjRzfVxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGVyaWdodHtmcm9te3JpZ2h0Oi0zMDBweDtvcGFjaXR5OjB9IHRve3JpZ2h0OjA7b3BhY2l0eToxfX1cbkBrZXlmcmFtZXMgYW5pbWF0ZXJpZ2h0e2Zyb217cmlnaHQ6LTMwMHB4O29wYWNpdHk6MH0gdG97cmlnaHQ6MDtvcGFjaXR5OjF9fVxuLnczLWFuaW1hdGUtYm90dG9te3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYW5pbWF0aW9uOmFuaW1hdGVib3R0b20gMC40czthbmltYXRpb246YW5pbWF0ZWJvdHRvbSAwLjRzfVxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGVib3R0b217ZnJvbXtib3R0b206LTMwMHB4O29wYWNpdHk6MH0gdG97Ym90dG9tOjBweDtvcGFjaXR5OjF9fVxuQGtleWZyYW1lcyBhbmltYXRlYm90dG9te2Zyb217Ym90dG9tOi0zMDBweDtvcGFjaXR5OjB9IHRve2JvdHRvbTowO29wYWNpdHk6MX19XG4udzMtYW5pbWF0ZS16b29tIHstd2Via2l0LWFuaW1hdGlvbjphbmltYXRlem9vbSAwLjZzO2FuaW1hdGlvbjphbmltYXRlem9vbSAwLjZzfVxuQC13ZWJraXQta2V5ZnJhbWVzIGFuaW1hdGV6b29te2Zyb217LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCl9IHRvey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpfX1cbkBrZXlmcmFtZXMgYW5pbWF0ZXpvb217ZnJvbXt0cmFuc2Zvcm06c2NhbGUoMCl9IHRve3RyYW5zZm9ybTpzY2FsZSgxKX19XG4udzMtYW5pbWF0ZS1pbnB1dHstd2Via2l0LXRyYW5zaXRpb246d2lkdGggMC40cyBlYXNlLWluLW91dDt0cmFuc2l0aW9uOndpZHRoIDAuNHMgZWFzZS1pbi1vdXR9LnczLWFuaW1hdGUtaW5wdXQ6Zm9jdXN7d2lkdGg6MTAwJSFpbXBvcnRhbnR9XG4udzMtdHJhbnNwYXJlbnR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCFpbXBvcnRhbnR9XG4udzMtaG92ZXItbm9uZTpob3Zlcntib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQhaW1wb3J0YW50fVxuLnczLWFtYmVyLC53My1ob3Zlci1hbWJlcjpob3Zlcntjb2xvcjojMDAwIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmMxMDchaW1wb3J0YW50fVxuLnczLWFxdWEsLnczLWhvdmVyLWFxdWE6aG92ZXJ7Y29sb3I6IzAwMCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojMDBmZmZmIWltcG9ydGFudH1cbi53My1ibHVlLC53My1ob3Zlci1ibHVlOmhvdmVye2NvbG9yOiNmZmYhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzIxOTZGMyFpbXBvcnRhbnR9XG4udzMtbGlnaHQtYmx1ZSwudzMtaG92ZXItbGlnaHQtYmx1ZTpob3Zlcntjb2xvcjojMDAwIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiM4N0NFRUIhaW1wb3J0YW50fVxuLnczLWJyb3duLC53My1ob3Zlci1icm93bjpob3Zlcntjb2xvcjojZmZmIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiM3OTU1NDghaW1wb3J0YW50fVxuLnczLWN5YW4sLnczLWhvdmVyLWN5YW46aG92ZXJ7Y29sb3I6IzAwMCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojMDBiY2Q0IWltcG9ydGFudH1cbi53My1ibHVlLWdyZXksLnczLWhvdmVyLWJsdWUtZ3JleTpob3Zlcntjb2xvcjojZmZmIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiM2MDdkOGIhaW1wb3J0YW50fVxuLnczLWdyZWVuLC53My1ob3Zlci1ncmVlbjpob3Zlcntjb2xvcjojZmZmIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiM0Q0FGNTAhaW1wb3J0YW50fVxuLnczLWxpZ2h0LWdyZWVuLC53My1ob3Zlci1saWdodC1ncmVlbjpob3Zlcntjb2xvcjojMDAwIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiM4YmMzNGEhaW1wb3J0YW50fVxuLnczLWluZGlnbywudzMtaG92ZXItaW5kaWdvOmhvdmVye2NvbG9yOiNmZmYhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzNmNTFiNSFpbXBvcnRhbnR9XG4udzMta2hha2ksLnczLWhvdmVyLWtoYWtpOmhvdmVye2NvbG9yOiMwMDAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2YwZTY4YyFpbXBvcnRhbnR9XG4udzMtbGltZSwudzMtaG92ZXItbGltZTpob3Zlcntjb2xvcjojMDAwIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNjZGRjMzkhaW1wb3J0YW50fVxuLnczLW9yYW5nZSwudzMtaG92ZXItb3JhbmdlOmhvdmVye2NvbG9yOiMwMDAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZmOTgwMCFpbXBvcnRhbnR9XG4udzMtZGVlcC1vcmFuZ2UsLnczLWhvdmVyLWRlZXAtb3JhbmdlOmhvdmVye2NvbG9yOiNmZmYhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZmNTcyMiFpbXBvcnRhbnR9XG4udzMtcGluaywudzMtaG92ZXItcGluazpob3Zlcntjb2xvcjojZmZmIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNlOTFlNjMhaW1wb3J0YW50fVxuLnczLXB1cnBsZSwudzMtaG92ZXItcHVycGxlOmhvdmVye2NvbG9yOiNmZmYhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzljMjdiMCFpbXBvcnRhbnR9XG4udzMtZGVlcC1wdXJwbGUsLnczLWhvdmVyLWRlZXAtcHVycGxlOmhvdmVye2NvbG9yOiNmZmYhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzY3M2FiNyFpbXBvcnRhbnR9XG4udzMtcmVkLC53My1ob3Zlci1yZWQ6aG92ZXJ7Y29sb3I6I2ZmZiFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojZjQ0MzM2IWltcG9ydGFudH1cbi53My1zYW5kLC53My1ob3Zlci1zYW5kOmhvdmVye2NvbG9yOiMwMDAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZkZjVlNiFpbXBvcnRhbnR9XG4udzMtdGVhbCwudzMtaG92ZXItdGVhbDpob3Zlcntjb2xvcjojZmZmIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDk2ODghaW1wb3J0YW50fVxuLnczLXllbGxvdywudzMtaG92ZXIteWVsbG93OmhvdmVye2NvbG9yOiMwMDAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZmZWIzYiFpbXBvcnRhbnR9XG4udzMtd2hpdGUsLnczLWhvdmVyLXdoaXRlOmhvdmVye2NvbG9yOiMwMDAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnR9XG4udzMtYmxhY2ssLnczLWhvdmVyLWJsYWNrOmhvdmVye2NvbG9yOiNmZmYhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9XG4udzMtZ3JleSwudzMtaG92ZXItZ3JleTpob3Zlcntjb2xvcjojMDAwIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiM5ZTllOWUhaW1wb3J0YW50fVxuLnczLWxpZ2h0LWdyZXksLnczLWhvdmVyLWxpZ2h0LWdyZXk6aG92ZXJ7Y29sb3I6IzAwMCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojZjFmMWYxIWltcG9ydGFudH1cbi53My1kYXJrLWdyZXksLnczLWhvdmVyLWRhcmstZ3JleTpob3Zlcntjb2xvcjojZmZmIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiM2MTYxNjEhaW1wb3J0YW50fVxuLnczLXBhbGUtcmVkLC53My1ob3Zlci1wYWxlLXJlZDpob3Zlcntjb2xvcjojMDAwIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmU3ZTchaW1wb3J0YW50fS53My1wYWxlLWdyZWVuLC53My1ob3Zlci1wYWxlLWdyZWVuOmhvdmVye2NvbG9yOiMwMDAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2U3ZmZlNyFpbXBvcnRhbnR9XG4udzMtcGFsZS15ZWxsb3csLnczLWhvdmVyLXBhbGUteWVsbG93OmhvdmVye2NvbG9yOiMwMDAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZmZmZkNyFpbXBvcnRhbnR9LnczLXBhbGUtYmx1ZSwudzMtaG92ZXItcGFsZS1ibHVlOmhvdmVye2NvbG9yOiMwMDAhaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2U3ZmZmZiFpbXBvcnRhbnR9XG4udzMtdGV4dC1hbWJlciwudzMtaG92ZXItdGV4dC1hbWJlcjpob3Zlcntjb2xvcjojZmZjMTA3IWltcG9ydGFudH1cbi53My10ZXh0LWFxdWEsLnczLWhvdmVyLXRleHQtYXF1YTpob3Zlcntjb2xvcjojMDBmZmZmIWltcG9ydGFudH1cbi53My10ZXh0LWJsdWUsLnczLWhvdmVyLXRleHQtYmx1ZTpob3Zlcntjb2xvcjojMjE5NkYzIWltcG9ydGFudH1cbi53My10ZXh0LWxpZ2h0LWJsdWUsLnczLWhvdmVyLXRleHQtbGlnaHQtYmx1ZTpob3Zlcntjb2xvcjojODdDRUVCIWltcG9ydGFudH1cbi53My10ZXh0LWJyb3duLC53My1ob3Zlci10ZXh0LWJyb3duOmhvdmVye2NvbG9yOiM3OTU1NDghaW1wb3J0YW50fVxuLnczLXRleHQtY3lhbiwudzMtaG92ZXItdGV4dC1jeWFuOmhvdmVye2NvbG9yOiMwMGJjZDQhaW1wb3J0YW50fVxuLnczLXRleHQtYmx1ZS1ncmV5LC53My1ob3Zlci10ZXh0LWJsdWUtZ3JleTpob3Zlcntjb2xvcjojNjA3ZDhiIWltcG9ydGFudH1cbi53My10ZXh0LWdyZWVuLC53My1ob3Zlci10ZXh0LWdyZWVuOmhvdmVye2NvbG9yOiM0Q0FGNTAhaW1wb3J0YW50fVxuLnczLXRleHQtbGlnaHQtZ3JlZW4sLnczLWhvdmVyLXRleHQtbGlnaHQtZ3JlZW46aG92ZXJ7Y29sb3I6IzhiYzM0YSFpbXBvcnRhbnR9XG4udzMtdGV4dC1pbmRpZ28sLnczLWhvdmVyLXRleHQtaW5kaWdvOmhvdmVye2NvbG9yOiMzZjUxYjUhaW1wb3J0YW50fVxuLnczLXRleHQta2hha2ksLnczLWhvdmVyLXRleHQta2hha2k6aG92ZXJ7Y29sb3I6I2I0YWE1MCFpbXBvcnRhbnR9XG4udzMtdGV4dC1saW1lLC53My1ob3Zlci10ZXh0LWxpbWU6aG92ZXJ7Y29sb3I6I2NkZGMzOSFpbXBvcnRhbnR9XG4udzMtdGV4dC1vcmFuZ2UsLnczLWhvdmVyLXRleHQtb3JhbmdlOmhvdmVye2NvbG9yOiNmZjk4MDAhaW1wb3J0YW50fVxuLnczLXRleHQtZGVlcC1vcmFuZ2UsLnczLWhvdmVyLXRleHQtZGVlcC1vcmFuZ2U6aG92ZXJ7Y29sb3I6I2ZmNTcyMiFpbXBvcnRhbnR9XG4udzMtdGV4dC1waW5rLC53My1ob3Zlci10ZXh0LXBpbms6aG92ZXJ7Y29sb3I6I2U5MWU2MyFpbXBvcnRhbnR9XG4udzMtdGV4dC1wdXJwbGUsLnczLWhvdmVyLXRleHQtcHVycGxlOmhvdmVye2NvbG9yOiM5YzI3YjAhaW1wb3J0YW50fVxuLnczLXRleHQtZGVlcC1wdXJwbGUsLnczLWhvdmVyLXRleHQtZGVlcC1wdXJwbGU6aG92ZXJ7Y29sb3I6IzY3M2FiNyFpbXBvcnRhbnR9XG4udzMtdGV4dC1yZWQsLnczLWhvdmVyLXRleHQtcmVkOmhvdmVye2NvbG9yOiNmNDQzMzYhaW1wb3J0YW50fVxuLnczLXRleHQtc2FuZCwudzMtaG92ZXItdGV4dC1zYW5kOmhvdmVye2NvbG9yOiNmZGY1ZTYhaW1wb3J0YW50fVxuLnczLXRleHQtdGVhbCwudzMtaG92ZXItdGV4dC10ZWFsOmhvdmVye2NvbG9yOiMwMDk2ODghaW1wb3J0YW50fVxuLnczLXRleHQteWVsbG93LC53My1ob3Zlci10ZXh0LXllbGxvdzpob3Zlcntjb2xvcjojZDJiZTBlIWltcG9ydGFudH1cbi53My10ZXh0LXdoaXRlLC53My1ob3Zlci10ZXh0LXdoaXRlOmhvdmVye2NvbG9yOiNmZmYhaW1wb3J0YW50fVxuLnczLXRleHQtYmxhY2ssLnczLWhvdmVyLXRleHQtYmxhY2s6aG92ZXJ7Y29sb3I6IzAwMCFpbXBvcnRhbnR9XG4udzMtdGV4dC1ncmV5LC53My1ob3Zlci10ZXh0LWdyZXk6aG92ZXJ7Y29sb3I6Izc1NzU3NSFpbXBvcnRhbnR9XG4udzMtdGV4dC1saWdodC1ncmV5LC53My1ob3Zlci10ZXh0LWxpZ2h0LWdyZXk6aG92ZXJ7Y29sb3I6I2YxZjFmMSFpbXBvcnRhbnR9XG4udzMtdGV4dC1kYXJrLWdyZXksLnczLWhvdmVyLXRleHQtZGFyay1ncmV5OmhvdmVye2NvbG9yOiMzYTNhM2EhaW1wb3J0YW50fVxuLnczLWJvcmRlci1hbWJlciwudzMtaG92ZXItYm9yZGVyLWFtYmVyOmhvdmVye2JvcmRlci1jb2xvcjojZmZjMTA3IWltcG9ydGFudH1cbi53My1ib3JkZXItYXF1YSwudzMtaG92ZXItYm9yZGVyLWFxdWE6aG92ZXJ7Ym9yZGVyLWNvbG9yOiMwMGZmZmYhaW1wb3J0YW50fVxuLnczLWJvcmRlci1ibHVlLC53My1ob3Zlci1ib3JkZXItYmx1ZTpob3Zlcntib3JkZXItY29sb3I6IzIxOTZGMyFpbXBvcnRhbnR9XG4udzMtYm9yZGVyLWxpZ2h0LWJsdWUsLnczLWhvdmVyLWJvcmRlci1saWdodC1ibHVlOmhvdmVye2JvcmRlci1jb2xvcjojODdDRUVCIWltcG9ydGFudH1cbi53My1ib3JkZXItYnJvd24sLnczLWhvdmVyLWJvcmRlci1icm93bjpob3Zlcntib3JkZXItY29sb3I6Izc5NTU0OCFpbXBvcnRhbnR9XG4udzMtYm9yZGVyLWN5YW4sLnczLWhvdmVyLWJvcmRlci1jeWFuOmhvdmVye2JvcmRlci1jb2xvcjojMDBiY2Q0IWltcG9ydGFudH1cbi53My1ib3JkZXItYmx1ZS1ncmV5LC53My1ob3Zlci1ibHVlLWdyZXk6aG92ZXJ7Ym9yZGVyLWNvbG9yOiM2MDdkOGIhaW1wb3J0YW50fVxuLnczLWJvcmRlci1ncmVlbiwudzMtaG92ZXItYm9yZGVyLWdyZWVuOmhvdmVye2JvcmRlci1jb2xvcjojNENBRjUwIWltcG9ydGFudH1cbi53My1ib3JkZXItbGlnaHQtZ3JlZW4sLnczLWhvdmVyLWJvcmRlci1saWdodC1ncmVlbjpob3Zlcntib3JkZXItY29sb3I6IzhiYzM0YSFpbXBvcnRhbnR9XG4udzMtYm9yZGVyLWluZGlnbywudzMtaG92ZXItYm9yZGVyLWluZGlnbzpob3Zlcntib3JkZXItY29sb3I6IzNmNTFiNSFpbXBvcnRhbnR9XG4udzMtYm9yZGVyLWtoYWtpLC53My1ob3Zlci1ib3JkZXIta2hha2k6aG92ZXJ7Ym9yZGVyLWNvbG9yOiNmMGU2OGMhaW1wb3J0YW50fVxuLnczLWJvcmRlci1saW1lLC53My1ob3Zlci1ib3JkZXItbGltZTpob3Zlcntib3JkZXItY29sb3I6I2NkZGMzOSFpbXBvcnRhbnR9XG4udzMtYm9yZGVyLW9yYW5nZSwudzMtaG92ZXItYm9yZGVyLW9yYW5nZTpob3Zlcntib3JkZXItY29sb3I6I2ZmOTgwMCFpbXBvcnRhbnR9XG4udzMtYm9yZGVyLWRlZXAtb3JhbmdlLC53My1ob3Zlci1ib3JkZXItZGVlcC1vcmFuZ2U6aG92ZXJ7Ym9yZGVyLWNvbG9yOiNmZjU3MjIhaW1wb3J0YW50fVxuLnczLWJvcmRlci1waW5rLC53My1ob3Zlci1ib3JkZXItcGluazpob3Zlcntib3JkZXItY29sb3I6I2U5MWU2MyFpbXBvcnRhbnR9XG4udzMtYm9yZGVyLXB1cnBsZSwudzMtaG92ZXItYm9yZGVyLXB1cnBsZTpob3Zlcntib3JkZXItY29sb3I6IzljMjdiMCFpbXBvcnRhbnR9XG4udzMtYm9yZGVyLWRlZXAtcHVycGxlLC53My1ob3Zlci1ib3JkZXItZGVlcC1wdXJwbGU6aG92ZXJ7Ym9yZGVyLWNvbG9yOiM2NzNhYjchaW1wb3J0YW50fVxuLnczLWJvcmRlci1yZWQsLnczLWhvdmVyLWJvcmRlci1yZWQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOiNmNDQzMzYhaW1wb3J0YW50fVxuLnczLWJvcmRlci1zYW5kLC53My1ob3Zlci1ib3JkZXItc2FuZDpob3Zlcntib3JkZXItY29sb3I6I2ZkZjVlNiFpbXBvcnRhbnR9XG4udzMtYm9yZGVyLXRlYWwsLnczLWhvdmVyLWJvcmRlci10ZWFsOmhvdmVye2JvcmRlci1jb2xvcjojMDA5Njg4IWltcG9ydGFudH1cbi53My1ib3JkZXIteWVsbG93LC53My1ob3Zlci1ib3JkZXIteWVsbG93OmhvdmVye2JvcmRlci1jb2xvcjojZmZlYjNiIWltcG9ydGFudH1cbi53My1ib3JkZXItd2hpdGUsLnczLWhvdmVyLWJvcmRlci13aGl0ZTpob3Zlcntib3JkZXItY29sb3I6I2ZmZiFpbXBvcnRhbnR9XG4udzMtYm9yZGVyLWJsYWNrLC53My1ob3Zlci1ib3JkZXItYmxhY2s6aG92ZXJ7Ym9yZGVyLWNvbG9yOiMwMDAhaW1wb3J0YW50fVxuLnczLWJvcmRlci1ncmV5LC53My1ob3Zlci1ib3JkZXItZ3JleTpob3Zlcntib3JkZXItY29sb3I6IzllOWU5ZSFpbXBvcnRhbnR9XG4udzMtYm9yZGVyLWxpZ2h0LWdyZXksLnczLWhvdmVyLWJvcmRlci1saWdodC1ncmV5OmhvdmVye2JvcmRlci1jb2xvcjojZjFmMWYxIWltcG9ydGFudH1cbi53My1ib3JkZXItZGFyay1ncmV5LC53My1ob3Zlci1ib3JkZXItZGFyay1ncmV5OmhvdmVye2JvcmRlci1jb2xvcjojNjE2MTYxIWltcG9ydGFudH1cbi53My1ib3JkZXItcGFsZS1yZWQsLnczLWhvdmVyLWJvcmRlci1wYWxlLXJlZDpob3Zlcntib3JkZXItY29sb3I6I2ZmZTdlNyFpbXBvcnRhbnR9LnczLWJvcmRlci1wYWxlLWdyZWVuLC53My1ob3Zlci1ib3JkZXItcGFsZS1ncmVlbjpob3Zlcntib3JkZXItY29sb3I6I2U3ZmZlNyFpbXBvcnRhbnR9XG4udzMtYm9yZGVyLXBhbGUteWVsbG93LC53My1ob3Zlci1ib3JkZXItcGFsZS15ZWxsb3c6aG92ZXJ7Ym9yZGVyLWNvbG9yOiNmZmZmZDchaW1wb3J0YW50fS53My1ib3JkZXItcGFsZS1ibHVlLC53My1ob3Zlci1ib3JkZXItcGFsZS1ibHVlOmhvdmVye2JvcmRlci1jb2xvcjojZTdmZmZmIWltcG9ydGFudH1cbi53My1vcGFjaXR5LC53My1ob3Zlci1vcGFjaXR5OmhvdmVye29wYWNpdHk6MC42MH1cbi53My10ZXh0LXNoYWRvd3t0ZXh0LXNoYWRvdzoxcHggMXB4IDAgIzQ0NH0udzMtdGV4dC1zaGFkb3ctd2hpdGV7dGV4dC1zaGFkb3c6MXB4IDFweCAwICNkZGR9XG4iLCIvKiBWYXJpYWJsZSBkZWNsYXJhdGlvbiAqL1xuLyogV0FSTklORzogXCItXCIgaW4gdGhlIG5hbWUgaXMgdW5zdXBwb3J0ZWQhICovXG4vKiBXQVJOSU5HOiBBcyB1c2VkIGluIEphdmFzY3JpcHQgbm8gc3BhY2UgYWZ0ZXIgXCI6XCIgaXMgYWxsb3dlZCAqL1xuOnJvb3Qge1xuICAgIC8qIFJhdGlvIG9mIHRoZSByZXNwb25zaXZlbmVzc1xuICAgICAgICBJdHMgdXNhZ2U6IGNhbGMoPG1pbiBzaXplIGluIHJlbT5yZW0gKyA8bWF4IC0gbWluIHNpemUgaW4gcmVtPiAqIHZhcigtLVJFU1BPTlNJVkUtUkFUSU8pKS4gRXg6IGNhbGMoMS4ycmVtICsgMC43ICogdmFyKC0tUkVTUE9OU0lWRS1SQVRJTykpXG4gICAgICAgIEl0cyBzeW50YXggKGltcG9ydGFudCk6IDEwMHZ3IGZvciB0aGUgY3VycmVudCBzY3JlZW4gd2lkdGgsIDEyMHJlbSBmb3IgMTkyMHB4LCAzMXJlbSBmb3IgNDk2cHggKi9cbiAgICAtLVJFU1BPTlNJVkUtUkFUSU86ICgxMDB2dyAtIDMxcmVtKSAvICgxMjAgLSAzMSk7XG5cdC0tTUFSS0VSU19TSVpFOjQwO1xuXHQtLUZPTlQtRkFNSUxZOlwiRmlndHJlZVwiLHNhbnMtc2VyaWY7XG4gICAgLS1DT0xPUl9GT05UOiB3aGl0ZTtcblxuICAgIC0tU0hBREVfU1VSRkFDRTogMjMzO1xuICBcdC0tU0FUX1NVUkZBQ0U6IDI3JTtcbiAgICAtLUNPTE9SX1NVUkZBQ0VfMTA6IGhzbCh2YXIoLS1TSEFERV9TVVJGQUNFKSx2YXIoLS1TQVRfU1VSRkFDRSksMTUlKTsgIC8qID0gQXp1ciAxMC8yMDI1ICMxRDIwMzM7ICovXG5cdC0tQ09MT1JfU1VSRkFDRV8yMDogaHNsKHZhcigtLVNIQURFX1NVUkZBQ0UpLHZhcigtLVNBVF9TVVJGQUNFKSwyNSUpO1xuXHQtLUNPTE9SX1NVUkZBQ0VfMzA6IGhzbCh2YXIoLS1TSEFERV9TVVJGQUNFKSx2YXIoLS1TQVRfU1VSRkFDRSksMzUlKTtcblx0LS1DT0xPUl9TVVJGQUNFXzQwOiBoc2wodmFyKC0tU0hBREVfU1VSRkFDRSksdmFyKC0tU0FUX1NVUkZBQ0UpLDQ1JSk7XG5cdC0tQ09MT1JfU1VSRkFDRV81MDogaHNsKHZhcigtLVNIQURFX1NVUkZBQ0UpLHZhcigtLVNBVF9TVVJGQUNFKSw1NSUpO1xuXHQtLUNPTE9SX1NVUkZBQ0VfNjA6IGhzbCh2YXIoLS1TSEFERV9TVVJGQUNFKSx2YXIoLS1TQVRfU1VSRkFDRSksNjUlKTtcblx0LS1DT0xPUl9TVVJGQUNFXzcwOiBoc2wodmFyKC0tU0hBREVfU1VSRkFDRSksdmFyKC0tU0FUX1NVUkZBQ0UpLDc1JSk7XG5cdC0tQ09MT1JfU1VSRkFDRV84MDogaHNsKHZhcigtLVNIQURFX1NVUkZBQ0UpLHZhcigtLVNBVF9TVVJGQUNFKSw4NSUpO1xuXHQtLUNPTE9SX1NVUkZBQ0VfOTA6IGhzbCh2YXIoLS1TSEFERV9TVVJGQUNFKSx2YXIoLS1TQVRfU1VSRkFDRSksOTUlKTtcblxuICAgIC0tQ09MT1JfUE9JX0xBQkVMOiBoc2woMjMzLDI3JSwyNSUpO1xuXG4gIFx0LS1TSEFERV9BQ1RJT046IDIyO1x0LyogMjQ9RXNheUpldCwgODA9bmljZSBncmVlbiAqL1xuICBcdC0tU0FUX0FDVElPTjogMTAwJTtcblx0LS1DT0xPUl9BQ1RJT05fNDA6IGhzbCh2YXIoLS1TSEFERV9BQ1RJT04pLHZhcigtLVNBVF9BQ1RJT04pLDQwJSk7XG5cdC0tQ09MT1JfQUNUSU9OXzUwOiBoc2wodmFyKC0tU0hBREVfQUNUSU9OKSx2YXIoLS1TQVRfQUNUSU9OKSw1MCUpOyBcblx0LS1DT0xPUl9BQ1RJT05fNjA6IGhzbCh2YXIoLS1TSEFERV9BQ1RJT04pLHZhcigtLVNBVF9BQ1RJT04pLDYwJSk7XG5cdC0tQ09MT1JfQUNUSU9OXzcwOiBoc2wodmFyKC0tU0hBREVfQUNUSU9OKSx2YXIoLS1TQVRfQUNUSU9OKSw3MCUpO1xuXHQtLUNPTE9SX0FDVElPTl84MDogaHNsKHZhcigtLVNIQURFX0FDVElPTiksdmFyKC0tU0FUX0FDVElPTiksODAlKTtcblx0LS1DT0xPUl9BQ1RJT05fOTA6IGhzbCh2YXIoLS1TSEFERV9BQ1RJT04pLHZhcigtLVNBVF9BQ1RJT04pLDkwJSk7XG5cblx0LS1TSEFERV9CTFVFIDogMTk1O1xuICBcdC0tU0FUX0JMVUUgOiAxMDAlO1xuXHQtLUJMVUVfNTA6aHNsKHZhcigtLVNIQURFX0JMVUUpLHZhcigtLVNBVF9CTFVFKSw1MCUpOyAgIC8qREVFUF9TS1lfQkxVRTojMDBCRkZGKi9cblxuXHQtLVdISVRFOiAjZmZmZmZmO1xuXHQtLUJFSUdFOiAjRkNGMkVEO1xuXHQtLUJMQUNLOiAjMDAwMDAwO1xuXG5cdC0tREFSS0VSX0JMVUU6ICMwQTFDMkE7XG5cdC0tTElHSFRFUl9CTFVFOiAjMUEzQTRGO1xuXHQtLURBWV9QSU5LOiAjRTg1NDkwOy8qIGhzbCgzMzYsIDc2JSwgNjIlKVx0Ki9cblx0LS1EQVlfWUVMTE9XOiNmZmQ1MDA7LyogI0ZGQ0MwMEQ5PWhzbCg0OCwgMTAwJSwgNTAlKSAqL1xuXHQtLURBWV9DWUFOOiMwN0RCRjI7Lypoc2woMTg1LjksOTQuNCUsNDguOCUpICovXG5cdC0tREFZX0dSRUVOOiM4RUM4MDA7LyogaHNsKDc3LjQsMTAwJSwzOS4yJSkgKi9cblx0LS1EQVlfUFVSUExFOiM4RTc2RDU7LyojYzk0MWZmLyojQjIzM0U1PSBoc2woMjgzLCA3NyUsIDU1JSkgKi9cblx0LS1XQVJOSU5HX1JFRDpoc2woMCwgMTAwJSwgNTAlKTtcblx0LS1NQVJLRVJfVEVYVF9DT0xPUjogdmFyKC0tQ09MT1JfU1VSRkFDRV8xMCk7XG5cdC0tRVhDX01BUktFUl9GSUxMX0NPTE9SOiAjZmZmZmZmO1xuXHQtLU5BVkJBUl9ERUZBVUxUX0ZJTExfQ09MT1I6IHZhcigtLUNPTE9SX1NVUkZBQ0VfMzApO1xuXHQtLU5BVkJBUl9IT1ZFUl9GSUxMX0NPTE9SOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzUwKTtcblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuSU5QVVQgTkVVTU9SUEhJU00gRUZGRUNUXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cblx0LS1ORVVNT1JQSElTTV9CT1hfU0hBRE9XOlxuXHRcdGluc2V0IDZweCA2cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMzUpLFxuICAgICAgICBpbnNldCAtNnB4IC02cHggMTJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksXG5cdFx0M3B4IDNweCA2cHggcmdiYSgwLCAwLCAwLCAwLjMpLFxuXHRcdC0zcHggLTNweCA2cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5IRUFERVJcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuXHQtLUhFQURFUl9IRUlHSFQ6IDUycHg7XG4gICAgLS1IRUFERVJfQlVUVE9OX0hFSUdIVDogNDBweDtcblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuU0VBUkNIIEJBUlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5cdC0tU0VBUkNIX0JBUl9CQUNLR1JPVU5EX0NPTE9SOiByZ2JhKDI2LCA1OCwgNzksIDAuMjUpO1xuXHQtLVNFQVJDSF9CQVJfQk9YX1NIQURPVzogXG5cdFx0LTVweCAwIDI1cHggcmdiYSgwLCAwLCAwLCAwLjMpLFxuXHRcdGluc2V0IDAgMCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSxcblx0XHQtMjBweCAwIDUwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuXHQtLVNFQVJDSF9CQVJfRUxFTUVOVFNfQUNUSVZFOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLUNPTE9SX0FDVElPTl80MCksIHZhcigtLUNPTE9SX0FDVElPTl82MCkpO1xuXHQtLVJFUVVJUkVEX0ZJRUxEX0NPTE9SOiAjRkY0NTAwOyAvKiBPcmFuZ2UtcmVkIGNvbG9yIGZvciByZXF1aXJlZCBmaWVsZCBpbmRpY2F0b3JzICovXG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblNFVFRJTkdTIFdJTkRPV1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5cdC0tU0VUVElOR1NfV0lORE9XX1dJRFRIOiAxMDAlO1xuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5TSURFUiAvIFRJTUVMSU5FXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cblx0LS1SSUdIVF9CQVJfV0lEVEg6NDQ4cHg7XHQvKiAwMy8wNS8yMDIzIDIyJSAyOHJlbSAqLyAgLyogRGFtaWVuIFN1Z2dlc3Rpb246IDQ5MHB4ICovICAvKiBHb29nbGUgTWFwczogNDA4cHggKi9cblx0LS1ET1VCTEVEX1JJR0hUX0JBUl9XSURUSDogY2FsYyh2YXIoLS1SSUdIVF9CQVJfV0lEVEgpICogMik7XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblBMQU5ORVIgUEFHRVxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5cdC8qIC0tUklHSFRfQkFSX1dJRFRIOiAzMyU7XG4gICAgLS1QT0lfUEFHRV9XSURUSDogMzMlOyAqL1xuXHQvKiBUT1RBTCAgICAgICAgICAgMTAwJSAqL1xuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5QTEFOTkVSIFBBR0UgKE9OIE1PQklMRSlcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuXHQtLU1PQklMRV9OQVZfSEVJR0hUOiA3JTtcbiAgICAvKiBWYWx1ZXMgYXQgcGxhbmlmaWNhdGlvbiAqL1xuXHQtLU1PQklMRV9NQVBfSEVJR0hUOiA1MCU7XG4gICAgLS1NT0JJTEVfU0lERVJfSEVJR0hUOiA0MyU7XG4gICAgLyogVmFsdWVzIGF0IG5hdmlnYXRpb24gKi9cbiAgICAtLU1PQklMRV9NQVBfSEVJR0hUX0FUX05BVjogNjElO1xuICAgIC0tTU9CSUxFX1NJREVSX0hFSUdIVF9BVF9OQVY6IDMyJTtcbiAgICAvKiBUT1RBTCAgICAgICAgICAgMTAwJSAqL1xuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5MQU5ESU5HIEJBUlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5cdC0tTEFORElOR19CQVJfUkFUSU86MS40O1xuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5CVVRUT05TXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cblx0LS1CVVRUT05fQk9SREVSX1JBRElVUzogMzJweCAvKiBBaXJibmIgMzJweCAqLztcblx0LS1GT1JNX1NIQURPV19CTEFDSzogM3B4IDBweCAxMHB4IDAgcmdiKDAgMCAwKTtcblx0LS1GT1JNX1NIQURPV19XSElURTogMHB4IDBweCAycHggMnB4IHZhcigtLUNPTE9SX1NVUkZBQ0VfOTApO1xuICAgIC0tRk9STV9TSEFET1dfT1JBTkdFOiAwcHggMHB4IDJweCAycHggdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTtcbiAgICAtLUZPUk1fU0hBRE9XX1JFRDogMHB4IDBweCAycHggMnB4IHZhcigtLVdBUk5JTkdfUkVEKTsgLyogU2hhZG93IGZvciB3YXJuaW5ncyAqL1xuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5CQURHRVNcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuICAgIC8qIEJhZGdlIE5vdXZlYXUgKi9cbiAgICAtLUJBREdFX05FV19HUkFESUVOVF9GUk9NOiAjRkY1MjUyOyAvKiBSb3VnZSBjbGFpciAqL1xuICAgIC0tQkFER0VfTkVXX0dSQURJRU5UX1RPOiAjQjcxQzFDOyAvKiBSb3VnZSBmb25jw6kgKi9cbiAgICAtLUJBREdFX05FV19URVhUX0NPTE9SOiB2YXIoLS1XSElURSk7XG4gICAgLS1CQURHRV9ORVdfQk9SREVSOiByZ2JhKDE4MywgMjgsIDI4LCAwLjMpO1xuICAgIFxuICAgIC8qIEJhZGdlIEJpZW50w7R0ICovXG4gICAgLS1CQURHRV9DT01JTkdfU09PTl9HUkFESUVOVF9GUk9NOiAjRTBFMEUwOyAvKiBBcmdlbnQgY2xhaXIgKi9cbiAgICAtLUJBREdFX0NPTUlOR19TT09OX0dSQURJRU5UX1RPOiAjQTlBOUE5OyAvKiBBcmdlbnQgZm9uY8OpICovXG4gICAgLS1CQURHRV9DT01JTkdfU09PTl9URVhUX0NPTE9SOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzEwKTtcbiAgICAtLUJBREdFX0NPTUlOR19TT09OX0JPUkRFUjogcmdiYSgxNjksIDE2OSwgMTY5LCAwLjMpO1xuICAgIFxuICAgIC8qIEJhZGdlIFBvcHVsYWlyZSAqL1xuICAgIC0tQkFER0VfUE9QVUxBUl9HUkFESUVOVF9GUk9NOiAjRkZENzAwOyAvKiBKYXVuZSBkb3LDqSAqL1xuICAgIC0tQkFER0VfUE9QVUxBUl9HUkFESUVOVF9UTzogI0ZGQTUwMDsgLyogSmF1bmUgb3JhbmfDqSAqL1xuICAgIC0tQkFER0VfUE9QVUxBUl9URVhUX0NPTE9SOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzEwKTtcbiAgICAtLUJBREdFX1BPUFVMQVJfQk9SREVSOiByZ2JhKDI1NSwgMTY1LCAwLCAwLjMpO1xuICAgIFxuICAgIC8qIEJhZGdlIEJldGEgKi9cbiAgICAtLUJBREdFX0JFVEFfR1JBRElFTlRfRlJPTTogI0U4NTQ5MDsgLyogUm9zZSBjbGFpciAqL1xuICAgIC0tQkFER0VfQkVUQV9HUkFESUVOVF9UTzogI0QxM0I3QjsgLyogUm9zZSBmb25jw6kgKi9cbiAgICAtLUJBREdFX0JFVEFfVEVYVF9DT0xPUjogdmFyKC0tV0hJVEUpO1xuICAgIC0tQkFER0VfQkVUQV9CT1JERVI6IHJnYmEoMjA5LCA1OSwgMTIzLCAwLjMpO1xuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5HRU9DT0RFUlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5cdC0tR0VPQ09ERVJfV0lEVEg6IDI1MHB4O1xuXHQtLUdFT0NPREVSX1BPSV9XSURUSDogMjUwcHg7XG5cdC0tR0VPQ09ERVJfUE9JX1dJRFRIX01PQklMRTogNjAlO1xuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5SQU5HRSBDT05UQUlORVJcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuXHQtLVJBTkdFX0NPTlRBSU5FUl9XSURUSDogMTAwJTtcblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuU0lERSBCQVJcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuXHQtLVNJREVfQkFSX1RSQU5TSVRJT046IDFzO1xuXHQtLVRJTUUxOiAwcztcdC8qIER1cmF0aW9uIG9mIHRoZSBzcGlubmVyIGdlYXIxIHJvdGF0aW9uICovXG4gXHQtLVRJTUUyOiAwcztcdC8qIER1cmF0aW9uIG9mIHRoZSBzcGlubmVyIGdlYXIyIHJvdGF0aW9uICovXG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbk1BUCBTSURFUiBUQUJMRVxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5cdC0tVEFCTEVfQ09MMV9XSURUSDogNiU7XG4gICAgLS1UQUJMRV9DT0wyX1dJRFRIOiAzNCU7XG4gICAgLS1UQUJMRV9DT0wzX1dJRFRIOiA5JTtcbiAgICAtLVRBQkxFX0NPTDRfV0lEVEg6IDIxJTtcbiAgICAtLVRBQkxFX0NPTDVfV0lEVEg6IDIzJTtcbiAgICAtLVRBQkxFX0NPTDZfV0lEVEg6IDclO1xuICAgIC8qIFRPVEFMICAgICAgICAgICAxMDAlICovXG4gICAgLyogQmVmb3JlIHRoZSBhZGFwdGF0aW9uIHRvIHNtYWxsIG1vYmlsZVxuXHQtLVRBQkxFX0NPTDFfV0lEVEg6IDYlO1xuICAgIC0tVEFCTEVfQ09MMl9XSURUSDogMzAlO1xuICAgIC0tVEFCTEVfQ09MM19XSURUSDogMTMlO1xuICAgIC0tVEFCTEVfQ09MNF9XSURUSDogMjIlO1xuICAgIC0tVEFCTEVfQ09MNV9XSURUSDogMjMlO1xuICAgIC0tVEFCTEVfQ09MNl9XSURUSDogNiU7XG4gICAgVE9UQUwgICAgICAgICAgIDEwMCUgKi9cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuTUFQXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cblx0LS1NQVBfRUxFTUVOVF9NQVJHSU46IDhweDtcblx0LS1NQVBfRklMVEVSU19IRUlHSFQ6IDMycHg7XG5cdC0tTUFQX0ZJTFRFUlNfV0lEVEg6IDMycHg7XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkRBVEUgUElDS0VSXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cblx0IC0tREFURV9QSUNLRVJfRk9OVF9DT0VGOiAxLjI7XG5cdCAtLURBVEVfUElDS0VSX0JBQ0tHUk9VTkRfQ09MT1I6IHZhcigtLUNPTE9SX1NVUkZBQ0VfMjApO1xuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5MT0dJTlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5cdC0tbG9naW4tcHJpbWFyeS1jb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTtcblx0LS1sb2dpbi1zZWNvbmRhcnktY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl80MCk7XG5cdC0tbG9naW4tYmctY29sb3I6IHZhcigtLUNPTE9SX1NVUkZBQ0VfOTApO1xuXHQtLWxvZ2luLXNoYWRvdzogMCA4cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG5cdC0tbG9naW4tYm9yZGVyLXJhZGl1czogMTJweDtcblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuTk9USUZJQ0FUSU9OIFNFVFRJTkdTIE1PREFMIChub3RpZmljYXRpb24gcHJlZmVyZW5jZXMpXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cblx0LyogTm90aWZpY2F0aW9uIE1vZGFsICovXG5cdC0tTk9USUZJQ0FUSU9OX01PREFMX09WRVJMQVlfQkc6IHJnYmEoMCwgMCwgMCwgMC43NSk7XG5cdC0tTk9USUZJQ0FUSU9OX01PREFMX0JBQ0tEUk9QX0JMVVI6IGJsdXIoNXB4KTtcblx0LS1OT1RJRklDQVRJT05fTU9EQUxfQ09OVEVOVF9CRzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY1KTtcblx0LS1OT1RJRklDQVRJT05fTU9EQUxfQ09OVEVOVF9QQURESU5HOiA0MHB4IDMwcHggMzBweDtcblx0LS1OT1RJRklDQVRJT05fTU9EQUxfQk9SREVSX1JBRElVUzogMjBweDtcblx0LS1OT1RJRklDQVRJT05fTU9EQUxfTUFYX1dJRFRIOiA1MDBweDtcblx0LS1OT1RJRklDQVRJT05fTU9EQUxfU0hBRE9XOiAwIDI1cHggNTBweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG5cdC0tTk9USUZJQ0FUSU9OX01PREFMX0FOSU1BVElPTjogbW9kYWxTY2FsZUluIDAuNHMgZWFzZS1vdXQ7XG5cblx0LyogTm90aWZpY2F0aW9uIE1vZGFsIEhlYWRlciAqL1xuXHQtLU5PVElGSUNBVElPTl9IRUFERVJfVElUTEVfQ09MT1I6ICMzMzM7XG5cdC0tTk9USUZJQ0FUSU9OX0hFQURFUl9USVRMRV9TSVpFOiAyNHB4O1xuXHQtLU5PVElGSUNBVElPTl9IRUFERVJfVElUTEVfV0VJR0hUOiA2MDA7XG5cdC0tTk9USUZJQ0FUSU9OX0hFQURFUl9ERVNDX0NPTE9SOiAjNjY2O1xuXHQtLU5PVElGSUNBVElPTl9IRUFERVJfREVTQ19TSVpFOiAxNXB4O1xuXHQtLU5PVElGSUNBVElPTl9IRUFERVJfTElORV9IRUlHSFQ6IDEuNTtcblxuXHQvKiBOb3RpZmljYXRpb24gTGlzdCAqL1xuXHQtLU5PVElGSUNBVElPTl9MSVNUX0NPTE9SOiAjNjY2O1xuXHQtLU5PVElGSUNBVElPTl9MSVNUX0xJTkVfSEVJR0hUOiAxLjY7XG5cdC0tTk9USUZJQ0FUSU9OX0xJU1RfTUFSR0lOX0JPVFRPTTogMjVweDtcblx0LS1OT1RJRklDQVRJT05fTElTVF9JVEVNX0dBUDogMTBweDtcblx0LS1OT1RJRklDQVRJT05fTElTVF9JVEVNX01BUkdJTjogOHB4O1xuXG5cdC8qIE5vdGlmaWNhdGlvbiBCdXR0b25zICovXG5cdC0tTk9USUZJQ0FUSU9OX0JUTl9QQURESU5HOiAxMnB4IDI1cHg7XG5cdC0tTk9USUZJQ0FUSU9OX0JUTl9CT1JERVJfUkFESVVTOiAyNXB4O1xuXHQtLU5PVElGSUNBVElPTl9CVE5fRk9OVF9TSVpFOiAxNHB4O1xuXHQtLU5PVElGSUNBVElPTl9CVE5fRk9OVF9XRUlHSFQ6IDUwMDtcblx0LS1OT1RJRklDQVRJT05fQlROX1RSQU5TSVRJT046IGFsbCAwLjNzIGVhc2U7XG5cdC0tTk9USUZJQ0FUSU9OX0JUTl9HQVA6IDEwcHg7XG5cblx0LyogTm90aWZpY2F0aW9uIEJ1dHRvbiBQcmltYXJ5IChBY3RpdmF0ZSkgKi9cblx0LS1OT1RJRklDQVRJT05fQlROX1BSSU1BUllfQkc6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMyOGE3NDUsICMyMGM5OTcpO1xuXHQtLU5PVElGSUNBVElPTl9CVE5fUFJJTUFSWV9DT0xPUjogdmFyKC0tV0hJVEUpO1xuXHQtLU5PVElGSUNBVElPTl9CVE5fUFJJTUFSWV9TSEFET1c6IDAgOHB4IDIwcHggcmdiYSg0MCwgMTY3LCA2OSwgMC4zKTtcblxuXHQvKiBOb3RpZmljYXRpb24gQnV0dG9uIFRlc3QgKi9cblx0LS1OT1RJRklDQVRJT05fQlROX1RFU1RfQkc6ICMwMDdiZmY7XG5cdC0tTk9USUZJQ0FUSU9OX0JUTl9URVNUX0NPTE9SOiB2YXIoLS1XSElURSk7XG5cdC0tTk9USUZJQ0FUSU9OX0JUTl9URVNUX1NIQURPVzogMCA4cHggMjBweCByZ2JhKDAsIDEyMywgMjU1LCAwLjMpO1xuXG5cdC8qIE5vdGlmaWNhdGlvbiBCdXR0b24gVmlicmF0aW9uICovXG5cdC0tTk9USUZJQ0FUSU9OX0JUTl9WSUJSQVRJT05fQkc6ICNmZjZiMzU7XG5cdC0tTk9USUZJQ0FUSU9OX0JUTl9WSUJSQVRJT05fQ09MT1I6IHZhcigtLVdISVRFKTtcblx0LS1OT1RJRklDQVRJT05fQlROX1ZJQlJBVElPTl9TSEFET1c6IDAgOHB4IDIwcHggcmdiYSgyNTUsIDEwNywgNTMsIDAuMyk7XG5cblx0LyogTm90aWZpY2F0aW9uIFJlc3BvbnNpdmUgKi9cblx0LS1OT1RJRklDQVRJT05fQlJFQUtQT0lOVF9NT0JJTEU6IDc2OHB4O1xuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5OT1RJRklDQVRJT04gQ0FDSEUgVVBEQVRFXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cblx0LyogQ2FjaGUgVXBkYXRlIE1vZGFsIC0gWi1JbmRleCAmIExheW91dCAqL1xuXHQtLUNBQ0hFX1VQREFURV9NT0RBTF9aX0lOREVYOiAxMDAwMDtcblx0LS1DQUNIRV9VUERBVEVfTU9EQUxfRk9OVF9GQU1JTFk6IFwiRmlndHJlZVwiLCBzYW5zLXNlcmlmO1xuXHRcblx0LyogQ2FjaGUgVXBkYXRlIE1vZGFsIC0gQmFja2dyb3VuZCAmIENvbG9ycyAqL1xuXHQtLUNBQ0hFX1VQREFURV9NT0RBTF9CRzogIzI4YTc2Y2MyO1xuXHQtLUNBQ0hFX1VQREFURV9NT0RBTF9DT0xPUjogdmFyKC0tV0hJVEUpO1xuXHRcblx0LyogQ2FjaGUgVXBkYXRlIE1vZGFsIC0gU3BhY2luZyAmIFNpemluZyAqL1xuXHQtLUNBQ0hFX1VQREFURV9NT0RBTF9QQURESU5HOiAxcmVtIDEuMjVyZW07XG5cdC0tQ0FDSEVfVVBEQVRFX01PREFMX0JPUkRFUl9SQURJVVM6IDAuNzVyZW07XG5cdC0tQ0FDSEVfVVBEQVRFX01PREFMX0dBUDogMC41cmVtO1xuXHQtLUNBQ0hFX1VQREFURV9NT0RBTF9NSU5fV0lEVEhfREVTS1RPUDogMjMuNzVyZW07XG5cdC0tQ0FDSEVfVVBEQVRFX01PREFMX01BWF9XSURUSDogMzEuMjVyZW07XG5cdFxuXHQvKiBDYWNoZSBVcGRhdGUgTW9kYWwgLSBEZXNrdG9wIFBvc2l0aW9uaW5nICovXG5cdC0tQ0FDSEVfVVBEQVRFX01PREFMX0RFU0tUT1BfQk9UVE9NOiAxLjI1cmVtO1xuXHQtLUNBQ0hFX1VQREFURV9NT0RBTF9ERVNLVE9QX1JJR0hUOiAxLjI1cmVtO1xuXHQtLUNBQ0hFX1VQREFURV9NT0RBTF9CT1hfU0hBRE9XX0RFU0tUT1A6IDAgMC41cmVtIDEuNTYyNXJlbSByZ2JhKDQwLCAxNjcsIDY5LCAwLjMpO1xuXHRcblx0LyogQ2FjaGUgVXBkYXRlIE1vZGFsIC0gTW9iaWxlIFBvc2l0aW9uaW5nICovXG5cdC0tQ0FDSEVfVVBEQVRFX01PREFMX01PQklMRV9UT1A6IDA7XG5cdC0tQ0FDSEVfVVBEQVRFX01PREFMX01PQklMRV9MRUZUOiAwO1xuXHQtLUNBQ0hFX1VQREFURV9NT0RBTF9NT0JJTEVfUklHSFQ6IDA7XG5cdC0tQ0FDSEVfVVBEQVRFX01PREFMX0JPWF9TSEFET1dfTU9CSUxFOiAwIDAuMjVyZW0gMC43NXJlbSByZ2JhKDAsIDAsIDAsIDAuMyk7XG5cdFxuXHQvKiBDYWNoZSBVcGRhdGUgTW9kYWwgLSBUeXBvZ3JhcGh5ICovXG5cdC0tQ0FDSEVfVVBEQVRFX01PREFMX1RJVExFX1NJWkU6IDFyZW07XG5cdC0tQ0FDSEVfVVBEQVRFX01PREFMX1RJVExFX1dFSUdIVDogNzAwO1xuXHQtLUNBQ0hFX1VQREFURV9NT0RBTF9NRVNTQUdFX1NJWkU6IDAuODc1cmVtO1xuXHQtLUNBQ0hFX1VQREFURV9NT0RBTF9NRVNTQUdFX09QQUNJVFk6IDAuOTtcblx0LS1DQUNIRV9VUERBVEVfTU9EQUxfSElOVF9TSVpFOiAwLjc1cmVtO1xuXHQtLUNBQ0hFX1VQREFURV9NT0RBTF9ISU5UX09QQUNJVFk6IDAuODtcblx0LS1DQUNIRV9VUERBVEVfTU9EQUxfSElOVF9JQ09OX01BUkdJTjogMC4zNzVyZW07XG5cdFxuXHQvKiBDYWNoZSBVcGRhdGUgTW9kYWwgLSBBY3Rpb24gQnV0dG9uICovXG5cdC0tQ0FDSEVfVVBEQVRFX01PREFMX0FDVElPTl9CRzogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuXHQtLUNBQ0hFX1VQREFURV9NT0RBTF9BQ1RJT05fQkdfSE9WRVI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcblx0LS1DQUNIRV9VUERBVEVfTU9EQUxfQUNUSU9OX0JPUkRFUjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcblx0LS1DQUNIRV9VUERBVEVfTU9EQUxfQUNUSU9OX0NPTE9SOiB2YXIoLS1XSElURSk7XG5cdC0tQ0FDSEVfVVBEQVRFX01PREFMX0FDVElPTl9QQURESU5HOiAwLjVyZW0gMXJlbTtcblx0LS1DQUNIRV9VUERBVEVfTU9EQUxfQUNUSU9OX1JBRElVUzogMS4yNXJlbTtcblx0LS1DQUNIRV9VUERBVEVfTU9EQUxfQUNUSU9OX0ZPTlRfU0laRTogMC44NzVyZW07XG5cdC0tQ0FDSEVfVVBEQVRFX01PREFMX0FDVElPTl9GT05UX1dFSUdIVDogNTAwO1xuXHQtLUNBQ0hFX1VQREFURV9NT0RBTF9BQ1RJT05fVFJBTlNJVElPTjogYWxsIDAuM3MgZWFzZTtcblx0XG5cdC8qIENhY2hlIFVwZGF0ZSBNb2RhbCAtIEFuaW1hdGlvbnMgKi9cblx0LS1DQUNIRV9VUERBVEVfTU9EQUxfQU5JTUFUSU9OX0RFU0tUT1A6IHNsaWRlSW5VcCAwLjVzIGVhc2Utb3V0O1xuXHQtLUNBQ0hFX1VQREFURV9NT0RBTF9BTklNQVRJT05fTU9CSUxFOiBzbGlkZURvd24gMC41cyBlYXNlLW91dDtcblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuTk9USUZJQ0FUSU9OUyBTRU5TT1IgQ0hFQ0sgU1lTVEVNXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cblx0LyogU0VOU09SIENIRUNLIC0gRk9OVCAmIE9WRVJMQVkgKi9cblx0LS1TRU5TT1JfRk9OVF9GQU1JTFk6IFwiRmlndHJlZVwiLCBzYW5zLXNlcmlmO1xuXHQtLVNFTlNPUl9NT0RBTF9PVkVSTEFZX0JHOiByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuXHQtLVNFTlNPUl9NT0RBTF9PVkVSTEFZX1pfSU5ERVg6IDEwMDAyO1xuXHQtLVNFTlNPUl9NT0RBTF9PVkVSTEFZX1BBRERJTkc6IDIwcHg7XG5cdC0tU0VOU09SX01PREFMX09WRVJMQVlfQkFDS0RST1A6IGJsdXIoNXB4KTtcblx0LS1TRU5TT1JfTU9EQUxfT1ZFUkxBWV9BTklNQVRJT046IHNlbnNvckZhZGVJbiAwLjNzIGVhc2Utb3V0O1xuXG5cdC8qIFNFTlNPUiBDSEVDSyAtIE1PREFMIENPTlRFTlQgKi9cblx0LS1TRU5TT1JfTU9EQUxfQ09OVEVOVF9SQURJVVM6IDIwcHg7XG5cdC0tU0VOU09SX01PREFMX0NPTlRFTlRfTUFYX1dJRFRIOiA1MDBweDtcblx0LS1TRU5TT1JfTU9EQUxfQ09OVEVOVF9CT1hfU0hBRE9XOiAwIDI1cHggNTBweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG5cdC0tU0VOU09SX01PREFMX0NPTlRFTlRfQk9SREVSOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuXHQtLVNFTlNPUl9NT0RBTF9DT05URU5UX1BBRERJTkc6IDQwcHggMzBweDtcblx0LS1TRU5TT1JfTU9EQUxfQ09OVEVOVF9BTklNQVRJT046IHNlbnNvck1vZGFsU2NhbGVJbiAwLjRzIGVhc2Utb3V0O1xuXHQtLVNFTlNPUl9NT0RBTF9DT05URU5UX0NPTE9SOiB2YXIoLS1XSElURSk7XG5cblx0LyogU0VOU09SIENIRUNLIC0gTU9EQUwgVEhFTUVTICovXG5cdC0tU0VOU09SX01PREFMX0NSSVRJQ0FMX0JHOiAgI2ZmMzMwMDtcblx0LS1TRU5TT1JfTU9EQUxfRVJST1JfQkc6ICNmZjkxMDA7XG5cdC0tU0VOU09SX01PREFMX1dBUk5JTkdfQkc6ICAjZTdkMDAwO1xuXHQtLVNFTlNPUl9NT0RBTF9JTlNUUlVDVElPTlNfQkc6IHZhcigtLVdISVRFKTtcblx0LS1TRU5TT1JfTU9EQUxfSU5TVFJVQ1RJT05TX0NPTE9SOiAjMzMzO1xuXG5cdC8qIFNFTlNPUiBDSEVDSyAtIENMT1NFIEJVVFRPTiAqL1xuXHQtLVNFTlNPUl9DTE9TRV9CVE5fVE9QOiAxNXB4O1xuXHQtLVNFTlNPUl9DTE9TRV9CVE5fUklHSFQ6IDE1cHg7XG5cdC0tU0VOU09SX0NMT1NFX0JUTl9CRzogcmdiYSgwLCAwLCAwLCAwLjIpO1xuXHQtLVNFTlNPUl9DTE9TRV9CVE5fQ09MT1I6IHZhcigtLVdISVRFKTtcblx0LS1TRU5TT1JfQ0xPU0VfQlROX0ZPTlRfU0laRTogMzJweDtcblx0LS1TRU5TT1JfQ0xPU0VfQlROX1NJWkU6IDM1cHg7XG5cdC0tU0VOU09SX0NMT1NFX0JUTl9UUkFOU0lUSU9OOiBhbGwgMC4ycyBlYXNlO1xuXHQtLVNFTlNPUl9DTE9TRV9CVE5fQkdfSE9WRVI6IHJnYmEoMCwgMCwgMCwgMC40KTtcblx0LS1TRU5TT1JfQ0xPU0VfQlROX0lOU1RSVUNUSU9OU19CRzogcmdiYSgwLCAwLCAwLCAwLjA1KTtcblx0LS1TRU5TT1JfQ0xPU0VfQlROX0lOU1RSVUNUSU9OU19DT0xPUjogIzY2Njtcblx0LS1TRU5TT1JfQ0xPU0VfQlROX0lOU1RSVUNUSU9OU19CR19IT1ZFUjogcmdiYSgwLCAwLCAwLCAwLjEpO1xuXHQtLVNFTlNPUl9DTE9TRV9CVE5fSU5TVFJVQ1RJT05TX0NPTE9SX0hPVkVSOiAjMzMzO1xuXG5cdC8qIFNFTlNPUiBDSEVDSyAtIE1PREFMIElDT04gJiBUSVRMRSAqL1xuXHQtLVNFTlNPUl9NT0RBTF9JQ09OX1NJWkU6IDcwcHg7XG5cdC0tU0VOU09SX01PREFMX0lDT05fTUFSR0lOOiAyMHB4O1xuXHQtLVNFTlNPUl9NT0RBTF9JQ09OX0FOSU1BVElPTjogc2Vuc29yUHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5cdC0tU0VOU09SX01PREFMX1RJVExFX1NJWkU6IDI0cHg7XG5cdC0tU0VOU09SX01PREFMX1RJVExFX1dFSUdIVDogNzAwO1xuXHQtLVNFTlNPUl9NT0RBTF9USVRMRV9NQVJHSU46IDI1cHg7XG5cdC0tU0VOU09SX01PREFMX1RJVExFX1NIQURPVzogMCAycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG5cdC0tU0VOU09SX01PREFMX0lOU1RSVUNUSU9OU19USVRMRV9DT0xPUjogI2RjMzU0NTtcblx0LS1TRU5TT1JfTU9EQUxfSU5TVFJVQ1RJT05TX1RJVExFX1NJWkU6IDIycHg7XG5cblx0LyogU0VOU09SIENIRUNLIC0gV0FSTklOR1MgTElTVCAqL1xuXHQtLVNFTlNPUl9XQVJOSU5HU19MSVNUX01BUkdJTl9CT1RUT006IDMwcHg7XG5cdC0tU0VOU09SX1dBUk5JTkdfSVRFTV9QQURESU5HOiAxNXB4O1xuXHQtLVNFTlNPUl9XQVJOSU5HX0lURU1fTUFSR0lOX0JPVFRPTTogMTJweDtcblx0LS1TRU5TT1JfV0FSTklOR19JVEVNX0JHOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuXHQtLVNFTlNPUl9XQVJOSU5HX0lURU1fQk9SREVSX1JBRElVUzogMTJweDtcblx0LS1TRU5TT1JfV0FSTklOR19JVEVNX0JBQ0tEUk9QOiBibHVyKDEwcHgpO1xuXHQtLVNFTlNPUl9XQVJOSU5HX0lURU1fQk9SREVSX0xFRlRfV0lEVEg6IDRweDtcblx0LS1TRU5TT1JfV0FSTklOR19JVEVNX0JPUkRFUl9MRUZUX0NPTE9SOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG5cdC0tU0VOU09SX1dBUk5JTkdfSVRFTV9UUkFOU0lUSU9OOiBhbGwgMC4zcyBlYXNlO1xuXHQtLVNFTlNPUl9XQVJOSU5HX0lURU1fQkdfSE9WRVI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcblx0LS1TRU5TT1JfV0FSTklOR19JVEVNX1RSQU5TTEFURTogNXB4O1xuXHQtLVNFTlNPUl9XQVJOSU5HX0lDT05fU0laRTogMjRweDtcblx0LS1TRU5TT1JfV0FSTklOR19JQ09OX01BUkdJTjogMTVweDtcblx0LS1TRU5TT1JfV0FSTklOR19NRVNTQUdFX0ZPTlRfU0laRTogMTVweDtcblx0LS1TRU5TT1JfV0FSTklOR19NRVNTQUdFX0xJTkVfSEVJR0hUOiAxLjU7XG5cdC0tU0VOU09SX1dBUk5JTkdfTUVTU0FHRV9GT05UX1dFSUdIVDogNTAwO1xuXG5cdC8qIFNFTlNPUiBDSEVDSyAtIFNFVkVSSVRZIENPTE9SUyAqL1xuXHQtLVNFTlNPUl9DT0xPUl9DUklUSUNBTDogI2RjMzU0NTtcblx0LS1TRU5TT1JfQ09MT1JfSElHSDogI2ZmNmIzNTtcblx0LS1TRU5TT1JfQ09MT1JfTUVESVVNOiAjZmZjMTA3O1xuXHQtLVNFTlNPUl9DT0xPUl9XQVJOSU5HOiAjZmY5ODAwO1xuXHQtLVNFTlNPUl9DT0xPUl9MT1c6ICMxN2EyYjg7XG5cdC0tU0VOU09SX1dBUk5JTkdfQkdfQ1JJVElDQUw6IHJnYmEoMjIwLCA1MywgNjksIDAuMik7XG5cdC0tU0VOU09SX1dBUk5JTkdfQkdfSElHSDogcmdiYSgyNTUsIDEwNywgNTMsIDAuMik7XG5cdC0tU0VOU09SX1dBUk5JTkdfQkdfTUVESVVNOiByZ2JhKDI1NSwgMTkzLCA3LCAwLjIpO1xuXHQtLVNFTlNPUl9XQVJOSU5HX0JHX1dBUk5JTkc6IHJnYmEoMjU1LCAxNTIsIDAsIDAuMik7XG5cdC0tU0VOU09SX1dBUk5JTkdfQkdfTE9XOiByZ2JhKDIzLCAxNjIsIDE4NCwgMC4yKTtcblxuXHQvKiBTRU5TT1IgQ0hFQ0sgLSBBQ1RJT04gQlVUVE9OUyAqL1xuXHQtLVNFTlNPUl9BQ1RJT05TX0dBUDogMTJweDtcblx0LS1TRU5TT1JfQUNUSU9OU19NQVJHSU5fVE9QOiAyNXB4O1xuXHQtLVNFTlNPUl9BQ1RJT05fQlROX1BBRERJTkc6IDE0cHggMjhweDtcblx0LS1TRU5TT1JfQUNUSU9OX0JUTl9SQURJVVM6IDI1cHg7XG5cdC0tU0VOU09SX0FDVElPTl9CVE5fRk9OVF9TSVpFOiAxNnB4O1xuXHQtLVNFTlNPUl9BQ1RJT05fQlROX0ZPTlRfV0VJR0hUOiA2MDA7XG5cdC0tU0VOU09SX0FDVElPTl9CVE5fR0FQOiAxMHB4O1xuXHQtLVNFTlNPUl9BQ1RJT05fQlROX1RSQU5TSVRJT046IGFsbCAwLjNzIGVhc2U7XG5cblx0LyogU0VOU09SIENIRUNLIC0gUHJpbWFyeSBCdXR0b24gKi9cblx0LS1TRU5TT1JfQUNUSU9OX0JUTl9QUklNQVJZX0JHOiB2YXIoLS1XSElURSk7XG5cdC0tU0VOU09SX0FDVElPTl9CVE5fUFJJTUFSWV9DT0xPUjogI2RjMzU0NTtcblx0LS1TRU5TT1JfQUNUSU9OX0JUTl9QUklNQVJZX0NPTE9SX1dBUk5JTkc6ICNmZjk4MDA7XG5cdC0tU0VOU09SX0FDVElPTl9CVE5fUFJJTUFSWV9CR19JTlNUUlVDVElPTlM6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMyOGE3NDUsICMyMGM5OTcpO1xuXHQtLVNFTlNPUl9BQ1RJT05fQlROX1BSSU1BUllfQ09MT1JfSU5TVFJVQ1RJT05TOiB2YXIoLS1XSElURSk7XG5cdC0tU0VOU09SX0FDVElPTl9CVE5fUFJJTUFSWV9TSEFET1c6IDAgNHB4IDE1cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuXHQtLVNFTlNPUl9BQ1RJT05fQlROX1BSSU1BUllfU0hBRE9XX0hPVkVSOiAwIDZweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcblxuXHQvKiBTRU5TT1IgQ0hFQ0sgLSBTZWNvbmRhcnkgQnV0dG9uICovXG5cdC0tU0VOU09SX0FDVElPTl9CVE5fU0VDT05EQVJZX0JHOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG5cdC0tU0VOU09SX0FDVElPTl9CVE5fU0VDT05EQVJZX0NPTE9SOiB2YXIoLS1XSElURSk7XG5cdC0tU0VOU09SX0FDVElPTl9CVE5fU0VDT05EQVJZX0JPUkRFUjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcblx0LS1TRU5TT1JfQUNUSU9OX0JUTl9TRUNPTkRBUllfQkdfSE9WRVI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcblx0LS1TRU5TT1JfQUNUSU9OX0JUTl9TRUNPTkRBUllfQkdfSU5TVFJVQ1RJT05TOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuXHQtLVNFTlNPUl9BQ1RJT05fQlROX1NFQ09OREFSWV9DT0xPUl9JTlNUUlVDVElPTlM6ICM2NjY7XG5cdC0tU0VOU09SX0FDVElPTl9CVE5fU0VDT05EQVJZX0JPUkRFUl9JTlNUUlVDVElPTlM6IDFweCBzb2xpZCAjZGRkO1xuXHQtLVNFTlNPUl9BQ1RJT05fQlROX1NFQ09OREFSWV9CR19JTlNUUlVDVElPTlNfSE9WRVI6IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG5cdC0tU0VOU09SX0FDVElPTl9CVE5fU0VDT05EQVJZX0NPTE9SX0lOU1RSVUNUSU9OU19IT1ZFUjogIzMzMztcblxuXHQvKiBTRU5TT1IgQ0hFQ0sgLSBUZXJ0aWFyeSBCdXR0b24gKi9cblx0LS1TRU5TT1JfQUNUSU9OX0JUTl9URVJUSUFSWV9DT0xPUjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuXHQtLVNFTlNPUl9BQ1RJT05fQlROX1RFUlRJQVJZX0ZPTlRfU0laRTogMTRweDtcblx0LS1TRU5TT1JfQUNUSU9OX0JUTl9URVJUSUFSWV9QQURESU5HOiAxMHB4IDIwcHg7XG5cdC0tU0VOU09SX0FDVElPTl9CVE5fVEVSVElBUllfQ09MT1JfSE9WRVI6IHZhcigtLVdISVRFKTtcblx0LS1TRU5TT1JfQUNUSU9OX0JUTl9URVJUSUFSWV9DT0xPUl9JTlNUUlVDVElPTlM6ICM5OTk7XG5cdC0tU0VOU09SX0FDVElPTl9CVE5fVEVSVElBUllfQ09MT1JfSU5TVFJVQ1RJT05TX0hPVkVSOiAjNjY2O1xuXG5cdC8qIFNFTlNPUiBDSEVDSyAtIElOU1RSVUNUSU9OUyAqL1xuXHQtLVNFTlNPUl9JTlNUUlVDVElPTlNfTUFSR0lOOiAyMHB4IDA7XG5cdC0tU0VOU09SX0lOU1RSVUNUSU9OU19USVRMRV9DT0xPUjogI2RjMzU0NTtcblx0LS1TRU5TT1JfSU5TVFJVQ1RJT05TX1RJVExFX01BUkdJTjogMjBweDtcblx0LS1TRU5TT1JfSU5TVFJVQ1RJT05TX1RJVExFX1NJWkU6IDE4cHg7XG5cdC0tU0VOU09SX0lOU1RSVUNUSU9OU19USVRMRV9XRUlHSFQ6IDYwMDtcblx0LS1TRU5TT1JfSU5TVFJVQ1RJT05TX1RJVExFX0FMSUdOOiBjZW50ZXI7XG5cdC0tU0VOU09SX0lOU1RSVUNUSU9OU19USVRMRV9JQ09OX01BUkdJTjogOHB4O1xuXHQtLVNFTlNPUl9JTlNUUlVDVElPTl9TVEVQX1BBRERJTkc6IDEycHggMTVweDtcblx0LS1TRU5TT1JfSU5TVFJVQ1RJT05fU1RFUF9NQVJHSU46IDEwcHg7XG5cdC0tU0VOU09SX0lOU1RSVUNUSU9OX1NURVBfQkc6ICNmOGY5ZmE7XG5cdC0tU0VOU09SX0lOU1RSVUNUSU9OX1NURVBfQk9SREVSOiA0cHggc29saWQgI2RjMzU0NTtcblx0LS1TRU5TT1JfU1RFUF9OVU1CRVJfQkc6ICNkYzM1NDU7XG5cdC0tU0VOU09SX1NURVBfTlVNQkVSX0NPTE9SOiB2YXIoLS1XSElURSk7XG5cdC0tU0VOU09SX1NURVBfTlVNQkVSX1JBRElVUzogNTAlO1xuXHQtLVNFTlNPUl9TVEVQX05VTUJFUl9TSVpFOiAyOHB4O1xuXHQtLVNFTlNPUl9TVEVQX05VTUJFUl9GT05UX1NJWkU6IDE0cHg7XG5cdC0tU0VOU09SX1NURVBfTlVNQkVSX0ZPTlRfV0VJR0hUOiA3MDA7XG5cdC0tU0VOU09SX1NURVBfTlVNQkVSX01BUkdJTjogMTVweDtcblx0LS1TRU5TT1JfSU5TVFJVQ1RJT05fVEVYVF9GT05UX1NJWkU6IDE1cHg7XG5cdC0tU0VOU09SX0lOU1RSVUNUSU9OX1RFWFRfQ09MT1I6ICMzMzM7XG5cblx0LyogU0VOU09SIENIRUNLIC0gU1VDQ0VTUyBCQU5ORVIgKi9cblx0LS1TRU5TT1JfU1VDQ0VTU19CQU5ORVJfVE9QOiAyMHB4O1xuXHQtLVNFTlNPUl9TVUNDRVNTX0JBTk5FUl9CRzogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzI4YTc0NSwgIzIwYzk5Nyk7XG5cdC0tU0VOU09SX1NVQ0NFU1NfQkFOTkVSX0NPTE9SOiB2YXIoLS1XSElURSk7XG5cdC0tU0VOU09SX1NVQ0NFU1NfQkFOTkVSX1BBRERJTkc6IDE2cHggMjRweDtcblx0LS1TRU5TT1JfU1VDQ0VTU19CQU5ORVJfUkFESVVTOiAxMnB4O1xuXHQtLVNFTlNPUl9TVUNDRVNTX0JBTk5FUl9TSEFET1c6IDAgOHB4IDI1cHggcmdiYSg0MCwgMTY3LCA2OSwgMC4zKTtcblx0LS1TRU5TT1JfU1VDQ0VTU19CQU5ORVJfWl9JTkRFWDogMTAwMDM7XG5cdC0tU0VOU09SX1NVQ0NFU1NfQkFOTkVSX0FOSU1BVElPTjogc2xpZGVEb3duU3VjY2VzcyAwLjVzIGVhc2Utb3V0O1xuXHQtLVNFTlNPUl9TVUNDRVNTX0JBTk5FUl9NQVhfV0lEVEg6IDkwJTtcblx0LS1TRU5TT1JfU1VDQ0VTU19CQU5ORVJfR0FQOiAxMnB4O1xuXHQtLVNFTlNPUl9TVUNDRVNTX0lDT05fU0laRTogMjBweDtcblxuXHQvKiBTRU5TT1IgQ0hFQ0sgLSBDT05ORUNUSU9OIFNUQVRVUyAqL1xuXHQtLVNFTlNPUl9DT05ORUNUSU9OX0dBUDogOHB4O1xuXHQtLVNFTlNPUl9DT05ORUNUSU9OX1BBRERJTkc6IDhweCAxNnB4O1xuXHQtLVNFTlNPUl9DT05ORUNUSU9OX1JBRElVUzogMjBweDtcblx0LS1TRU5TT1JfQ09OTkVDVElPTl9GT05UX1NJWkU6IDE0cHg7XG5cdC0tU0VOU09SX0NPTk5FQ1RJT05fRk9OVF9XRUlHSFQ6IDUwMDtcblx0LS1TRU5TT1JfQ09OTkVDVElPTl9NQVJHSU46IDEwcHggMDtcblx0LS1TRU5TT1JfQ09OTkVDVElPTl9JQ09OX1NJWkU6IDE2cHg7XG5cdC0tU0VOU09SX0NPTk5FQ1RJT05fT05MSU5FX0JHOiByZ2JhKDQwLCAxNjcsIDY5LCAwLjIpO1xuXHQtLVNFTlNPUl9DT05ORUNUSU9OX09OTElORV9DT0xPUjogIzI4YTc0NTtcblx0LS1TRU5TT1JfQ09OTkVDVElPTl9PRkZMSU5FX0JHOiByZ2JhKDIyMCwgNTMsIDY5LCAwLjIpO1xuXHQtLVNFTlNPUl9DT05ORUNUSU9OX09GRkxJTkVfQ09MT1I6ICNkYzM1NDU7XG5cdC0tU0VOU09SX0NPTk5FQ1RJT05fU0xPV19CRzogcmdiYSgyNTUsIDE5MywgNywgMC4yKTtcblx0LS1TRU5TT1JfQ09OTkVDVElPTl9TTE9XX0NPTE9SOiAjZmZjMTA3O1xuXG5cdC8qIFNFTlNPUiBDSEVDSyAtIFNUQVRVUyBCQURHRVMgKi9cblx0LS1TRU5TT1JfU1RBVFVTX0JBREdFX0dBUDogNnB4O1xuXHQtLVNFTlNPUl9TVEFUVVNfQkFER0VfUEFERElORzogNnB4IDEycHg7XG5cdC0tU0VOU09SX1NUQVRVU19CQURHRV9SQURJVVM6IDE1cHg7XG5cdC0tU0VOU09SX1NUQVRVU19CQURHRV9GT05UX1NJWkU6IDEzcHg7XG5cdC0tU0VOU09SX1NUQVRVU19CQURHRV9GT05UX1dFSUdIVDogNTAwO1xuXHQtLVNFTlNPUl9TVEFUVVNfQkFER0VfTUFSR0lOOiA1cHg7XG5cdC0tU0VOU09SX1NUQVRVU19BVkFJTEFCTEVfQkc6IHJnYmEoNDAsIDE2NywgNjksIDAuMik7XG5cdC0tU0VOU09SX1NUQVRVU19BVkFJTEFCTEVfQ09MT1I6ICMyOGE3NDU7XG5cdC0tU0VOU09SX1NUQVRVU19ERU5JRURfQkc6IHJnYmEoMjIwLCA1MywgNjksIDAuMik7XG5cdC0tU0VOU09SX1NUQVRVU19ERU5JRURfQ09MT1I6ICNkYzM1NDU7XG5cdC0tU0VOU09SX1NUQVRVU19VTkFWQUlMQUJMRV9CRzogcmdiYSgxMDgsIDExNywgMTI1LCAwLjIpO1xuXHQtLVNFTlNPUl9TVEFUVVNfVU5BVkFJTEFCTEVfQ09MT1I6ICM2Yzc1N2Q7XG5cblx0LyogU0VOU09SIENIRUNLIC0gTU9CSUxFIFJFU1BPTlNJVkUgKi9cblx0LS1TRU5TT1JfTU9EQUxfTU9CSUxFX01BWF9XSURUSDogOTAlO1xuXHQtLVNFTlNPUl9NT0RBTF9NT0JJTEVfUEFERElORzogMzBweCAyMHB4O1xuXHQtLVNFTlNPUl9NT0RBTF9JQ09OX1NJWkVfTU9CSUxFOiA1MHB4O1xuXHQtLVNFTlNPUl9NT0RBTF9USVRMRV9TSVpFX01PQklMRTogMjBweDtcblx0LS1TRU5TT1JfV0FSTklOR19NRVNTQUdFX0ZPTlRfU0laRV9NT0JJTEU6IDE0cHg7XG5cdC0tU0VOU09SX0FDVElPTl9CVE5fUEFERElOR19NT0JJTEU6IDEycHggMjRweDtcblx0LS1TRU5TT1JfQUNUSU9OX0JUTl9GT05UX1NJWkVfTU9CSUxFOiAxNXB4O1xuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5OT1RJRklDQVRJT05TIFBXQSBJTlNUQUxMQVRJT04gU1lTVEVNIC0gTU9EQUxTICYgQkFOTkVSU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5cdC8qIFBXQSBTeXN0ZW0gLSBDb2xvcnMgKi9cblx0LS1QV0FfQ09MT1JfSU5TVEFMTDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI0ZGNkIzNSwgI0Y3OTMxRSk7XG5cdC0tUFdBX0NPTE9SX0lOU1RBTExfU0hBRE9XOiAwIDhweCAyNXB4IHJnYmEoMjU1LCAxMDcsIDUzLCAwLjMpO1xuXHQtLVBXQV9DT0xPUl9PUEVOX0FQUDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzI4YTc0NSwgIzIwYzk5Nyk7XG5cdC0tUFdBX0NPTE9SX09QRU5fQVBQX1NIQURPVzogMCA4cHggMjVweCByZ2JhKDQwLCAxNjcsIDY5LCAwLjMpO1xuXHQtLVBXQV9DT0xPUl9JTkNPR05JVE86IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM2YzVjZTcsICNhMjliZmUpO1xuXHQtLVBXQV9DT0xPUl9JTkNPR05JVE9fU0hBRE9XOiAwIDhweCAyNXB4IHJnYmEoMTA4LCA5MiwgMjMxLCAwLjMpO1xuXHQtLVBXQV9DT0xPUl9XSElURTogdmFyKC0tV0hJVEUpO1xuXG5cdC8qIFBXQSBCYW5uZXJzICovXG5cdC0tUFdBX0JBTk5FUl9QQURESU5HOiAzMHB4IDIwcHggMjBweCAyMHB4O1xuXHQtLVBXQV9CQU5ORVJfQk9SREVSX1JBRElVUzogMTJweDtcblx0LS1QV0FfQkFOTkVSX0JPUkRFUjogMnB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4zKTtcblx0LS1QV0FfQkFOTkVSX1NIQURPVzogMCA0cHggMTJweCByZ2JhKDAsMCwwLDAuMyk7XG5cdC0tUFdBX0JBTk5FUl9ERVNLVE9QX0JPVFRPTTogMjBweDtcblx0LS1QV0FfQkFOTkVSX0RFU0tUT1BfUklHSFQ6IDIwcHg7XG5cdC0tUFdBX0JBTk5FUl9BTklNQVRJT05fRFVSQVRJT046IDAuNXM7XG5cdC0tUFdBX0JBTk5FUl9USVRMRV9TSVpFOiAxNnB4O1xuXHQtLVBXQV9CQU5ORVJfVElUTEVfV0VJR0hUOiA2MDA7XG5cdC0tUFdBX0JBTk5FUl9NRVNTQUdFX1NJWkU6IDE0cHg7XG5cdC0tUFdBX0JBTk5FUl9NRVNTQUdFX09QQUNJVFk6IDAuOTU7XG5cblx0LyogUFdBIENsb3NlIEJ1dHRvbiAqL1xuXHQtLVBXQV9DTE9TRV9CVE5fVE9QOiAxMnB4O1xuXHQtLVBXQV9DTE9TRV9CVE5fUklHSFQ6IDEycHg7XG5cdC0tUFdBX0NMT1NFX0JUTl9CRzogcmdiYSgwLDAsMCwwLjEpO1xuXHQtLVBXQV9DTE9TRV9CVE5fQkdfSE9WRVI6IHJnYmEoMCwwLDAsMC4yKTtcblx0LS1QV0FfQ0xPU0VfQlROX1NJWkU6IDMwcHg7XG5cdC0tUFdBX0NMT1NFX0JUTl9GT05UX1NJWkU6IDMycHg7XG5cdC0tUFdBX0NMT1NFX0JUTl9SQURJVVM6IDUwJTtcblx0LS1QV0FfQ0xPU0VfQlROX1RSQU5TSVRJT046IGFsbCAwLjJzIGVhc2U7XG5cblx0LyogUFdBIENsb3NlIEJ1dHRvbiAoTW9kYWwgY29udGV4dCkgKi9cblx0LS1QV0FfTU9EQUxfQ0xPU0VfQlROX1RPUDogMTVweDtcblx0LS1QV0FfTU9EQUxfQ0xPU0VfQlROX1JJR0hUOiAxNXB4O1xuXHQtLVBXQV9NT0RBTF9DTE9TRV9CVE5fQkc6IHJnYmEoMCwwLDAsMC4yKTtcblx0LS1QV0FfTU9EQUxfQ0xPU0VfQlROX0JHX0hPVkVSOiByZ2JhKDAsMCwwLDAuNCk7XG5cdC0tUFdBX01PREFMX0NMT1NFX0JUTl9TSVpFOiAzNXB4O1xuXHQtLVBXQV9NT0RBTF9DTE9TRV9CVE5fRk9OVF9TSVpFOiAyOHB4O1xuXG5cdC8qIFBXQSBDbG9zZSBCdXR0b24gKEluc3RydWN0aW9ucyBjb250ZXh0KSAqL1xuXHQtLVBXQV9JTlNUUlVDVElPTlNfQ0xPU0VfQlROX0JHOiByZ2JhKDAsMCwwLDAuMDUpO1xuXHQtLVBXQV9JTlNUUlVDVElPTlNfQ0xPU0VfQlROX0JHX0hPVkVSOiByZ2JhKDAsMCwwLDAuMSk7XG5cdC0tUFdBX0lOU1RSVUNUSU9OU19DTE9TRV9CVE5fQ09MT1I6ICM2NjY7XG5cdC0tUFdBX0lOU1RSVUNUSU9OU19DTE9TRV9CVE5fQ09MT1JfSE9WRVI6ICMzMzM7XG5cdC0tUFdBX0lOU1RSVUNUSU9OU19DTE9TRV9CVE5fU0laRTogNDBweDtcblx0LS1QV0FfSU5TVFJVQ1RJT05TX0NMT1NFX0JUTl9GT05UX1NJWkU6IDMycHg7XG5cblx0LyogUFdBIEFjdGlvbiBCdXR0b24gKi9cblx0LS1QV0FfQUNUSU9OX0JUTl9CRzogcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xuXHQtLVBXQV9BQ1RJT05fQlROX0JHX0hPVkVSOiByZ2JhKDI1NSwyNTUsMjU1LDAuMyk7XG5cdC0tUFdBX0FDVElPTl9CVE5fQk9SREVSOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMpO1xuXHQtLVBXQV9BQ1RJT05fQlROX1BBRERJTkc6IDEwcHggMzJweDtcblx0LS1QV0FfQUNUSU9OX0JUTl9SQURJVVM6IDI1cHg7XG5cdC0tUFdBX0FDVElPTl9CVE5fRk9OVF9TSVpFOiAxNXB4O1xuXHQtLVBXQV9BQ1RJT05fQlROX0ZPTlRfV0VJR0hUOiA2MDA7XG5cdC0tUFdBX0FDVElPTl9CVE5fVFJBTlNJVElPTjogYWxsIDAuM3MgZWFzZTtcblxuXHQvKiBQV0EgTW9kYWwgKi9cblx0LS1QV0FfTU9EQUxfT1ZFUkxBWV9CRzogcmdiYSgwLDAsMCwwLjc1KTtcblx0LS1QV0FfTU9EQUxfQkFDS0RST1BfQkxVUjogYmx1cig1cHgpO1xuXHQtLVBXQV9NT0RBTF9QQURESU5HOiAyMHB4O1xuXHQtLVBXQV9NT0RBTF9BTklNQVRJT046IGZhZGVJbiAwLjNzIGVhc2Utb3V0O1xuXG5cdC8qIFBXQSBNb2RhbCBDb250ZW50ICovXG5cdC0tUFdBX01PREFMX0NPTlRFTlRfUkFESVVTOiAyMHB4O1xuXHQtLVBXQV9NT0RBTF9DT05URU5UX01BWF9XSURUSDogNTAwcHg7XG5cdC0tUFdBX01PREFMX0NPTlRFTlRfUEFERElORzogNDBweCAzMHB4O1xuXHQtLVBXQV9NT0RBTF9DT05URU5UX1NIQURPVzogMCAyNXB4IDUwcHggcmdiYSgwLDAsMCwwLjQpO1xuXHQtLVBXQV9NT0RBTF9DT05URU5UX0JPUkRFUjogMnB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4zKTtcblx0LS1QV0FfTU9EQUxfQ09OVEVOVF9BTklNQVRJT046IG1vZGFsU2NhbGVJbiAwLjRzIGVhc2Utb3V0O1xuXG5cdC8qIFBXQSBNb2RhbCBJbnN0cnVjdGlvbnMgKi9cblx0LS1QV0FfSU5TVFJVQ1RJT05TX0JHOiB2YXIoLS1XSElURSk7XG5cdC0tUFdBX0lOU1RSVUNUSU9OU19DT0xPUjogIzMzMztcblx0LS1QV0FfSU5TVFJVQ1RJT05TX01BWF9XSURUSDogNjAwcHg7XG5cdC0tUFdBX0lOU1RSVUNUSU9OU19NQVhfSEVJR0hUOiA5MHZoO1xuXHQtLVBXQV9JTlNUUlVDVElPTlNfUEFERElORzogMzBweCAyMHB4O1xuXHQtLVBXQV9JTlNUUlVDVElPTlNfQU5JTUFUSU9OOiBtb2RhbEZhZGVJbiAwLjRzIGVhc2Utb3V0O1xuXG5cdC8qIFBXQSBNb2RhbCBJY29uICovXG5cdC0tUFdBX01PREFMX0lDT05fU0laRTogNjBweDtcblx0LS1QV0FfTU9EQUxfSUNPTl9NQVJHSU46IDIwcHg7XG5cblx0LyogUFdBIE1vZGFsIFRpdGxlICovXG5cdC0tUFdBX01PREFMX1RJVExFX1NJWkU6IDI0cHg7XG5cdC0tUFdBX01PREFMX1RJVExFX1dFSUdIVDogNzAwO1xuXHQtLVBXQV9NT0RBTF9USVRMRV9NQVJHSU46IDE1cHg7XG5cdC0tUFdBX01PREFMX1RJVExFX1NIQURPVzogMCAycHggMTBweCByZ2JhKDAsMCwwLDAuMik7XG5cblx0LyogUFdBIEluc3RydWN0aW9ucyBUaXRsZSAqL1xuXHQtLVBXQV9JTlNUUlVDVElPTlNfVElUTEVfQ09MT1I6ICNGRjZCMzU7XG5cdC0tUFdBX0lOU1RSVUNUSU9OU19USVRMRV9DT0xPUl9HUkVFTjogIzI4YTc0NTtcblx0LS1QV0FfSU5TVFJVQ1RJT05TX1RJVExFX0NPTE9SX1BVUlBMRTogIzZjNWNlNztcblx0LS1QV0FfSU5TVFJVQ1RJT05TX1RJVExFX1NJWkU6IDIwcHg7XG5cdC0tUFdBX0lOU1RSVUNUSU9OU19USVRMRV9XRUlHSFQ6IDYwMDtcblx0LS1QV0FfSU5TVFJVQ1RJT05TX1RJVExFX01BUkdJTjogMjVweDtcblxuXHQvKiBQV0EgTW9kYWwgRGVzY3JpcHRpb24gKi9cblx0LS1QV0FfTU9EQUxfREVTQ19TSVpFOiAxNnB4O1xuXHQtLVBXQV9NT0RBTF9ERVNDX09QQUNJVFk6IDAuOTU7XG5cdC0tUFdBX01PREFMX0RFU0NfTUFSR0lOOiAzMHB4O1xuXHQtLVBXQV9NT0RBTF9ERVNDX0xJTkVfSEVJR0hUOiAxLjU7XG5cdC0tUFdBX0lOU1RSVUNUSU9OU19ERVNDX0NPTE9SOiAjNTU1O1xuXG5cdC8qIFBXQSBQcmltYXJ5IEJ1dHRvbiAqL1xuXHQtLVBXQV9QUklNQVJZX0JUTl9CRzogdmFyKC0tV0hJVEUpO1xuXHQtLVBXQV9QUklNQVJZX0JUTl9DT0xPUl9JTlNUQUxMOiAjRkY2QjM1O1xuXHQtLVBXQV9QUklNQVJZX0JUTl9DT0xPUl9PUEVOX0FQUDogIzI4YTc0NTtcblx0LS1QV0FfUFJJTUFSWV9CVE5fUEFERElORzogMTZweCA0OHB4O1xuXHQtLVBXQV9QUklNQVJZX0JUTl9SQURJVVM6IDMwcHg7XG5cdC0tUFdBX1BSSU1BUllfQlROX0ZPTlRfU0laRTogMThweDtcblx0LS1QV0FfUFJJTUFSWV9CVE5fRk9OVF9XRUlHSFQ6IDcwMDtcblx0LS1QV0FfUFJJTUFSWV9CVE5fU0hBRE9XOiAwIDhweCAyMHB4IHJnYmEoMCwwLDAsMC4yKTtcblx0LS1QV0FfUFJJTUFSWV9CVE5fU0hBRE9XX0hPVkVSOiAwIDEycHggMzBweCByZ2JhKDAsMCwwLDAuMyk7XG5cdC0tUFdBX1BSSU1BUllfQlROX1RSQU5TSVRJT046IGFsbCAwLjNzIGVhc2U7XG5cdC0tUFdBX1BSSU1BUllfQlROX0dBUDogMTJweDtcblxuXHQvKiBQV0EgRm9vdGVyIE5vdGUgKi9cblx0LS1QV0FfRk9PVEVSX05PVEVfTUFSR0lOOiAyNXB4O1xuXHQtLVBXQV9GT09URVJfTk9URV9TSVpFOiAxM3B4O1xuXHQtLVBXQV9GT09URVJfTk9URV9PUEFDSVRZOiAwLjg7XG5cblx0LyogUFdBIEluc3RydWN0aW9uIFN0ZXBzICovXG5cdC0tUFdBX1NURVBfTUFSR0lOOiAyMHB4O1xuXHQtLVBXQV9TVEVQX1BBRERJTkc6IDE1cHg7XG5cdC0tUFdBX1NURVBfQkc6ICNmOGY5ZmE7XG5cdC0tUFdBX1NURVBfUkFESVVTOiAxMHB4O1xuXHQtLVBXQV9TVEVQX0JPUkRFUl9MRUZUX1dJRFRIOiA0cHg7XG5cdC0tUFdBX1NURVBfQk9SREVSX0NPTE9SOiAjRkY2QjM1O1xuXHQtLVBXQV9TVEVQX0JPUkRFUl9DT0xPUl9HUkVFTjogIzI4YTc0NTtcblx0LS1QV0FfU1RFUF9CT1JERVJfQ09MT1JfUFVSUExFOiAjNmM1Y2U3O1xuXG5cdC8qIFBXQSBTdGVwIE51bWJlciAqL1xuXHQtLVBXQV9TVEVQX05VTUJFUl9CRzogI0ZGNkIzNTtcblx0LS1QV0FfU1RFUF9OVU1CRVJfQkdfR1JFRU46ICMyOGE3NDU7XG5cdC0tUFdBX1NURVBfTlVNQkVSX0JHX1BVUlBMRTogIzZjNWNlNztcblx0LS1QV0FfU1RFUF9OVU1CRVJfQ09MT1I6IHZhcigtLVdISVRFKTtcblx0LS1QV0FfU1RFUF9OVU1CRVJfU0laRTogMjhweDtcblx0LS1QV0FfU1RFUF9OVU1CRVJfRk9OVF9TSVpFOiAxNHB4O1xuXHQtLVBXQV9TVEVQX05VTUJFUl9XRUlHSFQ6IGJvbGQ7XG5cdC0tUFdBX1NURVBfTlVNQkVSX01BUkdJTjogMTVweDtcblxuXHQvKiBQV0EgU3RlcCBUZXh0ICovXG5cdC0tUFdBX1NURVBfVEVYVF9DT0xPUjogIzMzMztcblx0LS1QV0FfU1RFUF9URVhUX1NJWkU6IDE1cHg7XG5cblx0LyogUFdBIEhpZ2hsaWdodCBCb3ggKi9cblx0LS1QV0FfSElHSExJR0hUX1JBRElVUzogMTBweDtcblx0LS1QV0FfSElHSExJR0hUX1BBRERJTkc6IDE1cHg7XG5cdC0tUFdBX0hJR0hMSUdIVF9NQVJHSU46IDI1cHg7XG5cdC0tUFdBX0hJR0hMSUdIVF9DT0xPUjogdmFyKC0tV0hJVEUpO1xuXG5cdC8qIFBXQSBJbmZvIEJveCAqL1xuXHQtLVBXQV9JTkZPX0JPWF9CRzogI2U4ZjRmZDtcblx0LS1QV0FfSU5GT19CT1hfQkdfWUVMTE9XOiAjZmZmM2NkO1xuXHQtLVBXQV9JTkZPX0JPWF9CT1JERVI6IDFweCBzb2xpZCAjYmVlNWViO1xuXHQtLVBXQV9JTkZPX0JPWF9CT1JERVJfWUVMTE9XOiAxcHggc29saWQgI2ZmZWFhNztcblx0LS1QV0FfSU5GT19CT1hfUkFESVVTOiAxMnB4O1xuXHQtLVBXQV9JTkZPX0JPWF9QQURESU5HOiAyMHB4O1xuXHQtLVBXQV9JTkZPX0JPWF9NQVJHSU46IDI1cHg7XG5cdC0tUFdBX0lORk9fQk9YX0NPTE9SOiAjMGM1NDYwO1xuXHQtLVBXQV9JTkZPX0JPWF9DT0xPUl9ZRUxMT1c6ICM4NTY0MDQ7XG5cdC0tUFdBX0lORk9fQk9YX0lDT05fU0laRTogMTZweDtcblx0LS1QV0FfSU5GT19CT1hfSUNPTl9NQVJHSU46IDZweDtcblxuXHQvKiBQV0EgQ29weSBCdXR0b24gKi9cblx0LS1QV0FfQ09QWV9CVE5fQkc6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM2YzVjZTcsICNhMjliZmUpO1xuXHQtLVBXQV9DT1BZX0JUTl9CR19TVUNDRVNTOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMjhhNzQ1LCAjMjBjOTk3KTtcblx0LS1QV0FfQ09QWV9CVE5fQ09MT1I6IHZhcigtLVdISVRFKTtcblx0LS1QV0FfQ09QWV9CVE5fUEFERElORzogMTBweCAxOHB4O1xuXHQtLVBXQV9DT1BZX0JUTl9SQURJVVM6IDIwcHg7XG5cdC0tUFdBX0NPUFlfQlROX0ZPTlRfU0laRTogMTNweDtcblx0LS1QV0FfQ09QWV9CVE5fRk9OVF9XRUlHSFQ6IDUwMDtcblx0LS1QV0FfQ09QWV9CVE5fU0hBRE9XOiAwIDNweCA4cHggcmdiYSgxMDgsIDkyLCAyMzEsIDAuMyk7XG5cdC0tUFdBX0NPUFlfQlROX1NIQURPV19IT1ZFUjogMCA2cHggMTZweCByZ2JhKDEwOCwgOTIsIDIzMSwgMC40KTtcblx0LS1QV0FfQ09QWV9CVE5fVFJBTlNJVElPTjogYWxsIDAuM3M7XG5cblx0LyogUFdBIEJyb3dzZXIgQm94ICovXG5cdC0tUFdBX0JST1dTRVJfQk9YX01BUkdJTjogMThweDtcblx0LS1QV0FfQlJPV1NFUl9CT1hfUEFERElORzogMTVweDtcblx0LS1QV0FfQlJPV1NFUl9CT1hfQkc6ICNmOGY5ZmE7XG5cdC0tUFdBX0JST1dTRVJfQk9YX1JBRElVUzogMTBweDtcblx0LS1QV0FfQlJPV1NFUl9CT1hfQk9SREVSX1dJRFRIOiA0cHg7XG5cdC0tUFdBX0JST1dTRVJfQk9YX0JPUkRFUl9DSFJPTUU6ICM0Mjg1RjQ7XG5cdC0tUFdBX0JST1dTRVJfQk9YX0JPUkRFUl9GSVJFRk9YOiAjRkY5NTAwO1xuXHQtLVBXQV9CUk9XU0VSX0JPWF9CT1JERVJfU0FGQVJJOiAjMDA3QUZGO1xuXHQtLVBXQV9CUk9XU0VSX0JPWF9CT1JERVJfQU5EUk9JRDogIzM0QTg1Mztcblx0LS1QV0FfQlJPV1NFUl9CT1hfSEVBREVSX01BUkdJTjogOHB4O1xuXHQtLVBXQV9CUk9XU0VSX0JPWF9JQ09OX1NJWkU6IDE4cHg7XG5cdC0tUFdBX0JST1dTRVJfQk9YX0lDT05fTUFSR0lOOiAxMHB4O1xuXHQtLVBXQV9CUk9XU0VSX0JPWF9USVRMRV9TSVpFOiAxNnB4O1xuXHQtLVBXQV9CUk9XU0VSX0JPWF9DT05URU5UX1NJWkU6IDE0cHg7XG5cdC0tUFdBX0JST1dTRVJfQk9YX0NPTlRFTlRfTUFSR0lOOiAzMHB4O1xuXG5cdC8qIFBXQSBPcGVuIEFwcCBTdGVwcyAqL1xuXHQtLVBXQV9PUEVOX0FQUF9TVEVQX1JBRElVUzogMTVweDtcblx0LS1QV0FfT1BFTl9BUFBfU1RFUF9QQURESU5HOiAyNXB4O1xuXHQtLVBXQV9PUEVOX0FQUF9TVEVQX01BUkdJTjogMjVweDtcblx0LS1QV0FfT1BFTl9BUFBfU1RFUF9TRUNPTkRBUllfQkc6ICNmOGY5ZmE7XG5cdC0tUFdBX09QRU5fQVBQX1NURVBfU0VDT05EQVJZX0JPUkRFUjogMnB4IHNvbGlkICMyOGE3NDU7XG5cdC0tUFdBX09QRU5fQVBQX1NURVBfTlVNQkVSX1NJWkU6IDQwcHg7XG5cdC0tUFdBX09QRU5fQVBQX1NURVBfTlVNQkVSX0ZPTlRfU0laRTogMjBweDtcblx0LS1QV0FfT1BFTl9BUFBfU1RFUF9OVU1CRVJfTUFSR0lOOiAxNXB4O1xuXHQtLVBXQV9PUEVOX0FQUF9TVEVQX1RJVExFX1NJWkU6IDE4cHg7XG5cdC0tUFdBX09QRU5fQVBQX1NURVBfVElUTEVfV0VJR0hUOiA2MDA7XG5cdC0tUFdBX09QRU5fQVBQX1NURVBfU1VCVElUTEVfU0laRTogMTRweDtcblx0LS1QV0FfT1BFTl9BUFBfSEVMUF9CT1hfQkc6IHZhcigtLVdISVRFKTtcblx0LS1QV0FfT1BFTl9BUFBfSEVMUF9CT1hfUEFERElORzogMTVweDtcblx0LS1QV0FfT1BFTl9BUFBfSEVMUF9CT1hfUkFESVVTOiAxMHB4O1xuXHQtLVBXQV9PUEVOX0FQUF9IRUxQX0JPWF9NQVJHSU46IDE1cHg7XG5cdC0tUFdBX09QRU5fQVBQX0hFTFBfQk9YX0JPUkRFUjogMXB4IGRhc2hlZCAjZGVlMmU2O1xuXHQtLVBXQV9PUEVOX0FQUF9IRUxQX1RJVExFX1NJWkU6IDEzcHg7XG5cdC0tUFdBX09QRU5fQVBQX0hFTFBfVElUTEVfQ09MT1I6ICM2NjY7XG5cdC0tUFdBX09QRU5fQVBQX0hFTFBfQ09OVEVOVF9TSVpFOiAxNHB4O1xuXHQtLVBXQV9PUEVOX0FQUF9IRUxQX0NPTlRFTlRfQ09MT1I6ICMzMzM7XG5cblx0LyogUFdBIEFwcCBJY29uICovXG5cdC0tUFdBX0FQUF9JQ09OX1NJWkU6IDIycHg7XG5cdC0tUFdBX0FQUF9JQ09OX1JBRElVUzogNnB4O1xuXHQtLVBXQV9BUFBfSUNPTl9TSEFET1c6IDAgMnB4IDhweCByZ2JhKDAsMCwwLDAuMTUpO1xuXG5cdC8qIFBXQSBTdWNjZXNzIEJhbm5lciAqL1xuXHQtLVBXQV9TVUNDRVNTX0JBTk5FUl9UT1A6IDIwcHg7XG5cdC0tUFdBX1NVQ0NFU1NfQkFOTkVSX1BBRERJTkc6IDE2cHggMjRweDtcblx0LS1QV0FfU1VDQ0VTU19CQU5ORVJfUkFESVVTOiAxMnB4O1xuXHQtLVBXQV9TVUNDRVNTX0JBTk5FUl9NQVhfV0lEVEg6IDkwJTtcblx0LS1QV0FfU1VDQ0VTU19CQU5ORVJfSUNPTl9TSVpFOiAxOHB4O1xuXHQtLVBXQV9TVUNDRVNTX0JBTk5FUl9JQ09OX01BUkdJTjogOHB4O1xuXHQtLVBXQV9TVUNDRVNTX0JBTk5FUl9BTklNQVRJT046IHNsaWRlRG93blN1Y2Nlc3MgMC41cyBlYXNlLW91dDtcblxuXHQvKiBQV0EgU2FmYXJpIFNoYXJlIEljb24gKi9cblx0LS1QV0FfU0FGQVJJX1NIQVJFX0lDT05fU0laRTogMTdweDtcblx0LS1QV0FfU0FGQVJJX1NIQVJFX0lDT05fTUFSR0lOOiA0cHg7XG5cblx0LyogUFdBIFJlc3BvbnNpdmUgKi9cblx0LS1QV0FfQlJFQUtQT0lOVF9ERVNLVE9QOiA3NjlweDtcblx0LS1QV0FfQlJFQUtQT0lOVF9NT0JJTEU6IDc2OHB4O1xuXG5cdC8qIFBXQSBDb21tb24gVmFsdWVzICovXG5cdC0tUFdBX0ZPTlRfRkFNSUxZOiAnRmlndHJlZScsIHNhbnMtc2VyaWY7XG5cdC0tUFdBX1pfSU5ERVhfTU9EQUxfT1ZFUkxBWTogMTAwMDI7XG5cdC0tUFdBX1pfSU5ERVhfQkFOTkVSOiAxMDAwMDtcblx0LS1QV0FfWl9JTkRFWF9DTE9TRV9CVE46IDEwO1xuXG5cdC8qIFBXQSBDb21tb24gU3BhY2luZ3MgKi9cblx0LS1QV0FfU1BBQ0lOR19YWFM6IDRweDtcblx0LS1QV0FfU1BBQ0lOR19YUzogNXB4O1xuXHQtLVBXQV9TUEFDSU5HX1NNOiA2cHg7XG5cdC0tUFdBX1NQQUNJTkdfTUQ6IDhweDtcblx0LS1QV0FfU1BBQ0lOR19MRzogMTBweDtcblx0LS1QV0FfU1BBQ0lOR19YTDogMTVweDtcblx0LS1QV0FfU1BBQ0lOR18yWEw6IDE2cHg7XG5cdC0tUFdBX1NQQUNJTkdfM1hMOiAxOHB4O1xuXHQtLVBXQV9TUEFDSU5HXzRYTDogMjBweDtcblxuXHQvKiBQV0EgQ29tbW9uIFNpemVzICovXG5cdC0tUFdBX1dJRFRIX0ZVTEw6IDEwMCU7XG5cdC0tUFdBX1dJRFRIXzkwOiA5MCU7XG5cdC0tUFdBX1dJRFRIX0lDT046IDIwcHg7XG5cdC0tUFdBX01BWF9XSURUSF9CQU5ORVJfSU5ORVI6IDEyMDBweDtcblx0LS1QV0FfTUFYX1dJRFRIX0lOU1RSVUNUSU9OU19ERVNLVE9QOiA2MDBweDtcblx0LS1QV0FfTUFYX1dJRFRIX0lOU1RSVUNUSU9OU19NT0JJTEU6IDQ1MHB4O1xuXHQtLVBXQV9NQVhfV0lEVEhfTU9EQUxfTU9CSUxFOiA5MCU7XG5cdC0tUFdBX0xJTkVfSEVJR0hUX1RJR0hUOiAxO1xuXHQtLVBXQV9MSU5FX0hFSUdIVF9OT1JNQUw6IDEuNjtcblx0LS1QV0FfVEVYVF9TSEFET1dfTk9ORTogbm9uZTtcblxuXHQvKiBQV0EgT3BhY2l0eSB2YWx1ZXMgKi9cblx0LS1QV0FfT1BBQ0lUWV9GVUxMOiAxO1xuXHQtLVBXQV9PUEFDSVRZX0hJR0g6IDAuOTtcblxuXHQvKiBQV0EgQm9yZGVyIHJhZGl1cyB2YWx1ZXMgKi9cblx0LS1QV0FfUkFESVVTX0NJUkNMRTogNTAlO1xuXG5cdC8qIFBXQSBCcm93c2VyIEVkZ2UgY29sb3IgKi9cblx0LS1QV0FfQlJPV1NFUl9CT1hfQk9SREVSX0VER0U6ICMwMDc4RDQ7XG5cblx0LyogUFdBIE1vZGFsIFJlc3BvbnNpdmUgUGFkZGluZyAqL1xuXHQtLVBXQV9NT0RBTF9DT05URU5UX1BBRERJTkdfTU9CSUxFOiAzMHB4IDIwcHg7XG5cdC0tUFdBX0lOU1RSVUNUSU9OU19QQURESU5HX0RFU0tUT1A6IDMwcHg7XG5cblx0LyogUFdBIE1hcmdpbiB2YWx1ZXMgKi9cblx0LS1QV0FfTUFSR0lOX1pFUk86IDA7XG5cdC0tUFdBX01BUkdJTl9BVVRPOiAwIGF1dG87XG5cblx0LyogUFdBIEdhcCB2YWx1ZXMgKi9cblx0LS1QV0FfR0FQX1NNOiAxMHB4O1xuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5GT1JNUyBVTklGSUVEIFZBUklBQkxFU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5cdC8qIEZvcm0gY29udGFpbmVycyAqL1xuXHQtLUZPUk1fQ09OVEFJTkVSX01BWF9XSURUSDogMTMwMHB4O1xuXHQtLUZPUk1fQ09OVEFJTkVSX1dJRFRIOiA5MCU7XG5cdC0tRk9STV9DT05UQUlORVJfUEFERElORzogMS41cmVtIDNyZW07XG5cdC0tRk9STV9DT05UQUlORVJfUEFERElOR19NT0JJTEU6IDAuNXJlbSAxLjVyZW07XG5cdC0tRk9STV9DT05UQUlORVJfQk9SREVSX1JBRElVUzogdmFyKC0tQlVUVE9OX0JPUkRFUl9SQURJVVMpO1xuXHQtLUZPUk1fQ09OVEFJTkVSX1NIQURPVzogMCAxNXB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjMpLCAwIDEwcHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMik7XG5cdC0tRk9STV9DT05UQUlORVJfQkFDS0dST1VORDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tQ09MT1JfU1VSRkFDRV8yMCkgMCUsIHZhcigtLUNPTE9SX1NVUkZBQ0VfMTApIDEwMCUpO1xuXHRcblx0LyogRm9ybSBoZWFkZXJzICovXG5cdC0tRk9STV9IRUFERVJfQkFDS0dST1VORDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1DT0xPUl9BQ1RJT05fNDApLCB2YXIoLS1DT0xPUl9BQ1RJT05fNjApKTtcblx0LS1GT1JNX0hFQURFUl9QQURESU5HOiAycmVtIDEuNXJlbTtcblx0LS1GT1JNX0hFQURFUl9URVhUX0NPTE9SOiB2YXIoLS1XSElURSk7XG5cdC0tRk9STV9IRUFERVJfVElUTEVfU0laRTogMi4ycmVtO1xuXHQtLUZPUk1fSEVBREVSX1NVQlRJVExFX1NJWkU6IDEuMnJlbTtcblxuXHQvKiBGb3JtIGlucHV0cyAqL1xuXHQtLUZPUk1fSU5QVVRfQkFDS0dST1VORDogdmFyKC0tV0hJVEUpO1xuXHQtLUZPUk1fSU5QVVRfQkFDS0dST1VORF9EQVJLOiAjNGE1NTY4O1xuXHQtLUZPUk1fSU5QVVRfQk9SREVSX1JBRElVUzogMTJweDtcblx0LS1GT1JNX0lOUFVUX1BBRERJTkc6IDAuOHJlbSAxcmVtO1xuXHQtLUZPUk1fSU5QVVRfUEFERElOR19XSVRIX0lDT046IDAuOHJlbSAxcmVtIDAuOHJlbSA0NXB4O1xuXHQtLUZPUk1fSU5QVVRfRk9OVF9TSVpFOiAxcmVtO1xuXHQtLUZPUk1fSU5QVVRfQk9SREVSX0NPTE9SOiB0cmFuc3BhcmVudDtcblx0LS1GT1JNX0lOUFVUX0JPUkRFUl9DT0xPUl9GT0NVUzogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTtcblx0LS1GT1JNX0lOUFVUX1NIQURPVzogaW5zZXQgNHB4IDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpLCBpbnNldCAtNHB4IC00cHggOHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSwgNHB4IDRweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG5cdC0tRk9STV9JTlBVVF9TSEFET1dfRk9DVVM6IGluc2V0IDJweCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgaW5zZXQgLTJweCAtMnB4IDVweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCksIDAgMCAwIDNweCByZ2JhKDI1NSwgOTQsIDAsIDAuMik7XG5cdC0tRk9STV9JTlBVVF9URVhUX0NPTE9SOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzEwKTtcblx0LS1GT1JNX0lOUFVUX1RFWFRfQ09MT1JfREFSSzogI2UyZThmMDtcblxuXHQvKiBGb3JtIGxhYmVscyAqL1xuXHQtLUZPUk1fTEFCRUxfQ09MT1I6IHZhcigtLUNPTE9SX1NVUkZBQ0VfNzApO1xuXHQtLUZPUk1fTEFCRUxfRk9OVF9XRUlHSFQ6IDUwMDtcblx0LS1GT1JNX0xBQkVMX01BUkdJTl9CT1RUT006IDAuNXJlbTtcblx0LS1GT1JNX0xBQkVMX0ZPTlRfU0laRTogMXJlbTtcblxuXHQvKiBGb3JtIGljb25zICovXG5cdC0tRk9STV9JQ09OX0NPTE9SOiB2YXIoLS1DT0xPUl9BQ1RJT05fNDApO1xuXHQtLUZPUk1fSUNPTl9DT0xPUl9GT0NVUzogdmFyKC0tQ09MT1JfQUNUSU9OXzYwKTtcblx0LS1GT1JNX0lDT05fUE9TSVRJT05fTEVGVDogMTVweDtcblx0LS1GT1JNX0lDT05fU0laRTogMjBweDtcblxuXHQvKiBGb3JtIGJ1dHRvbnMgKi9cblx0LS1GT1JNX0JVVFRPTl9CQUNLR1JPVU5EOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1DT0xPUl9BQ1RJT05fNDApLCB2YXIoLS1DT0xPUl9BQ1RJT05fNjApKTtcblx0LS1GT1JNX0JVVFRPTl9DT0xPUjogdmFyKC0tV0hJVEUpO1xuXHQtLUZPUk1fQlVUVE9OX0hFSUdIVDogNTBweDtcblx0LS1GT1JNX0JVVFRPTl9GT05UX1NJWkU6IDFyZW07XG5cdC0tRk9STV9CVVRUT05fRk9OVF9XRUlHSFQ6IDYwMDtcblx0LS1GT1JNX0JVVFRPTl9CT1JERVJfUkFESVVTOiB2YXIoLS1CVVRUT05fQk9SREVSX1JBRElVUyk7XG5cdC0tRk9STV9CVVRUT05fU0hBRE9XOiA2cHggNnB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjI1KSwgLTRweCAtNHB4IDEycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpLCBpbnNldCAxcHggMXB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIGluc2V0IDRweCA0cHggOHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSwgaW5zZXQgLTRweCAtNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMik7XG5cdC0tRk9STV9CVVRUT05fU0hBRE9XX0hPVkVSOiA4cHggOHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjMpLCAtNXB4IC01cHggMTVweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSksIGluc2V0IDJweCAycHggNHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcblx0LS1GT1JNX0JVVFRPTl9TSEFET1dfQUNUSVZFOiAzcHggM3B4IDZweCByZ2JhKDAsIDAsIDAsIDAuMiksIC0ycHggLTJweCA2cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpLCBpbnNldCAycHggMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSksIGluc2V0IC0ycHggLTJweCA0cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcblxuXHQvKiBGb3JtIGNoZWNrYm94ZXMgKi9cblx0LS1GT1JNX0NIRUNLQk9YX1NJWkU6IDIycHg7XG5cdC0tRk9STV9DSEVDS0JPWF9CT1JERVJfQ09MT1I6IHZhcigtLUNPTE9SX1NVUkZBQ0VfNjApO1xuXHQtLUZPUk1fQ0hFQ0tCT1hfQk9SREVSX0NPTE9SX0NIRUNLRUQ6IHZhcigtLUNPTE9SX0FDVElPTl81MCk7XG5cdC0tRk9STV9DSEVDS0JPWF9CQUNLR1JPVU5EX0NIRUNLRUQ6IHZhcigtLUNPTE9SX0FDVElPTl81MCk7XG5cdC0tRk9STV9DSEVDS0JPWF9CT1JERVJfUkFESVVTOiA0cHg7XG5cdC0tRk9STV9DSEVDS0JPWF9DSEVDS19DT0xPUjogdmFyKC0tV0hJVEUpO1xuXHQtLUZPUk1fQ0hFQ0tCT1hfQ0hFQ0tfU0laRTogMjJweDtcblxuXHQvKiBGb3JtIHNwYWNpbmcgKi9cblx0LS1GT1JNX0ZJRUxEX01BUkdJTl9CT1RUT006IDEuNXJlbTtcblx0LS1GT1JNX1NFQ1RJT05fTUFSR0lOX0JPVFRPTTogMnJlbTtcblxuXHQvKiBGb3JtIGVycm9ycyAqL1xuXHQtLUZPUk1fRVJST1JfQ09MT1I6ICNkYzM1NDU7XG5cdC0tRk9STV9FUlJPUl9GT05UX1NJWkU6IDAuODc1cmVtO1xuXHQtLUZPUk1fRVJST1JfTUFSR0lOX1RPUDogMC4yNXJlbTtcblx0LS1GT1JNX0VSUk9SX0JPUkRFUl9DT0xPUjogI2RjMzU0NTtcblx0LS1GT1JNX0VSUk9SX1NIQURPVzogaW5zZXQgMnB4IDJweCA1cHggcmdiYSgyMjAsIDUzLCA2OSwgMC4xKSwgaW5zZXQgLTJweCAtMnB4IDVweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCksIDAgMCAwIDNweCByZ2JhKDIyMCwgNTMsIDY5LCAwLjIpO1xuXG5cdC8qIEZvcm0gYWxlcnRzICovXG5cdC0tRk9STV9BTEVSVF9QQURESU5HOiAxLjI1cmVtIDEuNXJlbSAxLjI1cmVtIDNyZW07XG5cdC0tRk9STV9BTEVSVF9CT1JERVJfUkFESVVTOiAxMnB4O1xuXHQtLUZPUk1fQUxFUlRfTUFSR0lOX0JPVFRPTTogMS41cmVtO1xuXHQtLUZPUk1fQUxFUlRfRk9OVF9XRUlHSFQ6IDUwMDtcblx0LS1GT1JNX0FMRVJUX0ZPTlRfU0laRTogMXJlbTtcblx0LS1GT1JNX0FMRVJUX1NIQURPVzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuXHQtLUZPUk1fQUxFUlRfU1VDQ0VTU19CQUNLR1JPVU5EOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZDRlZGRhIDAlLCAjYzNlNmNiIDEwMCUpO1xuXHQtLUZPUk1fQUxFUlRfU1VDQ0VTU19DT0xPUjogIzE1NTcyNDtcblx0LS1GT1JNX0FMRVJUX1NVQ0NFU1NfQk9SREVSOiA0cHggc29saWQgIzI4YTc0NTtcblx0LS1GT1JNX0FMRVJUX0VSUk9SX0JBQ0tHUk9VTkQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmOGQ3ZGEgMCUsICNmNWM2Y2IgMTAwJSk7XG5cdC0tRk9STV9BTEVSVF9FUlJPUl9DT0xPUjogIzcyMWMyNDtcblx0LS1GT1JNX0FMRVJUX0VSUk9SX0JPUkRFUjogNHB4IHNvbGlkICNkYzM1NDU7XG5cblx0LyogRm9ybSByZXNwb25zaXZlIGJyZWFrcG9pbnRzICovXG5cdC0tRk9STV9CUkVBS1BPSU5UX1RBQkxFVDogODk2cHg7XG5cdC0tRk9STV9CUkVBS1BPSU5UX01PQklMRTogNDgwcHg7XG5cdC0tRk9STV9CUkVBS1BPSU5UX1NNQUxMX01PQklMRTogMzIwcHg7XG5cblx0LyogRm9ybSBhbmltYXRpb25zICovXG5cdC0tRk9STV9UUkFOU0lUSU9OX0RVUkFUSU9OOiAwLjNzO1xuXHQtLUZPUk1fQU5JTUFUSU9OX0RVUkFUSU9OOiAwLjhzO1xuXHQtLUZPUk1fQU5JTUFUSU9OX0RFTEFZOiAwLjFzO1xuXG59XG4iLCIvKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG7CqSAyMDE3IEZyYW5jayBEdXJhbmRcbkFsbCBSaWdodHMgUmVzZXJ2ZWRcblRISVMgV09SSyBDT05UQUlOUyBUUkFERSBTRUNSRVQgQU5EIFBST1BSSUVUQVJZIElORk9STUFUSU9OIFdISUNIIEFSRSBUSEUgUFJPUEVSVFkgT0YgRlJBTkNLIERVUkFORCBPUiBJVFMgTElDRU5TT1JTIEFORCBJUyBTVUJKRUNUIFRPIExJQ0VOU0UgVEVSTVMuXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblxuQ1NTIFNlbGVjdG9yc1xuXHQqIEhUTUwgZWxlbWVudCBzZWxlY3RvcjogZWxlbWVudCBuYW1lLiBFeDogcCB7dGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogcmVkO31cblx0KiBIVE1MIGlkIHNlbGVjdG9yOiBcIiNcIiArIGlkLiBFeDogI21hcFxuXHQqIEhUTUwgY2xhc3Mgc2VsZWN0b3I6IFwiLlwiICsgY2xhc3MgbmFtZS4gRXg6IC5TaWRlYmFyXG5DU1MgbmFtaW5nIHJ1bGVzXG5cdCogQmFzZSBydWxlczpcblx0XHQtIGNsYXNzIG5hbWU6IGxvd2VyY2FzZV9uYW1lc193aXRoX3VuZGVyc2NvcmVcblx0XHQtIHZhcmlhYmxlIG5hbWU6IFVQUEVSQ0FTRV9OQU1FUy4gXCItXCIgaXMgdW5zdXBwb3J0ZWQhXG5cdCogQkVNIHJ1bGVzOiBibG9ja19fZWxlbWVudC0tbW9kaWZpZXIgKGh0dHBzOi8vb3BlbmNsYXNzcm9vbXMuY29tL2ZyL2NvdXJzZXMvNjEwNjE4MS1zaW1wbGlmaWV6LXZvdXMtbGUtY3NzLWF2ZWMtc2Fzcy82NTk1ODA5LWNyZWV6LWRlcy1zZWxlY3RldXJzLWh0bWwtYXZlYy1sYS1tZXRob2RvbG9naWUtYmVtKVxuV2l0aCBFY2xpcHNlIENUUkwrU1BBQ0UgdG8gZ2V0IHRoZSBzeW50YXggYXV0byBzdWdnZXN0aW9uIChQcmVmZXJlbmNlPldlYj5DU1M+ZWRpdG9yPmNvbnRlbnRBc3Npc3QpXG5cbiovXHRcdCAgXG5cbi8qIE1ha2UgdmlzaWJsZSB0aGUgZm9jdXMgKGZvciBkZWJ1Z2dpbmcpXG4vKiBpbnB1dDpmb2N1cyB7YmFja2dyb3VuZC1jb2xvcjogeWVsbG93O30gICovXG5cbi8qIEh5cGVybGlua3MgKi9cbmE6bGluayB7XG4gIGNvbG9yOiB2YXIoLS1DT0xPUl9BQ1RJT05fNTApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyAvKnVuZGVybGluZSovXG59XG5cbmE6dmlzaXRlZCB7XG4gIGNvbG9yOiB2YXIoLS1DT0xPUl9BQ1RJT05fNTApOy8qYmVmb3JlIGJsdWUqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5hOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl81MCk7LypyZWQqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIFxufVxuXG5hOmFjdGl2ZSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1DT0xPUl9TVVJGQUNFXzMwKTsvKiBBIFZFUklGSUVSIFVSR0VOVCovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4vKiAqL1xuLnczLWRlZXAtb3JhbmdlLCAudzMtaG92ZXItZGVlcC1vcmFuZ2U6aG92ZXJ7XG5cdGNvbG9yOiNmZmYhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLUNPTE9SX0FDVElPTl81MCkhaW1wb3J0YW50O1xuXHQvKiBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLUNPTE9SX0FDVElPTl80MCksIHZhcigtLUNPTE9SX0FDVElPTl82MCkpOyAqL1xufVxuLnczLW9yYW5nZSwudzMtaG92ZXItb3JhbmdlOmhvdmVye1xuXHRjb2xvcjojZmZmIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1DT0xPUl9BQ1RJT05fNjApIWltcG9ydGFudDtcbn1cbi53My1kYXJrLWdyZXksLnczLWhvdmVyLWRhcmstZ3JleTpob3Zlcntcblx0Y29sb3I6I2ZmZiFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6dmFyKC0tQ09MT1JfU1VSRkFDRV8xMCkhaW1wb3J0YW50O1xufVxuLnczLWdyZXksLnczLWhvdmVyLWdyZXk6aG92ZXJ7XG5cdGNvbG9yOiNmZmYhaW1wb3J0YW50OyAvKiBjb2xvcjojMDAwIWltcG9ydGFudDsgKi9cblx0YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1DT0xPUl9TVVJGQUNFXzQwKSFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtaW1hZ2U6IGluaXRpYWw7XG59XG4udzMtbGlnaHQtZ3JleSwudzMtaG92ZXItbGlnaHQtZ3JleTpob3Zlcntcblx0Y29sb3I6IzAwMCFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQtY29sb3I6dmFyKC0tQ09MT1JfU1VSRkFDRV82MCkhaW1wb3J0YW50XG59XG4udzMtd2hpdGUsLnczLWhvdmVyLXdoaXRlOmhvdmVye1xuXHRjb2xvcjojMDAwIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1XSElURSkhaW1wb3J0YW50XG59XG5cbi53My1idG4sIC53My1idG4tYmxvY2t7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLUJVVFRPTl9CT1JERVJfUkFESVVTKTtcblx0Y3Vyc29yOnBvaW50ZXI7XG59XG5cbi53My1idG46aG92ZXIsLnczLWJ0bi1ibG9jazpob3ZlciwudzMtYnRuLWZsb2F0aW5nOmhvdmVyLC53My1idG4tZmxvYXRpbmctbGFyZ2U6aG92ZXJ7XG5cdGJveC1zaGFkb3c6IHZhcigtLUZPUk1fU0hBRE9XX1dISVRFKTtcblx0LyogYm94LXNoYWRvdzowIDFweCAyMHB4IDAgaHNsKHZhcigtLVNIQURFX1NVUkZBQ0UpLHZhcigtLVNBVF9TVVJGQUNFKSw3MCUpOyAqL1xuXHQvKjAgNnB4IDIwcHggMCByZ2JhKDI1NSwyNTUsMCwwLjkpOyovXG59XG5cbiAucG9pX2xpc3RfdGFibGUgLnczLWJ0biB7XG5cdGhlaWdodDogMjJweDtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcblx0fSBcblxuLyogc3R5bGUgZm9yIGEgc3ltYm9sKi9cbi54LXN5bWJvbCB7XG4gXHRjb2xvcjp2YXIoLS1XSElURSk7XG5cdC8qZm9udC1zaXplOi44OHJlbTsqL1xuXHQvKnRvcDotMC4xNXJlbTsgaW4gdGhpcyBjYXNlLCBwYWRkaW5nLS1ib3R0b24gZG9lc24ndCBmdW5jdGlvbiovXG5cdHBhZGRpbmctbGVmdDogMC4yMHJlbTtcblx0aGVpZ2h0OjEwMCU7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgXHR0b3A6LTJweDtcblx0LyogcG9zaXRpb246YWJzb2x1dGU7Ki8gIFx0ICAgICAgICAgICAgICAgICBcbn1cbmlucHV0e1xuXHQvKiBjb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTsgKi9cblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlcjogbm9uZTtcblx0Zm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKnN0eWxlIGZvciBhIGNoZWNrYm94IGluIHRoZSBQT0lTIGxpc3QqL1xuaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICBcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0Ym9yZGVyOiAwLjEycmVtIHNvbGlkIHZhcigtLUNPTE9SX0FDVElPTl81MCk7XG5cdGJvcmRlci1yYWRpdXM6IDAuMTJyZW07XG5cdGJhY2tncm91bmQ6IHZhcigtLUNPTE9SX1NVUkZBQ0VfMTApO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGxpbmUtaGVpZ2h0OiAwO1xuXHQvKm1hcmdpbjogMCAuNmVtIDAgMDsqL1xuXHRvdXRsaW5lOiAwO1xuXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cdC8qIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDsgKi9cblx0aGVpZ2h0OiAwLjgwcmVtO1xuXHR3aWR0aDogMC44MHJlbTtcblx0YXBwZWFyYW5jZTogbm9uZTtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHQtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIFx0b3BhY2l0eTogMTtcbn1cblxuaW5wdXRbdHlwZT1jaGVja2JveF06aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuXG5pbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1DT0xPUl9BQ1RJT05fNTApO1xuICBvcGFjaXR5OiAxO1xufVxuXG5pbnB1dFt0eXBlPWNoZWNrYm94XTpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogNTAlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDAuMTZyZW0vKjRweCovO1xuICBoZWlnaHQ6IDAuNDZyZW0vKjEwcHgqLztcbiAgYm9yZGVyOiBzb2xpZCB2YXIoLS1DT0xPUl9TVVJGQUNFXzEwKTtcbiAgYm9yZGVyLXdpZHRoOiAwIDJweCAycHggMDtcbiAgLyogbWFyZ2luOiAtMC41cHggLTAuNXB4IDAgLTAuNXB4OyAqL1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB6LWluZGV4OiAyO1xufVxuXG4vKiBTw6lsZWN0aW9ubmUgdG91cyBsZXMgw6lsw6ltZW50cyBpbnB1dCBkZSB0eXBlIHJhZGlvICovXG5pbnB1dFt0eXBlPXJhZGlvXSB7XG4gIC8qIFN1cHByaW1lIGxlcyBzdHlsZXMgcGFyIGTDqWZhdXQgKi9cbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC8qIEFqb3V0ZSBsYSB0YWlsbGUgZXQgbGEgYm9yZHVyZSAqL1xuICB3aWR0aDogMC43cmVtO1xuICBoZWlnaHQ6IDAuN3JlbTtcbiAgYm9yZGVyOiAwLjEycmVtIHNvbGlkIHZhcigtLUNPTE9SX0FDVElPTl81MCk7XG4gIC8qIEFqb3V0ZSBsZSBzdHlsZSBkZSBsYSBjYXNlICovXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XG59XG5cbi8qIFPDqWxlY3Rpb25uZSBsZXMgYm91dG9ucyByYWRpbyBjb2Now6lzICovXG5pbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkIHtcbiAgLyogQ2hhbmdlIGxhIGNvdWxldXIgZHUgcG9pbnQgaW50w6lyaWV1ciBkZSBsYSBjYXNlIGNvY2jDqWUgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTtcbn1cblxuLnJhZGlvLWxpc3Qge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbn1cblxuIGh0bWwsIGJvZHkge1xuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3IteTogY29udGFpbjsgLyogRGlzYWJsZSB0aGUgcHVsbC10by1yZWZyZXNoIGV2ZXJ5d2hlcmUgb24gQW5kcm9pZCtDaHJvbWUgKi9cbiAgICB0b3VjaC1hY3Rpb246IHBhbi15IHBhbi14OyAvKiBEaXNhYmxlIHRoZSBwdWxsLXRvLXJlZnJlc2ggZXZlcnl3aGVyZSBvbiBpT1MrU2FmYXJpICovXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogRGlzYWJsZSB0aGUgcHVsbC10by1yZWZyZXNoIGV2ZXJ5d2hlcmUgb24gaU9TK1NhZmFyaSAqL1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LWZhbWlseTogdmFyKC0tRk9OVC1GQU1JTFkpO1xuICAgIGZvbnQtc2l6ZTogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzEwKTtcbiAgICBjb2xvcjogdmFyKC0tQ09MT1JfRk9OVCk7XG59XG5cbi8qIHN0eWxlcyBpbiBweCBQb3BwaW5zIHNhbnMgc2VyaWYgaW5zdGVhZCBvZiBTZWdvZSBVSSovXG5oMSB7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1GT05ULUZBTUlMWSk7XG5cdGZvbnQtc2l6ZToxLjA2cmVtOy8qIDE3LCAyMHB4IC8gYW5jaWVubmUgdmVyc2lvbiA6IHNvaXQgMzBweCBvdSAxLjg3NSByZW0gKD0zMHB4LzE2cHgpICovXG59XG5oMiB7XG5cdC8qIDMgbmV4dCBsaW5lcyBmb3IgdHJ1bmNhdGluZyBhIHRvbyBsb25nIHRleHQuUmVmOiBodHRwczovL2NvZGVwZW4uaW8vRGVzaWduZXJBc2hpc2hPcmcvcGVuL0pvWVpPQiAqL1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cdHRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7XG5cdHdoaXRlLXNwYWNlOm5vd3JhcDtcblx0Zm9udC1mYW1pbHk6IHZhcigtLUZPTlQtRkFNSUxZKTtcblx0Zm9udC1zaXplOjAuOTVyZW07LyogMTMsMTVweCAvIGFuY2llbm5lIHZlcnNpb24gOiAgc29pdCAyNnB4IG91IDEuNjMgcmVtICg9MjZweC8xNnB4KSAqL1xuXHQvKiBmb250LXdlaWdodDogYm9sZDsgKi9cblx0bWFyZ2luOiAwcmVtO1xufVxuaDMge1xuXHRmb250LWZhbWlseTogdmFyKC0tRk9OVC1GQU1JTFkpO1xuXHRmb250LXNpemU6MC43NXJlbS8qIDEyLCAxNHB4IC8gYW5jaWVubmUgdmVyc2lvbiA6ICBzb2l0IDI0cHggb3UgMS41IHJlbSAoPTI0cHgvMTZweCkgKi9cbn1cbmg0IHtcblx0Zm9udC1mYW1pbHk6IHZhcigtLUZPTlQtRkFNSUxZKTtcblx0Zm9udC1zaXplOjAuNjlyZW0vKiAxMSwgMTJweCAvIGFuY2llbm5lIHZlcnNpb24gOiAgc29pdCAyMHB4IG91IDEuMjUgcmVtICg9MjBweC8xNnB4KSAqL1xufVxuaDUge1xuXHRmb250LWZhbWlseTogdmFyKC0tRk9OVC1GQU1JTFkpO1xuXHRmb250LXNpemU6MC42M3JlbS8qIDEwLDExcHggLyBhbmNpZW5uZSB2ZXJzaW9uIDogIHNvaXQgMThweCBvdSAxLjEzIHJlbSAoPTE4cHgvMTZweCkgKi9cbn1cbmg2IHtcblx0Zm9udC1mYW1pbHk6IHZhcigtLUZPTlQtRkFNSUxZKTtcblx0Zm9udC1zaXplOjAuNTZyZW0vKiA5LCAxMHB4IC8gYW5jaWVubmUgdmVyc2lvbiA6ICBzb2l0IDE2cHggb3UgMSByZW0gKD0xMXB4LzE2cHgpICovXG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkxFR0FMIElORk9STUFUSU9OXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi8qIHRpdGxlIHtcblx0ZGlzcGxheTogYmxvY2shaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgcGFkZGluZy10b3A6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59ICovXG4uZWRpdG9yaWFsIGgxIHtcblx0LyogZGlzcGxheTogYmxvY2shaW1wb3J0YW50OyAqL1xuICAgIG1hcmdpbi10b3A6IDlyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uZWRpdG9yaWFsIGgxOm50aC1vZi10eXBlKDIpIHtcblx0bWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG5cdGNvbG9yOiBoc2wodmFyKC0tU0hBREVfQUNUSU9OKSx2YXIoLS1TQVRfQUNUSU9OKSw1MCUpO1xufVxuXG4uZWRpdG9yaWFsIGgyIHtcblx0Zm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7LyogMTcsIDIwcHggLyBvbGQgdmVyc2lvbiA6IG9yIDMwcHggb3UgMS44NzUgcmVtICg9MzBweC8xNnB4KSAqL1xuXHQvKiB0ZXh0LWluZGVudDogMjBweDsgKi9cblx0cGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcbiAgICAvKiB0ZXh0LXdyYXA6IHdyYXA7ICovXG59XG5cbi5lZGl0b3JpYWwgaDMge1xuXHRcdGZvbnQtc2l6ZTowLjgxMjVyZW0gIWltcG9ydGFudDsvKiAxMywxNXB4IC8gb2xkIHZlcnNpb24gOiAgb3IgMjZweCBvdSAxLjYzIHJlbSAoPTI2cHgvMTZweCkgKi9cblx0XHQvKiB0ZXh0LWluZGVudDogNDVweDsgKi9cblx0XHRwYWRkaW5nLWxlZnQ6IDQ1cHg7XG4gICAgXHRwYWRkaW5nLXJpZ2h0OiA0cHg7XG5cdH1cbi5lZGl0b3JpYWwgaDQge1xuXHRcdGZvbnQtc2l6ZTowLjgxMjVyZW0gIWltcG9ydGFudDtcblx0XHQvKiB0ZXh0LWluZGVudDogMTI1cHg7ICovXG5cdFx0cGFkZGluZy1sZWZ0OiA2MHB4O1xuICAgIFx0cGFkZGluZy1yaWdodDogNHB4O1xuXHR9XG5cbi5lZGl0b3JpYWwgLmluZm8gaDQge1xuXHRcdHRleHQtaW5kZW50OiAwcHggIWltcG9ydGFudDtcblx0fVxuXG4uZWRpdG9yaWFsIC5pbmZvIGg0IHNwYW4ge1xuXHRcdGNvbG9yOnZhcigtLUNPTE9SX1NVUkZBQ0VfNzApO1xuXHR9XG5cdFxuLmluZm8gaXtcblx0Zm9udC1zaXplOiAzMHB4O1xuXHRwYWRkaW5nLXRvcDogMzBweDtcblx0bWFyZ2luLXJpZ2h0OiAzMHB4O1xuXHRjb2xvcjogaHNsKHZhcigtLVNIQURFX1NVUkZBQ0UpLCB2YXIoLS1TQVRfU1VSRkFDRSksIDUwJSk7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0d2lkdGg6IDIwcHg7XG5cdGxpbmUtaGVpZ2h0OiAxLjVyZW07XG59XG5cbi5lZGl0b3JpYWwgcCB7XG5cdC8qIHRleHQtaW5kZW50OiA1MHB4OyAqL1xuXHRmb250LXNpemU6MC43NXJlbSAhaW1wb3J0YW50O1xuXHRwYWRkaW5nOiAwIDEwMHB4O1xuXHR0ZXh0LWFsaWduOiBqdXN0aWZ5O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk2cHgpIHtcblx0LmVkaXRvcmlhbCBwIHtcblx0XHRwYWRkaW5nOiAwIDEwJTtcblx0fVxufVxuLmVkaXRvcmlhbCB1bHtcblx0XHRmb250LXNpemU6MC43NXJlbSAhaW1wb3J0YW50O1xuXHRcdGxpc3Qtc3R5bGUtdHlwZTpkaXNjICFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luLWxlZnQ6IDIwcHggIWltcG9ydGFudDtcblx0XHRwYWRkaW5nLWxlZnQ6IDE1MHB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDM1MHB4O1xuXHR9XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTZweCkge1xuXHRcdC5lZGl0b3JpYWwgdWx7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDE1JTtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDEzJTtcblx0XHR9XG5cdH1cbi5lZGl0b3JpYWwgbGl7XG5cdFx0cGFkZGluZy1ib3R0b206IDEwcHg7XG5cdH1cblxuLypQdXQgdGhlIHdvcmQgXCJEaXNwbGF5XCIgaW4gdGhlIHBhc3Nld29yZCBmb3JtXG4ucGFzc3dvcmQtY29udGFpbmVye1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnRvZ2dsZS1wYXNzd29yZHtcblx0cGFkZGluZy1sZWZ0OiAxMHB4O1xufSovXG5cbi8qIEhvdyB0byBmb3JtYXQgYSBwYXNzd29yZCAqL1xuXHQucGFzc3dvcmQtc3RyZW5ndGggbGl7XG5cdFx0dGV4dC1pbmRlbnQ6IDI1cHg7XG5cdFx0cGFkZGluZy1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuXHRcdGZvbnQtc2l6ZTogMC43NXJlbSAhaW1wb3J0YW50O1xuXHR9XG5cblx0LmZvcm0gaDF7IC8qIHRpdGxlIGgxIGZvciB0aGUgTmV3IEN1c3RvbWVyPyAqL1xuXHRcdG1hcmdpbi10b3A6IDByZW0gIWltcG9ydGFudDtcblx0XHRwYWRkaW5nLXRvcDogMHJlbSAhaW1wb3J0YW50O1xuXHR9XG5cdC5mb3JtIGg0eyAvKiB0aXRsZSBoNCBmb3IgSW5zY3JpdmV6LXZvdXMgKi9cblx0XHR0ZXh0LWluZGVudDogMHJlbTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdH1cblxuXHRmb3JtIHVse1xuXHRcdGNvbG9yOiByZWQ7XG5cdFx0cGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFudDtcblx0XHRtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDtcblx0XHQvKm1hcmdpbi1sZWZ0OiAwcHggIWltcG9ydGFudDtcblx0XHRwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50OyAqL1xuXHR9XG5cdGZvcm0gbGl7XG5cdFx0bGlzdC1zdHlsZS10eXBlOm5vbmUgIWltcG9ydGFudDtcblx0fVxuXG5cdC8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblx0Ki9cblxuXHQvKiB0aGUgbGluZSovXG5cdC5saW5lLXdpdGgtdGV4dCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdG1hcmdpbjogMjBweCAwO1xuXHR9XG5cdC5saW5lLXdpdGgtdGV4dDo6YmVmb3JlLFxuXHQubGluZS13aXRoLXRleHQ6OmFmdGVyIHtcblx0XHRjb250ZW50OiAnJztcblx0XHRmbGV4OiAxO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBoc2wodmFyKC0tU0hBREVfU1VSRkFDRSksdmFyKC0tU0FUX1NVUkZBQ0UpLDMwJSk7XG5cdH1cblx0LmxpbmUtd2l0aC10ZXh0OjpiZWZvcmUge1xuXHRcdG1hcmdpbi1yaWdodDoxcmVtO1xuXHR9XG5cdC5saW5lLXdpdGgtdGV4dDo6YWZ0ZXIge1xuXHRcdG1hcmdpbi1sZWZ0OiAxcmVtO1xuXHR9XG5cdC8qIFRoZSAyIHdheXMgdG8gY29ubmVjdCBGYWNlYm9vayBvciBHb29nbGUqL1xuXHQuZmNiLWxvZ2luIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0LyogYm9yZGVyOiAxcHggc29saWQgI2RkZDsgKi9cblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1CVVRUT05fQk9SREVSX1JBRElVUyk7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogaHNsKHZhcigtLVNIQURFX1NVUkZBQ0UpLHZhcigtLVNBVF9TVVJGQUNFKSw0MCUpIWltcG9ydGFudDtcblx0XHRtYXJnaW4tYm90dG9tOiAwLjYyNXJlbTtcbiAgXHRcdHBhZGRpbmc6IDAuNjI1cmVtO1xuICBcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuICBcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBcdFx0LyogY29sb3I6ICMzMzM7ICovXG4gIFx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHQvKm1hcmdpbjogMTBweCAwOyAgQWpvdXRlIHVuIGVzcGFjZSBhdS1kZXNzdXMgZXQgZW4gZGVzc291cyAqL1xuXHRcdC8qIFN0eWxlIHN1cHBsw6ltZW50YWlyZSBzaSBuw6ljZXNzYWlyZSAqL1xuXHR9XG5cdC5zb2NpYWwtaWNvbiB7XG5cdFx0d2lkdGg6IDI0cHg7IFxuXHRcdGhlaWdodDogYXV0bztcblx0XHRtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtOyBcblx0XHRtYXJnaW4tbGVmdDogNi4yNXJlbTtcblx0ICB9XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblZBUklPVVMgRk9STVNcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLmZvcm0tY29udGFpbmVye1xuXHRkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uZm9ybXtcblx0d2lkdGg6IDQ3OHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5lZGl0b3JpYWwgbGFiZWx7XG5cdHdpZHRoOiBhdXRvO1xuXHRtYXJnaW4tdG9wOiAxLjVyZW07XG5cdG1hcmdpbi1ib3R0b206IDByZW0gIWltcG9ydGFudDtcbn1cblxuLmZvcm0tb3V0bGluZXtcblx0bWFyZ2luLWJvdHRvbTogb3B4ICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi10b3A6IDEuNXJlbTtcbn1cblxuLmZvcm0tY29udHJvbHtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tQlVUVE9OX0JPUkRFUl9SQURJVVMpICFpbXBvcnRhbnQ7XG5cdGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IC4zNzVyZW0gLjc1cmVtO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjZWQ0ZGE7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IC4yNXJlbTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQ7XG59XG5cbi5mb3JtLWNoZWNrLWxhYmVse1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0Zm9udC1zaXplOiAwLjhyZW07XG59XG5cbi5mb3JtLWNvbnRhaW5lciBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG5cdHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcCAhaW1wb3J0YW50OyBcbn1cblxuLmZvcm0tY2hlY2staW5wdXQ6Y2hlY2tlZFt0eXBlPWNoZWNrYm94XXtcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbn1cblxuLmZvcm0tY2hlY2stbGFiZWwsIC5mb3JtLWNoZWNrLWlucHV0IHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG5mb3JtIGlucHV0W3R5cGU9XCJzdWJtaXRcIl17XG5cdGZvbnQtc2l6ZToxcmVtO1xuXHRjb2xvcjojZmZmIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1DT0xPUl9BQ1RJT05fNDApLCB2YXIoLS1DT0xPUl9BQ1RJT05fNjApKTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tQlVUVE9OX0JPUkRFUl9SQURJVVMpO1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMzRweDtcblx0bWFyZ2luLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG5cdG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xuXHR9XG5cbi5idG4tcHJpbWFyeXtcblx0Zm9udC1zaXplOjFyZW07XG5cdGNvbG9yOiNmZmYhaW1wb3J0YW50O1xuXHRiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLUNPTE9SX0FDVElPTl80MCksIHZhcigtLUNPTE9SX0FDVElPTl82MCkpO1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1CVVRUT05fQk9SREVSX1JBRElVUyk7XG5cdGN1cnNvcjpwb2ludGVyO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAzNHB4O1xuXHRtYXJnaW4tdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcblx0bWFyZ2luLWJvdHRvbTogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5NnB4KSBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCl7XG5cdC5mb3JtLWNvbnRhaW5lciB7XG5cdFx0aGVpZ2h0OiBhdXRvOyAvKiBIZWlnaHQgYWRqdXN0bWVudCBmb3Igc21hbGwgc2NyZWVucyAqL1xuXHRcdHdpZHRoOjEwMCU7XG5cdFx0cGFkZGluZzogMjBweDsgIFxuXHR9XG5cblx0LmVkaXRvcmlhbCBsYWJlbCB7XG5cdFx0Zm9udC1zaXplOiAxcmVtO1xuXHRcdC8qIGJhY2tncm91bmQtY29sb3I6ICM3YjU0ZTg7ICovXG5cdFx0d2lkdGg6IDk2JTsgLyogQWxsb3dzIGxhYmVsIHRvIGFkYXB0IHRvIGNvbnRhaW5lciB3aWR0aCAqL1xuXHRcdG1hcmdpbi1sZWZ0OiAwOyAvKiBSZW1vdmVzIHRoZSBzcGVjaWZpYyBvZmZzZXQgKi9cblx0fVxuXG5cdC5mb3JtLWNvbnRyb2wge1xuICAgICAgICB3aWR0aDogMTAwJTsgLyogQWxsb3dzIGZvcm0gZmllbGRzIHRvIGV4dGVuZCB0byBmdWxsIHdpZHRoICovXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwOyAvKiBSZW1vdmVzIHRoZSBzcGVjaWZpYyBvZmZzZXQgKi9cbiAgICB9XG5cblx0LmZvcm0tY29uc2VudCA+IGRpdjpudGgtY2hpbGQoMSl7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cdH1cblxuICAgIGZvcm0gaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyAvKiBBZGFwdGF0aW9uIGRlIGxhIGxhcmdldXIgZHUgYm91dG9uIGF1IGNvbnRlbmV1ciAqL1xuICAgICAgICBoZWlnaHQ6IGF1dG87IC8qIEFqdXN0ZSBsYSBoYXV0ZXVyIHBvdXIgdW4gbWVpbGxldXIgdG91Y2hlciBzdXIgbGVzIHBldGl0cyDDqWNyYW5zICovXG4gICAgICAgIHBhZGRpbmc6IDEwcHggMjBweDsgLyogQXVnbWVudGUgbGUgcGFkZGluZyBwb3VyIHVuIG1laWxsZXVyIGFzcGVjdCAqL1xuICAgIH1cbn1cblxuLyogVG9vbHRpcHMgKi9cbi50b29sdGlwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qYm9yZGVyLWJvdHRvbTogMC4wNnJlbSBkb3R0ZWQgYmxhY2s7Ki9cbn1cblxuLnRvb2x0aXAgLnRvb2x0aXB0ZXh0IHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB3aWR0aDogNy41cmVtOy8qMTIwcHgqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrb3JhbmdlO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAwLjM4cmVtOy8qNnB4Ki9cbiAgcGFkZGluZzogMC4xOXJlbSAwcmVtOy8qM3B4Ki9cbiAgXG4gIC8qIFBvc2l0aW9uIHRoZSB0b29sdGlwICovXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAwcmVtO1x0LyogT3JpZ2luYWxseSBhdCAtNjBweCBjZW50ZXJpbmcgdGhlIHRvb2x0aXAgb24gdGhlIHRleHQsIDBweCBhbGxvd2luZyB0aGUgc2VlIHRoZSB0b29sdGlwIGV2ZW4gb24gdGhlIGV4dHJlbWUgbGVmdCBvZiBvdXIgUm9ib3QgdGFibGUgKi9cbn1cblxuLnRvb2x0aXA6aG92ZXIgLnRvb2x0aXB0ZXh0IHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuVEFCTEVTXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi8qdGFibGUgeyovXG4vKiBcdCAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XHRDb2xsYXBzZSBmb3IgMTAwJSB3aWR0aCAqL1xuLyogICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7ICovXG4vKiAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgKi9cbi8qICAgICBmb250LXdlaWdodDogbm9ybWFsOyAqL1xuLyogICAgIGZvbnQtc2l6ZTogc21hbGw7ICovXG4vKiAgICAgZm9udC1zdHlsZTogbm9ybWFsOyAqL1xuLyogICAgIGNvbG9yOiAtaW50ZXJuYWwtcXVpcmstaW5oZXJpdDsgKi9cbi8qICAgICB0ZXh0LWFsaWduOiBzdGFydDsgKi9cbi8qICAgICBib3JkZXItc3BhY2luZzogMC4wNnJlbTsgKi9cbi8qICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxOyAqL1xuLyp9Ki9cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuSU1BR0VTXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi8qIEltYWdlcyBvZiB0aGUgUE9JIGxpc3QgKi9cbmltZy5saXN0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTtcdC8qIFB1dCB0aGUgaW1hZ2UgaW4gdGhlIGJhY2tncm91bmQgY29tcGFyZWQgdG8gdGhlIFBvaSB0YWJsZSAqL1xuXHRvYmplY3QtZml0OiBjb3ZlcjtcdC8qIEZpdCB0aGUgaW1hZ2UgaW4gdGhlIGNvbnRhaW5lciBhc3NvY2lhdGVkIHdpdGggdGhlIDIgbmV4dCBjb2RlIGxpbmVzICovXG5cdHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICAvKmFzcGVjdC1yYXRpbzogNC8zOyAgSW1wb3NlIHRoZSByYXRpbyBvbiBhbGwgaW1hZ2VzIGV2ZW4gaW4gcG9ydHJhaXQuIE5vdCBnb29kIGVub3VnaC4gSWRlYWxseSAzLzIgKi9cbiAgICB0b3A6IDUwJTtcdC8qIENlbnRlciB0aGUgaW1hZ2UgaW4gdGhlIGNvbnRhaW5lciAqL1xuICBcdGxlZnQ6IDUwJTtcdC8qIENlbnRlciB0aGUgaW1hZ2UgaW4gdGhlIGNvbnRhaW5lciAqL1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcdC8qIENlbnRlciB0aGUgaW1hZ2UgaW4gdGhlIGNvbnRhaW5lciAqL1xufVxuXG4vKiBDb250YWluZXIgb2YgaW1hZ2VzIGZvciBwb3NpdGlvbm5pbmcgYW5kIGNyb3BwaW5nIHRoZW0gKi9cbmRpdi5pbWdfY29udGFpbmVyIHtcblx0ei1pbmRleDogMDtcblx0aGVpZ2h0OiAxMDAlOy8qY2FsYygxMDAlIC0gMTguNXB4KTtcdFByZXZpb3VzbHkgaGVpZ2h0OiAxMDAlOyBjb3ZlcmluZyB0aGUgZW50aXJlIHRhYmxlICovXG5cdG92ZXJmbG93OiBoaWRkZW47XHQvKiBDcm9wIChIaWRlKSB0aGUgcGFydCBvZiB0aGUgaW1hZ2Ugb3V0c2lkZSBvZiB0aGUgY29udGFpbmVyICovXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym90dG9tOiAwcmVtO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4OyAgLyogcm91bmQgdG9wLXJpZ2h0IGNvcm5lciAqL1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4OyAgLyogcm91bmQgYm90dG9tLXJpZ2h0IGNvcm5lciAqL1xuXHRyaWdodDogMHB4O1xufVxuQHN1cHBvcnRzIChhc3BlY3QtcmF0aW86IDMvMikge1x0LyogSWYgYXNwZWN0LXJhdGlvIGlzIHN1cHBvcnRlZCAoYnJvd3NlciA8IG1pZCAyMDIxLCBDaHJvbWUgPCB2MTAzKSAqL1xuXHRkaXYuaW1nX2NvbnRhaW5lciB7XG5cdFx0YXNwZWN0LXJhdGlvOiAzLzI7XHQvKiBFbnN1cmUgdGhlIHJpZ2h0IHJhdGlvIGFuZCB3aGF0ZXZlciB0aGUgc2lkZWJhciBzaXplLiBJZGVhbGx5IDMvMiAqL1xuXHRcdHdpZHRoOiBhdXRvO1xuXHR9XG59XG5Ac3VwcG9ydHMgbm90IChhc3BlY3QtcmF0aW86IDMvMikgeyAvKiBJZiBhc3BlY3QtcmF0aW8gaXMgTk9UIHN1cHBvcnRlZCAoYnJvd3NlciA8IG1pZCAyMDIxLCBDaHJvbWUgPCB2MTAzKSAqL1xuXHRkaXYuaW1nX2NvbnRhaW5lciB7XG5cdFx0d2lkdGg6IDEwM3B4O1x0LyogQWxsIGF0dGVtcHMgdG8gdXNlIG90aGVyIHRlY2huaWNzIGZhaWxlZCAqL1xuXHR9XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbk1BUEJPWCBNQVBcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLyogQWx3YXlzIHNldCB0aGUgbWFwIGhlaWdodCBleHBsaWNpdGx5IHRvIGRlZmluZSB0aGUgc2l6ZSBvZiB0aGUgZGl2IGVsZW1lbnQgdGhhdCBjb250YWlucyB0aGUgbWFwLiAqL1xuI21hcCB7XG4gXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdG1hcmdpbjogMDtcblx0cGFkZGluZzogMDtcdFxuXHRoZWlnaHQ6IDEwMCU7XG5cdHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDI1cHggMCAwIDA7XG59XG5cbi8qICNtYXAgY2FudmFzIHtcblx0Y3Vyc29yOiBjcm9zc2hhaXI7XHRkZWZpbmVkIG5vdyBpbiB0aGUgSmF2YVNjcmlwdCBjb2RlXG59ICovXG5cbiNmZWF0dXJlcyB7XHQvKiBXaW5kb3cgdG8gZGlzcGxheSB0aGUgZmVhdHVyZXMgcHJvcGVydGllcyAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDQwJTtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gICAgZm9udC1zaXplOiAxMTtcbn1cblxuLyogRm9yIHBob25lcyBhbmQgc21hbGwgc2NyZWVucyAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk2cHgpIHtcbiAgICAjbWFwIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB9XG59XG5cbi8qIE1hcCBtYXJrZXJzICovXG4ubWFya2VyX2NvbnRhaW5lciB7XG5cdG1hcmdpbjogMHJlbTtcblx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0b3BhY2l0eTogODAlO1xufVxuXG4vKiAubWFya2VyX2FuaW1hdGlvbiB7XG5cdHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbTtcbn0gKi9cblxuLm1hcmtlcl9sYWJlbCB7XHRcblx0Zm9udC1zaXplOiAwcmVtO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGNvbG9yOiBibGFjaztcblx0d2lkdGg6IDEyLjVyZW07XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMTAwJTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG5cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuREVCVUcgV0lORE9XXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi5kZWJ1Zy13aW5kb3cge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdGJvdHRvbTogMzBweDtcblx0cmlnaHQ6IDUlO1xuXHR3aWR0aDogYXV0bztcblx0aGVpZ2h0OiBhdXRvO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzIwKTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tQlVUVE9OX0JPUkRFUl9SQURJVVMpO1xuXHR6LWluZGV4OiAxMSA7XG59XG5cbi5kZWJ1Zy1oZWFkZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGJhY2tncm91bmQ6IHZhcigtLUNPTE9SX1NVUkZBQ0VfMzApO1xuXHRwYWRkaW5nOiAxMHB4O1xuXHRjdXJzb3I6IGdyYWI7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLUJVVFRPTl9CT1JERVJfUkFESVVTKTtcbn1cblxuLmRlYnVnLWhlYWRlcjphY3RpdmUgeyBjdXJzb3I6Z3JhYmJpbmc7IH1cblxuI2RlYnVnLXRpdGxlIHtcblx0Zm9udC1zaXplOiAxLjA3cmVtO1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cblxuXG4uZGVidWctYm9keSB7XG5cdHBhZGRpbmc6IDEwcHg7XG59XG5cbi5kZWJ1Zy1ib2R5IHAge1xuXHRmb250LXNpemU6IDAuNnJlbTtcblx0bWFyZ2luOiAwcHg7XG5cdGNvbG9yOnZhcigtLVdISVRFKTtcbn1cblxuXG4vKiBTbWFsbCBwcmV2aWV3IHN3YXRjaCAqL1xuLmRlYnVnLWNvbG9yY3RsIC5zd2F0Y2h7d2lkdGg6MTAwJTtoZWlnaHQ6MjBweDttYXJnaW4tdG9wOjZweDtib3JkZXI6MXB4IHNvbGlkICMwMDAxO2JvcmRlci1yYWRpdXM6NnB4fVxuLmRlYnVnLWNvbG9yY3RsIGxhYmVse2Rpc3BsYXk6ZmxleDtnYXA6NnB4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW46NHB4IDB9XG5cblxuLyogQnV0dG9uIHRvIGdldCBhIGZ1bGwgc2NyZWVuIG1vZGUgb24gQW5kcm9pZCAqL1xuLyogI2Z1bGxzY3JlZW4tYnRuIHtcblx0ei1pbmRleDo1O1xuXHRXaWR0aDogMTAwJTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tQlVUVE9OX0JPUkRFUl9SQURJVVMpO1xufSAqL1xuXG4uZGVidWctd2luZG93IGlucHV0W3R5cGU9XCJyYW5nZVwiXSB7XG4gICAgaGVpZ2h0OiAxMHB4O1xufVxuXG4uZGVidWctd2luZG93IGlucHV0W3R5cGU9XCJyYW5nZVwiXTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbn1cblxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5QTEFOIE1PREVcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLnBsYW4tbW9kZS1idXR0b24gc3ZnIHtcbiAgICBmaWxsOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzUwKTsgIC8qID0gQ09MT1JfUExBTl9NT0RFIGluIEpTICovXG4gICAgY3Vyc29yOnBvaW50ZXI7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuXG4ucGxhbl9tb2RlX2J1dHRvbl9sb2NrIHN2ZywgLnBsYW5fbW9kZV9idXR0b25fYWRkIHN2ZyB7XG5cdG1hcmdpbi1ib3R0b206IDdweDtcbn1cblxuLnBsYW5fbW9kZV9idXR0b25fZGVsZXRlIHN2ZyB7XG5cdG1hcmdpbi10b3A6IDdweDtcbn1cblxuLnBsYW4tbW9kZS1idXR0b246aG92ZXIgc3ZnIHtcbiAgICBmaWxsOiB2YXIoLS1DT0xPUl9BQ1RJT05fNTApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbn1cblxuLnRyYW4tbW9kZS1idXR0b24ge1xuXHRkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXHRmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cdGNvbG9yOiB2YXIoLS1DT0xPUl9BQ1RJT05fNTApO1xuICAgIGN1cnNvcjpwb2ludGVyO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5TUEVDSUZJQyBCVVRUT05TXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi5pbmZvLWJ1dHRvbiB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMC41N3JlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmNpcmNsZS10ZW1wIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3R0b206IDJweDtcblx0cmlnaHQ6IDJweDtcblx0d2lkdGg6IDEycHg7XG5cdGhlaWdodDogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cdGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB9XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblVOSUNPREUgU1lNQk9MU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4gIC5ibGFjay1zeW1ib2wge1xuICAgIGNvbG9yOiBibGFjazsgLyogc2V0IHRleHQgY29sb3IgdG8gYmxhY2sgKi9cbiAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTsgLyogYXBwbHkgZ3JheXNjYWxlIGZpbHRlciAqL1xuICB9XG4gIC5ncmV5LXN5bWJvbCB7XG4gICAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSkgY29udHJhc3QoMzAwJSkgYnJpZ2h0bmVzcyg0MDAlKTtcbiAgfVxuICAud2hpdGUtc3ltYm9sIHtcbiAgICBjb2xvcjogd2hpdGU7IC8qIHNldCB0ZXh0IGNvbG9yIHRvIHdoaXRlICovXG4gICAgZmlsdGVyOiBicmlnaHRuZXNzKDEwMDAwJSk7IC8qIHNldCBicmlnaHRuZXNzIHRvIDEwMDAwJSB0byBtYWtlIGVsZW1lbnQgd2hpdGUgKi9cblx0cGFkZGluZzogMDtcbiAgICAvKiBmb250LXNpemU6IDE1cHg7ICovXG4gIH1cbiAgXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5TVkcgU1lNQk9MU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4jc2V0dGluZ3Mtc3ltYm9sIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMnB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBmaWxsOiB3aGl0ZTtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuMiBnZWFycyBhbmltYXRlZCBzeW1ib2xcblx0LSBvcmlnaW46IGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaG93dG8vaG93dG9fanNfcmVzcG9uc2l2ZV9uYXZiYXJfZHJvcGRvd24uYXNwXG5cdC0gcHJldmlvdXNseTpcblx0XHQtIG9yaWdpbjogc3Bpbm5lciBmcm9tIGh0dHBzOi8vY29kZXBlbi5pby92aW5lZXRodHJ2L3Blbi9OV3hacU1NIGluIFNDU1Ncblx0XHQtICYgcmVwbGFjZWQgYnkgLnNwaW5uZXJcblx0XHQtIGFuaW1hdGlvbiBjb252ZXJ0ZWQgYnkgQ2hhdEdQVFxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4jc3Bpbm5lciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ZGlzcGxheTogbm9uZTtcblx0d2lkdGg6IDIwMHB4O1xuXHR0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cdGZpbGw6ICNGRkZGRkY7XG59XG5cbi5zbWFsbCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uOiBjb3VudGVyLXJvdGF0aW9uIHZhcigtLVRJTUUxKSBpbmZpbml0ZSBsaW5lYXI7XG5cdCAgIC1tb3otYW5pbWF0aW9uOiBjb3VudGVyLXJvdGF0aW9uIHZhcigtLVRJTUUxKSBpbmZpbml0ZSBsaW5lYXI7XG5cdCAgICAgLW8tYW5pbWF0aW9uOiBjb3VudGVyLXJvdGF0aW9uIHZhcigtLVRJTUUxKSBpbmZpbml0ZSBsaW5lYXI7XG5cdCAgICAgICAgYW5pbWF0aW9uOiBjb3VudGVyLXJvdGF0aW9uIHZhcigtLVRJTUUxKSBpbmZpbml0ZSBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMTAwLjEzNnB4IDIyNS4zNDVweDtcbiAgICAgIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAxMDAuMTM2cHggMjI1LjM0NXB4O1xuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDEwMC4xMzZweCAyMjUuMzQ1cHg7IH1cblxuXG4ubWVkaXVtIHtcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIHZhcigtLVRJTUUyKSBpbmZpbml0ZSBsaW5lYXI7XG5cdCAgIC1tb3otYW5pbWF0aW9uOiByb3RhdGlvbiB2YXIoLS1USU1FMikgIGluZmluaXRlIGxpbmVhcjtcblx0ICAgICAtby1hbmltYXRpb246IHJvdGF0aW9uIHZhcigtLVRJTUUyKSAgaW5maW5pdGUgbGluZWFyO1xuXHQgICAgICAgIGFuaW1hdGlvbjogcm90YXRpb24gdmFyKC0tVElNRTIpICBpbmZpbml0ZSBsaW5lYXI7XG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMjU0LjY3NXB4IDM3OS40NDdweDtcbiAgICAgIC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAyNTQuNjc1cHggMzc5LjQ0N3B4O1xuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDI1NC42NzVweCAzNzkuNDQ3cHg7IH1cblxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRpb24ge1xuICAgIGZyb20gey13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7fVxuICAgIHRvICAgey13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTt9XG59XG5ALW1vei1rZXlmcmFtZXMgcm90YXRpb24ge1xuICAgIGZyb20gey1tb3otdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7fVxuICAgIHRvICAgey1tb3otdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTt9XG59XG5ALW8ta2V5ZnJhbWVzIHJvdGF0aW9uIHtcbiAgICBmcm9tIHstby10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTt9XG4gICAgdG8gICB7LW8tdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTt9XG59XG5Aa2V5ZnJhbWVzIHJvdGF0aW9uIHtcbiAgICBmcm9tIHt0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTt9XG4gICAgdG8gICB7dHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTt9XG59XG5cbkAtd2Via2l0LWtleWZyYW1lcyBjb3VudGVyLXJvdGF0aW9uIHtcbiAgICBmcm9tIHstd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7fVxuICAgIHRvICAgey13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7fVxufVxuQC1tb3ota2V5ZnJhbWVzIGNvdW50ZXItcm90YXRpb24ge1xuICAgIGZyb20gey1tb3otdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTt9XG4gICAgdG8gICB7LW1vei10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTt9XG59XG5ALW8ta2V5ZnJhbWVzIGNvdW50ZXItcm90YXRpb24ge1xuICAgIGZyb20gey1vLXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7fVxuICAgIHRvICAgey1vLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO31cbn1cbkBrZXlmcmFtZXMgY291bnRlci1yb3RhdGlvbiB7XG4gICAgZnJvbSB7dHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTt9XG4gICAgdG8gICB7dHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7fVxufVxuXG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblRPVVIgTlVNQkVSU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4uY3VzdG9tLW1hcmtlciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDEwMHB4OyAvKiBBZGp1c3QgdGhlIHdpZHRoIGFzIHBlciB5b3VyIHJlcXVpcmVtZW50ICovXG5cdGhlaWdodDogMTAwcHg7IC8qIEFkanVzdCB0aGUgaGVpZ2h0IGFzIHBlciB5b3VyIHJlcXVpcmVtZW50ICovXG59XG5cbi5tYXJrZXItYmFja2dyb3VuZCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7IC8qIFNlbWktdHJhbnNwYXJlbnQgYmFja2dyb3VuZCAqL1xuXHRib3JkZXItcmFkaXVzOiA1MCU7IC8qIE1ha2UgdGhlIGJhY2tncm91bmQgcm91bmQgKi9cbn1cblxuLm1hcmtlci1sYWJlbCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDIwMHB4OyAvKiBBZGp1c3QgdGhlIHdpZHRoIGFzIHBlciB5b3VyIHJlcXVpcmVtZW50ICovXG5cdGhlaWdodDogMTAwcHg7IC8qIEFkanVzdCB0aGUgaGVpZ2h0IGFzIHBlciB5b3VyIHJlcXVpcmVtZW50ICovXG5cdHRvcDogNTAlO1xuXHRsZWZ0OiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC0xNSUpO1xuXHRjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuXHRmb250LXNpemU6IDcwcHg7IC8qIEFkanVzdCB0aGUgZm9udCBzaXplIGFzIHBlciB5b3VyIHJlcXVpcmVtZW50ICovXG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuTkFWSUdBVElPTlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4ubmF2LW1hcmtlciB7XG5cdHdpZHRoOiAzNnB4O1xuXHRoZWlnaHQ6IDI1cHg7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMTc0LCAyNTUpO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkIHdoaXRlOyAvKiB3aGl0ZSBib3JkZXIgYXJvdW5kIHRoZSBtYXJrZXIgKi9cbiAgICBib3gtc2hhZG93OiAwIDAgMCAxMHB4IHJnYmEoMCwgMTc0LCAyNTUsIDAuMyk7IC8qIHZpc2libGUgaGFsbyAqL1xufVxuXG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkNMT1NFIEJVVFRPTlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4uY2xvc2UtYnRuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgdG9wOiAxMHB4O1xuXHRwYWRkaW5nOiAwO1xuXHRmb250LXNpemU6IDEuNzVyZW07XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJhY2tncm91bmQtY29sb3I6cmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogdmFyKC0tV0hJVEUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5jbG9zZS1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLUNPTE9SX0FDVElPTl81MCk7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuXG4uY2xvc2UtYnRuIHN2ZyB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHNjYWxlKDAuNyk7XG4gICAgZmlsbDogd2hpdGU7XG4gICAgd2lkdGg6IDI3cHg7XG4gICAgaGVpZ2h0OiAyN3B4O1xufSIsIi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbsKpIDIwMTcgRnJhbmNrIER1cmFuZFxuQWxsIFJpZ2h0cyBSZXNlcnZlZFxuVEhJUyBXT1JLIENPTlRBSU5TIFRSQURFIFNFQ1JFVCBBTkQgUFJPUFJJRVRBUlkgSU5GT1JNQVRJT04gV0hJQ0ggQVJFIFRIRSBQUk9QRVJUWSBPRiBGUkFOQ0sgRFVSQU5EIE9SIElUUyBMSUNFTlNPUlMgQU5EIElTIFNVQkpFQ1QgVE8gTElDRU5TRSBURVJNUy5cbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuXG5DU1MgU2VsZWN0b3JzXG5cdCogSFRNTCBlbGVtZW50IHNlbGVjdG9yOiBlbGVtZW50IG5hbWUuIEV4OiBwIHt0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiByZWQ7fVxuXHQqIEhUTUwgaWQgc2VsZWN0b3I6IFwiI1wiICsgaWQuIEV4OiAjbWFwXG5cdCogSFRNTCBjbGFzcyBzZWxlY3RvcjogXCIuXCIgKyBjbGFzcyBuYW1lLiBFeDogLlNpZGViYXJcbkNTUyBuYW1pbmcgcnVsZXNcblx0KiBCYXNlIHJ1bGVzOlxuXHRcdC0gY2xhc3MgbmFtZTogbG93ZXJjYXNlX25hbWVzX3dpdGhfdW5kZXJzY29yZVxuXHRcdC0gdmFyaWFibGUgbmFtZTogVVBQRVJDQVNFX05BTUVTLiBcIi1cIiBpcyB1bnN1cHBvcnRlZCFcblx0KiBCRU0gcnVsZXM6IGJsb2NrX19lbGVtZW50LS1tb2RpZmllciAoaHR0cHM6Ly9vcGVuY2xhc3Nyb29tcy5jb20vZnIvY291cnNlcy82MTA2MTgxLXNpbXBsaWZpZXotdm91cy1sZS1jc3MtYXZlYy1zYXNzLzY1OTU4MDktY3JlZXotZGVzLXNlbGVjdGV1cnMtaHRtbC1hdmVjLWxhLW1ldGhvZG9sb2dpZS1iZW0pXG5cbiovXHRcdCAgXG5cbi8qIE1ha2UgdmlzaWJsZSB0aGUgZm9jdXMgKGZvciBkZWJ1Z2dpbmcpXG4vKiBpbnB1dDpmb2N1cyB7YmFja2dyb3VuZC1jb2xvcjogeWVsbG93O30gICovXG5cbi8qIFZhcmlhYmxlIGRlY2xhcmF0aW9uICovXG4vKiBXQVJOSU5HOiBcIi1cIiBpbiB0aGUgbmFtZSBpcyB1bnN1cHBvcnRlZCEgKi9cbi8qIFdBUk5JTkc6IEFzIHVzZWQgaW4gSmF2YXNjcmlwdCBubyBzcGFjZSBhZnRlciBcIjpcIiBpcyBhbGxvd2VkICovXG5cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuRGF0ZSByYW5nZSBwaWNrZXJcbiovXG4uYXBwbHktYnRuIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsdmFyKC0tQ09MT1JfQUNUSU9OXzQwKSwgdmFyKC0tQ09MT1JfQUNUSU9OXzYwKSkhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogbm9uZSFpbXBvcnRhbnQ7XG59XG5cbi5kYXRlLXBpY2tlci13cmFwcGVyIHtcbiAgICB6LWluZGV4OiAxMDUwIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIWltcG9ydGFudDtcbiAgICBjb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKSFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLUJVVFRPTl9CT1JERVJfUkFESVVTKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaGFkb3c6IFxuICAgIGluc2V0IDRweCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC42KSxcbiAgICBpbnNldCAtNHB4IC00cHggOHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSxcbiAgICAzcHggM3B4IDZweCByZ2JhKDAsIDAsIDAsIDAuMyksXG4gICAgLTNweCAtM3B4IDZweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tTkVVTU9SUEhJU01fQk9YX1NIQURPVyk7XG4gICAgZGlzcGxheTogYmxvY2shaW1wb3J0YW50O1xufVxuXG4vKiBEYXRlcyArIER1cmF0aW9uIHRpdGxlICovXG4uZGF0ZS1waWNrZXItd3JhcHBlciB7XG4gICAgZm9udC1zaXplOiB1bnNldCFpbXBvcnRhbnQ7IC8qIEZyYW5jayA6IG1vZGlmacOpLiBmb250LXNpemU6IDEycHg7ICovXG59XG5cbi5kYXRlLXBpY2tlci13cmFwcGVyIC5kcnBfdG9wLWJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogRHVyYXRpb24gdG9vbHRpcCAqL1xuLmRhdGUtcGlja2VyLXdyYXBwZXIgLmRhdGUtcmFuZ2UtbGVuZ3RoLXRpcCB7XG4gICAgZm9udC1zaXplOiB1bnNldCFpbXBvcnRhbnQ7IC8qIEZyYW5jayA6IG1vZGlmacOpLiBmb250LXNpemU6IDEycHg7ICovXG59XG5cbi8qIE1vbnRocyAqL1xuLmRhdGUtcGlja2VyLXdyYXBwZXIgdGFibGUgLmNhcHRpb24ge1xuICAgIGhlaWdodDogNjBweCFpbXBvcnRhbnQ7ICAgLyogRnJhbmNrIDogbW9kaWZpw6kuIGhlaWdodDogNDBweDsgKi9cbn1cblxuLyogV2Vla2RheXMgYW5kIG1vbnRocyAqL1xuLmRhdGUtcGlja2VyLXdyYXBwZXIgdGgge1xuICAgIGZvbnQtc2l6ZTogY2FsYygwLjg4cmVtICogdmFyKC0tREFURV9QSUNLRVJfRk9OVF9DT0VGKSk7ICAgIC8qIEZyYW5jayA6IG1vZGlmacOpLiBmb250LXNpemU6IDAuODhyZW07ICovXG59XG5cbi5kYXRlLXBpY2tlci13cmFwcGVyIC5tb250aC13cmFwcGVyIHRhYmxlIHRoIHtcbiAgICBsaW5lLWhlaWdodDogMThweCFpbXBvcnRhbnQ7XG59XG5cblxuLmRhdGUtcGlja2VyLXdyYXBwZXIgYiB7XG4gICAgY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl81MCkhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tRk9OVC1GQU1JTFkpIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogYm9sZCFpbXBvcnRhbnQ7XG59XG5cbi5kYXRlLXBpY2tlci13cmFwcGVyIC5tb250aC13cmFwcGVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudCFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSFpbXBvcnRhbnQ7IC8qIEZyYW5jayA6IG1vZGlmacOpLiBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzEwKSFpbXBvcnRhbnQ7ICovXG4gICAgY29sb3I6IHZhcigtLUNPTE9SX1NVUkZBQ0VfODApIWltcG9ydGFudDtcbn1cblxuLyogRGF5cyAqL1xuLmRhdGUtcGlja2VyLXdyYXBwZXIgLm1vbnRoLXdyYXBwZXIgdGFibGUgLmRheS50b01vbnRoIHtcbiAgICBmb250LXNpemU6IGNhbGMoMTJweCAqIHZhcigtLURBVEVfUElDS0VSX0ZPTlRfQ09FRikpOyAgICAvKiBGcmFuY2sgOiBham91dMOpLiBmb250LXNpemU6IDEycHg7ICovXG4gICAgcGFkZGluZzogMTJweCAxMHB4O1xuICAgIGNvbG9yOiB2YXIoLS1XSElURSkhaW1wb3J0YW50O1xufVxuXG4vKlxuRGF0ZSByYW5nZSBzZWxlY3Rpb24gcmFuZ2VcbiovXG4uZGF0ZS1waWNrZXItd3JhcHBlciAubW9udGgtd3JhcHBlciB0YWJsZSAuZGF5LnRvTW9udGguaG92ZXJpbmcge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1MSUdIVEVSX0JMVUUpIWltcG9ydGFudDtcblx0fVxuLypcbkRhdGUgcmFuZ2UgdG9vbHRpcHNcbiovXHRcbi5kYXRlLXBpY2tlci13cmFwcGVyIC5kYXRlLXJhbmdlLWxlbmd0aC10aXB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLUNPTE9SX1NVUkZBQ0VfMzApIWltcG9ydGFudDtcblx0Y29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl81MCkhaW1wb3J0YW50O1xufVxuLmRhdGUtcGlja2VyLXdyYXBwZXIgLmRhdGUtcmFuZ2UtbGVuZ3RoLXRpcDphZnRlciB7XG5cdGJvcmRlci10b3A6IDRweCBzb2xpZCB2YXIoLS1DT0xPUl9TVVJGQUNFXzMwKSFpbXBvcnRhbnQ7XG59XG5cbi5kYXRlLXBpY2tlci13cmFwcGVyIC5kYXkucmVhbC10b2RheXtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzEwKSFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tQ09MT1JfQUNUSU9OXzUwKSFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cbi5kYXRlLXBpY2tlci13cmFwcGVyIC5maXJzdC1kYXRlLXNlbGVjdGVke1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl81MCkhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS1XSElURSkhaW1wb3J0YW50O1xufVxuIC5kYXRlLXBpY2tlci13cmFwcGVyIC5sYXN0LWRhdGUtc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl81MCkhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB2YXIoLS1XSElURSkhaW1wb3J0YW50O1xuIH1cbiAuZGF0ZS1waWNrZXItd3JhcHBlciAubW9udGgtd3JhcHBlciB0YWJsZSAuZGF5LmNoZWNrZWR7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKSFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLVdISVRFKSFpbXBvcnRhbnQ7XG4gfVxuXG4ubW9udGgtd3JhcHBlciB0YWJsZSAuZGF5LnJlYWwtdG9kYXkuY2hlY2tlZCwgLmRhdGUtcGlja2VyLXdyYXBwZXIgLm1vbnRoLXdyYXBwZXIgdGFibGUgLmRheS5yZWFsLXRvZGF5LmhvdmVyaW5nIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKSFpbXBvcnRhbnQ7XG4gICAgY29sb3I6IHZhcigtLVdISVRFKSFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbn1cblxuLm1vbnRoLWVsZW1lbnQge1xuICBkaXNwbGF5OiBpbmxpbmU7ICAvKiBNb250aCBuYW1lIG9uIDEgbGluZSBpbnN0ZWFkIG9mIDIgKi9cbn1cbi8qIC5tb250aC1uYW1le1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjp2YXIoLS1DT0xPUl9TVVJGQUNFXzcwKSFpbXBvcnRhbnQ7XG59ICovXG5cbi8qLmRhdGUtcGlja2VyLXdyYXBwZXIgLm1vbnRoLXdyYXBwZXIgdGFibGUgLmRheS50b01vbnRoLnZhbGlkIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tR1JFWSkhaW1wb3J0YW50O1xufSovXG5cbi5kdXItYm94IHtcbiAgICBjdXJzb3I6cG9pbnRlcjtcbiAgICBjb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzYwKTtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmR1ci1ib3gtbWFudWFsLCAudGltZS1ib3gtbWFudWFsIHtcblx0Y29sb3I6IGRlZXBza3libHVlIWltcG9ydGFudDtcbiAgICBjdXJzb3I6cG9pbnRlcjtcbn1cblxuLmlvLWJveCB7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgdG9wOiAtMnB4O1xuICAgIHJpZ2h0OiAtM3B4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzYwKTtcbn1cblxuLyogLmlvLWJveC1tYW51YWw6Y2hlY2tlZCB7XG5cdGJhY2tncm91bmQtY29sb3I6IGRlZXBza3libHVlIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDAuMTJyZW0gc29saWQgZGVlcHNreWJsdWUhaW1wb3J0YW50O1xufVxuXG4uaW8tYm94LW1hbnVhbCB7XG5cdGJhY2tncm91bmQtY29sb3I6IGJsYWNrIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDAuMTJyZW0gc29saWQgZGVlcHNreWJsdWUhaW1wb3J0YW50O1xufSAqL1xuXG4vKiBUaGUgaWNvbiBvZiB0aGUgdHlwPVwidGltZVwiIGlucHV0cyAqL1xuI3JpZ2h0LWJhcl9fYm9keSBpbnB1dFt0eXBlPVwidGltZVwiXTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcmlnaHQ6IDVweDsgLyogTW92ZSB0byB0aGUgbGVmdCAqL1xuICAgIC8qIGRpc3BsYXk6IG5vbmU7ICovICAgIC8qIGhpZGUgdGhlIGRlZmF1bHQgaWNvbiAqL1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4jcmlnaHQtYmFyX19ib2R5IGlucHV0W3R5cGU9XCJ0aW1lXCJdIHtcbiAgICB3aWR0aDogODBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgLyogYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwMDA7ICovXG4gICAgY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl82MCk7XG4gICAgLyogdGV4dC1hbGlnbjogcmlnaHQ7ICovXG59XG4jcmlnaHQtYmFyX19ib2R5IGlucHV0W3R5cGU9XCJ0aW1lXCJdW3ZhbHVlPVwiMDA6MDBcIl0ge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuXG4vKiBBbmRyb2lkIDogcmVtb3ZlIGFycm93ICovXG4jcmlnaHQtYmFyX19ib2R5IGlucHV0W3R5cGU9XCJ0aW1lXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyBcbn1cbi8qIEFuZHJvaWQgOiByZW1vdmUgbWFyZ2luIHByZXZpc291bHkgdXNlZCBieSB0aGUgYXJyb3cgKi9cbiNyaWdodC1iYXJfX2JvZHkgaW5wdXRbdHlwZT1cInRpbWVcIl06Oi13ZWJraXQtZGF0ZS1hbmQtdGltZS12YWx1ZSB7XG4gIG1hcmdpbjogMDsgXG59XG5cbi8qIFJlbW92ZSB0aGUgZGVmYXVsdCB1cC1kb3duIGFycm93cyAoc3Bpbm5lcnMpICovXG4vKiBQb3VyIGxlcyBuYXZpZ2F0ZXVycyBiYXPDqXMgc3VyIFdlYktpdCBjb21tZSBDaHJvbWUsIFNhZmFyaSAqL1xuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1x0XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG59XG4vKiBQb3VyIEZpcmVmb3ggKi9cbmlucHV0W3R5cGU9XCJudW1iZXJcIl0ge1xuICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xufVxuLyogUG91ciBJRSAqL1xuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LW1zLWNsZWFyLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LW1zLXJldmVhbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXSB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDAwO1xuICAgIGNvbG9yOiB2YXIoLS1DT0xPUl9BQ1RJT05fNjApO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIC8qIHBhZGRpbmc6IDAgNXB4IDAgMDsgKi9cbiAgICB3aWR0aDogMS43cmVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6cGxhY2Vob2xkZXIge1xuICAgY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl81MCk7XG59XG5cbmlucHV0W3R5cGU9XCJudW1iZXJcIl0gdWwge1xuICAgIGNvbG9yOiB2YXIoLS1DT0xPUl9BQ1RJT05fNTApIWltcG9ydGFudDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB3aWR0aDogMS4ycmVtO1x0LyogU2l6ZSByZWR1Y2VkIGVzcGVjaWFsbHkgZm9yIHRoZSBlbXB0eSBjYXNlOiBcIi0tOi0tXCIgKi9cbiAgICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cblxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5Ecm9wZG93biBsaXN0IGZvciBudW1iZXIgaW5wdXRzXG4qL1xuXG4uaW5wdXRfZHJvcGRvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIFxuICAuaW5wdXRfZHJvcGJ0biB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbiAgXG4gIC5pbnB1dF9kcm9wZG93bi1jb250ZW50IHtcbiAgICB6LWluZGV4OiA1O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtMzBweDtcbiAgICB0b3A6IDQxcHg7XG4gICAgd2lkdGg6IDUwcHg7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAwcHggOHB4IDE2cHggMHB4IHJnYmEoMCwwLDAsMC4yKTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDphdXRvO1xuICB9XG4gIFxuICAuaW5wdXRfZHJvcGRvd24tY29udGVudCBhIHtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgcGFkZGluZzogN3B4IDEwcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgXG4gIH1cbiAgXG4gIC5pbnB1dC1udW1iZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG4gIFxuICAuaW5wdXRfZHJvcGRvd24tY29udGVudCBhLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3YmZmO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5SRVNQT05TSVZFXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5NnB4KSB7XG4gIC5kYXRlLXBpY2tlci13cmFwcGVyIC5tb250aC13cmFwcGVyIHRhYmxlIC5kYXkudG9Nb250aCB7XG4gICAgcGFkZGluZy1sZWZ0OiAzcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzcHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5kYXRlLXBpY2tlci13cmFwcGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgfVxuXG4gIC5kYXRlLXBpY2tlci13cmFwcGVyIC5tb250aC13cmFwcGVyIHRhYmxlLCAuZGF0ZS1waWNrZXItd3JhcHBlciAubW9udGgtd3JhcHBlciB0YWJsZS5tb250aDIge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBmbG9hdDogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG59IiwiLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuQ09PS0lFXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbiNjbG9zZV9jb29raWUge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4jY2xvc2VfY29va2llOmNoZWNrZWQrI2Nvb2tpZV9jb25zZW50X3BvcHVwIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuI2Nvb2tpZV9jb25zZW50X3BvcHVwIHtcblx0ei1pbmRleDogMTE7XG5cdHBvc2l0aW9uOiBmaXhlZDtcblx0YmFja2dyb3VuZC1jb2xvcjogaHNsYSh2YXIoLS1TSEFERV9TVVJGQUNFKSx2YXIoLS1TQVRfU1VSRkFDRSksNDAlLCAwLjM1KTtcblx0cGFkZGluZzogMTBweCAyNXB4O1xuXHRib3JkZXItcmFkaXVzOiB2YXIoLS1CVVRUT05fQk9SREVSX1JBRElVUyk7XG5cdGJveC1zaGFkb3c6IDAgMCA1MHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcblx0YmFja2Ryb3AtZmlsdGVyOiBibHVyKDZweCk7XG5cdC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDZweCk7XG59XG5cbiNjb29raWVfY29uc2VudF9wb3B1cCBoMXtcblx0Zm9udC1zaXplOiAxLjRyZW0vKjEuMmVtKi87XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdGNvbG9yOiB3aGl0ZTtcbn1cblxuI2Nvb2tpZV9jb25zZW50X3BvcHVwIGgye1xuXHRmb250LXNpemU6IDEuMHJlbS8qMS4wZW0qLztcblx0Y29sb3I6IHdoaXRlO1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cblxuI2Nvb2tpZV9jb25zZW50X3BvcHVwIGgxOmJlZm9yZXtcblx0Y29udGVudDogXCJcIjtcblx0cGFkZGluZzogMDtcbn1cblxuI2Nvb2tpZV9jb25zZW50X3BvcHVwIHB7XG5cdGZvbnQtc2l6ZTogMC44cmVtIDsvKjAuN2VtICovXG5cdGNvbG9yOiB3aGl0ZTtcblx0bWFyZ2luLXRvcDogMDtcblxufVxuXG4jY29va2llX2NvbnNlbnRfcG9wdXAgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICAgIGhlaWdodDogMTVweDtcbiAgICB3aWR0aDogMTVweDtcbn1cblxuI2Nvb2tpZV9jb25zZW50X3BvcHVwICNjbG9zZV9jb29raWVfYm94e1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMS4yNXJlbTsgcmlnaHQ6IDEuMjVyZW07LyoyMHB4Ki9cblx0Y3Vyc29yOiBHbnRlcjtcblx0Zm9udC1zaXplOiAxLjNyZW0vKjEuM2VtKi87XG59XG5cbiNjb29raWVfY29uc2VudF9wb3B1cCAjb2tfY29va2llX2JveHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRib3R0b206IDEuMjVyZW07cmlnaHQ6MS4yNXJlbS8qMjBweCovO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGZvbnQtc2l6ZTogMS42cmVtLyoxLjZlbSovIDtcblx0cGFkZGluZzogMC42M3JlbSAxLjI1cmVtLyoxMCBldCAyMHB4Ki87XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdGNvbG9yOndoaXRlO1xufVxuXG4uZmxleCB7XG5cdGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi50LWMtNC0xLW8xIHtcbiAgICBvcmRlcjogMTtcbiAgICBmbGV4OiA0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcbn1cblxuLnQtYy00LTEtbzIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDI1cHg7XG59XG5cbi50LWMtNC0xLW8yIHtcbiAgICBvcmRlcjogMjtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG59XG5cbi5Db29raWUtYnV0dG9ucy1jb250YWluZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1CVVRUT05fQk9SREVSX1JBRElVUyk7XG59XG5cbi5Db29raWUtYnV0dG9ucy1jb250YWluZXIgYnV0dG9uIHtcbiAgICBtYXJnaW46IDAgM3B4O1xufVxuXG5ib2R5OjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlwiO1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xuXHR6LWluZGV4OiAxMDtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuYm9keS5jb29raWUtcG9wdXAtdmlzaWJsZTo6YmVmb3JlIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblJFU1BPTlNJVkVcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLyogRm9yIHBob25lcyBhbmQgc21hbGwgc2NyZWVucyAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk2cHgpIHtcblx0LyogYSBjYWxjIGJhc2VkIG9uIHRoZSBzaWRlIGJhciB3aWR0aCBpcyBOT1Qgc3VwcG9ydGVkICovXG5cdCNjb29raWVfY29uc2VudF9wb3B1cCB7XG5cdFx0dG9wOiBjYWxjKHZhcigtLUhFQURFUl9IRUlHSFQpKTtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLUhFQURFUl9IRUlHSFQpKTtcblx0XHRvdmVyZmxvdy15OiBzY3JvbGw7XG5cdH1cbn1cblxuLyogRm9yIFBDcyBhbmQgbGFyZ2VyIHNjcmVlbnMgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDg5N3B4KSB7XG5cdCNjb29raWVfY29uc2VudF9wb3B1cCB7XG5cdFx0dG9wOiA1MCU7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXHRcdHdpZHRoOiAzNSU7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdG1hcmdpbjogMCBhdXRvOyAvKiBDZW50ZXIgdGhlIGJveCBob3Jpem9udGFsbHkgKi9cblx0fVxufSIsIi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkhFQURFUlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4uaGVhZGVyIHtcbiAgICBoZWlnaHQ6IHZhcigtLUhFQURFUl9IRUlHSFQpO1xuICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgZWFzZTtcbn1cblxuLmhlYWRlcjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IG5vbmU7IC8qIFdpbGwgYmUgYWRkZWQgYnkgSlMgd2hlbiBzY3JvbGxpbmcgKi9cbiAgICBiYWNrZHJvcC1maWx0ZXI6IG5vbmU7IC8qIFdpbGwgYmUgYWRkZWQgYnkgSlMgd2hlbiBzY3JvbGxpbmcgKi9cbn1cblxuLmhlYWRlci10b3Age1xuICAgIGhlaWdodDogdmFyKC0tSEVBREVSX0hFSUdIVCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLyogU3BlY2lmaWMgcnVsZSBmb3IgdGhlIHBsYW5uZXIgcGFnZSAqL1xuYm9keVtkYXRhLXJvdXRlPVwicGxhbm5lclwiXSAuaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuTE9HT1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4ubG9nbyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuN3MgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xufVxuXG5ib2R5W2RhdGEtcm91dGU9XCJwbGFubmVyXCJdIC5sb2dvIHtcbiAgICBtYXJnaW4tbGVmdDogNyU7XG59XG5cbi5sb2dvOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgYW5pbWF0aW9uOiBlbGFzdGljLWJvdW5jZSAwLjhzIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKTtcbn1cblxuQGtleWZyYW1lcyBlbGFzdGljLWJvdW5jZSB7XG4gICAgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gICAgMjAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTsgfVxuICAgIDQwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7IH1cbiAgICA2MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMTIpOyB9XG4gICAgODAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA4KTsgfVxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbn1cblxuLmxvZ28gc3ZnIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLmxvZ28gc3ZnIHBhdGgsXG4ubG9nbyBzdmcgdGV4dCB7XG4gICAgZmlsbDogdmFyKC0tQ09MT1JfRk9OVCkgIWltcG9ydGFudDtcbn1cblxuLyogRWxhc3RpYy9zcHJpbmcgYW5pbWF0aW9uIGZvciBkaWZmZXJlbnQgYnJvd3NlciBzdXBwb3J0cy4gaHR0cHM6Ly9tYXR0aGV3bGVpbi5jb20vdG9vbHMvY2Vhc2VyLCBodHRwczovL2Vhc2luZ3MubmV0L2ZyICovXG4uZWxhc3RpYyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xuICAgIC1tb3otdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKTtcbiAgICAtby10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zNCwgMS41NiwgMC42NCwgMSk7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cztcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblZFUlNJT04gQkFER0UgKEFETUlOIE9OTFkpXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi52ZXJzaW9uLWJhZGdlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgcGFkZGluZzogMnB4IDVweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNjY3ZWVhIDAlLCAjNzY0YmEyIDEwMCUpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG59XG5cbi8qIFJlZC1vcmFuZ2UgcHVsc2UgYW5pbWF0aW9uIGZvciBuZXcgdmVyc2lvbiAqL1xuLyogQGtleWZyYW1lcyBwdWxzZU5ld1ZlcnNpb24ge1xuICAgIDAlLCAxMDAlIHsgXG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZjZiMzUgMCUsICNmNzkzMWUgMTAwJSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDhweCByZ2JhKDI1NSwgMTA3LCA1MywgMC41KTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG4gICAgNTAlIHsgXG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZjhjNWEgMCUsICNmZmIzNDcgMTAwJSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDE2cHggcmdiYSgyNTUsIDEwNywgNTMsIDAuOCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgfVxufSAqL1xuXG4vKiBCYWRnZSB3aXRoIG5ldyB2ZXJzaW9uIC0gYW5pbWF0aW9uIGFjdGl2ZSAqL1xuLyogLnZlcnNpb24tYmFkZ2UubmV3LXZlcnNpb24ucHVsc2luZyB7XG4gICAgYW5pbWF0aW9uOiBwdWxzZU5ld1ZlcnNpb24gMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcbn0gKi9cblxuLyogQmFkZ2Ugd2l0aCBuZXcgdmVyc2lvbiAtIHJlbWFpbnMgb3JhbmdlIGV2ZW4gd2l0aG91dCBhbmltYXRpb24gKi9cbi52ZXJzaW9uLWJhZGdlLm5ldy12ZXJzaW9uIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmY2YjM1IDAlLCAjZjc5MzFlIDEwMCUpICFpbXBvcnRhbnQ7XG59XG5cbi8qIEJhZGdlIGlubmVyIGVsZW1lbnRzICovXG4vKiAudmVyc2lvbi1iYWRnZSA+IHNwYW46Zmlyc3QtY2hpbGQge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbn0gKi9cblxuI3ZlcnNpb24tbnVtYmVyIHtcbiAgICBmb250LXNpemU6IDAuN3JlbTtcbn1cblxuI3ZlcnNpb24tdGltZSB7XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkhFQURFUiBJQ09OU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4uaGVhZGVyLWljb24ge1xuICAgIHdpZHRoOiAxLjRyZW07XG4gICAgaGVpZ2h0OiAxLjRyZW07XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkhFQURFUiBCVVRUT05TXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi5oZWFkZXItdG9wLXJpZ2h0IHtcbiAgICBvcmRlcjogMjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4uYnVyZ2VyLW1lbnUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5zY3JvbGwtdG8tdG9wLWJ1dHRvbiwgI3NhdmVfdHJpcF9idXR0b24sICNzaGFyZV90cmlwX2J1dHRvbiwgI3NldHRpbmdzX2J1dHRvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmJ1cmdlci1tZW51LFxuLnNjcm9sbC10by10b3AtYnV0dG9uLFxuI3VzZXItbWVudS1idXR0b24sIFxuI3NhdmVfdHJpcF9idXR0b24sIFxuI3NoYXJlX3RyaXBfYnV0dG9uLCBcbiN2aWV3X3RyaXBzX2J1dHRvbiwgXG4jc2V0dGluZ3NfYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLUNPTE9SX0FDVElPTl80MCksIHZhcigtLUNPTE9SX0FDVElPTl82MCkpO1xuICAgIHBhZGRpbmc6IDAuNHJlbTtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICBib3gtc2hhZG93OiBcbiAgICBpbnNldCA0cHggNHB4IDhweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksXG4gICAgaW5zZXQgLTRweCAtNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLmJ1cmdlci1tZW51OmhvdmVyLCBcbi5zY3JvbGwtdG8tdG9wLWJ1dHRvbjpob3ZlcixcbiN1c2VyLW1lbnUtYnV0dG9uOmhvdmVyLCBcbiNzYXZlX3RyaXBfYnV0dG9uOmhvdmVyLCBcbiNzaGFyZV90cmlwX2J1dHRvbjpob3ZlciwgXG4jdmlld190cmlwc19idXR0b246aG92ZXIsIFxuI3NldHRpbmdzX2J1dHRvbjpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogXG4gICAgICAgIGluc2V0IDRweCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4yKSxcbiAgICAgICAgaW5zZXQgLTRweCAtNHB4IDhweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5IRUFERVIgU0VBUkNIIEJBUiAob24gc2Nyb2xsIGFuZCBvbiB0aGUgcGxhbm5lciBwYWdlKVxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4uaGVhZGVyLXRvcCAuaGVhZGVyLXNlYXJjaGJhciB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIHotaW5kZXg6IDU7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkFVVEggTElOS1MgJiBMQU5HVUFHRSBEUk9QRE9XTlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4uYXV0aC1saW5rcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMjBweDtcbn1cblxuLmhlYWRlci1kcm9wZG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmhlYWRlci1kcm9wZG93biBhIHtcbiAgICBjb2xvcjogdmFyKC0tQ09MT1JfU1VSRkFDRV85MCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1CVVRUT05fQk9SREVSX1JBRElVUyk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLmhlYWRlci1kcm9wZG93biBhOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuXG4uaGVhZGVyLWRyb3Bkb3duIC5hcnJvdy1kb3duIHtcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cblxuLmhlYWRlci1kcm9wZG93biBkaXYge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAxMjBweDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gICAgei1pbmRleDogMTAwMjtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigzMHB4KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMzBweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuXG4uaGVhZGVyLWRyb3Bkb3duOmhvdmVyIGRpdiB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1cHgpO1xufVxuXG4uaGVhZGVyLWRyb3Bkb3duOmhvdmVyIC5hcnJvdy1kb3duIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4uaGVhZGVyLWRyb3Bkb3duIGRpdiBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgY29sb3I6IHZhcigtLUNPTE9SX1NVUkZBQ0VfODApO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5oZWFkZXItZHJvcGRvd24gZGl2IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLU9SQU5HRV8xMCk7XG4gICAgY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl82MCk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmhlYWRlci1kcm9wZG93biAuZHJvcGJ0biB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uaGVhZGVyLWRyb3Bkb3duIC5kcm9wYnRuW2hyZWYqPVwibG9naW5cIl0ge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdmFyKC0tQ09MT1JfQUNUSU9OXzQwKSwgdmFyKC0tQ09MT1JfQUNUSU9OXzYwKSk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLUJVVFRPTl9CT1JERVJfUkFESVVTKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4uaGVhZGVyLWRyb3Bkb3duIC5kcm9wYnRuW2hyZWYqPVwibG9naW5cIl06aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuUkVTUE9OU0lWRVxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDQ2cHgpIHtcbiAgICAuc2Nyb2xsLXRvLXRvcC1idXR0b24sICNzY3JvbGwtdG8tdG9wLWljb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODk2cHgpIHtcbiAgICAubG9nbyBzdmcge1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgfVxuXG5cdC5lZGl0b3JpYWwgLmxvZ28ge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHRcblx0fVxuXG4gICAgLmhlYWRlci1pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjFyZW07XG4gICAgfVxuXG4gICAgLmF1dGgtbGlua3Mge1xuICAgICAgICBnYXA6IDBweDtcbiAgICB9XG5cbiAgICAvKiBWZXJzaW9uIGJhZGdlIHJlc3BvbnNpdmUgKi9cbiAgICAvKiAudmVyc2lvbi1iYWRnZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiA2cHggMTBweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tbGVmdDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgfSAqL1xuXG4gICAgLyogUG9zaXRpb24gbW9iaWxlIGJ1dHRvbnMgdG8gdGhlIHJpZ2h0IG9mIHRoZSBjdXN0b20gZ2VvY29kZXIgaW4gI21hcCAob25seSBvbiBwbGFubmVyIHBhZ2UpICovXG4gICAgYm9keVtkYXRhLXJvdXRlPVwicGxhbm5lclwiXSAjc2F2ZV90cmlwX2J1dHRvbl9tb2JpbGUsXG4gICAgYm9keVtkYXRhLXJvdXRlPVwicGxhbm5lclwiXSAjdmlld190cmlwc19idXR0b25fbW9iaWxlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEycHg7XG4gICAgICAgIHotaW5kZXg6IDk7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAgICAgICBib3gtc2hhZG93OiBcbiAgICAgICAgICAgIGluc2V0IDRweCA0cHggOHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSxcbiAgICAgICAgICAgIGluc2V0IC00cHggLTRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLUNPTE9SX0FDVElPTl80MCksIHZhcigtLUNPTE9SX0FDVElPTl82MCkpO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvKiBTcGVjaWZpYyBwb3NpdGlvbiBmb3IgdGhlIFwic2F2ZSB0cmlwXCIgYnV0dG9uICh0byB0aGUgbGVmdCBvZiB0aGUgXCJ2aWV3IHRyaXBzXCIgYnV0dG9uKSAqL1xuICAgIGJvZHlbZGF0YS1yb3V0ZT1cInBsYW5uZXJcIl0gI3NhdmVfdHJpcF9idXR0b25fbW9iaWxlIHtcbiAgICAgICAgbGVmdDogNzUlO1xuICAgIH1cblxuICAgIC8qIFNwZWNpZmljIHBvc2l0aW9uIGZvciB0aGUgXCJ2aWV3IHRyaXBzXCIgYnV0dG9uIChyaWdodG1vc3QpICovXG4gICAgYm9keVtkYXRhLXJvdXRlPVwicGxhbm5lclwiXSAjdmlld190cmlwc19idXR0b25fbW9iaWxlIHtcbiAgICAgICAgbGVmdDogNjUlOyAgIFxuICAgIH1cblxuICAgIC8qIEhvdmVyIGVmZmVjdCBmb3IgbW9iaWxlIGJ1dHRvbnM6IGludmVydCBzaGFkb3cgYW5kIHNjYWxlIHVwICovXG4gICAgYm9keVtkYXRhLXJvdXRlPVwicGxhbm5lclwiXSAjc2F2ZV90cmlwX2J1dHRvbl9tb2JpbGU6aG92ZXIsXG4gICAgYm9keVtkYXRhLXJvdXRlPVwicGxhbm5lclwiXSAjdmlld190cmlwc19idXR0b25fbW9iaWxlOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogXG4gICAgICAgICAgICBpbnNldCA0cHggNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMiksXG4gICAgICAgICAgICBpbnNldCAtNHB4IC00cHggOHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIH1cblxuICAgIC8qIFNldCBpY29uIHNpemUgaW5zaWRlIG1vYmlsZSBidXR0b25zICovXG4gICAgYm9keVtkYXRhLXJvdXRlPVwicGxhbm5lclwiXSAjc2F2ZV90cmlwX2J1dHRvbl9tb2JpbGUgLmhlYWRlci1pY29uLFxuICAgIGJvZHlbZGF0YS1yb3V0ZT1cInBsYW5uZXJcIl0gI3ZpZXdfdHJpcHNfYnV0dG9uX21vYmlsZSAuaGVhZGVyLWljb24ge1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgIH1cbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuU0NST0xMIEJBUlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0d2lkdGg6IDZweDtcbiAgICBoZWlnaHQ6IDZweDtcbn1cbi8qIFRyYWNrICovXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzMwKTtcblx0LyogYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgdmFyKC0tQ09MT1JfU1VSRkFDRV8zMCksIHZhcigtLUNPTE9SX1NVUkZBQ0VfNTApKTsgKi9cblx0Ym9yZGVyLXJhZGl1czogNnB4O1xufVxuLyogSGFuZGxlICovXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1DT0xPUl9BQ1RJT05fNTApO1xuICAgIC8qIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHZhcigtLUNPTE9SX0FDVElPTl80MCksIHZhcigtLUNPTE9SX0FDVElPTl82MCkpOyAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cbi8qIEhhbmRsZSBvbiBob3ZlciAqL1xuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tQ09MT1JfQUNUSU9OXzcwKTtcblx0LyogYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgdmFyKC0tQ09MT1JfU1VSRkFDRV84MCksIHdoaXRlKTsgKi9cbn0iLCIvKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5GT09URVJcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLnBhZ2UtZm9vdGVyIHtcbiAgICBtYXJnaW4tdG9wOiA2MHB4OztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1EQVJLRVJfQkxVRSk7XG4gICAgcGFkZGluZzogMXJlbSAwLjVyZW07XG59XG5cbi5sZWdhbHMtYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDJyZW07XG4gICAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMXJlbSAwO1xufVxuXG4ubGVnYWxzLWJveDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLUNPTE9SX1NVUkZBQ0VfNzApO1xufVxuXG4ubGVnYWxzLWJveCBhIHtcbiAgICBjb2xvcjogdmFyKC0tQ09MT1JfU1VSRkFDRV83MCk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTtcbn1cblxuLmxlZ2Fscy1ib3ggYTpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl81MCk7XG59XG5cbi5sZWdhbHMtYm94Omxhc3QtY2hpbGQge1xuICAgIGNvbG9yOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzcwKTtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5sZWdhbHMtYm94IC5pY29uIHtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgZmlsdGVyOiBncmF5c2NhbGUoNTAlKSBjb250cmFzdCgzMCUpICFpbXBvcnRhbnQ7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblJFU1BPTlNJVkVcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAuZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogMC43NXJlbSAwLjVyZW07XG4gICAgfVxuICAgIFxuICAgIC5sZWdhbHMtYm94IHtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDA7XG4gICAgfVxuICAgIFxuICAgIC5sZWdhbHMtYm94IGEge1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICB9XG4gICAgXG4gICAgLmxlZ2Fscy1ib3g6bGFzdC1jaGlsZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICAgIH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAubGVnYWxzLWJveCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMC44cmVtO1xuICAgIH1cbn0iLCIvKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5YUExPTyBOT1RJRklDQVRJT05TXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblBXQSBJTlNUQUxMQVRJT04gU1lTVEVNIC0gQkFOTkVSU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4ueHBsb28tcHdhLWJhbm5lciB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLVBXQV9GT05UX0ZBTUlMWSk7XG59XG5cbi8qIEJhbm5lciBDb250ZW50IC0gQmFzZSBTdHlsZXMgKi9cbi54cGxvby1wd2EtYmFubmVyLWNvbnRlbnQge1xuICAgIGNvbG9yOiB2YXIoLS1QV0FfQ09MT1JfV0hJVEUpO1xuICAgIHBhZGRpbmc6IHZhcigtLVBXQV9CQU5ORVJfUEFERElORyk7XG4gICAgei1pbmRleDogdmFyKC0tUFdBX1pfSU5ERVhfQkFOTkVSKTtcbn1cblxuLyogQmFubmVyIENvbnRlbnQgLSBEZXNrdG9wICovXG4ueHBsb28tcHdhLWJhbm5lci1jb250ZW50LmRlc2t0b3Age1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IHZhcigtLVBXQV9CQU5ORVJfREVTS1RPUF9CT1RUT00pO1xuICAgIHJpZ2h0OiB2YXIoLS1QV0FfQkFOTkVSX0RFU0tUT1BfUklHSFQpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLVBXQV9CQU5ORVJfQk9SREVSX1JBRElVUyk7XG4gICAgYm9yZGVyOiB2YXIoLS1QV0FfQkFOTkVSX0JPUkRFUik7XG4gICAgYW5pbWF0aW9uOiBzbGlkZUluVXAgdmFyKC0tUFdBX0JBTk5FUl9BTklNQVRJT05fRFVSQVRJT04pIGVhc2Utb3V0O1xufVxuXG4vKiBCYW5uZXIgQ29udGVudCAtIE1vYmlsZSAqL1xuLnhwbG9vLXB3YS1iYW5uZXItY29udGVudC5tb2JpbGUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1QV0FfQkFOTkVSX1NIQURPVyk7XG4gICAgYW5pbWF0aW9uOiBzbGlkZURvd24gdmFyKC0tUFdBX0JBTk5FUl9BTklNQVRJT05fRFVSQVRJT04pIGVhc2Utb3V0O1xufVxuXG4vKiBCYW5uZXIgQ29sb3IgU2NoZW1lcyAqL1xuLnhwbG9vLXB3YS1iYW5uZXItY29udGVudC5pbnN0YWxsIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1QV0FfQ09MT1JfSU5TVEFMTCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tUFdBX0NPTE9SX0lOU1RBTExfU0hBRE9XKTtcbn1cblxuLnhwbG9vLXB3YS1iYW5uZXItY29udGVudC5vcGVuLWFwcCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tUFdBX0NPTE9SX09QRU5fQVBQKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1QV0FfQ09MT1JfT1BFTl9BUFBfU0hBRE9XKTtcbn1cblxuLnhwbG9vLXB3YS1iYW5uZXItY29udGVudC5pbmNvZ25pdG8ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVBXQV9DT0xPUl9JTkNPR05JVE8pO1xuICAgIGJvcmRlcjogdmFyKC0tUFdBX0JBTk5FUl9CT1JERVIpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLVBXQV9DT0xPUl9JTkNPR05JVE9fU0hBRE9XKTtcbn1cblxuLyogQmFubmVyIElubmVyIENvbnRlbnQgKi9cbi54cGxvby1wd2EtYmFubmVyLWlubmVyIHtcbiAgICBtYXgtd2lkdGg6IHZhcigtLVBXQV9NQVhfV0lEVEhfQkFOTkVSX0lOTkVSKTtcbiAgICBtYXJnaW46IHZhcigtLVBXQV9NQVJHSU5fQVVUTyk7XG59XG5cbi54cGxvby1wd2EtYmFubmVyLXRleHQge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLVBXQV9TUEFDSU5HXzJYTCk7XG59XG5cbi54cGxvby1wd2EtYmFubmVyLXRpdGxlIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tUFdBX0JBTk5FUl9USVRMRV9XRUlHSFQpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tUFdBX0JBTk5FUl9USVRMRV9TSVpFKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1QV0FfU1BBQ0lOR19NRCk7XG59XG5cbi54cGxvby1wd2EtYmFubmVyLXRpdGxlIGkge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tUFdBX1NQQUNJTkdfTUQpO1xufVxuXG4ueHBsb28tcHdhLWJhbm5lci1tZXNzYWdlIHtcbiAgICBmb250LXNpemU6IHZhcigtLVBXQV9CQU5ORVJfTUVTU0FHRV9TSVpFKTtcbiAgICBvcGFjaXR5OiB2YXIoLS1QV0FfQkFOTkVSX01FU1NBR0VfT1BBQ0lUWSk7XG59XG5cbi54cGxvby1wd2EtYmFubmVyLWFjdGlvbnMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuUFdBIElOU1RBTExBVElPTiBTWVNURU0gLSBNT0RBTFNcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLyogTW9kYWwgT3ZlcmxheSAqL1xuLnhwbG9vLXB3YS1tb2RhbC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVBXQV9NT0RBTF9PVkVSTEFZX0JHKTtcbiAgICB6LWluZGV4OiB2YXIoLS1QV0FfWl9JTkRFWF9NT0RBTF9PVkVSTEFZKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogdmFyKC0tUFdBX01PREFMX1BBRERJTkcpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogdmFyKC0tUFdBX01PREFMX0JBQ0tEUk9QX0JMVVIpO1xuICAgIGFuaW1hdGlvbjogdmFyKC0tUFdBX01PREFMX0FOSU1BVElPTik7XG59XG5cbi8qIE1vZGFsIENvbnRlbnQgQmFzZSAqL1xuLnhwbG9vLXB3YS1tb2RhbC1jb250ZW50IHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1QV0FfTU9EQUxfQ09OVEVOVF9SQURJVVMpO1xuICAgIG1heC13aWR0aDogdmFyKC0tUFdBX01PREFMX0NPTlRFTlRfTUFYX1dJRFRIKTtcbiAgICB3aWR0aDogdmFyKC0tUFdBX1dJRFRIX0ZVTEwpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhbmltYXRpb246IHZhcigtLVBXQV9NT0RBTF9DT05URU5UX0FOSU1BVElPTik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tUFdBX01PREFMX0NPTlRFTlRfU0hBRE9XKTtcbiAgICBib3JkZXI6IHZhcigtLVBXQV9NT0RBTF9DT05URU5UX0JPUkRFUik7XG4gICAgcGFkZGluZzogdmFyKC0tUFdBX01PREFMX0NPTlRFTlRfUEFERElORyk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiB2YXIoLS1QV0FfQ09MT1JfV0hJVEUpO1xufVxuXG4vKiBNb2RhbCBDb250ZW50IC0gSW5zdGFsbCBUaGVtZSAqL1xuLnhwbG9vLXB3YS1tb2RhbC1jb250ZW50Lmluc3RhbGwge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVBXQV9DT0xPUl9JTlNUQUxMKTtcbn1cblxuLyogTW9kYWwgQ29udGVudCAtIE9wZW4gQXBwIFRoZW1lICovXG4ueHBsb28tcHdhLW1vZGFsLWNvbnRlbnQub3Blbi1hcHAge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVBXQV9DT0xPUl9PUEVOX0FQUCk7XG59XG5cbi8qIE1vZGFsIENvbnRlbnQgLSBJbnN0cnVjdGlvbnMgVGhlbWUgKi9cbi54cGxvby1wd2EtbW9kYWwtY29udGVudC5pbnN0cnVjdGlvbnMge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVBXQV9JTlNUUlVDVElPTlNfQkcpO1xuICAgIGNvbG9yOiB2YXIoLS1QV0FfSU5TVFJVQ1RJT05TX0NPTE9SKTtcbn1cblxuLyogTW9kYWwgSWNvbiAqL1xuLnhwbG9vLXB3YS1tb2RhbC1pY29uIHtcbiAgICBmb250LXNpemU6IHZhcigtLVBXQV9NT0RBTF9JQ09OX1NJWkUpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLVBXQV9NT0RBTF9JQ09OX01BUkdJTik7XG59XG5cbi8qIE1vZGFsIFRpdGxlICovXG4ueHBsb28tcHdhLW1vZGFsLXRpdGxlIHtcbiAgICBmb250LXNpemU6IHZhcigtLVBXQV9NT0RBTF9USVRMRV9TSVpFKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tUFdBX01PREFMX1RJVExFX1dFSUdIVCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tUFdBX01PREFMX1RJVExFX01BUkdJTik7XG4gICAgdGV4dC1zaGFkb3c6IHZhcigtLVBXQV9NT0RBTF9USVRMRV9TSEFET1cpO1xufVxuXG4ueHBsb28tcHdhLW1vZGFsLWNvbnRlbnQuaW5zdHJ1Y3Rpb25zIC54cGxvby1wd2EtbW9kYWwtdGl0bGUge1xuICAgIHRleHQtc2hhZG93OiB2YXIoLS1QV0FfVEVYVF9TSEFET1dfTk9ORSk7XG4gICAgY29sb3I6IHZhcigtLVBXQV9JTlNUUlVDVElPTlNfVElUTEVfQ09MT1IpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tUFdBX0lOU1RSVUNUSU9OU19USVRMRV9TSVpFKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tUFdBX0lOU1RSVUNUSU9OU19USVRMRV9XRUlHSFQpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLVBXQV9JTlNUUlVDVElPTlNfVElUTEVfTUFSR0lOKTtcbn1cblxuLyogTW9kYWwgRGVzY3JpcHRpb24gKi9cbi54cGxvby1wd2EtbW9kYWwtZGVzY3JpcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tUFdBX01PREFMX0RFU0NfU0laRSk7XG4gICAgb3BhY2l0eTogdmFyKC0tUFdBX01PREFMX0RFU0NfT1BBQ0lUWSk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tUFdBX01PREFMX0RFU0NfTUFSR0lOKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tUFdBX01PREFMX0RFU0NfTElORV9IRUlHSFQpO1xufVxuXG4ueHBsb28tcHdhLW1vZGFsLWNvbnRlbnQuaW5zdHJ1Y3Rpb25zIC54cGxvby1wd2EtbW9kYWwtZGVzY3JpcHRpb24ge1xuICAgIG9wYWNpdHk6IHZhcigtLVBXQV9PUEFDSVRZX0ZVTEwpO1xuICAgIGNvbG9yOiB2YXIoLS1QV0FfSU5TVFJVQ1RJT05TX0RFU0NfQ09MT1IpO1xufVxuXG4vKiBNb2RhbCBQcmltYXJ5IEJ1dHRvbiAqL1xuLnhwbG9vLXB3YS1tb2RhbC1wcmltYXJ5LWJ0biB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tUFdBX1BSSU1BUllfQlROX0JHKTtcbiAgICBjb2xvcjogdmFyKC0tUFdBX1BSSU1BUllfQlROX0NPTE9SX0lOU1RBTEwpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiB2YXIoLS1QV0FfUFJJTUFSWV9CVE5fUEFERElORyk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tUFdBX1BSSU1BUllfQlROX1JBRElVUyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1QV0FfUFJJTUFSWV9CVE5fRk9OVF9TSVpFKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tUFdBX1BSSU1BUllfQlROX0ZPTlRfV0VJR0hUKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tUFdBX1BSSU1BUllfQlROX1RSQU5TSVRJT04pO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLVBXQV9QUklNQVJZX0JUTl9TSEFET1cpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1QV0FfUFJJTUFSWV9CVE5fR0FQKTtcbn1cblxuLnhwbG9vLXB3YS1tb2RhbC1wcmltYXJ5LWJ0bjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpIHNjYWxlKDEuMDUpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLVBXQV9QUklNQVJZX0JUTl9TSEFET1dfSE9WRVIpO1xufVxuXG4ueHBsb28tcHdhLW1vZGFsLWNvbnRlbnQub3Blbi1hcHAgLnhwbG9vLXB3YS1tb2RhbC1wcmltYXJ5LWJ0biB7XG4gICAgY29sb3I6IHZhcigtLVBXQV9QUklNQVJZX0JUTl9DT0xPUl9PUEVOX0FQUCk7XG59XG5cbi8qIE1vZGFsIEZvb3RlciBOb3RlICovXG4ueHBsb28tcHdhLW1vZGFsLWZvb3Rlci1ub3RlIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1QV0FfRk9PVEVSX05PVEVfTUFSR0lOKTtcbiAgICBmb250LXNpemU6IHZhcigtLVBXQV9GT09URVJfTk9URV9TSVpFKTtcbiAgICBvcGFjaXR5OiB2YXIoLS1QV0FfRk9PVEVSX05PVEVfT1BBQ0lUWSk7XG59XG5cbi8qIEluc3RydWN0aW9ucyBNb2RhbCAtIFNwZWNpZmljIFN0eWxlcyAqL1xuLnhwbG9vLXB3YS1tb2RhbC1jb250ZW50Lmluc3RydWN0aW9ucyB7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1QV0FfSU5TVFJVQ1RJT05TX01BWF9XSURUSCk7XG4gICAgbWF4LWhlaWdodDogdmFyKC0tUFdBX0lOU1RSVUNUSU9OU19NQVhfSEVJR0hUKTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGFuaW1hdGlvbjogdmFyKC0tUFdBX0lOU1RSVUNUSU9OU19BTklNQVRJT04pO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi54cGxvby1wd2EtaW5zdHJ1Y3Rpb25zLWNvbnRlbnQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiB2YXIoLS1QV0FfSU5TVFJVQ1RJT05TX1BBRERJTkcpO1xuICAgIGNvbG9yOiB2YXIoLS1QV0FfSU5TVFJVQ1RJT05TX0NPTE9SKTtcbn1cblxuLnhwbG9vLXB3YS1pbnN0cnVjdGlvbnMtdGl0bGUge1xuICAgIGNvbG9yOiB2YXIoLS1QV0FfSU5TVFJVQ1RJT05TX1RJVExFX0NPTE9SKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1QV0FfSU5TVFJVQ1RJT05TX1RJVExFX01BUkdJTik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1QV0FfSU5TVFJVQ1RJT05TX1RJVExFX1NJWkUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1QV0FfSU5TVFJVQ1RJT05TX1RJVExFX1dFSUdIVCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ueHBsb28tcHdhLWluc3RydWN0aW9ucy10aXRsZS5ncmVlbiB7XG4gICAgY29sb3I6IHZhcigtLVBXQV9JTlNUUlVDVElPTlNfVElUTEVfQ09MT1JfR1JFRU4pO1xufVxuXG4ueHBsb28tcHdhLWluc3RydWN0aW9ucy10aXRsZS5wdXJwbGUge1xuICAgIGNvbG9yOiB2YXIoLS1QV0FfSU5TVFJVQ1RJT05TX1RJVExFX0NPTE9SX1BVUlBMRSk7XG59XG5cbi54cGxvby1wd2EtaW5zdHJ1Y3Rpb25zLXRpdGxlIGkge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tUFdBX1NQQUNJTkdfTUQpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tUFdBX1NQQUNJTkdfM1hMKTtcbn1cblxuLnhwbG9vLXB3YS1pbnN0cnVjdGlvbnMtZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLVBXQV9JTlNUUlVDVElPTlNfVElUTEVfTUFSR0lOKTtcbiAgICBjb2xvcjogdmFyKC0tUFdBX0lOU1RSVUNUSU9OU19ERVNDX0NPTE9SKTtcbiAgICBmb250LXNpemU6IHZhcigtLVBXQV9NT0RBTF9ERVNDX1NJWkUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1QV0FfTU9EQUxfREVTQ19MSU5FX0hFSUdIVCk7XG59XG5cbi54cGxvby1wd2EtaW5zdHJ1Y3Rpb25zLXN0ZXBzIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbjogdmFyKC0tUFdBX01BUkdJTl9BVVRPKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tUFdBX0xJTkVfSEVJR0hUX05PUk1BTCk7XG59XG5cbi54cGxvby1wd2EtaW5zdHJ1Y3Rpb24tc3RlcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tUFdBX1NURVBfTUFSR0lOKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IHZhcigtLVBXQV9TVEVQX1BBRERJTkcpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVBXQV9TVEVQX0JHKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1QV0FfU1RFUF9SQURJVVMpO1xuICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1QV0FfU1RFUF9CT1JERVJfTEVGVF9XSURUSCkgc29saWQgdmFyKC0tUFdBX1NURVBfQk9SREVSX0NPTE9SKTtcbn1cblxuLnhwbG9vLXB3YS1pbnN0cnVjdGlvbi1zdGVwLmdyZWVuIHtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tUFdBX1NURVBfQk9SREVSX0NPTE9SX0dSRUVOKTtcbn1cblxuLnhwbG9vLXB3YS1pbnN0cnVjdGlvbi1zdGVwLnB1cnBsZSB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLVBXQV9TVEVQX0JPUkRFUl9DT0xPUl9QVVJQTEUpO1xufVxuXG4ueHBsb28tcHdhLWluc3RydWN0aW9uLW51bWJlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tUFdBX1NURVBfTlVNQkVSX0JHKTtcbiAgICBjb2xvcjogdmFyKC0tUFdBX1NURVBfTlVNQkVSX0NPTE9SKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1QV0FfUkFESVVTX0NJUkNMRSk7XG4gICAgd2lkdGg6IHZhcigtLVBXQV9TVEVQX05VTUJFUl9TSVpFKTtcbiAgICBoZWlnaHQ6IHZhcigtLVBXQV9TVEVQX05VTUJFUl9TSVpFKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1QV0FfU1RFUF9OVU1CRVJfTUFSR0lOKTtcbiAgICBmb250LXNpemU6IHZhcigtLVBXQV9TVEVQX05VTUJFUl9GT05UX1NJWkUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1QV0FfU1RFUF9OVU1CRVJfV0VJR0hUKTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLnhwbG9vLXB3YS1pbnN0cnVjdGlvbi1udW1iZXIuZ3JlZW4ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVBXQV9TVEVQX05VTUJFUl9CR19HUkVFTik7XG59XG5cbi54cGxvby1wd2EtaW5zdHJ1Y3Rpb24tbnVtYmVyLnB1cnBsZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tUFdBX1NURVBfTlVNQkVSX0JHX1BVUlBMRSk7XG59XG5cbi54cGxvby1wd2EtaW5zdHJ1Y3Rpb24tdGV4dCB7XG4gICAgY29sb3I6IHZhcigtLVBXQV9TVEVQX1RFWFRfQ09MT1IpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tUFdBX1NURVBfVEVYVF9TSVpFKTtcbn1cblxuLnhwbG9vLXB3YS1pbnN0cnVjdGlvbi1oaWdobGlnaHQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVBXQV9DT0xPUl9JTlNUQUxMKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1QV0FfSElHSExJR0hUX1JBRElVUyk7XG4gICAgcGFkZGluZzogdmFyKC0tUFdBX0hJR0hMSUdIVF9QQURESU5HKTtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1QV0FfSElHSExJR0hUX01BUkdJTik7XG4gICAgY29sb3I6IHZhcigtLVBXQV9ISUdITElHSFRfQ09MT1IpO1xufVxuXG4ueHBsb28tcHdhLWluc3RydWN0aW9uLWhpZ2hsaWdodC5ncmVlbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tUFdBX0NPTE9SX09QRU5fQVBQKTtcbn1cblxuLnhwbG9vLXB3YS1pbnN0cnVjdGlvbi1oaWdobGlnaHQucHVycGxlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1QV0FfQ09MT1JfSU5DT0dOSVRPKTtcbn1cblxuLnhwbG9vLXB3YS1pbnN0cnVjdGlvbi1oaWdobGlnaHQgaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1QV0FfU1BBQ0lOR19NRCk7XG59XG5cbi8qIEluZm8gQm94ICovXG4ueHBsb28tcHdhLWluZm8tYm94IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1QV0FfSU5GT19CT1hfQkcpO1xuICAgIGJvcmRlcjogdmFyKC0tUFdBX0lORk9fQk9YX0JPUkRFUik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tUFdBX0lORk9fQk9YX1JBRElVUyk7XG4gICAgcGFkZGluZzogdmFyKC0tUFdBX0lORk9fQk9YX1BBRERJTkcpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLVBXQV9JTkZPX0JPWF9NQVJHSU4pO1xuICAgIGNvbG9yOiB2YXIoLS1QV0FfSU5GT19CT1hfQ09MT1IpO1xufVxuXG4ueHBsb28tcHdhLWluZm8tYm94LnllbGxvdyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tUFdBX0lORk9fQk9YX0JHX1lFTExPVyk7XG4gICAgYm9yZGVyOiB2YXIoLS1QV0FfSU5GT19CT1hfQk9SREVSX1lFTExPVyk7XG4gICAgY29sb3I6IHZhcigtLVBXQV9JTkZPX0JPWF9DT0xPUl9ZRUxMT1cpO1xufVxuXG4ueHBsb28tcHdhLWluZm8tYm94IGkge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tUFdBX0lORk9fQk9YX0lDT05fTUFSR0lOKTtcbiAgICBmb250LXNpemU6IHZhcigtLVBXQV9JTkZPX0JPWF9JQ09OX1NJWkUpO1xufVxuXG4vKiBDb3B5IFVSTCBCdXR0b24gKi9cbi54cGxvby1wd2EtY29weS1idG4ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVBXQV9DT1BZX0JUTl9CRyk7XG4gICAgY29sb3I6IHZhcigtLVBXQV9DT1BZX0JUTl9DT0xPUik7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IHZhcigtLVBXQV9DT1BZX0JUTl9QQURESU5HKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1QV0FfQ09QWV9CVE5fUkFESVVTKTtcbiAgICBmb250LXNpemU6IHZhcigtLVBXQV9DT1BZX0JUTl9GT05UX1NJWkUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1QV0FfQ09QWV9CVE5fRk9OVF9XRUlHSFQpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS1QV0FfQ09QWV9CVE5fVFJBTlNJVElPTik7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tUFdBX0NPUFlfQlROX1NIQURPVyk7XG59XG5cbi54cGxvby1wd2EtY29weS1idG46aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1QV0FfQ09QWV9CVE5fU0hBRE9XX0hPVkVSKTtcbn1cblxuLnhwbG9vLXB3YS1jb3B5LWJ0bi5zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1QV0FfQ09QWV9CVE5fQkdfU1VDQ0VTUyk7XG59XG5cbi54cGxvby1wd2EtY29weS1idG4gaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1QV0FfU1BBQ0lOR19TTSk7XG59XG5cbi8qIFNwZWNpYWwgc3R5bGluZyBmb3IgaU9TIFNhZmFyaSBTVkcgaWNvbiAqL1xuLnhwbG9vLXB3YS1zYWZhcmktc2hhcmUtaWNvbiB7XG4gICAgd2lkdGg6IHZhcigtLVBXQV9TQUZBUklfU0hBUkVfSUNPTl9TSVpFKTtcbiAgICBoZWlnaHQ6IHZhcigtLVBXQV9TQUZBUklfU0hBUkVfSUNPTl9TSVpFKTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbjogdmFyKC0tUFdBX01BUkdJTl9aRVJPKSB2YXIoLS1QV0FfU0FGQVJJX1NIQVJFX0lDT05fTUFSR0lOKTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qIEJyb3dzZXItc3BlY2lmaWMgaW5zdHJ1Y3Rpb24gYm94ZXMgKi9cbi54cGxvby1wd2EtYnJvd3Nlci1ib3gge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLVBXQV9CUk9XU0VSX0JPWF9NQVJHSU4pO1xuICAgIHBhZGRpbmc6IHZhcigtLVBXQV9CUk9XU0VSX0JPWF9QQURESU5HKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1QV0FfQlJPV1NFUl9CT1hfQkcpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLVBXQV9CUk9XU0VSX0JPWF9SQURJVVMpO1xufVxuXG4ueHBsb28tcHdhLWJyb3dzZXItYm94LmNocm9tZSB7XG4gICAgYm9yZGVyLWxlZnQ6IHZhcigtLVBXQV9CUk9XU0VSX0JPWF9CT1JERVJfV0lEVEgpIHNvbGlkIHZhcigtLVBXQV9CUk9XU0VSX0JPWF9CT1JERVJfQ0hST01FKTtcbn1cblxuLnhwbG9vLXB3YS1icm93c2VyLWJveC5maXJlZm94IHtcbiAgICBib3JkZXItbGVmdDogdmFyKC0tUFdBX0JST1dTRVJfQk9YX0JPUkRFUl9XSURUSCkgc29saWQgdmFyKC0tUFdBX0JST1dTRVJfQk9YX0JPUkRFUl9GSVJFRk9YKTtcbn1cblxuLnhwbG9vLXB3YS1icm93c2VyLWJveC5zYWZhcmkge1xuICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1QV0FfQlJPV1NFUl9CT1hfQk9SREVSX1dJRFRIKSBzb2xpZCB2YXIoLS1QV0FfQlJPV1NFUl9CT1hfQk9SREVSX1NBRkFSSSk7XG59XG5cbi54cGxvby1wd2EtYnJvd3Nlci1ib3guYW5kcm9pZCB7XG4gICAgYm9yZGVyLWxlZnQ6IHZhcigtLVBXQV9CUk9XU0VSX0JPWF9CT1JERVJfV0lEVEgpIHNvbGlkIHZhcigtLVBXQV9CUk9XU0VSX0JPWF9CT1JERVJfQU5EUk9JRCk7XG59XG5cbi54cGxvby1wd2EtYnJvd3Nlci1ib3gtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tUFdBX0JST1dTRVJfQk9YX0hFQURFUl9NQVJHSU4pO1xufVxuXG4ueHBsb28tcHdhLWJyb3dzZXItYm94LWhlYWRlciBpIHtcbiAgICBmb250LXNpemU6IHZhcigtLVBXQV9CUk9XU0VSX0JPWF9JQ09OX1NJWkUpO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tUFdBX0JST1dTRVJfQk9YX0lDT05fTUFSR0lOKTtcbiAgICB3aWR0aDogdmFyKC0tUFdBX1dJRFRIX0lDT04pO1xufVxuXG4ueHBsb28tcHdhLWJyb3dzZXItYm94LWhlYWRlciBpLmZhLWNocm9tZSB7XG4gICAgY29sb3I6IHZhcigtLVBXQV9CUk9XU0VSX0JPWF9CT1JERVJfQ0hST01FKTtcbn1cblxuLnhwbG9vLXB3YS1icm93c2VyLWJveC1oZWFkZXIgaS5mYS1lZGdlIHtcbiAgICBjb2xvcjogdmFyKC0tUFdBX0JST1dTRVJfQk9YX0JPUkRFUl9FREdFKTtcbn1cblxuLnhwbG9vLXB3YS1icm93c2VyLWJveC1oZWFkZXIgaS5mYS1maXJlZm94LWJyb3dzZXIge1xuICAgIGNvbG9yOiB2YXIoLS1QV0FfQlJPV1NFUl9CT1hfQk9SREVSX0ZJUkVGT1gpO1xufVxuXG4ueHBsb28tcHdhLWJyb3dzZXItYm94LWhlYWRlciBpLmZhLXNhZmFyaSB7XG4gICAgY29sb3I6IHZhcigtLVBXQV9CUk9XU0VSX0JPWF9CT1JERVJfU0FGQVJJKTtcbn1cblxuLnhwbG9vLXB3YS1icm93c2VyLWJveC1oZWFkZXIgaS5mYS1hbmRyb2lkIHtcbiAgICBjb2xvcjogdmFyKC0tUFdBX0JST1dTRVJfQk9YX0JPUkRFUl9BTkRST0lEKTtcbn1cblxuLnhwbG9vLXB3YS1icm93c2VyLWJveC1oZWFkZXIgc3Ryb25nIHtcbiAgICBjb2xvcjogdmFyKC0tUFdBX1NURVBfVEVYVF9DT0xPUik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1QV0FfQlJPV1NFUl9CT1hfVElUTEVfU0laRSk7XG59XG5cbi54cGxvby1wd2EtYnJvd3Nlci1ib3gtY29udGVudCB7XG4gICAgY29sb3I6IHZhcigtLVBXQV9JTlNUUlVDVElPTlNfREVTQ19DT0xPUik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1QV0FfQlJPV1NFUl9CT1hfQ09OVEVOVF9TSVpFKTtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tUFdBX0JST1dTRVJfQk9YX0NPTlRFTlRfTUFSR0lOKTtcbn1cblxuLnhwbG9vLXB3YS1icm93c2VyLWJveC1jb250ZW50IGkge1xuICAgIG1hcmdpbjogdmFyKC0tUFdBX01BUkdJTl9aRVJPKSB2YXIoLS1QV0FfU1BBQ0lOR19YWFMpO1xufVxuXG4vKiBPcGVuIEFwcCBJbnN0cnVjdGlvbnMgLSBTcGVjaWZpYyBzdHlsZXMgKi9cbi54cGxvby1wd2Etb3Blbi1hcHAtc3RlcCB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tUFdBX09QRU5fQVBQX1NURVBfUkFESVVTKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1QV0FfT1BFTl9BUFBfU1RFUF9QQURESU5HKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1QV0FfT1BFTl9BUFBfU1RFUF9NQVJHSU4pO1xufVxuXG4ueHBsb28tcHdhLW9wZW4tYXBwLXN0ZXAucHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tUFdBX0NPTE9SX09QRU5fQVBQKTtcbiAgICBjb2xvcjogdmFyKC0tUFdBX0NPTE9SX1dISVRFKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1QV0FfQ09MT1JfT1BFTl9BUFBfU0hBRE9XKTtcbn1cblxuLnhwbG9vLXB3YS1vcGVuLWFwcC1zdGVwLnNlY29uZGFyeSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tUFdBX09QRU5fQVBQX1NURVBfU0VDT05EQVJZX0JHKTtcbiAgICBib3JkZXI6IHZhcigtLVBXQV9PUEVOX0FQUF9TVEVQX1NFQ09OREFSWV9CT1JERVIpO1xufVxuXG4ueHBsb28tcHdhLW9wZW4tYXBwLXN0ZXAtY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLVBXQV9TUEFDSU5HX1hMKTtcbn1cblxuLnhwbG9vLXB3YS1vcGVuLWFwcC1zdGVwLW51bWJlciB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tUFdBX1JBRElVU19DSVJDTEUpO1xuICAgIHdpZHRoOiB2YXIoLS1QV0FfT1BFTl9BUFBfU1RFUF9OVU1CRVJfU0laRSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1QV0FfT1BFTl9BUFBfU1RFUF9OVU1CRVJfU0laRSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tUFdBX09QRU5fQVBQX1NURVBfTlVNQkVSX01BUkdJTik7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiB2YXIoLS1QV0FfT1BFTl9BUFBfU1RFUF9OVU1CRVJfRk9OVF9TSVpFKTtcbn1cblxuLnhwbG9vLXB3YS1vcGVuLWFwcC1zdGVwLW51bWJlci53aGl0ZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tUFdBX0NPTE9SX1dISVRFKTtcbiAgICBjb2xvcjogdmFyKC0tUFdBX1NURVBfTlVNQkVSX0JHX0dSRUVOKTtcbn1cblxuLnhwbG9vLXB3YS1vcGVuLWFwcC1zdGVwLW51bWJlci5ncmVlbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tUFdBX1NURVBfTlVNQkVSX0JHX0dSRUVOKTtcbiAgICBjb2xvcjogdmFyKC0tUFdBX0NPTE9SX1dISVRFKTtcbn1cblxuLnhwbG9vLXB3YS1vcGVuLWFwcC1zdGVwLXRleHQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi54cGxvby1wd2Etb3Blbi1hcHAtc3RlcC10aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1QV0FfT1BFTl9BUFBfU1RFUF9USVRMRV9TSVpFKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tUFdBX09QRU5fQVBQX1NURVBfVElUTEVfV0VJR0hUKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1QV0FfU1BBQ0lOR19YUyk7XG59XG5cbi54cGxvby1wd2Etb3Blbi1hcHAtc3RlcC5wcmltYXJ5IC54cGxvby1wd2Etb3Blbi1hcHAtc3RlcC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tUFdBX1NQQUNJTkdfWFMpO1xufVxuXG4ueHBsb28tcHdhLW9wZW4tYXBwLXN0ZXAuc2Vjb25kYXJ5IC54cGxvby1wd2Etb3Blbi1hcHAtc3RlcC10aXRsZSB7XG4gICAgY29sb3I6IHZhcigtLVBXQV9TVEVQX05VTUJFUl9CR19HUkVFTik7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tUFdBX1NQQUNJTkdfTUQpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLVBXQV9HQVBfU00pO1xufVxuXG4ueHBsb28tcHdhLW9wZW4tYXBwLXN0ZXAtc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tUFdBX09QRU5fQVBQX1NURVBfU1VCVElUTEVfU0laRSk7XG59XG5cbi54cGxvby1wd2Etb3Blbi1hcHAtc3RlcC5wcmltYXJ5IC54cGxvby1wd2Etb3Blbi1hcHAtc3RlcC1zdWJ0aXRsZSB7XG4gICAgb3BhY2l0eTogdmFyKC0tUFdBX09QQUNJVFlfSElHSCk7XG59XG5cbi54cGxvby1wd2Etb3Blbi1hcHAtc3RlcC5zZWNvbmRhcnkgLnhwbG9vLXB3YS1vcGVuLWFwcC1zdGVwLXN1YnRpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tUFdBX09QRU5fQVBQX0hFTFBfVElUTEVfQ09MT1IpO1xufVxuXG4ueHBsb28tcHdhLW9wZW4tYXBwLWhlbHAtYm94IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1QV0FfT1BFTl9BUFBfSEVMUF9CT1hfQkcpO1xuICAgIHBhZGRpbmc6IHZhcigtLVBXQV9PUEVOX0FQUF9IRUxQX0JPWF9QQURESU5HKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1QV0FfT1BFTl9BUFBfSEVMUF9CT1hfUkFESVVTKTtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1QV0FfT1BFTl9BUFBfSEVMUF9CT1hfTUFSR0lOKTtcbiAgICBib3JkZXI6IHZhcigtLVBXQV9PUEVOX0FQUF9IRUxQX0JPWF9CT1JERVIpO1xufVxuXG4ueHBsb28tcHdhLW9wZW4tYXBwLWhlbHAtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tUFdBX09QRU5fQVBQX0hFTFBfVElUTEVfU0laRSk7XG4gICAgY29sb3I6IHZhcigtLVBXQV9PUEVOX0FQUF9IRUxQX1RJVExFX0NPTE9SKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1QV0FfU1BBQ0lOR19NRCk7XG59XG5cbi54cGxvby1wd2Etb3Blbi1hcHAtaGVscC10aXRsZSBpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLVBXQV9TUEFDSU5HX1NNKTtcbiAgICBjb2xvcjogdmFyKC0tUFdBX1NURVBfTlVNQkVSX0JHX0dSRUVOKTtcbn1cblxuLnhwbG9vLXB3YS1vcGVuLWFwcC1oZWxwLWNvbnRlbnQge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tUFdBX09QRU5fQVBQX0hFTFBfQ09OVEVOVF9TSVpFKTtcbiAgICBjb2xvcjogdmFyKC0tUFdBX09QRU5fQVBQX0hFTFBfQ09OVEVOVF9DT0xPUik7XG59XG5cbi54cGxvby1wd2EtYXBwLWljb24ge1xuICAgIHdpZHRoOiB2YXIoLS1QV0FfQVBQX0lDT05fU0laRSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1QV0FfQVBQX0lDT05fU0laRSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tUFdBX0FQUF9JQ09OX1JBRElVUyk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tUFdBX0FQUF9JQ09OX1NIQURPVyk7XG59XG5cbi54cGxvby1wd2EtbW9kYWwtY2xvc2UtYWN0aW9uLWJ0biB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tUFdBX0NPTE9SX09QRU5fQVBQKTtcbiAgICBjb2xvcjogdmFyKC0tUFdBX0NPTE9SX1dISVRFKTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogdmFyKC0tUFdBX1BSSU1BUllfQlROX1BBRERJTkcpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLVBXQV9QUklNQVJZX0JUTl9SQURJVVMpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tUFdBX1BSSU1BUllfQlROX0ZPTlRfU0laRSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLVBXQV9QUklNQVJZX0JUTl9GT05UX1dFSUdIVCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IHZhcigtLVBXQV9QUklNQVJZX0JUTl9UUkFOU0lUSU9OKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1QV0FfQ09MT1JfT1BFTl9BUFBfU0hBRE9XKTtcbn1cblxuLnhwbG9vLXB3YS1tb2RhbC1jbG9zZS1hY3Rpb24tYnRuOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCkgc2NhbGUoMS4wNSk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tUFdBX1BSSU1BUllfQlROX1NIQURPV19IT1ZFUik7XG59XG5cbi54cGxvby1wd2EtbW9kYWwtY2xvc2UtYWN0aW9uLWJ0biBpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLVBXQV9TUEFDSU5HX01EKTtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuUFdBIElOU1RBTExBVElPTiBTWVNURU0gLSBCVVRUT05TXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi8qIEluc3RhbGwvQWN0aW9uIEJ1dHRvbiAqL1xuLnhwbG9vLXB3YS1hY3Rpb24tYnRuIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1QV0FfQUNUSU9OX0JUTl9CRyk7XG4gICAgYm9yZGVyOiB2YXIoLS1QV0FfQUNUSU9OX0JUTl9CT1JERVIpO1xuICAgIGNvbG9yOiB2YXIoLS1QV0FfQ09MT1JfV0hJVEUpO1xuICAgIHBhZGRpbmc6IHZhcigtLVBXQV9BQ1RJT05fQlROX1BBRERJTkcpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLVBXQV9BQ1RJT05fQlROX1JBRElVUyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1QV0FfQUNUSU9OX0JUTl9GT05UX1NJWkUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1QV0FfQUNUSU9OX0JUTl9GT05UX1dFSUdIVCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IHZhcigtLVBXQV9BQ1RJT05fQlROX1RSQU5TSVRJT04pO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ueHBsb28tcHdhLWFjdGlvbi1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVBXQV9BQ1RJT05fQlROX0JHX0hPVkVSKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblBXQSBJTlNUQUxMQVRJT04gU1lTVEVNIC0gU1VDQ0VTUyBNRVNTQUdFXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi54cGxvby1wd2Etc3VjY2Vzcy1iYW5uZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IHZhcigtLVBXQV9TVUNDRVNTX0JBTk5FUl9UT1ApO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tUFdBX0NPTE9SX09QRU5fQVBQKTtcbiAgICBjb2xvcjogdmFyKC0tUFdBX0NPTE9SX1dISVRFKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1QV0FfU1VDQ0VTU19CQU5ORVJfUEFERElORyk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tUFdBX1NVQ0NFU1NfQkFOTkVSX1JBRElVUyk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tUFdBX0NPTE9SX09QRU5fQVBQX1NIQURPVyk7XG4gICAgei1pbmRleDogdmFyKC0tUFdBX1pfSU5ERVhfQkFOTkVSKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tUFdBX0ZPTlRfRkFNSUxZKTtcbiAgICBhbmltYXRpb246IHZhcigtLVBXQV9TVUNDRVNTX0JBTk5FUl9BTklNQVRJT04pO1xuICAgIG1heC13aWR0aDogdmFyKC0tUFdBX1NVQ0NFU1NfQkFOTkVSX01BWF9XSURUSCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ueHBsb28tcHdhLXN1Y2Nlc3MtYmFubmVyIGkge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tUFdBX1NVQ0NFU1NfQkFOTkVSX0lDT05fTUFSR0lOKTtcbiAgICBmb250LXNpemU6IHZhcigtLVBXQV9TVUNDRVNTX0JBTk5FUl9JQ09OX1NJWkUpO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5OT1RJRklDQVRJT04gU0VUVElOR1MgTU9EQUwgKG5vdGlmaWNhdGlvbiBwcmVmZXJlbmNlcylcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLyogTm90aWZpY2F0aW9uIFNldHRpbmdzIE1vZGFsIENvbnRhaW5lciAqL1xuLnhwbG9vLW5vdGlmaWNhdGlvbi1zZXR0aW5ncy1tb2RhbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiB2YXIoLS1QV0FfV0lEVEhfRlVMTCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1QV0FfV0lEVEhfRlVMTCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tTk9USUZJQ0FUSU9OX01PREFMX09WRVJMQVlfQkcpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB6LWluZGV4OiB2YXIoLS1QV0FfWl9JTkRFWF9CQU5ORVIpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogdmFyKC0tTk9USUZJQ0FUSU9OX01PREFMX0JBQ0tEUk9QX0JMVVIpO1xuICAgIGFuaW1hdGlvbjogZmFkZUluIDAuM3MgZWFzZS1vdXQ7XG59XG5cbi8qIE5vdGlmaWNhdGlvbiBTZXR0aW5ncyBNb2RhbCBDb250ZW50ICovXG4ueHBsb28tbm90aWZpY2F0aW9uLXNldHRpbmdzLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLU5PVElGSUNBVElPTl9NT0RBTF9DT05URU5UX0JHKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1OT1RJRklDQVRJT05fTU9EQUxfQ09OVEVOVF9QQURESU5HKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1OT1RJRklDQVRJT05fTU9EQUxfQk9SREVSX1JBRElVUyk7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1OT1RJRklDQVRJT05fTU9EQUxfTUFYX1dJRFRIKTtcbiAgICB3aWR0aDogdmFyKC0tUFdBX1dJRFRIXzkwKTtcbiAgICBtYXJnaW46IHZhcigtLVBXQV9TUEFDSU5HXzRYTCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tTk9USUZJQ0FUSU9OX01PREFMX1NIQURPVyk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGFuaW1hdGlvbjogdmFyKC0tTk9USUZJQ0FUSU9OX01PREFMX0FOSU1BVElPTik7XG59XG5cbi8qIE5vdGlmaWNhdGlvbiBTZXR0aW5ncyBNb2RhbCBIZWFkZXIgKi9cbi54cGxvby1ub3RpZmljYXRpb24tc2V0dGluZ3MtaGVhZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1QV0FfU1BBQ0lOR180WEwpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnhwbG9vLW5vdGlmaWNhdGlvbi1zZXR0aW5ncy10aXRsZSB7XG4gICAgbWFyZ2luOiB2YXIoLS1QV0FfTUFSR0lOX1pFUk8pIHZhcigtLVBXQV9NQVJHSU5fWkVSTykgdmFyKC0tUFdBX1NQQUNJTkdfWEwpIHZhcigtLVBXQV9NQVJHSU5fWkVSTyk7XG4gICAgY29sb3I6IHZhcigtLU5PVElGSUNBVElPTl9IRUFERVJfVElUTEVfQ09MT1IpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tTk9USUZJQ0FUSU9OX0hFQURFUl9USVRMRV9TSVpFKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tTk9USUZJQ0FUSU9OX0hFQURFUl9USVRMRV9XRUlHSFQpO1xufVxuXG4ueHBsb28tbm90aWZpY2F0aW9uLXNldHRpbmdzLWRlc2NyaXB0aW9uIHtcbiAgICBjb2xvcjogdmFyKC0tTk9USUZJQ0FUSU9OX0hFQURFUl9ERVNDX0NPTE9SKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tTk9USUZJQ0FUSU9OX0hFQURFUl9MSU5FX0hFSUdIVCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1OT1RJRklDQVRJT05fSEVBREVSX0RFU0NfU0laRSk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tUFdBX1NQQUNJTkdfTEcpO1xufVxuXG4vKiBOb3RpZmljYXRpb24gU2V0dGluZ3MgTGlzdCAqL1xuLnhwbG9vLW5vdGlmaWNhdGlvbi1zZXR0aW5ncy1saXN0IHtcbiAgICBjb2xvcjogdmFyKC0tTk9USUZJQ0FUSU9OX0xJU1RfQ09MT1IpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1OT1RJRklDQVRJT05fTElTVF9MSU5FX0hFSUdIVCk7XG4gICAgbWFyZ2luOiAwIDAgdmFyKC0tTk9USUZJQ0FUSU9OX0xJU1RfTUFSR0lOX0JPVFRPTSkgMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ueHBsb28tbm90aWZpY2F0aW9uLXNldHRpbmdzLWxpc3QgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLU5PVElGSUNBVElPTl9MSVNUX0lURU1fTUFSR0lOKTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IHZhcigtLU5PVElGSUNBVElPTl9MSVNUX0lURU1fR0FQKTtcbn1cblxuLyogTm90aWZpY2F0aW9uIFNldHRpbmdzIEFjdGlvbnMgKi9cbi54cGxvby1ub3RpZmljYXRpb24tc2V0dGluZ3MtYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiB2YXIoLS1OT1RJRklDQVRJT05fQlROX0dBUCk7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLyogTm90aWZpY2F0aW9uIFNldHRpbmdzIEJ1dHRvbnMgKi9cbi54cGxvby1ub3RpZmljYXRpb24tYnRuIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogdmFyKC0tTk9USUZJQ0FUSU9OX0JUTl9QQURESU5HKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1OT1RJRklDQVRJT05fQlROX0JPUkRFUl9SQURJVVMpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tTk9USUZJQ0FUSU9OX0JUTl9GT05UX1NJWkUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1OT1RJRklDQVRJT05fQlROX0ZPTlRfV0VJR0hUKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tTk9USUZJQ0FUSU9OX0JUTl9UUkFOU0lUSU9OKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ueHBsb28tbm90aWZpY2F0aW9uLWJ0bi1wcmltYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1OT1RJRklDQVRJT05fQlROX1BSSU1BUllfQkcpO1xuICAgIGNvbG9yOiB2YXIoLS1OT1RJRklDQVRJT05fQlROX1BSSU1BUllfQ09MT1IpO1xufVxuXG4ueHBsb28tbm90aWZpY2F0aW9uLWJ0bi1wcmltYXJ5OmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tTk9USUZJQ0FUSU9OX0JUTl9QUklNQVJZX1NIQURPVyk7XG59XG5cbi54cGxvby1ub3RpZmljYXRpb24tYnRuLXRlc3Qge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLU5PVElGSUNBVElPTl9CVE5fVEVTVF9CRyk7XG4gICAgY29sb3I6IHZhcigtLU5PVElGSUNBVElPTl9CVE5fVEVTVF9DT0xPUik7XG59XG5cbi54cGxvby1ub3RpZmljYXRpb24tYnRuLXRlc3Q6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1OT1RJRklDQVRJT05fQlROX1RFU1RfU0hBRE9XKTtcbn1cblxuLnhwbG9vLW5vdGlmaWNhdGlvbi1idG4tdmlicmF0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1OT1RJRklDQVRJT05fQlROX1ZJQlJBVElPTl9CRyk7XG4gICAgY29sb3I6IHZhcigtLU5PVElGSUNBVElPTl9CVE5fVklCUkFUSU9OX0NPTE9SKTtcbn1cblxuLnhwbG9vLW5vdGlmaWNhdGlvbi1idG4tdmlicmF0aW9uOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tTk9USUZJQ0FUSU9OX0JUTl9WSUJSQVRJT05fU0hBRE9XKTtcbn1cblxuLyogQWRtaW4tb25seSBidXR0b25zIHZpc2liaWxpdHkgKi9cbi54cGxvby1ub3RpZmljYXRpb24tYnRuLWFkbWluIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ueHBsb28tbm90aWZpY2F0aW9uLWJ0bi1hZG1pbi5pcy1hZG1pbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5DQUNIRSBVUERBVEUgTk9USUZJQ0FUSU9OIE1PREFMXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi54cGxvby1jYWNoZS11cGRhdGUtbW9kYWwge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiB2YXIoLS1DQUNIRV9VUERBVEVfTU9EQUxfWl9JTkRFWCk7XG4gICAgY29sb3I6IHZhcigtLUNBQ0hFX1VQREFURV9NT0RBTF9DT0xPUik7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLUNBQ0hFX1VQREFURV9NT0RBTF9GT05UX0ZBTUlMWSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGFuaW1hdGlvbjogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX0FOSU1BVElPTl9ERVNLVE9QKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ueHBsb28tY2FjaGUtdXBkYXRlLW1vZGFsLmlzLWRlc2t0b3Age1xuICAgIGJvdHRvbTogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX0RFU0tUT1BfQk9UVE9NKTtcbiAgICByaWdodDogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX0RFU0tUT1BfUklHSFQpO1xuICAgIG1pbi13aWR0aDogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX01JTl9XSURUSF9ERVNLVE9QKTtcbiAgICBtYXgtd2lkdGg6IHZhcigtLUNBQ0hFX1VQREFURV9NT0RBTF9NQVhfV0lEVEgpO1xufVxuXG4ueHBsb28tY2FjaGUtdXBkYXRlLW1vZGFsLmlzLW1vYmlsZSB7XG4gICAgdG9wOiB2YXIoLS1DQUNIRV9VUERBVEVfTU9EQUxfTU9CSUxFX1RPUCk7XG4gICAgbGVmdDogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX01PQklMRV9MRUZUKTtcbiAgICByaWdodDogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX01PQklMRV9SSUdIVCk7XG4gICAgYW5pbWF0aW9uOiB2YXIoLS1DQUNIRV9VUERBVEVfTU9EQUxfQU5JTUFUSU9OX01PQklMRSk7XG59XG5cbi54cGxvby1jYWNoZS11cGRhdGUtaW5uZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLUNBQ0hFX1VQREFURV9NT0RBTF9CRyk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTVweCkgc2F0dXJhdGUoMTgwJSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE1cHgpIHNhdHVyYXRlKDE4MCUpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLUNBQ0hFX1VQREFURV9NT0RBTF9CT1JERVJfUkFESVVTKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1DQUNIRV9VUERBVEVfTU9EQUxfUEFERElORyk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX0JPWF9TSEFET1dfREVTS1RPUCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX0dBUCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ueHBsb28tY2FjaGUtdXBkYXRlLW1vZGFsLmlzLW1vYmlsZSAueHBsb28tY2FjaGUtdXBkYXRlLWlubmVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLUNBQ0hFX1VQREFURV9NT0RBTF9CT1hfU0hBRE9XX01PQklMRSk7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1heC13aWR0aDogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX01BWF9XSURUSCk7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi54cGxvby1jYWNoZS11cGRhdGUtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX0dBUCk7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi54cGxvby1jYWNoZS11cGRhdGUtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX1RJVExFX1NJWkUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1DQUNIRV9VUERBVEVfTU9EQUxfVElUTEVfV0VJR0hUKTtcbiAgICBtYXJnaW46IDA7XG59XG5cbi54cGxvby1jYWNoZS11cGRhdGUtbWVzc2FnZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1DQUNIRV9VUERBVEVfTU9EQUxfTUVTU0FHRV9TSVpFKTtcbiAgICBvcGFjaXR5OiB2YXIoLS1DQUNIRV9VUERBVEVfTU9EQUxfTUVTU0FHRV9PUEFDSVRZKTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIG1hcmdpbjogMDtcbn1cblxuLnhwbG9vLWNhY2hlLXVwZGF0ZS1oaW50IHtcbiAgICBmb250LXNpemU6IHZhcigtLUNBQ0hFX1VQREFURV9NT0RBTF9ISU5UX1NJWkUpO1xuICAgIG9wYWNpdHk6IHZhcigtLUNBQ0hFX1VQREFURV9NT0RBTF9ISU5UX09QQUNJVFkpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLUNBQ0hFX1VQREFURV9NT0RBTF9ISU5UX0lDT05fTUFSR0lOKTtcbn1cblxuLnhwbG9vLWNhY2hlLXVwZGF0ZS1oaW50IGkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX0hJTlRfU0laRSk7XG59XG5cbi54cGxvby1jYWNoZS11cGRhdGUtYWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1DQUNIRV9VUERBVEVfTU9EQUxfQUNUSU9OX0JHKTtcbiAgICBib3JkZXI6IHZhcigtLUNBQ0hFX1VQREFURV9NT0RBTF9BQ1RJT05fQk9SREVSKTtcbiAgICBjb2xvcjogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX0FDVElPTl9DT0xPUik7XG4gICAgcGFkZGluZzogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX0FDVElPTl9QQURESU5HKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1DQUNIRV9VUERBVEVfTU9EQUxfQUNUSU9OX1JBRElVUyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1DQUNIRV9VUERBVEVfTU9EQUxfQUNUSU9OX0ZPTlRfU0laRSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLUNBQ0hFX1VQREFURV9NT0RBTF9BQ1RJT05fRk9OVF9XRUlHSFQpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS1DQUNIRV9VUERBVEVfTU9EQUxfQUNUSU9OX1RSQU5TSVRJT04pO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbn1cblxuLnhwbG9vLWNhY2hlLXVwZGF0ZS1hY3Rpb246aG92ZXIsXG4ueHBsb28tY2FjaGUtdXBkYXRlLWFjdGlvbjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tQ0FDSEVfVVBEQVRFX01PREFMX0FDVElPTl9CR19IT1ZFUik7XG59XG5cbi54cGxvby1jYWNoZS11cGRhdGUtYWN0aW9uOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG59XG5cbi54cGxvby1jYWNoZS11cGRhdGUtbW9kYWwuaXMtZGVza3RvcCAueHBsb28tY2FjaGUtdXBkYXRlLWFjdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLnhwbG9vLWNhY2hlLXVwZGF0ZS1tb2RhbC5pcy1tb2JpbGUgLnhwbG9vLWNhY2hlLXVwZGF0ZS1oaW50IHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ueHBsb28tY2FjaGUtdXBkYXRlLW1vZGFsOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG5cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuQU5JTUFUSU9OU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IH1cbiAgICB0byB7IG9wYWNpdHk6IDE7IH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZURvd24ge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVVcCB7XG4gICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZUluVXAge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZU91dERvd24ge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMCUpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBtb2RhbFNjYWxlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNykgdHJhbnNsYXRlWSgzMHB4KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIG1vZGFsRmFkZUluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpIHRyYW5zbGF0ZVkoMjBweCk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZURvd25TdWNjZXNzIHtcbiAgICBmcm9tIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTEwMCUpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuUkVTUE9OU0lWRVxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4vKiBEZXNrdG9wIC0gd2lkZXIgbW9kYWwgZm9yIGluc3RydWN0aW9ucyAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDc2OXB4KSB7XG4gICAgLnhwbG9vLXB3YS1tb2RhbC1jb250ZW50Lmluc3RydWN0aW9ucyB7XG4gICAgICAgIG1heC13aWR0aDogdmFyKC0tUFdBX01BWF9XSURUSF9JTlNUUlVDVElPTlNfREVTS1RPUCk7XG4gICAgfVxuXG4gICAgLnhwbG9vLXB3YS1pbnN0cnVjdGlvbnMtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLVBXQV9JTlNUUlVDVElPTlNfUEFERElOR19ERVNLVE9QKSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLyogTW9iaWxlIC0gbmFycm93ZXIgbW9kYWwgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC54cGxvby1wd2EtbW9kYWwtY29udGVudCB7XG4gICAgICAgIG1heC13aWR0aDogdmFyKC0tUFdBX01BWF9XSURUSF9NT0RBTF9NT0JJTEUpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1QV0FfTU9EQUxfQ09OVEVOVF9QQURESU5HX01PQklMRSk7XG4gICAgfVxuXG4gICAgLnhwbG9vLXB3YS1tb2RhbC1jb250ZW50Lmluc3RydWN0aW9ucyB7XG4gICAgICAgIG1heC13aWR0aDogdmFyKC0tUFdBX01BWF9XSURUSF9JTlNUUlVDVElPTlNfTU9CSUxFKTtcbiAgICB9XG59XG5cbi8qIFJlc3BvbnNpdmUgYnV0dG9ucyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLnhwbG9vLW5vdGlmaWNhdGlvbi1zZXR0aW5ncy1hY3Rpb25zIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgd2lkdGg6IHZhcigtLVBXQV9XSURUSF9GVUxMKTtcbiAgICB9XG5cbiAgICAueHBsb28tbm90aWZpY2F0aW9uLWJ0biB7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1QV0FfV0lEVEhfRlVMTCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAgIC54cGxvby1ub3RpZmljYXRpb24tc2V0dGluZ3MtYWN0aW9ucyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuVVRJTElUWSBDTEFTU0VTXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi8qIEZvbnQgQXdlc29tZSBJY29ucyBTdXBwb3J0ICovXG4ueHBsb28tcHdhLW1vZGFsLWNvbnRlbnQgLmZhcyxcbi54cGxvby1wd2EtbW9kYWwtY29udGVudCAuZmFiIHtcbiAgICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBGcmVlXCIsIFwiRm9udCBBd2Vzb21lIDYgQnJhbmRzXCIgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogOTAwO1xufVxuXG4vKiBCb3ggU2l6aW5nIFJlc2V0IGZvciBNb2RhbCBDb250ZW50ICovXG4ueHBsb28tcHdhLW1vZGFsLWNvbnRlbnQgKiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiIsIi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblhQTE9PIFNFTlNPUiBDSEVDSyAtIE1PREFMUyAmIEFMRVJUU1xuU3R5bGVzIGZvciBzZW5zb3IgYW5kIGNvbm5lY3Rpdml0eSBjaGVja2luZyBzeXN0ZW1cbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuTU9EQUwgT1ZFUkxBWSAmIEJBU0VcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLnhwbG9vLXNlbnNvci1tb2RhbC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVNFTlNPUl9NT0RBTF9PVkVSTEFZX0JHKTtcbiAgICB6LWluZGV4OiB2YXIoLS1TRU5TT1JfTU9EQUxfT1ZFUkxBWV9aX0lOREVYKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogdmFyKC0tU0VOU09SX01PREFMX09WRVJMQVlfUEFERElORyk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiB2YXIoLS1TRU5TT1JfTU9EQUxfT1ZFUkxBWV9CQUNLRFJPUCk7XG4gICAgLyogYW5pbWF0aW9uOiB2YXIoLS1TRU5TT1JfTU9EQUxfT1ZFUkxBWV9BTklNQVRJT04pOyAqL1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1TRU5TT1JfRk9OVF9GQU1JTFkpO1xufVxuXG4ueHBsb28tc2Vuc29yLW1vZGFsLWNvbnRlbnQge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLVNFTlNPUl9NT0RBTF9DT05URU5UX1JBRElVUyk7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1TRU5TT1JfTU9EQUxfQ09OVEVOVF9NQVhfV0lEVEgpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAvKiBhbmltYXRpb246IHZhcigtLVNFTlNPUl9NT0RBTF9DT05URU5UX0FOSU1BVElPTik7ICovXG4gICAgLyogYm94LXNoYWRvdzogdmFyKC0tU0VOU09SX01PREFMX0NPTlRFTlRfQk9YX1NIQURPVyk7XG4gICAgYm9yZGVyOiB2YXIoLS1TRU5TT1JfTU9EQUxfQ09OVEVOVF9CT1JERVIpOyAqL1xuICAgIHBhZGRpbmc6IHZhcigtLVNFTlNPUl9NT0RBTF9DT05URU5UX1BBRERJTkcpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogdmFyKC0tU0VOU09SX01PREFMX0NPTlRFTlRfQ09MT1IpO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5NT0RBTCBUSEVNRVNcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLyogQ3JpdGljYWwgLSBPZmZsaW5lLCBubyBjb25uZWN0aW9uICovXG4ueHBsb28tc2Vuc29yLW1vZGFsLWNvbnRlbnQuY3JpdGljYWwge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVNFTlNPUl9NT0RBTF9DUklUSUNBTF9CRyk7XG4gICAgLyogYW5pbWF0aW9uOiBzZW5zb3JNb2RhbFNjYWxlSW4gMC40cyBlYXNlLW91dCwgc2Vuc29yU2hha2UgMC41cyBlYXNlLW91dCAwLjNzOyAqL1xufVxuXG4vKiBFcnJvci9XYXJuaW5nIC0gR1BTIGRlbmllZCwgY29tcGFzcyB1bmF2YWlsYWJsZSAqL1xuLnhwbG9vLXNlbnNvci1tb2RhbC1jb250ZW50LmVycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1TRU5TT1JfTU9EQUxfRVJST1JfQkcpO1xufVxuXG4ueHBsb28tc2Vuc29yLW1vZGFsLWNvbnRlbnQud2FybmluZyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tU0VOU09SX01PREFMX1dBUk5JTkdfQkcpO1xufVxuXG4vKiBJbmZvL0luc3RydWN0aW9ucyAqL1xuLnhwbG9vLXNlbnNvci1tb2RhbC1jb250ZW50Lmluc3RydWN0aW9ucyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tU0VOU09SX01PREFMX0lOU1RSVUNUSU9OU19CRyk7XG4gICAgY29sb3I6IHZhcigtLVNFTlNPUl9NT0RBTF9JTlNUUlVDVElPTlNfQ09MT1IpO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5NT0RBTCBFTEVNRU5UU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5cbi8qIE1vZGFsIEljb24gKi9cbi54cGxvby1zZW5zb3ItbW9kYWwtaWNvbiB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1TRU5TT1JfTU9EQUxfSUNPTl9TSVpFKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1TRU5TT1JfTU9EQUxfSUNPTl9NQVJHSU4pO1xuICAgIC8qIGFuaW1hdGlvbjogdmFyKC0tU0VOU09SX01PREFMX0lDT05fQU5JTUFUSU9OKTsgKi9cbn1cblxuLyogTW9kYWwgVGl0bGUgKi9cbi54cGxvby1zZW5zb3ItbW9kYWwtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tU0VOU09SX01PREFMX1RJVExFX1NJWkUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1TRU5TT1JfTU9EQUxfVElUTEVfV0VJR0hUKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1TRU5TT1JfTU9EQUxfVElUTEVfTUFSR0lOKTtcbiAgICB0ZXh0LXNoYWRvdzogdmFyKC0tU0VOU09SX01PREFMX1RJVExFX1NIQURPVyk7XG59XG5cbi54cGxvby1zZW5zb3ItbW9kYWwtY29udGVudC5pbnN0cnVjdGlvbnMgLnhwbG9vLXNlbnNvci1tb2RhbC10aXRsZSB7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLVNFTlNPUl9NT0RBTF9JTlNUUlVDVElPTlNfVElUTEVfQ09MT1IpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tU0VOU09SX01PREFMX0lOU1RSVUNUSU9OU19USVRMRV9TSVpFKTtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuV0FSTklORyBMSVNUXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi54cGxvby1zZW5zb3Itd2FybmluZ3MtbGlzdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tU0VOU09SX1dBUk5JTkdTX0xJU1RfTUFSR0lOX0JPVFRPTSk7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnhwbG9vLXNlbnNvci13YXJuaW5nLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiB2YXIoLS1TRU5TT1JfV0FSTklOR19JVEVNX1BBRERJTkcpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLVNFTlNPUl9XQVJOSU5HX0lURU1fTUFSR0lOX0JPVFRPTSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tU0VOU09SX1dBUk5JTkdfSVRFTV9CRyk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tU0VOU09SX1dBUk5JTkdfSVRFTV9CT1JERVJfUkFESVVTKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IHZhcigtLVNFTlNPUl9XQVJOSU5HX0lURU1fQkFDS0RST1ApO1xuICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1TRU5TT1JfV0FSTklOR19JVEVNX0JPUkRFUl9MRUZUX1dJRFRIKSBzb2xpZCB2YXIoLS1TRU5TT1JfV0FSTklOR19JVEVNX0JPUkRFUl9MRUZUX0NPTE9SKTtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS1TRU5TT1JfV0FSTklOR19JVEVNX1RSQU5TSVRJT04pO1xufVxuXG4ueHBsb28tc2Vuc29yLXdhcm5pbmctaXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tU0VOU09SX1dBUk5JTkdfSVRFTV9CR19IT1ZFUik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKHZhcigtLVNFTlNPUl9XQVJOSU5HX0lURU1fVFJBTlNMQVRFKSk7XG59XG5cbi54cGxvby1zZW5zb3Itd2FybmluZy1pdGVtLmNyaXRpY2FsIHtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tU0VOU09SX0NPTE9SX0NSSVRJQ0FMKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1TRU5TT1JfV0FSTklOR19CR19DUklUSUNBTCk7XG59XG5cbi54cGxvby1zZW5zb3Itd2FybmluZy1pdGVtLmhpZ2gge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1TRU5TT1JfQ09MT1JfSElHSCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tU0VOU09SX1dBUk5JTkdfQkdfSElHSCk7XG59XG5cbi54cGxvby1zZW5zb3Itd2FybmluZy1pdGVtLm1lZGl1bSB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLVNFTlNPUl9DT0xPUl9NRURJVU0pO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVNFTlNPUl9XQVJOSU5HX0JHX01FRElVTSk7XG59XG5cbi54cGxvby1zZW5zb3Itd2FybmluZy1pdGVtLndhcm5pbmcge1xuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1TRU5TT1JfQ09MT1JfV0FSTklORyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tU0VOU09SX1dBUk5JTkdfQkdfV0FSTklORyk7XG59XG5cbi54cGxvby1zZW5zb3Itd2FybmluZy1pdGVtLmxvdyB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLVNFTlNPUl9DT0xPUl9MT1cpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVNFTlNPUl9XQVJOSU5HX0JHX0xPVyk7XG59XG5cbi54cGxvby1zZW5zb3Itd2FybmluZy1pY29uIHtcbiAgICBmb250LXNpemU6IHZhcigtLVNFTlNPUl9XQVJOSU5HX0lDT05fU0laRSk7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1TRU5TT1JfV0FSTklOR19JQ09OX01BUkdJTik7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi54cGxvby1zZW5zb3Itd2FybmluZy1tZXNzYWdlIHtcbiAgICBmb250LXNpemU6IHZhcigtLVNFTlNPUl9XQVJOSU5HX01FU1NBR0VfRk9OVF9TSVpFKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tU0VOU09SX1dBUk5JTkdfTUVTU0FHRV9MSU5FX0hFSUdIVCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLVNFTlNPUl9XQVJOSU5HX01FU1NBR0VfRk9OVF9XRUlHSFQpO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5BQ1RJT04gQlVUVE9OU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4ueHBsb28tc2Vuc29yLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLVNFTlNPUl9BQ1RJT05TX0dBUCk7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tU0VOU09SX0FDVElPTlNfTUFSR0lOX1RPUCk7XG59XG5cbi54cGxvby1zZW5zb3ItYWN0aW9uLWJ0biB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IHZhcigtLVNFTlNPUl9BQ1RJT05fQlROX1BBRERJTkcpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLVNFTlNPUl9BQ1RJT05fQlROX1JBRElVUyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1TRU5TT1JfQUNUSU9OX0JUTl9GT05UX1NJWkUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1TRU5TT1JfQUNUSU9OX0JUTl9GT05UX1dFSUdIVCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IHZhcigtLVNFTlNPUl9BQ1RJT05fQlROX1RSQU5TSVRJT04pO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1TRU5TT1JfQUNUSU9OX0JUTl9HQVApO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1TRU5TT1JfRk9OVF9GQU1JTFkpO1xufVxuXG4vKiBQcmltYXJ5IEJ1dHRvbiAqL1xuLnhwbG9vLXNlbnNvci1hY3Rpb24tYnRuLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVNFTlNPUl9BQ1RJT05fQlROX1BSSU1BUllfQkcpO1xuICAgIGNvbG9yOiB2YXIoLS1TRU5TT1JfQUNUSU9OX0JUTl9QUklNQVJZX0NPTE9SKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1TRU5TT1JfQUNUSU9OX0JUTl9QUklNQVJZX1NIQURPVyk7XG59XG5cbi54cGxvby1zZW5zb3ItYWN0aW9uLWJ0bi5wcmltYXJ5OmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tU0VOU09SX0FDVElPTl9CVE5fUFJJTUFSWV9TSEFET1dfSE9WRVIpO1xufVxuXG4ueHBsb28tc2Vuc29yLW1vZGFsLWNvbnRlbnQud2FybmluZyAueHBsb28tc2Vuc29yLWFjdGlvbi1idG4ucHJpbWFyeSB7XG4gICAgY29sb3I6IHZhcigtLVNFTlNPUl9BQ1RJT05fQlROX1BSSU1BUllfQ09MT1JfV0FSTklORyk7XG59XG5cbi54cGxvby1zZW5zb3ItbW9kYWwtY29udGVudC5pbnN0cnVjdGlvbnMgLnhwbG9vLXNlbnNvci1hY3Rpb24tYnRuLnByaW1hcnkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVNFTlNPUl9BQ1RJT05fQlROX1BSSU1BUllfQkdfSU5TVFJVQ1RJT05TKTtcbiAgICBjb2xvcjogdmFyKC0tU0VOU09SX0FDVElPTl9CVE5fUFJJTUFSWV9DT0xPUl9JTlNUUlVDVElPTlMpO1xufVxuXG4vKiBTZWNvbmRhcnkgQnV0dG9uICovXG4ueHBsb28tc2Vuc29yLWFjdGlvbi1idG4uc2Vjb25kYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1TRU5TT1JfQUNUSU9OX0JUTl9TRUNPTkRBUllfQkcpO1xuICAgIGNvbG9yOiB2YXIoLS1TRU5TT1JfQUNUSU9OX0JUTl9TRUNPTkRBUllfQ09MT1IpO1xuICAgIGJvcmRlcjogdmFyKC0tU0VOU09SX0FDVElPTl9CVE5fU0VDT05EQVJZX0JPUkRFUik7XG59XG5cbi54cGxvby1zZW5zb3ItYWN0aW9uLWJ0bi5zZWNvbmRhcnk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVNFTlNPUl9BQ1RJT05fQlROX1NFQ09OREFSWV9CR19IT1ZFUik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuXG4ueHBsb28tc2Vuc29yLW1vZGFsLWNvbnRlbnQuaW5zdHJ1Y3Rpb25zIC54cGxvby1zZW5zb3ItYWN0aW9uLWJ0bi5zZWNvbmRhcnkge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVNFTlNPUl9BQ1RJT05fQlROX1NFQ09OREFSWV9CR19JTlNUUlVDVElPTlMpO1xuICAgIGNvbG9yOiB2YXIoLS1TRU5TT1JfQUNUSU9OX0JUTl9TRUNPTkRBUllfQ09MT1JfSU5TVFJVQ1RJT05TKTtcbiAgICBib3JkZXI6IHZhcigtLVNFTlNPUl9BQ1RJT05fQlROX1NFQ09OREFSWV9CT1JERVJfSU5TVFJVQ1RJT05TKTtcbn1cblxuLnhwbG9vLXNlbnNvci1tb2RhbC1jb250ZW50Lmluc3RydWN0aW9ucyAueHBsb28tc2Vuc29yLWFjdGlvbi1idG4uc2Vjb25kYXJ5OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1TRU5TT1JfQUNUSU9OX0JUTl9TRUNPTkRBUllfQkdfSU5TVFJVQ1RJT05TX0hPVkVSKTtcbiAgICBjb2xvcjogdmFyKC0tU0VOU09SX0FDVElPTl9CVE5fU0VDT05EQVJZX0NPTE9SX0lOU1RSVUNUSU9OU19IT1ZFUik7XG59XG5cbi8qIFRlcnRpYXJ5IEJ1dHRvbiAoQ29udGludWUgYW55d2F5KSAqL1xuLnhwbG9vLXNlbnNvci1hY3Rpb24tYnRuLnRlcnRpYXJ5IHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tU0VOU09SX0FDVElPTl9CVE5fVEVSVElBUllfQ09MT1IpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250LXNpemU6IHZhcigtLVNFTlNPUl9BQ1RJT05fQlROX1RFUlRJQVJZX0ZPTlRfU0laRSk7XG4gICAgcGFkZGluZzogdmFyKC0tU0VOU09SX0FDVElPTl9CVE5fVEVSVElBUllfUEFERElORyk7XG59XG5cbi54cGxvby1zZW5zb3ItYWN0aW9uLWJ0bi50ZXJ0aWFyeTpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLVNFTlNPUl9BQ1RJT05fQlROX1RFUlRJQVJZX0NPTE9SX0hPVkVSKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLnhwbG9vLXNlbnNvci1tb2RhbC1jb250ZW50Lmluc3RydWN0aW9ucyAueHBsb28tc2Vuc29yLWFjdGlvbi1idG4udGVydGlhcnkge1xuICAgIGNvbG9yOiB2YXIoLS1TRU5TT1JfQUNUSU9OX0JUTl9URVJUSUFSWV9DT0xPUl9JTlNUUlVDVElPTlMpO1xufVxuXG4ueHBsb28tc2Vuc29yLW1vZGFsLWNvbnRlbnQuaW5zdHJ1Y3Rpb25zIC54cGxvby1zZW5zb3ItYWN0aW9uLWJ0bi50ZXJ0aWFyeTpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLVNFTlNPUl9BQ1RJT05fQlROX1RFUlRJQVJZX0NPTE9SX0lOU1RSVUNUSU9OU19IT1ZFUik7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbklOU1RSVUNUSU9OU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4ueHBsb28tc2Vuc29yLWluc3RydWN0aW9ucyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW46IHZhcigtLVNFTlNPUl9JTlNUUlVDVElPTlNfTUFSR0lOKTtcbn1cblxuLnhwbG9vLXNlbnNvci1pbnN0cnVjdGlvbnMgaDQge1xuICAgIGNvbG9yOiB2YXIoLS1TRU5TT1JfSU5TVFJVQ1RJT05TX1RJVExFX0NPTE9SKTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1TRU5TT1JfSU5TVFJVQ1RJT05TX1RJVExFX01BUkdJTik7XG4gICAgZm9udC1zaXplOiB2YXIoLS1TRU5TT1JfSU5TVFJVQ1RJT05TX1RJVExFX1NJWkUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1TRU5TT1JfSU5TVFJVQ1RJT05TX1RJVExFX1dFSUdIVCk7XG4gICAgdGV4dC1hbGlnbjogdmFyKC0tU0VOU09SX0lOU1RSVUNUSU9OU19USVRMRV9BTElHTik7XG59XG5cbi54cGxvby1zZW5zb3ItaW5zdHJ1Y3Rpb25zIGg0IGkge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tU0VOU09SX0lOU1RSVUNUSU9OU19USVRMRV9JQ09OX01BUkdJTik7XG59XG5cbi54cGxvby1zZW5zb3ItaW5zdHJ1Y3Rpb24tc3RlcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IHZhcigtLVNFTlNPUl9JTlNUUlVDVElPTl9TVEVQX1BBRERJTkcpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLVNFTlNPUl9JTlNUUlVDVElPTl9TVEVQX01BUkdJTik7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tU0VOU09SX0lOU1RSVUNUSU9OX1NURVBfQkcpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyLWxlZnQ6IHZhcigtLVNFTlNPUl9JTlNUUlVDVElPTl9TVEVQX0JPUkRFUik7XG59XG5cbi54cGxvby1zZW5zb3Itc3RlcC1udW1iZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVNFTlNPUl9TVEVQX05VTUJFUl9CRyk7XG4gICAgY29sb3I6IHZhcigtLVNFTlNPUl9TVEVQX05VTUJFUl9DT0xPUik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tU0VOU09SX1NURVBfTlVNQkVSX1JBRElVUyk7XG4gICAgd2lkdGg6IHZhcigtLVNFTlNPUl9TVEVQX05VTUJFUl9TSVpFKTtcbiAgICBoZWlnaHQ6IHZhcigtLVNFTlNPUl9TVEVQX05VTUJFUl9TSVpFKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1TRU5TT1JfU1RFUF9OVU1CRVJfTUFSR0lOKTtcbiAgICBmb250LXNpemU6IHZhcigtLVNFTlNPUl9TVEVQX05VTUJFUl9GT05UX1NJWkUpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1TRU5TT1JfU1RFUF9OVU1CRVJfRk9OVF9XRUlHSFQpO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ueHBsb28tc2Vuc29yLWluc3RydWN0aW9uLXN0ZXAgc3BhbjpsYXN0LWNoaWxkIHtcbiAgICBmb250LXNpemU6IHZhcigtLVNFTlNPUl9JTlNUUlVDVElPTl9URVhUX0ZPTlRfU0laRSk7XG4gICAgY29sb3I6IHZhcigtLVNFTlNPUl9JTlNUUlVDVElPTl9URVhUX0NPTE9SKTtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuU1VDQ0VTUyBCQU5ORVJcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLnhwbG9vLXNlbnNvci1zdWNjZXNzLWJhbm5lciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogdmFyKC0tU0VOU09SX1NVQ0NFU1NfQkFOTkVSX1RPUCk7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1TRU5TT1JfU1VDQ0VTU19CQU5ORVJfQkcpO1xuICAgIGNvbG9yOiB2YXIoLS1TRU5TT1JfU1VDQ0VTU19CQU5ORVJfQ09MT1IpO1xuICAgIHBhZGRpbmc6IHZhcigtLVNFTlNPUl9TVUNDRVNTX0JBTk5FUl9QQURESU5HKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1TRU5TT1JfU1VDQ0VTU19CQU5ORVJfUkFESVVTKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1TRU5TT1JfU1VDQ0VTU19CQU5ORVJfU0hBRE9XKTtcbiAgICB6LWluZGV4OiB2YXIoLS1TRU5TT1JfU1VDQ0VTU19CQU5ORVJfWl9JTkRFWCk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLVNFTlNPUl9GT05UX0ZBTUlMWSk7XG4gICAgLyogYW5pbWF0aW9uOiB2YXIoLS1TRU5TT1JfU1VDQ0VTU19CQU5ORVJfQU5JTUFUSU9OKTsgKi9cbiAgICBtYXgtd2lkdGg6IHZhcigtLVNFTlNPUl9TVUNDRVNTX0JBTk5FUl9NQVhfV0lEVEgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1TRU5TT1JfU1VDQ0VTU19CQU5ORVJfR0FQKTtcbn1cblxuLnhwbG9vLXNlbnNvci1zdWNjZXNzLWJhbm5lciBpIHtcbiAgICBmb250LXNpemU6IHZhcigtLVNFTlNPUl9TVUNDRVNTX0lDT05fU0laRSk7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVEb3duU3VjY2VzcyB7XG4gICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMDAlKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkNPTk5FQ1RJT04gU1RBVFVTIElORElDQVRPUlNcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLnhwbG9vLXNlbnNvci1jb25uZWN0aW9uLWluZGljYXRvciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLVNFTlNPUl9DT05ORUNUSU9OX0dBUCk7XG4gICAgcGFkZGluZzogdmFyKC0tU0VOU09SX0NPTk5FQ1RJT05fUEFERElORyk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tU0VOU09SX0NPTk5FQ1RJT05fUkFESVVTKTtcbiAgICBmb250LXNpemU6IHZhcigtLVNFTlNPUl9DT05ORUNUSU9OX0ZPTlRfU0laRSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLVNFTlNPUl9DT05ORUNUSU9OX0ZPTlRfV0VJR0hUKTtcbiAgICBtYXJnaW46IHZhcigtLVNFTlNPUl9DT05ORUNUSU9OX01BUkdJTik7XG59XG5cbi54cGxvby1zZW5zb3ItY29ubmVjdGlvbi1pbmRpY2F0b3Iub25saW5lIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1TRU5TT1JfQ09OTkVDVElPTl9PTkxJTkVfQkcpO1xuICAgIGNvbG9yOiB2YXIoLS1TRU5TT1JfQ09OTkVDVElPTl9PTkxJTkVfQ09MT1IpO1xufVxuXG4ueHBsb28tc2Vuc29yLWNvbm5lY3Rpb24taW5kaWNhdG9yLm9mZmxpbmUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLVNFTlNPUl9DT05ORUNUSU9OX09GRkxJTkVfQkcpO1xuICAgIGNvbG9yOiB2YXIoLS1TRU5TT1JfQ09OTkVDVElPTl9PRkZMSU5FX0NPTE9SKTtcbn1cblxuLnhwbG9vLXNlbnNvci1jb25uZWN0aW9uLWluZGljYXRvci5zbG93IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1TRU5TT1JfQ09OTkVDVElPTl9TTE9XX0JHKTtcbiAgICBjb2xvcjogdmFyKC0tU0VOU09SX0NPTk5FQ1RJT05fU0xPV19DT0xPUik7XG59XG5cbi54cGxvby1zZW5zb3ItY29ubmVjdGlvbi1pbmRpY2F0b3IgaSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1TRU5TT1JfQ09OTkVDVElPTl9JQ09OX1NJWkUpO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5TRU5TT1IgU1RBVFVTIEJBREdFU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4ueHBsb28tc2Vuc29yLXN0YXR1cy1iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLVNFTlNPUl9TVEFUVVNfQkFER0VfR0FQKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1TRU5TT1JfU1RBVFVTX0JBREdFX1BBRERJTkcpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLVNFTlNPUl9TVEFUVVNfQkFER0VfUkFESVVTKTtcbiAgICBmb250LXNpemU6IHZhcigtLVNFTlNPUl9TVEFUVVNfQkFER0VfRk9OVF9TSVpFKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tU0VOU09SX1NUQVRVU19CQURHRV9GT05UX1dFSUdIVCk7XG4gICAgbWFyZ2luOiB2YXIoLS1TRU5TT1JfU1RBVFVTX0JBREdFX01BUkdJTik7XG59XG5cbi54cGxvby1zZW5zb3Itc3RhdHVzLWJhZGdlLmF2YWlsYWJsZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tU0VOU09SX1NUQVRVU19BVkFJTEFCTEVfQkcpO1xuICAgIGNvbG9yOiB2YXIoLS1TRU5TT1JfU1RBVFVTX0FWQUlMQUJMRV9DT0xPUik7XG59XG5cbi54cGxvby1zZW5zb3Itc3RhdHVzLWJhZGdlLmRlbmllZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tU0VOU09SX1NUQVRVU19ERU5JRURfQkcpO1xuICAgIGNvbG9yOiB2YXIoLS1TRU5TT1JfU1RBVFVTX0RFTklFRF9DT0xPUik7XG59XG5cbi54cGxvby1zZW5zb3Itc3RhdHVzLWJhZGdlLnVuYXZhaWxhYmxlIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1TRU5TT1JfU1RBVFVTX1VOQVZBSUxBQkxFX0JHKTtcbiAgICBjb2xvcjogdmFyKC0tU0VOU09SX1NUQVRVU19VTkFWQUlMQUJMRV9DT0xPUik7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkFOSU1BVElPTlNcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuQGtleWZyYW1lcyBzZW5zb3JGYWRlSW4ge1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB9XG4gICAgdG8geyBvcGFjaXR5OiAxOyB9XG59XG5cbkBrZXlmcmFtZXMgc2Vuc29yTW9kYWxTY2FsZUluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpIHRyYW5zbGF0ZVkoMzBweCk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGVZKDApO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBzZW5zb3JQdWxzZSB7XG4gICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gICAgNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTsgfVxufVxuXG5Aa2V5ZnJhbWVzIHNlbnNvclNoYWtlIHtcbiAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAgIDEwJSwgMzAlLCA1MCUsIDcwJSwgOTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01cHgpOyB9XG4gICAgMjAlLCA0MCUsIDYwJSwgODAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7IH1cbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuUkVTUE9OU0lWRVxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAueHBsb28tc2Vuc29yLW1vZGFsLWNvbnRlbnQge1xuICAgICAgICBtYXgtd2lkdGg6IHZhcigtLVNFTlNPUl9NT0RBTF9NT0JJTEVfTUFYX1dJRFRIKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tU0VOU09SX01PREFMX01PQklMRV9QQURESU5HKTtcbiAgICB9XG5cbiAgICAueHBsb28tc2Vuc29yLW1vZGFsLWljb24ge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLVNFTlNPUl9NT0RBTF9JQ09OX1NJWkVfTU9CSUxFKTtcbiAgICB9XG5cbiAgICAueHBsb28tc2Vuc29yLW1vZGFsLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1TRU5TT1JfTU9EQUxfVElUTEVfU0laRV9NT0JJTEUpO1xuICAgIH1cblxuICAgIC54cGxvby1zZW5zb3Itd2FybmluZy1tZXNzYWdlIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1TRU5TT1JfV0FSTklOR19NRVNTQUdFX0ZPTlRfU0laRV9NT0JJTEUpO1xuICAgIH1cblxuICAgIC54cGxvby1zZW5zb3ItYWN0aW9uLWJ0biB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLVNFTlNPUl9BQ1RJT05fQlROX1BBRERJTkdfTU9CSUxFKTtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1TRU5TT1JfQUNUSU9OX0JUTl9GT05UX1NJWkVfTU9CSUxFKTtcbiAgICB9XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblVUSUxJVFkgQ0xBU1NFU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4vKiBGb250IEF3ZXNvbWUgSWNvbnMgU3VwcG9ydCAqL1xuLnhwbG9vLXNlbnNvci1tb2RhbC1jb250ZW50IC5mYXMsXG4ueHBsb28tc2Vuc29yLW1vZGFsLWNvbnRlbnQgLmZhYiB7XG4gICAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgRnJlZVwiLCBcIkZvbnQgQXdlc29tZSA2IEJyYW5kc1wiICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcbn1cblxuLyogQm94IFNpemluZyBSZXNldCAqL1xuLnhwbG9vLXNlbnNvci1tb2RhbC1jb250ZW50ICoge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4iLCIvKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5NRU5VIFNJREVCQVJcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLmRyb3Bkb3duIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLmRyb3Bkb3duIC5kcm9wYnRuIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXI6IG5vbmU7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLUJVVFRPTl9CT1JERVJfUkFESVVTKTtcblx0b3V0bGluZTogbm9uZTtcblx0Y29sb3I6IHdoaXRlO1xuXHRwYWRkaW5nOiAxMHB4IDI1cHg7XG5cdGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuXHRtYXJnaW46IDA7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubWVudS1zaWRlYmFyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiB2YXIoLS1IRUFERVJfSEVJR0hUKTtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMzUwcHg7XG4gICAgaGVpZ2h0OiBhdXRvOyAvKiBoZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1IRUFERVJfSEVJR0hUKSk7ICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tU0VBUkNIX0JBUl9CQUNLR1JPVU5EX0NPTE9SKTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig0NXB4KSBzYXR1cmF0ZSgxODAlKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNDVweCkgc2F0dXJhdGUoMTgwJSk7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICAvKiB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7ICovXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpIHBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWSg5MGRlZyk7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICB6LWluZGV4OiAxNTtcbiAgICAvKiB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpOyAqL1xuICAgIC8qIGJveC1zaGFkb3c6IFxuICAgICAgICAtNXB4IDAgMjVweCByZ2JhKDAsIDAsIDAsIDAuMyksXG4gICAgICAgIGluc2V0IDAgMCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSxcbiAgICAgICAgLTIwcHggMCA1MHB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgKi9cbiAgICBwYWRkaW5nOiA1cHggMjBweDtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgLyogYm9yZGVyLXJhZGl1czogdmFyKC0tQlVUVE9OX0JPUkRFUl9SQURJVVMpIDAgMCB2YXIoLS1CVVRUT05fQk9SREVSX1JBRElVUyk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgKi9cbn1cblxuLm1lbnUtc2lkZWJhci5hY3RpdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKSBwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVkoMGRlZyk7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1NT0JJTEVfTkFWX0hFSUdIVCkpIWltcG9ydGFudDtcbn1cblxuLm1lbnUtc2lkZWJhci1pdGVtIHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1CVVRUT05fQk9SREVSX1JBRElVUyk7XG4gICAgbWFyZ2luOiAxOHB4IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDIwcHgpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG5cbi5tZW51LXNpZGViYXItaXRlbTpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDMwcHgpIHNjYWxlKDEuMDIpO1xufVxuXG4ubWVudS1zaWRlYmFyLWl0ZW06bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0xMnB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHRyYW5zcGFyZW50LCB2YXIoLS1DT0xPUl9TVVJGQUNFXzgwKSAzMCUsIHZhcigtLUNPTE9SX1NVUkZBQ0VfODApIDcwJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4ubWVudS1zaWRlYmFyLWJ1dHRvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTVweCAyMHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLUJVVFRPTl9CT1JERVJfUkFESVVTKTtcbn1cblxuLm1lbnUtc2lkZWJhci1idXR0b246aG92ZXIsXG4ubWVudS1zaWRlYmFyLWJ1dHRvbjpmb2N1cyxcbi5tZW51LXNpZGViYXItYnV0dG9uLmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1DT0xPUl9BQ1RJT05fNDApLCB2YXIoLS1DT0xPUl9BQ1RJT05fNjApKTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm94LXNoYWRvdzogXG4gICAgaW5zZXQgNHB4IDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA1KSxcbiAgICBpbnNldCAtNHB4IC00cHggOHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbn1cblxuLm1lbnUtc2lkZWJhci1idXR0b246Zm9jdXMsXG4ubWVudS1zaWRlYmFyLWJ1dHRvbi5hY3RpdmUge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tQlVUVE9OX0JPUkRFUl9SQURJVVMpIHZhcigtLUJVVFRPTl9CT1JERVJfUkFESVVTKSAwIDA7XG59XG5cbi5tZW51LXNpZGViYXItc3VibWVudSB7XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4zcyBlYXNlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tQlVUVE9OX0JPUkRFUl9SQURJVVMpIHZhcigtLUJVVFRPTl9CT1JERVJfUkFESVVTKTtcbn1cblxuLm1lbnUtc2lkZWJhci1zdWJtZW51LmFjdGl2ZSB7XG4gICAgbWF4LWhlaWdodDogNTAwcHg7XG59XG5cbi5tZW51LXNpZGViYXItc3VibWVudSBhIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHggMTJweCA0MHB4O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLm1lbnUtc2lkZWJhci1zdWJtZW51IGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdmFyKC0tQ09MT1JfQUNUSU9OXzQwKSwgdmFyKC0tQ09MT1JfQUNUSU9OXzYwKSk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJveC1zaGFkb3c6IFxuICAgIDRweCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksXG4gICAgLTRweCAtNHB4IDhweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSksXG4gICAgaW5zZXQgNHB4IDRweCA4cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpLFxuICAgIGluc2V0IC00cHggLTRweCA4cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuXG59XG5cbi5hcnJvdy1kb3duIHtcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgZmlsbDogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuXG4uYXJyb3ctdXAge1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICBmaWxsOiB2YXIoLS1DT0xPUl9BQ1RJT05fNTApO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuXG4ubWVudS1zaWRlYmFyLWJ1dHRvbi5hY3RpdmUgLmFycm93LWRvd24ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG5cbi8qIGJvZHkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgIEEgTkUgUEFTIE1FVFRSRSBDQVIgQ0FTU0UgTCdJTVBSRVNTSU9OIFBERiAoMSBTRVVMRSBQQUdFIElNUFJJTUVFKVxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbn0gKi9cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuUkVTUE9OU0lWRVxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTZweCkge1xuXHQuZHJvcGRvd24gLmRyb3BidG4ge1xuXHRkaXNwbGF5OiBub25lO1xuXHRwYWRkaW5nOiAxMHB4IDEwcHg7XG5cdH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAubWVudS1zaWRlYmFyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAtMTAwJTtcbiAgICB9XG5cbiAgICAubWVudS1zaWRlYmFyLWl0ZW06bm90KDpsYXN0LWNoaWxkKTo6YWZ0ZXIge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgIH1cbn1cblxuQHN1cHBvcnRzICgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogbm9uZSkgb3IgKGJhY2tkcm9wLWZpbHRlcjogbm9uZSkge1xuICAgIC5tZW51LXNpZGViYXIge1xuICAgICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig0NXB4KSBzYXR1cmF0ZSgxODAlKTtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDQ1cHgpIHNhdHVyYXRlKDE4MCUpO1xuICAgIH1cbn0iLCIudG9vbHRpcHtcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdHdpZHRoOjI1MHB4O1xuXHRsZWZ0OjA7XG5cdHRvcDowO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrO1xuXHRjb2xvcjp3aGl0ZTtcblx0ei1pbmRleDo4O1xuXHRib3JkZXI6MnB4IHNvbGlkIHdoaXRlO1xuXHQtbW96LWJvcmRlci1yYWRpdXM6NXB4O1xuXHQtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4O1xuXHRib3JkZXItcmFkaXVzOjVweDtcblx0ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShvcGFjaXR5PTcwKTtcbn1cbi50b29sdGlwIHB7XG5cdG1hcmdpbjowcHg7XHQvKiBBZGRlZCBmb3IgWHBsb28gKi9cblx0cGFkZGluZzoxMHB4O1xuXHRmb250LXNpemU6MTRweDtcblx0dGV4dC1zaGFkb3c6bm9uZTtcblx0Zm9udC1zdHlsZTppdGFsaWM7XG59XG4udG9vbHRpcF9hcnJvd3tcblx0cG9zaXRpb246YWJzb2x1dGU7XG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcbn1cbi50b29sdGlwX2Fycm93X1QsXG4udG9vbHRpcF9hcnJvd19CLFxuLnRvb2x0aXBfYXJyb3dfVEwsXG4udG9vbHRpcF9hcnJvd19UUixcbi50b29sdGlwX2Fycm93X0JMLFxuLnRvb2x0aXBfYXJyb3dfQlJ7XG5cdGJhY2tncm91bmQtaW1hZ2U6dXJsKC4uL2ltYWdlcy90b3Bib3R0b20ucG5nKTtcblx0d2lkdGg6MTNweDtcblx0aGVpZ2h0OjdweDtcbn1cbi50b29sdGlwX2Fycm93X0wsXG4udG9vbHRpcF9hcnJvd19SLFxuLnRvb2x0aXBfYXJyb3dfTFQsXG4udG9vbHRpcF9hcnJvd19MQixcbi50b29sdGlwX2Fycm93X1JULFxuLnRvb2x0aXBfYXJyb3dfUkJ7XG5cdGJhY2tncm91bmQtaW1hZ2U6dXJsKC4uL2ltYWdlcy9sZWZ0cmlnaHQucG5nKTtcblx0LyogYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7ICovXG5cdHdpZHRoOjdweDtcblx0aGVpZ2h0OjEzcHg7XG59XG4udG9vbHRpcF9hcnJvd19Ue1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOjBweCAtN3B4O1xuXHR0b3A6LTdweDtcblx0bGVmdDo1MCU7XG5cdG1hcmdpbi1sZWZ0Oi0zLjVweDtcbn1cblxuLyogU3BlY2lmaWMgYWRqdXN0bWVudCA6IHNoaWZ0IHRoZSB0b3AgYXJyb3cgdG8gdGhlIHJpZ2h0IGZvciB0aGUgZGF5IGFsbCBidXR0b24gKi9cbi50b29sdGlwLnRvb2x0aXAtLWRheS1hbGwgLnRvb2x0aXBfYXJyb3dfVCB7XG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMDBweCk7XG59XG5cbi8qIFNwZWNpZmljIGFkanVzdG1lbnQgOiBzbGlnaHRseSBzaGlmdCB0aGUgdG9wIGFycm93IHRvIHRoZSBsZWZ0IGZvciB0aGUgZXhjbHVkZSBsaXN0IHRvb2x0aXAgKi9cbi50b29sdGlwLnRvb2x0aXAtLWV4Y2x1ZGUgLnRvb2x0aXBfYXJyb3dfVCB7XG4gICAgbGVmdDogY2FsYyg1MCUgLSAxMnB4KTtcbn1cblxuLyogU3BlY2lmaWMgYWRqdXN0bWVudCA6IHNoaWZ0IHRoZSB0b3AgYXJyb3cgdG8gdGhlIHJpZ2h0IGZvciB0aGUgdmlldyB0cmlwcyBidXR0b24gKi9cbi50b29sdGlwLnRvb2x0aXAtLXZpZXctdHJpcHMtYnV0dG9uIC50b29sdGlwX2Fycm93X1Qge1xuICAgIGxlZnQ6IGNhbGMoNTAlICsgNDVweCk7XG59XG5cbi8qIFNwZWNpZmljIGFkanVzdG1lbnQgOiBzaGlmdCB0aGUgdG9wIGFycm93IHRvIHRoZSByaWdodCBmb3IgdGhlIGJ1cmdlciBtZW51IGJ1dHRvbiAqL1xuLnRvb2x0aXAudG9vbHRpcC0tYnVyZ2VyLW1lbnUtYnV0dG9uIC50b29sdGlwX2Fycm93X1Qge1xuICAgIGxlZnQ6IGNhbGMoNTAlICsgOTBweCk7XG59XG5cbi50b29sdGlwX2Fycm93X1RMe1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOjBweCAtN3B4O1xuXHR0b3A6LTdweDtcblx0bGVmdDo1cHg7XG59XG4udG9vbHRpcF9hcnJvd19UUntcblx0YmFja2dyb3VuZC1wb3NpdGlvbjowcHggLTdweDtcblx0dG9wOi03cHg7XG5cdHJpZ2h0OjVweDtcbn1cbi50b29sdGlwX2Fycm93X0J7XG5cdGJhY2tncm91bmQtcG9zaXRpb246MHB4IDBweDtcblx0Ym90dG9tOi03cHg7XG5cdGxlZnQ6NTAlO1xuXHRtYXJnaW4tbGVmdDotMy41cHg7XG59XG4udG9vbHRpcF9hcnJvd19CTHtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjowcHggMHB4O1xuXHRib3R0b206LTdweDtcblx0bGVmdDo1cHg7XG59XG4udG9vbHRpcF9hcnJvd19CUntcblx0YmFja2dyb3VuZC1wb3NpdGlvbjowcHggMHB4O1xuXHRib3R0b206LTdweDtcblx0cmlnaHQ6NXB4O1xufVxuLnRvb2x0aXBfYXJyb3dfTHtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjotN3B4IDBweDtcblx0dG9wOjUwJTtcblx0bWFyZ2luLXRvcDotNi41cHg7XG5cdGxlZnQ6LTdweDtcbn1cbi50b29sdGlwX2Fycm93X0xUe1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOi03cHggMHB4O1xuXHR0b3A6NXB4O1xuXHRsZWZ0Oi03cHg7XG59XG4udG9vbHRpcF9hcnJvd19MQntcblx0YmFja2dyb3VuZC1wb3NpdGlvbjotN3B4IDBweDtcblx0Ym90dG9tOjVweDtcblx0bGVmdDotN3B4O1xufVxuLnRvb2x0aXBfYXJyb3dfUntcblx0YmFja2dyb3VuZC1wb3NpdGlvbjowcHggMHB4O1xuXHR0b3A6NTAlO1xuXHRtYXJnaW4tdG9wOi02LjVweDtcblx0cmlnaHQ6LTdweDtcbn1cbi50b29sdGlwX2Fycm93X1JUe1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOjBweCAwcHg7XG5cdHRvcDo1cHg7XG5cdHJpZ2h0Oi03cHg7XG59XG4udG9vbHRpcF9hcnJvd19SQntcblx0YmFja2dyb3VuZC1wb3NpdGlvbjowcHggMHB4O1xuXHRib3R0b206NXB4O1xuXHRyaWdodDotN3B4O1xufVxuLyogR3JleSBzZW1pLXRyYW5zcGFyZW50IGxheWVyIG9uIHRoZSBmdWxsIHBhZ2UgKi9cbi5vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICMwMDAwMDA7XG4gICAgb3BhY2l0eTogMC41MDtcbiAgICB6LWluZGV4OiAxMztcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgICAgIC8qIGVuc3VyZSBvdmVybGF5IGNhcHR1cmVzIGNsaWNrcyAqL1xufVxuXG4udG91cmNvbnRyb2xze1xuXHRwb3NpdGlvbjpmaXhlZDtcblx0dG9wOjIwcHg7XG5cdHJpZ2h0Oi0zMDBweDtcblx0d2lkdGg6MjcwcHg7XG5cdGJhY2tncm91bmQ6IHZhcigtLUNPTE9SX1NVUkZBQ0VfMTApO1xuXHRjb2xvcjp2YXIoLS1XSElURSk7XG5cdHRleHQtc2hhZG93OjBweCAwcHggMXB4ICNmZmY7XG5cdGZvbnQtc2l6ZToxNnB4O1xuXHRwYWRkaW5nOjEwcHg7XG5cdC1tb3otYm9yZGVyLXJhZGl1czo1cHg7XG5cdC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7XG5cdGJvcmRlci1yYWRpdXM6NXB4O1xuXHR6LWluZGV4Ojk5OTk7XG59XG4udG91cmNvbnRyb2xzIHB7XG5cdG1hcmdpbjowcHg7XHQvKiBBZGRlZCBmb3IgWHBsb28gKi9cblx0fVxuLnRvdXJjb250cm9scyBhe1xuXHRmb250LXNpemU6MTFweDtcblx0Y29sb3I6I2YwZjBmMDtcblx0Y3Vyc29yOnBvaW50ZXI7XG5cdGZvbnQtd2VpZ2h0Om5vcm1hbDtcblx0dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtcblx0bWFyZ2luOjEwcHg7XG59XG4udG91cmNvbnRyb2xzIGE6aG92ZXJ7XG5cdGNvbG9yOiNmZmY7XG59XG4vKiAuY2xvc2V7XG5cdHBvc2l0aW9uOmFic29sdXRlO1xuXHR0b3A6NnB4O1xuXHRyaWdodDo3cHg7XG5cdHdpZHRoOjEwcHg7XG5cdGhlaWdodDoxMHB4O1xuXHRiYWNrZ3JvdW5kOnZhcigtLUNPTE9SX1NVUkZBQ0VfMTApIHVybCguLi9pbWFnZXMvY2xvc2UuZ2lmKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcblx0Y3Vyc29yOnBvaW50ZXI7XG59ICovXG5cbi50b3VyY29udHJvbHMgcHtcblx0cGFkZGluZzoxMHB4O1xufVxuLmJ1dHRvbntcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0LyogZGlzcGxheTpibG9jazsgKi9cdC8qIFJlbW92ZWQgZm9yIFhwbG9vICovXG5cdC8qIGZsb2F0OmxlZnQ7ICovXHQvKiBSZW1vdmVkIGZvciBYcGxvbyAqL1xuXHRtYXJnaW46MTBweCAwcHggMTBweCAxMHB4O1xuXHRjdXJzb3I6cG9pbnRlcjtcblx0YmFja2dyb3VuZDogI2M2MzkyOTtcblx0YmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoMCUgMTAwJSA5MGRlZywgIzg5MTEwMCAwJSwgI0I1MTcwMCA1MCUsICNjNjM5MjkgNTAlLCAjRUU0MzJFIDEwMCUpO1xuXHRiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGNvbG9yLXN0b3AoMCwgI2VlNDMyZSksIGNvbG9yLXN0b3AoMC41LCAjYzYzOTI5KSwgY29sb3Itc3RvcCgwLjUsICNiNTE3MDApLCBjb2xvci1zdG9wKDEsICM4OTExMDApKTtcblx0Ym9yZGVyOiAxcHggc29saWQgIzk1MTEwMDtcblx0LW1vei1ib3JkZXItcmFkaXVzOiA1cHg7XG5cdC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4O1xuXHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdC1tb3otYm94LXNoYWRvdzogaW5zZXQgMHB4IDBweCAwcHggMXB4IHJnYmEoMjU1LCAxMTUsIDEwMCwgMC40KSwgMCAxcHggM3B4ICMzMzM7XG5cdC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMHB4IDBweCAwcHggMXB4IHJnYmEoMjU1LCAxMTUsIDEwMCwgMC40KSwgMCAxcHggM3B4ICMzMzM7XG5cdGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMHB4IDFweCByZ2JhKDI1NSwgMTE1LCAxMDAsIDAuNCksIDAgMXB4IDNweCAjMzMzO1xuXHRjb2xvcjogI2ZmZjtcblx0Zm9udC1zaXplOiAxM3B4O1xuXHRmb250LXdlaWdodDogYm9sZDtcblx0bGV0dGVyLXNwYWNpbmc6IDFweDtcblx0bGluZS1oZWlnaHQ6IDE7XG5cdHBhZGRpbmc6NnB4IDdweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0ZXh0LXNoYWRvdzogMHB4IC0xcHggMXB4IHJnYmEoMCwgMCwgMCwgLjgpO1xufVxuLmJ1dHRvbjpob3ZlciB7XG5cdGJhY2tncm91bmQ6ICNjYjA1MDA7XG5cdGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KDAlIDEwMCUgOTBkZWcsICNhMjA2MDEgMCUsICNjYjA1MDAgNTAlLCAjZGI1MDRkIDUwJSwgI2YzNzg3MyAxMDAlKTtcblx0YmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAlLCBjb2xvci1zdG9wKDAsICNmMzc4NzMpLCBjb2xvci1zdG9wKDAuNSwgI2RiNTA0ZCksIGNvbG9yLXN0b3AoMC41LCAjY2IwNTAwKSwgY29sb3Itc3RvcCgxLCAjYTIwNjAxKSk7XG59XG4uYnV0dG9uOmFjdGl2ZXtcblx0YmFja2dyb3VuZDogI2IzMDMwMDtcblx0YmFja2dyb3VuZDogLW1vei1saW5lYXItZ3JhZGllbnQoMCUgMTAwJSA5MGRlZywgIzcwMGQwMCAwJSwgIzljMTUwMCA1MCUsICNhZDMyMjQgNTAlLCAjZDQzYzI4IDEwMCUpO1xuXHRiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGNvbG9yLXN0b3AoMCwgI2Q0M2MyOCksIGNvbG9yLXN0b3AoMC41LCAjYWQzMjI0KSwgY29sb3Itc3RvcCgwLjUsICM5YzE1MDApLCBjb2xvci1zdG9wKDEsICM3MDBkMDApKTtcblx0LW1vei1ib3gtc2hhZG93OiBpbnNldCAwcHggMHB4IDBweCAxcHggcmdiYSgyNTUsIDExNSwgMTAwLCAwLjQpO1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMHB4IDFweCByZ2JhKDI1NSwgMTE1LCAxMDAsIDAuNCk7XG5cdGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMHB4IDFweCByZ2JhKDI1NSwgMTE1LCAxMDAsIDAuNCk7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkFTU0lTVEFOVCBORVcgU1RZTEVTXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi5hc3Npc3Qtd2luZG93LW5ldyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLUNPTE9SX1NVUkZBQ0VfMjApO1xuICAgIC8qIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLUNPTE9SX1NVUkZBQ0VfMTApIDAlLCB2YXIoLS1EQVJLX0JMVUUpIDUwJSwgdmFyKC0tREFSS0VSX0JMVUUpIDEwMCUpOyAqL1xuICAgIGNvbG9yOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzkwKTtcbiAgICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLUNPTE9SX1NVUkZBQ0VfOTApO1xuICAgIC8qIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLDAsMCwwLjE1KTsgKi9cblx0Ym94LXNoYWRvdzogXG5cdDRweCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4yNSksXG5cdC0ycHggLTJweCA2cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpLFxuXHRpbnNldCA0cHggNHB4IDhweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksXG5cdGluc2V0IC00cHggLTRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIHotaW5kZXg6IDEyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXgtd2lkdGg6IDM1MHB4O1xuICAgIGFuaW1hdGlvbjogYXNzaXN0RmFkZUluIDAuNXMgZWFzZS1vdXQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbkBrZXlmcmFtZXMgYXNzaXN0RmFkZUluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlKDAuOTUpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcbiAgICB9XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbkFTU0lTVEFOVCBPTERcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLmFzc2lzdC13aW5kb3cge1xuXHR6LWluZGV4OjE0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAyLCAyMDIsIDIwMiwgMC4zKTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxNXB4KSBzYXR1cmF0ZSgxODAlKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTVweCkgc2F0dXJhdGUoMTgwJSk7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLUJVVFRPTl9CT1JERVJfUkFESVVTKTtcbiAgICBsZWZ0OiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR3aWR0aDogNTAlO1xuXHRtYXgtd2lkdGg6IDUwMHB4O1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICAvKiB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpOyAqL1xuICAgIC8qIHBhZGRpbmc6IDNweCAyNHB4IDNweCAyNHB4OyAqL1xufVxuXG4uYXNzaXN0LWhlYWRlciB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0LyogYmFja2dyb3VuZDogdmFyKC0tQ09MT1JfU1VSRkFDRV8zMCk7ICovXG4gICAgLyogYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDIsIDIwMiwgMjAyLCAwLjMpOyAqL1xuICAgIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE1cHgpIHNhdHVyYXRlKDE4MCUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNXB4KSBzYXR1cmF0ZSgxODAlKTtcblx0Y29sb3I6IHZhcigtLUNPTE9SX0ZPTlQpO1xuICAgIHBhZGRpbmc6IDAuOHJlbSAxcmVtO1xuXHRib3JkZXItcmFkaXVzOiA1MHB4O1xufVxuXG4uYXNzaXN0LWJvZHkge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5hc3Npc3QtYm9keSBwIHtcblx0Zm9udC1zaXplOiAwLjhyZW07XG5cdHBhZGRpbmc6IDBweCAyMHB4IDBweCAyMHB4O1xuXHRjb2xvcjp2YXIoLS1DT0xPUl9GT05UKTtcbn1cblxuLmFzc2lzdC1ib2R5IGxhYmVsIHtcblx0Zm9udC1zaXplOiAwLjlyZW07XG5cdHBhZGRpbmc6IDEwcHggMnB4IDBweCAxMHB4O1xuXHRjb2xvcjp2YXIoLS1DT0xPUl9GT05UKTtcbn1cblxuLmFzc2lzdC1ib2R5IGlucHV0IHtcblx0bWFyZ2luLWxlZnQ6IDIwcHg7XG59XG5cbi5hc3Npc3QtYnV0dG9uLWJhcntcblx0ZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgICBwYWRkaW5nOiAwcHggMjRweCAxMHB4IDI0cHg7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblJFU1BPTlNJVkUgU1RZTEVTXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi8qIE1vYmlsZSByZXNwb25zaXZlIHN0eWxlcyBmb3IgYXNzaXN0YW50IHdpbmRvd3MgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDg5NnB4KSB7XG4gICAgLmFzc2lzdC13aW5kb3cge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgICBcbiAgICAuYXNzaXN0LWhlYWRlciB7XG4gICAgICAgIC8qIHBhZGRpbmc6IDhweCAxNnB4OyAqL1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICB9XG4gICAgXG4gICAgLmFzc2lzdC1ib2R5IHAge1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIH1cbiAgICBcbiAgICAuYXNzaXN0LWJvZHkgbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgcGFkZGluZzogOHB4IDJweCAwcHggOHB4O1xuICAgIH1cbiAgICBcbiAgICAuYXNzaXN0LWJvZHkgaW5wdXQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICB9XG4gICAgXG4gICAgLmFzc2lzdC1idXR0b24tYmFyIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgfVxuICAgIFxuICAgIC5hc3Npc3Qtd2luZG93LW5ldyB7XG4gICAgICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgIH1cbiAgICBcbiAgICAvKiBUb29sdGlwIHN0eWxlcyBmb3IgbW9iaWxlICovXG4gICAgLnRvb2x0aXAge1xuICAgICAgICBtYXgtd2lkdGg6IDIwMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDhweCAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLnRvb2x0aXAgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMyAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLyogRXh0cmEgc21hbGwgbW9iaWxlIGRldmljZXMgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLmFzc2lzdC13aW5kb3cge1xuICAgICAgICB3aWR0aDogOTUlO1xuICAgICAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICAgIH1cbiAgICBcbiAgICAuYXNzaXN0LWhlYWRlciB7XG4gICAgICAgIC8qIHBhZGRpbmc6IDZweCAxMnB4OyAqL1xuICAgICAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgfVxuICAgIFxuICAgIC5hc3Npc3QtYm9keSBwIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIH1cbiAgICBcbiAgICAuYXNzaXN0LWJvZHkgbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDZweCAycHggMHB4IDZweDtcbiAgICB9XG4gICAgXG4gICAgLmFzc2lzdC1ib2R5IGlucHV0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgfVxuICAgIFxuICAgIC5hc3Npc3QtYnV0dG9uLWJhciB7XG4gICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIH1cbiAgICBcbiAgICAuYXNzaXN0LXdpbmRvdy1uZXcge1xuICAgICAgICBtYXgtd2lkdGg6IDI1MHB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICB9XG4gICAgXG4gICAgLyogVG9vbHRpcCBzdHlsZXMgZm9yIGV4dHJhIHNtYWxsIG1vYmlsZSBkZXZpY2VzICovXG4gICAgLnRvb2x0aXAge1xuICAgICAgICBtYXgtd2lkdGg6IDE1MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgXG4gICAgLnRvb2x0aXAgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuQkFER0VTICh0byBpbmRpY2F0ZSBmZWF0dXJlIHN0YXR1cylcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLnhwbG9vLWJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LWZhbWlseTogdmFyKC0tRk9OVC1GQU1JTFkpO1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLnhwbG9vLWJhZGdlOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICBib3gtc2hhZG93OiAwIDNweCA2cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4vKiBCYWRnZSBcIk5vdXZlYXVcIiAqL1xuLnhwbG9vLWJhZGdlLS1uZXcge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1CQURHRV9ORVdfR1JBRElFTlRfRlJPTSksIHZhcigtLUJBREdFX05FV19HUkFESUVOVF9UTykpO1xuICBjb2xvcjogdmFyKC0tQkFER0VfTkVXX1RFWFRfQ09MT1IpO1xuICBib3JkZXItY29sb3I6IHZhcigtLUJBREdFX05FV19CT1JERVIpO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLyogQmFkZ2UgXCJCaWVudMO0dFwiICovXG4ueHBsb28tYmFkZ2UtLWNvbWluZy1zb29uIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tQkFER0VfQ09NSU5HX1NPT05fR1JBRElFTlRfRlJPTSksIHZhcigtLUJBREdFX0NPTUlOR19TT09OX0dSQURJRU5UX1RPKSk7XG4gIGNvbG9yOiB2YXIoLS1CQURHRV9DT01JTkdfU09PTl9URVhUX0NPTE9SKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1CQURHRV9DT01JTkdfU09PTl9CT1JERVIpO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cblxuLyogQmFkZ2UgXCJQb3B1bGFpcmVcIiAqL1xuLnhwbG9vLWJhZGdlLS1wb3B1bGFyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tQkFER0VfUE9QVUxBUl9HUkFESUVOVF9GUk9NKSwgdmFyKC0tQkFER0VfUE9QVUxBUl9HUkFESUVOVF9UTykpO1xuICBjb2xvcjogdmFyKC0tQkFER0VfUE9QVUxBUl9URVhUX0NPTE9SKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1CQURHRV9QT1BVTEFSX0JPUkRFUik7XG4gIHRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4vKiBCYWRnZSBcIkJldGFcIiAqL1xuLnhwbG9vLWJhZGdlLS1iZXRhIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tQkFER0VfQkVUQV9HUkFESUVOVF9GUk9NKSwgdmFyKC0tQkFER0VfQkVUQV9HUkFESUVOVF9UTykpO1xuICBjb2xvcjogdmFyKC0tQkFER0VfQkVUQV9URVhUX0NPTE9SKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1CQURHRV9CRVRBX0JPUkRFUik7XG4gIHRleHQtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4ueHBsb28tYmFkZ2UtLXB1bHNlIHtcbiAgYW5pbWF0aW9uOiBiYWRnZS1wdWxzZSAycyAyO1xufVxuXG5Aa2V5ZnJhbWVzIGJhZGdlLXB1bHNlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgIGJveC1zaGFkb3c6IDAgM3B4IDhweCByZ2JhKDAsIDAsIDAsIDAuMjUpLCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIH1cbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuUkVTUE9OU0lWRVxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OTZweCkge1xuICAueHBsb28tYmFkZ2Uge1xuICAgIC8qIGZvbnQtc2l6ZTogMC42cmVtO1xuICAgIHBhZGRpbmc6IDAuMnJlbSAwLjVyZW07ICovXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG59ICIsIi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblRSSVBTXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbjpyb290IHtcbiAgICAvKiAtLXByaW1hcnktY29sb3I6ICNmZjc1MDA7XG4gICAgLS1wcmltYXJ5LWhvdmVyOiAjZTY1YzAwOyAqL1xuICAgIC0tc2Vjb25kYXJ5LWNvbG9yOiAjMmMzZTUwO1xuICAgIC0tYWNjZW50LWNvbG9yOiAjZmZkNzAwO1xuICAgIC0tbGlnaHQtY29sb3I6ICNmOGY5ZmE7XG4gICAgLS1kYXJrLWNvbG9yOiAjMjMyNTI2O1xuICAgIC0tZ3JleS1jb2xvcjogIzZjNzU3ZDtcbiAgICAtLXN1Y2Nlc3MtY29sb3I6ICMyOGE3NDU7XG4gICAgLS1kYW5nZXItY29sb3I6ICNkYzM1NDU7XG4gICAgLS13YXJuaW5nLWNvbG9yOiAjZmZjMTA3O1xuICAgIC0taW5mby1jb2xvcjogIzE3YTJiODtcbiAgICAtLXNoYWRvdy1sZzogMCAxMHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjE1KSwgaW5zZXQgNHB4IDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA1KSwgaW5zZXQgLTRweCAtNHB4IDhweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgLS1yYWRpdXMtc206IDVweDtcbiAgICAtLXJhZGl1cy1tZDogMTBweDtcbiAgICAtLXJhZGl1cy1sZzogMjBweDtcbiAgICAtLXRyYW5zaXRpb24tZmFzdDogYWxsIDAuMnMgZWFzZTtcbiAgICAtLXRyYW5zaXRpb24tbm9ybWFsOiBhbGwgMC4zcyBlYXNlO1xuICAgIC0tdHJhbnNpdGlvbi1zbG93OiBhbGwgMC41cyBlYXNlO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5QQUdFIExBWU9VVFxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4udHJpcHMtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tQ09MT1JfU1VSRkFDRV8yMCk7XG4gICAgLyogYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tTElHSFRFUl9CTFVFKTsgKi9cbiAgICB6LWluZGV4OiAxMDAxO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udHJpcHMtY29udGFpbmVyLm9wZW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLnRyaXBzLWNvbnRhaW5lci5jbG9zaW5nIHtcbiAgICBvcGFjaXR5OiAwO1xufVxuXG4udHJpcHMtaGVhZGVyIHtcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzEwKTtcblx0cGFkZGluZzogMC44cmVtIDFyZW07XG5cdGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4udHJpcHMtdGl0bGUge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRmb250LXNpemU6IDEuMXJlbTtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdG1hcmdpbjogMDtcblx0Y29sb3I6IHZhcigtLVdISVRFKTtcbn1cblxuLnRyaXBzLWljb24ge1xuXHRmb250LXNpemU6IDE2cHg7XG5cdG1hcmdpbi1yaWdodDogOHB4O1xuXHRjb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTtcbn1cblxuLyogLmNsb3NlLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1XSElURSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1ub3JtYWwpO1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5jbG9zZS1idG46aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1XSElURSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTtcbn0gKi9cblxuLnRyaXBzLWJvZHkge1xuXHRmbGV4OiAxO1xuXHRvdmVyZmxvdy15OiBhdXRvO1xuXHRwYWRkaW5nOiAycmVtIDUlIDByZW0gNSU7XG5cdGNvbG9yOiB2YXIoLS1XSElURSk7XG59XG5cbi5kYXNoYm9hcmQtbGF5b3V0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZ2FwOiAyMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTU1MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuXG4udHJpcHMtY29udGVudCB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxcmVtO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5UUklQUyBDT05URU5UXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi50cmlwcy1jb250ZW50LXdyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5pbmZvLW1lc3NhZ2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTIsIDM3LCA1MSwgMC40KTtcbiAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLUNPTE9SX0FDVElPTl81MCk7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIGNvbG9yOiB2YXIoLS1CRUlHRSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uaW5mby1tZXNzYWdlIGkge1xuICAgIGNvbG9yOiB2YXIoLS1DT0xPUl9BQ1RJT05fNTApO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbn1cblxuLnZpZXctY29udHJvbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi52aWV3LWJ1dHRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDhweCAxNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1DT0xPUl9TVVJGQUNFXzQwKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tbm9ybWFsKTtcbiAgICBjb2xvcjogdmFyKC0tQkVJR0UpO1xufVxuXG4udmlldy1idXR0b24gaSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG5cbi52aWV3LWJ1dHRvbi5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl81MCk7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTtcbn1cblxuLnZpZXctYnV0dG9uOmhvdmVyOm5vdCguYWN0aXZlKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblZJRVcgQ09OVEFJTkVSU1xuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4udmlldy1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbn1cblxuLnZpZXctY29udGFpbmVyLmFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuTElTVCBWSUVXXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi50YWJsZS1yZXNwb25zaXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzkwKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICAgIHBhZGRpbmc6IDMwcHggMzBweCAxMHB4IDMwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIHRhYmxlLWxheW91dDogYXV0bztcbn1cblxuLnRhYmxlIHRoZWFkIHRoIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1CRUlHRSk7XG4gICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcik7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiAxNXB4IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2U5ZWNlZjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4udGFibGUgdGhlYWQgdGg6bnRoLWNoaWxkKDEpIHsgd2lkdGg6IDIwJTsgfSAvKiBOb20gLSBwbHVzIGxhcmdlIHBvdXIgbGUgY29udGVudSBwcmluY2lwYWwgKi9cbi50YWJsZSB0aGVhZCB0aDpudGgtY2hpbGQoMikgeyB3aWR0aDogMTUlOyB9IC8qIERlc3RpbmF0aW9uICovXG4udGFibGUgdGhlYWQgdGg6bnRoLWNoaWxkKDMpIHsgd2lkdGg6IDE3JTsgfSAvKiBEYXRlcyAqL1xuLnRhYmxlIHRoZWFkIHRoOm50aC1jaGlsZCg0KSB7IHdpZHRoOiA4JTsgfSAgLyogRHVyw6llIC0gY29tcGFjdCAqL1xuLnRhYmxlIHRoZWFkIHRoOm50aC1jaGlsZCg1KSB7IHdpZHRoOiA4JTsgfSAgLyogVm95YWdldXJzIC0gY29tcGFjdCAqL1xuLnRhYmxlIHRoZWFkIHRoOm50aC1jaGlsZCg2KSB7IHdpZHRoOiAxMCU7IH0gLyogQ3LDqcOpICovXG4udGFibGUgdGhlYWQgdGg6bnRoLWNoaWxkKDcpIHsgd2lkdGg6IDEwJTsgfSAvKiBNb2RpZmnDqSAqL1xuLyogLnRhYmxlIHRoZWFkIHRoOm50aC1jaGlsZCg4KSB7IHdpZHRoOiAxMiU7IH0gLyogUGFydGFnw6kgKHNpIHByw6lzZW50KSAqL1xuLnRhYmxlIHRoZWFkIHRoOmxhc3QtY2hpbGQgeyB3aWR0aDogMTAlOyB9ICAgLyogQWN0aW9ucyAtIGNvbXBhY3QgbWFpcyBzdWZmaXNhbnQgKi9cblxuLnRhYmxlIHRoZWFkIHRoOmxhc3QtY2hpbGQsIC8qIEFjdGlvbnMgKi9cbi50YWJsZSB0aGVhZCB0aDpudGgtY2hpbGQoOCksIC8qIFBhcnRhZ8OpIChzaSBwcsOpc2VudCkgKi9cbi50YWJsZSB0ZDpudGgtY2hpbGQoNSkgeyAvKiBWb3lhZ2V1cnMgKi9cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnRhYmxlIHRib2R5IHRyIHtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLW5vcm1hbCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLUNPTE9SX1NVUkZBQ0VfODApO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLUNPTE9SX1NVUkZBQ0VfOTApO1xufVxuXG4udGFibGUgdGJvZHkgdHI6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLnRhYmxlIHRib2R5IHRyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnKTtcbn1cblxuLnRhYmxlIHRkIHtcbiAgICBwYWRkaW5nOiAyNXB4IDEwcHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBjb2xvcjogdmFyKC0tQ09MT1JfU1VSRkFDRV8yMCk7XG59XG5cbi5kZXN0aW5hdGlvbi1iYWRnZSwgLmR1cmF0aW9uLWJhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTtcbiAgICAvKiBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSwgI2ZmOWQ1MCk7ICovXG4gICAgY29sb3I6IHZhcigtLUJFSUdFKTtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uc2hhcmVkLWJhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc3VjY2Vzcy1jb2xvciksICM1ZGRmODIpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5ub3Qtc2hhcmVkLWJhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbiAgICBjb2xvcjogdmFyKC0tZ3JleS1jb2xvcik7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG59XG5cbi50cmlwLWFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxNXB4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLmFjdGlvbi1idG4ge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogdmFyKC0tZ3JleS1jb2xvcik7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1ub3JtYWwpO1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLnZpZXctdHJpcC1idG46aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1pbmZvLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDUyLCAxNTIsIDIxOSwgMC4xKTtcbn1cblxuLnNoYXJlLWJ0bjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXdhcm5pbmctY29sb3IpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNDAsIDE2NywgNjksIDAuMSk7XG59XG5cbi5yZW5hbWUtYnRuOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tc3VjY2Vzcy1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDE5MywgNywgMC4xKTtcbn1cblxuLmRlbGV0ZS1idG46aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1kYW5nZXItY29sb3IpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIwLCA1MywgNjksIDAuMSk7XG59XG5cbi5pbmxpbmUtZm9ybSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5HUklEIFZJRVdcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLnRyaXBzLWdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoNDAwcHgsIDFmcikpO1xuICAgIGdhcDogMjBweDtcbn1cblxuLnRyaXAtY2FyZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tQkVJR0UpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tbm9ybWFsKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4udHJpcC1jYXJkOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xuICAgIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1sZyk7XG59XG5cbi50cmlwLWNhcmQtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLUNPTE9SX0FDVElPTl81MCk7XG4gICAgLyogYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHJpbWFyeS1jb2xvciksICNmZjlkNTApOyAqL1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50cmlwLWNhcmQtaGVhZGVyIGgzIHtcbiAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbn1cblxuLmRlc3RpbmF0aW9uLXRhZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMjBweDtcbiAgICByaWdodDogMjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDVweCk7XG59XG5cbi50cmlwLWNhcmQtYm9keSB7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBmbGV4LWdyb3c6IDE7XG59XG5cbi50cmlwLWluZm8ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi50cmlwLWluZm8gcCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3IpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnRyaXAtaW5mbyBwIGkge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBjb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTtcbn1cblxuLnRyaXAtY2FyZC1mb290ZXIge1xuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2YxZjNmNTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTBweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5jYXJkLWFjdGlvbi1idG4ge1xuICAgIGZsZXg6IDE7XG4gICAgcGFkZGluZzogOHB4IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1ub3JtYWwpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDVweDtcbn1cblxuLmNhcmQtYWN0aW9uLWJ0biBpIHtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG59XG5cbi5jYXJkLWFjdGlvbi1idG4udmlldy10cmlwLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5mby1jb2xvcik7XG4gICAgY29sb3I6IHdoaXRlO1xufVxuXG4uY2FyZC1hY3Rpb24tYnRuLnZpZXctdHJpcC1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTgwYjk7XG59XG5cbi5jYXJkLWFjdGlvbi1idG4ucmVuYW1lLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzcy1jb2xvcik7XG4gICAgY29sb3I6IHdoaXRlO1xufVxuXG4uY2FyZC1hY3Rpb24tYnRuLnJlbmFtZS1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTg4Mzg7XG59XG5cbi5jYXJkLWFjdGlvbi1idG4uZGVsZXRlLWJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZGFuZ2VyLWNvbG9yKTtcbiAgICBjb2xvcjogd2hpdGU7XG59XG5cbi5jYXJkLWFjdGlvbi1idG4uZGVsZXRlLWJ0bjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2JkMjEzMDtcbn1cblxuLmRlbGV0ZS1mb3JtIHtcbiAgcG9zaXRpb246IGFic29sdXRlOyAgIC8qIG9uIGxlIHNvcnQgZHUgZmx1eCAqL1xuICBsZWZ0OiAtOTk5OXB4OyAgICAgICAgLyogb24gbGUgZMOpcGxhY2UgaG9ycyDDqWNyYW4gKi9cbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47ICAgICAvKiBvbiDDqXZpdGUgdG91dCBkw6lib3JkZW1lbnQgKi9cbn1cblxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5USU1FTElORSBWSUVXXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi50aW1lbGluZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuXG4udGltZWxpbmU6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDZweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLnRpbWVsaW5lLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDEwcHggNDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi50aW1lbGluZS1pdGVtOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IDRweCBzb2xpZCB2YXIoLS1DT0xPUl9BQ1RJT05fNTApO1xuICAgIHRvcDogMTVweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgei1pbmRleDogMTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGcpO1xufVxuXG4udGltZWxpbmUtaXRlbS5sZWZ0IHtcbiAgICBsZWZ0OiAwO1xufVxuXG4udGltZWxpbmUtaXRlbS5yaWdodCB7XG4gICAgbGVmdDogNTAlO1xufVxuXG4udGltZWxpbmUtaXRlbS5sZWZ0OjphZnRlciB7XG4gICAgcmlnaHQ6IC0xMHB4O1xufVxuXG4udGltZWxpbmUtaXRlbS5yaWdodDo6YWZ0ZXIge1xuICAgIGxlZnQ6IC0xMHB4O1xufVxuXG4udGltZWxpbmUtY29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tQkVJR0UpO1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGcpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLW5vcm1hbCk7XG59XG5cbi50aW1lbGluZS1jb250ZW50OmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnKTtcbn1cblxuLnRpbWVsaW5lLWRhdGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLUNPTE9SX0FDVElPTl81MCk7XG4gICAgLyogYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHJpbWFyeS1jb2xvciksICNmZjlkNTApOyAqL1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIHBhZGRpbmc6IDVweCAxNXB4O1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4udGltZWxpbmUtaXRlbS5sZWZ0IC50aW1lbGluZS1kYXRlIHtcbiAgICByaWdodDogMjBweDtcbn1cblxuLnRpbWVsaW5lLWl0ZW0ucmlnaHQgLnRpbWVsaW5lLWRhdGUge1xuICAgIGxlZnQ6IDIwcHg7XG59XG5cbi50aW1lbGluZS1jb250ZW50IGgzIHtcbiAgICBtYXJnaW46IDIwcHggMCAxNXB4IDA7XG4gICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcik7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnRpbWVsaW5lLWJhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG59XG5cbi50aW1lbGluZS1kZXRhaWxzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuXG4udGltZWxpbmUtZGV0YWlscyBwIHtcbiAgICBtYXJnaW46IDVweCAwO1xuICAgIGNvbG9yOiB2YXIoLS1ncmV5LWNvbG9yKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi50aW1lbGluZS1kZXRhaWxzIHAgaSB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIGNvbG9yOiB2YXIoLS1DT0xPUl9BQ1RJT05fNTApO1xufVxuXG4udGltZWxpbmUtZGV0YWlscyBwIGkuZmEtc2hhcmUtYWx0IHtcbiAgICBjb2xvcjogdmFyKC0tc3VjY2Vzcy1jb2xvcik7XG59XG5cbi50aW1lbGluZS1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTBweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi50aW1lbGluZS1idG4ge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICBwYWRkaW5nOiA4cHggMTVweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLW5vcm1hbCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogNXB4O1xufVxuXG4udGltZWxpbmUtYnRuIGkge1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cblxuLnRpbWVsaW5lLWJ0bi52aWV3LXRyaXAtYnRuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbmZvLWNvbG9yKTtcbiAgICBjb2xvcjogd2hpdGU7XG59XG5cbi50aW1lbGluZS1idG4udmlldy10cmlwLWJ0bjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzI5ODBiOTtcbn1cblxuLnRpbWVsaW5lLWJ0bi5yZW5hbWUtYnRuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzLWNvbG9yKTtcbiAgICBjb2xvcjogd2hpdGU7XG59XG5cbi50aW1lbGluZS1idG4ucmVuYW1lLWJ0bjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzIxODgzODtcbn1cblxuLnRpbWVsaW5lLWJ0bi5kZWxldGUtYnRuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYW5nZXItY29sb3IpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnRpbWVsaW5lLWJ0bi5kZWxldGUtYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmQyMTMwO1xufVxuXG4udGltZWxpbmUtZGVsZXRlLWZvcm0ge1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAxMDBweDtcbn1cblxuLypcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuRU1QVFkgU1RBVEVcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuLmVtcHR5LXN0YXRlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogNTBweCAyMHB4O1xufVxuXG4uZW1wdHktaWNvbiB7XG4gICAgZm9udC1zaXplOiA0cmVtO1xuICAgIGNvbG9yOiAjZDFkNmRiO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5lbXB0eS1zdGF0ZSBwIHtcbiAgICBjb2xvcjogdmFyKC0tZ3JleS1jb2xvcik7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbn1cblxuLmNyZWF0ZS10cmlwLWJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl81MCkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogd2hpdGUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFuc2l0aW9uLW5vcm1hbCk7XG59XG5cbi5jcmVhdGUtdHJpcC1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl80MCkgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7XG4gICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbk1PREFMXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbi5tb2RhbCB7XG4gICAgZGlzcGxheTogbm9uZTsgLyogVGhpcyB3aWxsIGJlIGNoYW5nZWQgdG8gJ2ZsZXgnIGJ5IEphdmFTY3JpcHQgdG8gc2hvdyB0aGUgbW9kYWwgKi9cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogOTk5OTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigzcHgpO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5tb2RhbC1jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1DT0xPUl9TVVJGQUNFXzIwKTtcbiAgICB3aWR0aDogOTAlO1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGcpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgei1pbmRleDogMTAwMDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5cbi5tb2RhbC1jb250ZW50IGgyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBjb2xvcjogdmFyKC0tQkVJR0UpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl81MCk7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U5ZWNlZjtcbn1cblxuLm1vZGFsLWJvZHkge1xuICAgIHBhZGRpbmc6IDQwcHg7XG59XG5cbi5pbnB1dC1ncm91cCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG59XG5cbi5pbnB1dC1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTBweDtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgY29sb3I6IHZhcigtLUZPUk1fSUNPTl9DT0xPUik7XG59XG5cbiNtb2RhbElucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxMnB4IDEwcHggMTJweCAzNXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlOWVjZWY7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1ub3JtYWwpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLUZPUk1fSU5QVVRfQkFDS0dST1VORCk7XG59XG5cbiNtb2RhbElucHV0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyNTUsIDExNywgMCwgMC4yKTtcbn1cblxuLm1vZGFsLWJ0biB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1DT0xPUl9BQ1RJT05fNTApO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1ub3JtYWwpO1xufVxuXG4ubW9kYWwtYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1DT0xPUl9BQ1RJT05fNDApO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5TSEFSRVxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4qL1xuXG4uc2hhcmUtb3B0aW9ucyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIGdhcDogMjBweDtcbn1cblxuLnNoYXJlLW9wdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogdmFyKC0tdHJhbnNpdGlvbi1ub3JtYWwpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnNoYXJlLW9wdGlvbltkYXRhLXBsYXRmb3JtPVwiZmFjZWJvb2tcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzYjU5OTg7XG59XG5cbi5zaGFyZS1vcHRpb25bZGF0YS1wbGF0Zm9ybT1cInR3aXR0ZXJcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxZGExZjI7XG59XG5cbi5zaGFyZS1vcHRpb25bZGF0YS1wbGF0Zm9ybT1cIndoYXRzYXBwXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjVkMzY2O1xufVxuXG4uc2hhcmUtb3B0aW9uW2RhdGEtcGxhdGZvcm09XCJlbWFpbFwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VhNDMzNTtcbn1cblxuLnNoYXJlLW9wdGlvbltkYXRhLXBsYXRmb3JtPVwidGVhbXNcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2MjY0YTc7XG59XG5cbi5zaGFyZS1vcHRpb246aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi5zaGFyZS1saW5rLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbn1cblxuLnNoYXJlLWxpbmstY29udGFpbmVyIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG9yKTtcbn1cblxuLnNoYXJlLWxpbmstY29udGFpbmVyIC5pbnB1dC1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5zaGFyZS1saW5rLWNvbnRhaW5lciBpbnB1dCB7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U5ZWNlZjtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKSAwIDAgdmFyKC0tcmFkaXVzLXNtKTtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBjb2xvcjogdmFyKC0tQ09MT1JfRk9OVCk7XG59XG5cbi5jb3B5LWxpbmstYnRuIHtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tQ09MT1JfQUNUSU9OXzUwKTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tcmFkaXVzLXNtKSB2YXIoLS1yYWRpdXMtc20pIDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tbm9ybWFsKTtcbn1cblxuLmNvcHktbGluay1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLUNPTE9SX0FDVElPTl80MCk7XG59XG5cbi8qIFN0eWxlcyBwb3VyIGwnYWZmaWNoYWdlIGRlcyBib3V0b25zIGRlIHBhcnRhZ2UgZGFucyBsYSB2dWUgR3JpZCAqL1xuLmNhcmQtYWN0aW9uLWJ0bi5zaGFyZS1idG4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmctY29sb3IpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmNhcmQtYWN0aW9uLWJ0bi5zaGFyZS1idG46aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkMzllMDA7XG59XG5cbi8qIFN0eWxlcyBwb3VyIGwnYWZmaWNoYWdlIGRlcyBib3V0b25zIGRlIHBhcnRhZ2UgZGFucyBsYSB2dWUgVGltZWxpbmUgKi9cbi50aW1lbGluZS1idG4uc2hhcmUtYnRuIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nLWNvbG9yKTtcbiAgICBjb2xvcjogd2hpdGU7XG59XG5cbi50aW1lbGluZS1idG4uc2hhcmUtYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDM5ZTAwO1xufVxuXG4vKlxuIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG5BTklNQVRJT05TXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbiovXG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpOyB9XG4gICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZUluRnJvbUxlZnQge1xuICAgIGZyb20geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwcHgpOyB9XG4gICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZUluRnJvbVJpZ2h0IHtcbiAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMwcHgpOyB9XG4gICAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbn1cblxuQGtleWZyYW1lcyBnbG93UHVsc2Uge1xuICAgIDAlIHsgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwgMTE3LCAwLCAwLjQpOyB9XG4gICAgNzAlIHsgYm94LXNoYWRvdzogMCAwIDAgMTVweCByZ2JhKDI1NSwgMTE3LCAwLCAwKTsgfVxuICAgIDEwMCUgeyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjU1LCAxMTcsIDAsIDApOyB9XG59XG5cbi8qXG4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcblJFU1BPTlNJVkVcbiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuKi9cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgIC50aW1lbGluZTo6YWZ0ZXIge1xuICAgICAgICBsZWZ0OiAzMXB4O1xuICAgIH1cbiAgICBcbiAgICAudGltZWxpbmUtaXRlbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDcwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XG4gICAgfVxuICAgIFxuICAgIC50aW1lbGluZS1pdGVtLnJpZ2h0IHtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG4gICAgXG4gICAgLnRpbWVsaW5lLWl0ZW0ubGVmdDo6YWZ0ZXIsXG4gICAgLnRpbWVsaW5lLWl0ZW0ucmlnaHQ6OmFmdGVyIHtcbiAgICAgICAgbGVmdDogMjFweDtcbiAgICB9XG4gICAgXG4gICAgLnRpbWVsaW5lLWl0ZW0ubGVmdCAudGltZWxpbmUtZGF0ZSxcbiAgICAudGltZWxpbmUtaXRlbS5yaWdodCAudGltZWxpbmUtZGF0ZSB7XG4gICAgICAgIGxlZnQ6IDcwcHg7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkycHgpIHtcbiAgICAuZGFzaGJvYXJkLWxheW91dCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAudmlldy1jb250cm9scyB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cbiAgICBcbiAgICAudGFibGUtcmVzcG9uc2l2ZSB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgICBcbiAgICAudGFibGUgdGhlYWQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBcbiAgICAudGFibGUgdGJvZHkgdHIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2U5ZWNlZjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTtcbiAgICAgICAgcGFkZGluZzogMTVweDtcbiAgICB9XG4gICAgXG4gICAgLnRhYmxlIHRkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgcGFkZGluZzogNXB4IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjFmM2Y1O1xuICAgIH1cbiAgICBcbiAgICAudGFibGUgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICAgIFxuICAgIC50YWJsZSB0ZDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLWxhYmVsKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvcik7XG4gICAgfVxuICAgIFxuICAgIC50YWJsZSB0ZFtkYXRhLWxhYmVsPVwiVm95YWdldXJzXCJdIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDVweDtcbiAgICB9XG4gICAgXG4gICAgLnRhYmxlIHRkW2RhdGEtbGFiZWw9XCJWb3lhZ2V1cnNcIl06OmJlZm9yZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG4gICAgXG4gICAgLnRhYmxlIHRkW2RhdGEtbGFiZWw9XCJQYXJ0YWfDqSBhdmVjXCJdIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cbiAgICBcbiAgICAudGFibGUgdGRbZGF0YS1sYWJlbD1cIlBhcnRhZ8OpIGF2ZWNcIl06OmJlZm9yZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgICB0ZFtkYXRhLWxhYmVsPVwiVm95YWdldXJzXCJdIGkuZmEtdXNlcixcbiAgICB0ZFtkYXRhLWxhYmVsPVwiVm95YWdldXJzXCJdIGkuZmEtdXNlcnMge1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIH1cbiAgICBcbiAgICAudHJpcHMtZ3JpZCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI1MHB4LCAxZnIpKTtcbiAgICB9XG4gICAgXG4gICAgLnZpZXctY29udHJvbHMge1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuICAgIFxuICAgIC52aWV3LWJ1dHRvbiB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgfVxuICAgIFxuICAgIC50aW1lbGluZS1hY3Rpb25zIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gICAgXG4gICAgLnRpbWVsaW5lLWJ0biB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICBcbiAgICAudGltZWxpbmUtZGVsZXRlLWZvcm0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuICAgIC5kYXNoYm9hcmQtbGF5b3V0IHtcbiAgICAgICAgZ2FwOiAxNXB4O1xuICAgIH1cbiAgICBcbiAgICAudHJpcC1hY3Rpb25zIHtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cbiAgICBcbiAgICAuYWN0aW9uLWJ0biB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgfVxuXG4gICAgLyogRW5zdXJlIG1vZGFsIHN0YXlzIGNlbnRlcmVkIG9uIG1vYmlsZSBkZXZpY2VzICovXG4gICAgLm1vZGFsLWNvbnRlbnQge1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICB9XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==*/