.vld-shown {
  overflow: hidden;
}

.vld-overlay {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  align-items: center;
  display: none;
  justify-content: center;
  overflow: hidden;
  z-index: 9999;
}

.vld-overlay.is-active {
  display: flex;
}

.vld-overlay.is-full-page {
  z-index: 9999;
  position: fixed;
}

.vld-overlay .vld-background {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  background: #fff;
  opacity: 0.5;
}

.vld-overlay .vld-icon, .vld-parent {
  position: relative;
}


.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:"top-start     top            top-end" "center-start  center         center-end" "bottom-start  bottom-center  bottom-end";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em}div:where(.swal2-container) button:where(.swal2-close){z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:none;background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:#fff}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#facea8;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#9de0f6;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#c9dae1;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}


.tableParams {
  border-radius: 5px;
}
@media all and (max-width: 950px) {
.tableParams {
    font-size: 0.7rem;
}
}
.tableParams td {
  vertical-align: center;
  padding: 5px;
}
@media all and (max-width: 950px) {
.tableParams td {
    padding: 2px;
}
}
.tableParams td div {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}
.tableParams td select {
  width: 80px;
  padding: 5px;
}
@media all and (max-width: 950px) {
.tableParams td select {
    padding: 0;
}
}
.bg-head {
  background-color: #edf2fc;
  min-height: 30px;
  min-width: 90px;
  font-weight: bold;
}
@media all and (max-width: 950px) {
.bg-head {
    min-height: 20px;
    min-width: 30px;
}
}
@media all and (max-width: 950px) {
.btn-clear {
    padding:3px;
    font-size: 0.7rem;
}
}
.paramsWrapper select {
  width: 100%;
  border: 1px solid #e0e0e0;
  padding: 5px;
  margin: 5px 0;
}
.paramsWrapperEyes {
  padding: 10px 0;
  border: ;
}
.paramsWrapperEyes div {
  padding: 5px 0;
}
.required {
  color: red;
  font-weight: 700;
}
.lat {
  font-weight: bold;
}
.oko {
  position: relative;
}
.oko-right {
  left: 100px;
  position: absolute;
  font-weight: bold;
}
.oko-left {
  left: 28px;
  position: absolute;
  font-weight: bold;
}


.lds-ellipsis[data-v-644579b6] {
    display: inline-block;
    position: relative;
    width: 80px;
    height: 80px;
}
.lds-ellipsis div[data-v-644579b6] {
    position: absolute;
    top: 33px;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: black;
    animation-timing-function: cubic-bezier(0, 1, 1, 0);
}
.lds-ellipsis div[data-v-644579b6]:nth-child(1) {
    left: 8px;
    animation: lds-ellipsis1-644579b6 0.6s infinite;
}
.lds-ellipsis div[data-v-644579b6]:nth-child(2) {
    left: 8px;
    animation: lds-ellipsis2-644579b6 0.6s infinite;
}
.lds-ellipsis div[data-v-644579b6]:nth-child(3) {
    left: 32px;
    animation: lds-ellipsis2-644579b6 0.6s infinite;
}
.lds-ellipsis div[data-v-644579b6]:nth-child(4) {
    left: 56px;
    animation: lds-ellipsis3-644579b6 0.6s infinite;
}
@keyframes lds-ellipsis1-644579b6 {
0% {
        transform: scale(0);
}
100% {
        transform: scale(1);
}
}
@keyframes lds-ellipsis3-644579b6 {
0% {
        transform: scale(1);
}
100% {
        transform: scale(0);
}
}
@keyframes lds-ellipsis2-644579b6 {
0% {
        transform: translate(0, 0);
}
100% {
        transform: translate(24px, 0);
}
}



.wrapper[data-v-6635b53c] {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: rgba(248, 248, 248, 1);
  backdrop-filter: blur(10px);
  padding: 0 0 87px;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  z-index: 999;
  overflow-y: auto;
  transition: all .3s;
  display: flex;
  justify-content: center;
}
.centralPart[data-v-6635b53c] {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  justify-content: center;
  width: 100%;
  max-width: 1300px;
  overflow: hidden;
}
@media all and (max-width: 950px) {
.centralPart[data-v-6635b53c] {
    flex-direction: column;
    overflow: scroll;
}
}
.leftPart[data-v-6635b53c] {
  width: 50%;
}
@media all and (max-width: 950px) {
.leftPart[data-v-6635b53c] {
    display: none;
}
}
.rightPart[data-v-6635b53c] {
  width: 100%;
  height: 100%;
  padding: 50px;
  overflow: hidden;
}
@media all and (max-width: 950px) {
.rightPart[data-v-6635b53c] {
    padding: 5px;
}
}
.rightPartList[data-v-6635b53c] {
  width: 100%;
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
}
.item-box[data-v-6635b53c] {
  width: 100%;
  border: 1px solid #fff;
  border-radius: 6px;
  margin-bottom: 12px;
}
.pres-item[data-v-6635b53c] {
  background: #fff;
  padding: 16px 14px;
  cursor: pointer;
  position: relative;
}
.pres-item-inactive[data-v-6635b53c] {
  pointer-events: none;
  background: rgba(255, 255, 255, 0.27) !important;
  color: rgba(128, 128, 128, 0.61);
}

/***/
.group-header[data-v-6635b53c] {
  color: #333;
  font-size: 1.5rem;
  font-weight: 400;
  font-family: "Bebas Neue Cyrillic", sans-serif;
  line-height: 1;
  padding-bottom: 12px;
  border-bottom: 2px solid #007eef;
}
.brand-item[data-v-6635b53c] {
  min-height: 100px;
  margin: 10px;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  border-radius: 5px;
  background-color: #fff;
  transition: .3s all ease;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.brand-item-selected[data-v-6635b53c] {
  box-shadow: 0 0 10px rgb(0 126 239 / 20%);
  border: 1px solid #007eef;
  background-color: #007eef;
  color: white;
}
.productPriceWrapper[data-v-6635b53c] {
  font-weight: bold;
}
.brand-item-selected .productPrice[data-v-6635b53c] {
  color: white !important;
}
.brand-item-unselected[data-v-6635b53c] {
  border: 1px solid #e0e0e0;
}
.brand-item[data-v-6635b53c]:hover {
  background-color: #e0e0e0;
}
.lensType__itemWrapper[data-v-6635b53c] :hover {
  background-color: #e0e0e0;
}

/**
BOTTOM
 */
.glass-process-bottom-area[data-v-6635b53c] {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 87px;
  z-index: 102;
  display: flex;
  justify-content: center;
  align-content: center;
  background: #fff;
  box-shadow: 0 -4px 10px 0 rgba(0, 0, 0, .08);
  transition: all .3s;
}
.subtotal-wrap[data-v-6635b53c] {
  max-width: 1300px;
  padding-right: 3.5416666667vw;
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  justify-content: flex-end;
}
.subtotal-inner[data-v-6635b53c] {
  flex: 1;
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
}
@media all and (max-width: 950px) {
.subtotal-inner[data-v-6635b53c] {
    display: none;
}
}

/**
LEFT SIDE
 */
.price-desc-diag-area[data-v-6635b53c] {
  background: #fff;
  box-sizing: border-box;
  display: flex;
  justify-content: center;
}
.price-desc-inner[data-v-6635b53c] {
  height: calc(100vh - 90px);
  position: sticky;
  top: 0;
  width: 534px;
  padding-right: 3.5416666667vw;
  overflow-y: auto;
  display: flex;
  flex-wrap: nowrap;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
}
.glass-img-wrap[data-v-6635b53c] {
  padding-top: 9.375vw;
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}
.inner-box[data-v-6635b53c] {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 330px;
  padding-bottom: 1.25vw;
  box-sizing: border-box;
}
@media all and (max-width: 950px) {
.inner-box[data-v-6635b53c] {
    display: none;
}
}


/**  */
.brands__item[data-v-6635b53c] {
  display: flex;
  flex-direction: column;
  border: 1px solid #E5E5E5;
}
.brand__item > img[data-v-6635b53c] {
  max-height: 150px;
  max-width: 150px;
}
.brand__item[data-v-6635b53c] {
  display: flex;
  align-items: center;
}
.lense__item[data-v-6635b53c] {
  display: flex;
  align-items: center;
  margin: 10px 0;
}
.lense__item .lense__itemName[data-v-6635b53c] {
  width: 100%;
  aspect-ratio: 6/3;
  max-height: 150px;
  max-width: 250px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.lense__item .lense__itemName > div[data-v-6635b53c] {
  text-align: center;
}
.lensType__items[data-v-6635b53c] {
  display: flex;
  flex-direction: column;
}
.lensType__item[data-v-6635b53c] {
  display: flex;
  padding: 5px;
  margin: 5px;
  border: 1px solid #E5E5E5;
  justify-content: space-between;
}
.lensType__image[data-v-6635b53c] {
  width: 20%;
  padding: 5px;
  aspect-ratio: auto;
}
.productTitle[data-v-6635b53c] {
  font-size: 1.2rem;
  font-weight: bold;
}
.lensType__properties[data-v-6635b53c] {
  width: 60%;
  padding: 5px;
  aspect-ratio: auto;
}
.lensType__price[data-v-6635b53c] {
  width: 20%;
  padding: 5px;
}
.lensTypeBlock__item[data-v-6635b53c] {
  display: flex;
  align-items: center;
  margin: 10px 0;
}
.lensTypeBlock__item .lensTypeBlock__itemName[data-v-6635b53c] {
  width: 100%;
  aspect-ratio: 4/3;
  max-height: 150px;
  max-width: 150px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.lensTypeBlock__item .lensTypeBlock__itemName > div[data-v-6635b53c] {
  text-align: center;
}
.paramsWrapper[data-v-6635b53c] {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  border: 1px solid #d0d4db;
}
@media all and (max-width: 950px) {
.paramsWrapper[data-v-6635b53c] {
    flex-direction: column;
}
}
@media all and (min-width: 950px) {
.paramsWrapper[data-v-6635b53c] {
    flex-direction: row;
}
}
.paramsWrapper .paramsWrapperItem[data-v-6635b53c] {
  flex: 1;
  padding: 5px;
}
@media all and (max-width: 950px) {
.paramsWrapper .paramsWrapperItem[data-v-6635b53c] {
    width: 100%;
}
}
@media all and (min-width: 950px) {
.paramsWrapper .paramsWrapperItem[data-v-6635b53c] {
    width: auto;
}
}
.addToCartWrapper[data-v-6635b53c] {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 10px;
}
.rightPartHeaderWrapper[data-v-6635b53c] {
  display: flex;
  justify-content: space-between;
}
.rightPartHeaderWrapper h2[data-v-6635b53c] {
  font-size: 2rem;
}
.rightPartHeaderWrapper .close[data-v-6635b53c] {
  display: block;
  padding: 5px;
  margin: 5px;
  border: 1px solid #d0d4db;
  background-color: #ffffff;
  cursor: pointer;
}
.priceData td[data-v-6635b53c] {
  padding: 10px;
}
.goBack[data-v-6635b53c] {
  cursor: pointer;
  font-weight: bold;
}
.goBack[data-v-6635b53c]:hover {
  cursor: pointer;
  background-color: #ffffff;
}
.helpText[data-v-6635b53c] {
  font-weight: bold;
}
.brand-item-unselected[data-v-6635b53c]:hover {
  cursor: pointer;
  background-color: #d0d4db;
}
.bbrand__itemUnselected[data-v-6635b53c]:hover {
  cursor: pointer;
  background-color: #d0d4db;
}


.o__wrapper[data-v-929fb582] {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  padding: 10px;
  align-items: center;
  border-bottom: 1px solid #c5c5c5;
}
.v__wrapper[data-v-929fb582] {
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: center;
}
.el__left[data-v-929fb582] {
  width: 50%;
  padding: 5px;
  text-align: right;
}
.el__right[data-v-929fb582] {
  width: 50%;
  padding: 10px;
}
.e__wrapper[data-v-929fb582] {
  display: flex;
  flex-direction: row;
}
.e__eyes[data-v-929fb582] {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 10px;
}
.e__eyes[data-v-929fb582]:hover {
  cursor: pointer;
}
.variants[data-v-929fb582] {
  padding: 2px;
}
.variants *[data-v-929fb582] {
  padding: 3px;
}
.required-field[data-v-929fb582] {
  background-color: red;
}
.alert[data-v-929fb582] {
  padding: 20px;
  background-color: #f44336; /* Red */
  color: white;
  margin-bottom: 15px;
}
.added_to_cart[data-v-929fb582] {
  border: 2px solid #007eef;
  padding: 10px;
  margin: 10px;
  text-align: center;
  font-size: 14px;
  font-weight: bold;
}
.select-style[data-v-929fb582] {
  font-size: 18px;
}

/**
 * Swiper 9.2.3
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2023 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: April 17, 2023
 */

@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, 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');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper,swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide,swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,swiper-container:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}

.group-wrapper[data-v-740980fc] {
    margin: 10px 0;
}
.group-header[data-v-740980fc] {
    color: #333;
    font-size: 1.5rem;
    font-weight: 400;
    font-family: "Bebas Neue Cyrillic", sans-serif;
    line-height: 1;
    padding-bottom: 12px;
    border-bottom: 2px solid #007eef;
}
.brand-item[data-v-740980fc] {
    min-height: 100px;
    margin: 10px;
    display: flex;
    flex-direction: column;
    cursor: pointer;
    border-radius: 5px;
    background-color: #fff;
    transition: .3s all ease;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.brand-item-selected[data-v-740980fc] {
    box-shadow: 0 0 10px rgb(0 126 239 / 20%);
    border: 1px solid #007eef;
    background-color: #007eef;
    color: white;
}
.brand-item-selected .productPrice[data-v-740980fc] {
    color: white !important;
}
.brand-item-unselected[data-v-740980fc] {
    border: 1px solid #e0e0e0;
}
.productTitle[data-v-740980fc] {
    padding: 5px;
    text-align: center;
}
.ProductPriceWrapper[data-v-740980fc] {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 5px;
}
.productPrice[data-v-740980fc] {
    white-space: nowrap;
    color: #007eef;
    font-weight: bold;
}
.productPriceInfo[data-v-740980fc] {
    font-size: 12px;
    color: #999;
}
.productProperties[data-v-740980fc] {
    font-size: 12px;
}
.productPropertyRow[data-v-740980fc] {
    border-bottom: 1px dashed #e0e0e0;
}
.productPropertyRow[data-v-740980fc]:first-child {
    border-top: 1px dashed #e0e0e0;
}
.additionalParamsWrapper[data-v-740980fc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
.additionalParamsWrapper select[data-v-740980fc] {
    width: 100%;
    border: 1px solid #e0e0e0;
    padding: 5px;
    margin: 5px 0;
}
.additionalParamsWrapper .paramsWrapperItem[data-v-740980fc] {
    flex: 1;
    padding: 5px;
}
.productPropertyRow td[data-v-740980fc] {
    padding: 3px 0;
}
.paramsWrapperItemWidth[data-v-740980fc] {
    max-width: 400px;
}
.helpBlock[data-v-740980fc] {
    display: flex;
}
.helpBlock label[data-v-740980fc], .helpBlock div[data-v-740980fc] {
    padding: 5px;
}
.priceDataName[data-v-740980fc] {
    padding: 5px;
    text-align: right;
}
.priceDataValue[data-v-740980fc] {
    padding: 5px;
    text-align: right;
}
.spacer[data-v-740980fc] {
    height: 30px;
}
.productError[data-v-740980fc] {
    margin: 20px 0;
}
.popupLinks[data-v-740980fc] {
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    margin: 10px;
}
.popupLinks button[data-v-740980fc] {
    padding: 5px;
}
.modal-overlay[data-v-740980fc] {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 500;
}
.modal-content[data-v-740980fc] {
    background-color: white;
    overflow-y: scroll;
    height: 80%;
    width: 80%;
    padding: 5%;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDdEI7QUFFQTtJQUNJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsOEJBQThCO0lBQzlCLG1CQUFtQjtJQUNuQixRQUFRO0FBQ1o7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsaUJBQWlCO0FBQ3JCO0FBRUE7SUFDSSxlQUFlO0lBQ2YsV0FBVztBQUNmO0FBRUE7SUFDSSxlQUFlO0FBQ25CO0FBRUE7SUFDSSxpQ0FBaUM7QUFDckM7QUFFQTtJQUNJLDhCQUE4QjtBQUNsQztBQUVBO0lBQ0ksYUFBYTtJQUNiLGVBQWU7SUFDZixtQkFBbUI7QUFDdkI7QUFFQTtJQUNJLFdBQVc7SUFDWCx5QkFBeUI7SUFDekIsWUFBWTtJQUNaLGFBQWE7QUFDakI7QUFFQTtJQUNJLE9BQU87SUFDUCxZQUFZO0FBQ2hCO0FBRUE7SUFDSSxjQUFjO0FBQ2xCO0FBRUE7SUFDSSxnQkFBZ0I7QUFDcEI7QUFFQTtJQUNJLGFBQWE7QUFDakI7QUFFQTtJQUNJLFlBQVk7QUFDaEI7QUFFQTtJQUNJLFlBQVk7SUFDWixpQkFBaUI7QUFDckI7QUFFQTtJQUNJLFlBQVk7SUFDWixpQkFBaUI7QUFDckI7QUFFQTtJQUNJLFlBQVk7QUFDaEI7QUFFQTtJQUNJLGNBQWM7QUFDbEI7QUFFQTtJQUNJLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsNkJBQTZCO0lBQzdCLFlBQVk7QUFDaEI7QUFFQTtJQUNJLFlBQVk7QUFDaEI7QUFFQTtJQUNJLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixXQUFXO0lBQ1gsWUFBWTtJQUNaLE9BQU87SUFDUCxNQUFNO0lBQ04sb0NBQW9DO0lBQ3BDLFlBQVk7QUFDaEI7QUFFQTtJQUNJLHVCQUF1QjtJQUN2QixrQkFBa0I7SUFDbEIsV0FBVztJQUNYLFVBQVU7SUFDVixXQUFXO0FBQ2YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9wcm9kdWN0X3Z1ZS8uL25vZGVfbW9kdWxlcy92dWUtbG9hZGluZy1vdmVybGF5L2Rpc3QvdnVlLWxvYWRpbmcuY3NzIiwid2VicGFjazovL3Byb2R1Y3RfdnVlLy4vbm9kZV9tb2R1bGVzL3N3ZWV0YWxlcnQyL2Rpc3Qvc3dlZXRhbGVydDIubWluLmNzcyIsIndlYnBhY2s6Ly9wcm9kdWN0X3Z1ZS8uL2Fzc2V0cy9qcy9Qcm9kdWN0UGFyYW1zU2VsZWN0b3IudnVlIiwid2VicGFjazovL3Byb2R1Y3RfdnVlLy4vYXNzZXRzL0xvYWRpbmdBbmltYXRpb24udnVlIiwid2VicGFjazovL3Byb2R1Y3RfdnVlLy4vYXNzZXRzL2pzL1Byb2R1Y3RWdWVGdWxsU2NwZWVuLnZ1ZSIsIndlYnBhY2s6Ly9wcm9kdWN0X3Z1ZS8uL2Fzc2V0cy9qcy9Qcm9kdWN0VnVlLnZ1ZSIsIndlYnBhY2s6Ly9wcm9kdWN0X3Z1ZS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvc3dpcGVyLm1pbi5jc3MiLCJ3ZWJwYWNrOi8vcHJvZHVjdF92dWUvLi9hc3NldHMvanMvUHJvZHVjdFNlbGVjdEZ1bGwudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIi52bGQtc2hvd24ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udmxkLW92ZXJsYXkge1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogbm9uZTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbi52bGQtb3ZlcmxheS5pcy1hY3RpdmUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4udmxkLW92ZXJsYXkuaXMtZnVsbC1wYWdlIHtcbiAgei1pbmRleDogOTk5OTtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuXG4udmxkLW92ZXJsYXkgLnZsZC1iYWNrZ3JvdW5kIHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLnZsZC1vdmVybGF5IC52bGQtaWNvbiwgLnZsZC1wYXJlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiIsIi5zd2FsMi1wb3B1cC5zd2FsMi10b2FzdHtib3gtc2l6aW5nOmJvcmRlci1ib3g7Z3JpZC1jb2x1bW46MS80ICFpbXBvcnRhbnQ7Z3JpZC1yb3c6MS80ICFpbXBvcnRhbnQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbi1jb250ZW50IGF1dG8gbWluLWNvbnRlbnQ7cGFkZGluZzoxZW07b3ZlcmZsb3cteTpoaWRkZW47YmFja2dyb3VuZDojZmZmO2JveC1zaGFkb3c6MCAwIDFweCByZ2JhKDAsMCwwLC4wNzUpLDAgMXB4IDJweCByZ2JhKDAsMCwwLC4wNzUpLDFweCAycHggNHB4IHJnYmEoMCwwLDAsLjA3NSksMXB4IDNweCA4cHggcmdiYSgwLDAsMCwuMDc1KSwycHggNHB4IDE2cHggcmdiYSgwLDAsMCwuMDc1KTtwb2ludGVyLWV2ZW50czphbGx9LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0Pip7Z3JpZC1jb2x1bW46Mn0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLXRpdGxle21hcmdpbjouNWVtIDFlbTtwYWRkaW5nOjA7Zm9udC1zaXplOjFlbTt0ZXh0LWFsaWduOmluaXRpYWx9LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1sb2FkaW5ne2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1pbnB1dHtoZWlnaHQ6MmVtO21hcmdpbjouNWVtO2ZvbnQtc2l6ZToxZW19LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi12YWxpZGF0aW9uLW1lc3NhZ2V7Zm9udC1zaXplOjFlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWZvb3RlcnttYXJnaW46LjVlbSAwIDA7cGFkZGluZzouNWVtIDAgMDtmb250LXNpemU6LjhlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWNsb3Nle2dyaWQtY29sdW1uOjMvMztncmlkLXJvdzoxLzk5O2FsaWduLXNlbGY6Y2VudGVyO3dpZHRoOi44ZW07aGVpZ2h0Oi44ZW07bWFyZ2luOjA7Zm9udC1zaXplOjJlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWh0bWwtY29udGFpbmVye21hcmdpbjouNWVtIDFlbTtwYWRkaW5nOjA7b3ZlcmZsb3c6aW5pdGlhbDtmb250LXNpemU6MWVtO3RleHQtYWxpZ246aW5pdGlhbH0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWh0bWwtY29udGFpbmVyOmVtcHR5e3BhZGRpbmc6MH0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWxvYWRlcntncmlkLWNvbHVtbjoxO2dyaWQtcm93OjEvOTk7YWxpZ24tc2VsZjpjZW50ZXI7d2lkdGg6MmVtO2hlaWdodDoyZW07bWFyZ2luOi4yNWVtfS5zd2FsMi1wb3B1cC5zd2FsMi10b2FzdCAuc3dhbDItaWNvbntncmlkLWNvbHVtbjoxO2dyaWQtcm93OjEvOTk7YWxpZ24tc2VsZjpjZW50ZXI7d2lkdGg6MmVtO21pbi13aWR0aDoyZW07aGVpZ2h0OjJlbTttYXJnaW46MCAuNWVtIDAgMH0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWljb24gLnN3YWwyLWljb24tY29udGVudHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZToxLjhlbTtmb250LXdlaWdodDpib2xkfS5zd2FsMi1wb3B1cC5zd2FsMi10b2FzdCAuc3dhbDItaWNvbi5zd2FsMi1zdWNjZXNzIC5zd2FsMi1zdWNjZXNzLXJpbmd7d2lkdGg6MmVtO2hlaWdodDoyZW19LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1pY29uLnN3YWwyLWVycm9yIFtjbGFzc149c3dhbDIteC1tYXJrLWxpbmVde3RvcDouODc1ZW07d2lkdGg6MS4zNzVlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWljb24uc3dhbDItZXJyb3IgW2NsYXNzXj1zd2FsMi14LW1hcmstbGluZV1bY2xhc3MkPWxlZnRde2xlZnQ6LjMxMjVlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWljb24uc3dhbDItZXJyb3IgW2NsYXNzXj1zd2FsMi14LW1hcmstbGluZV1bY2xhc3MkPXJpZ2h0XXtyaWdodDouMzEyNWVtfS5zd2FsMi1wb3B1cC5zd2FsMi10b2FzdCAuc3dhbDItYWN0aW9uc3tqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtoZWlnaHQ6YXV0bzttYXJnaW46MDttYXJnaW4tdG9wOi41ZW07cGFkZGluZzowIC41ZW19LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1zdHlsZWR7bWFyZ2luOi4yNWVtIC41ZW07cGFkZGluZzouNGVtIC42ZW07Zm9udC1zaXplOjFlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLXN1Y2Nlc3N7Ym9yZGVyLWNvbG9yOiNhNWRjODZ9LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1zdWNjZXNzIFtjbGFzc149c3dhbDItc3VjY2Vzcy1jaXJjdWxhci1saW5lXXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxLjZlbTtoZWlnaHQ6M2VtO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO2JvcmRlci1yYWRpdXM6NTAlfS5zd2FsMi1wb3B1cC5zd2FsMi10b2FzdCAuc3dhbDItc3VjY2VzcyBbY2xhc3NePXN3YWwyLXN1Y2Nlc3MtY2lyY3VsYXItbGluZV1bY2xhc3MkPWxlZnRde3RvcDotMC44ZW07bGVmdDotMC41ZW07dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO3RyYW5zZm9ybS1vcmlnaW46MmVtIDJlbTtib3JkZXItcmFkaXVzOjRlbSAwIDAgNGVtfS5zd2FsMi1wb3B1cC5zd2FsMi10b2FzdCAuc3dhbDItc3VjY2VzcyBbY2xhc3NePXN3YWwyLXN1Y2Nlc3MtY2lyY3VsYXItbGluZV1bY2xhc3MkPXJpZ2h0XXt0b3A6LTAuMjVlbTtsZWZ0Oi45Mzc1ZW07dHJhbnNmb3JtLW9yaWdpbjowIDEuNWVtO2JvcmRlci1yYWRpdXM6MCA0ZW0gNGVtIDB9LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1zdWNjZXNzIC5zd2FsMi1zdWNjZXNzLXJpbmd7d2lkdGg6MmVtO2hlaWdodDoyZW19LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1zdWNjZXNzIC5zd2FsMi1zdWNjZXNzLWZpeHt0b3A6MDtsZWZ0Oi40Mzc1ZW07d2lkdGg6LjQzNzVlbTtoZWlnaHQ6Mi42ODc1ZW19LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1zdWNjZXNzIFtjbGFzc149c3dhbDItc3VjY2Vzcy1saW5lXXtoZWlnaHQ6LjMxMjVlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLXN1Y2Nlc3MgW2NsYXNzXj1zd2FsMi1zdWNjZXNzLWxpbmVdW2NsYXNzJD10aXBde3RvcDoxLjEyNWVtO2xlZnQ6LjE4NzVlbTt3aWR0aDouNzVlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLXN1Y2Nlc3MgW2NsYXNzXj1zd2FsMi1zdWNjZXNzLWxpbmVdW2NsYXNzJD1sb25nXXt0b3A6LjkzNzVlbTtyaWdodDouMTg3NWVtO3dpZHRoOjEuMzc1ZW19LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1zdWNjZXNzLnN3YWwyLWljb24tc2hvdyAuc3dhbDItc3VjY2Vzcy1saW5lLXRpcHthbmltYXRpb246c3dhbDItdG9hc3QtYW5pbWF0ZS1zdWNjZXNzLWxpbmUtdGlwIC43NXN9LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1zdWNjZXNzLnN3YWwyLWljb24tc2hvdyAuc3dhbDItc3VjY2Vzcy1saW5lLWxvbmd7YW5pbWF0aW9uOnN3YWwyLXRvYXN0LWFuaW1hdGUtc3VjY2Vzcy1saW5lLWxvbmcgLjc1c30uc3dhbDItcG9wdXAuc3dhbDItdG9hc3Quc3dhbDItc2hvd3thbmltYXRpb246c3dhbDItdG9hc3Qtc2hvdyAuNXN9LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0LnN3YWwyLWhpZGV7YW5pbWF0aW9uOnN3YWwyLXRvYXN0LWhpZGUgLjFzIGZvcndhcmRzfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKXtkaXNwbGF5OmdyaWQ7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDYwO2luc2V0OjA7Ym94LXNpemluZzpib3JkZXItYm94O2dyaWQtdGVtcGxhdGUtYXJlYXM6XCJ0b3Atc3RhcnQgICAgIHRvcCAgICAgICAgICAgIHRvcC1lbmRcIiBcImNlbnRlci1zdGFydCAgY2VudGVyICAgICAgICAgY2VudGVyLWVuZFwiIFwiYm90dG9tLXN0YXJ0ICBib3R0b20tY2VudGVyICBib3R0b20tZW5kXCI7Z3JpZC10ZW1wbGF0ZS1yb3dzOm1pbm1heChtaW4tY29udGVudCwgYXV0bykgbWlubWF4KG1pbi1jb250ZW50LCBhdXRvKSBtaW5tYXgobWluLWNvbnRlbnQsIGF1dG8pO2hlaWdodDoxMDAlO3BhZGRpbmc6LjYyNWVtO292ZXJmbG93LXg6aGlkZGVuO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMXM7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLWJhY2tkcm9wLXNob3csZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLW5vYW5pbWF0aW9ue2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNCl9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLWJhY2tkcm9wLWhpZGV7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApICFpbXBvcnRhbnR9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLXRvcC1zdGFydCxkaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItY2VudGVyLXN0YXJ0LGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsMi1ib3R0b20tc3RhcnR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLCAxZnIpIGF1dG8gYXV0b31kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItdG9wLGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsMi1jZW50ZXIsZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLWJvdHRvbXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6YXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsMi10b3AtZW5kLGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsMi1jZW50ZXItZW5kLGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsMi1ib3R0b20tZW5ke2dyaWQtdGVtcGxhdGUtY29sdW1uczphdXRvIGF1dG8gbWlubWF4KDAsIDFmcil9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLXRvcC1zdGFydD4uc3dhbDItcG9wdXB7YWxpZ24tc2VsZjpzdGFydH1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItdG9wPi5zd2FsMi1wb3B1cHtncmlkLWNvbHVtbjoyO2FsaWduLXNlbGY6c3RhcnQ7anVzdGlmeS1zZWxmOmNlbnRlcn1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItdG9wLWVuZD4uc3dhbDItcG9wdXAsZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLXRvcC1yaWdodD4uc3dhbDItcG9wdXB7Z3JpZC1jb2x1bW46MzthbGlnbi1zZWxmOnN0YXJ0O2p1c3RpZnktc2VsZjplbmR9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLWNlbnRlci1zdGFydD4uc3dhbDItcG9wdXAsZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLWNlbnRlci1sZWZ0Pi5zd2FsMi1wb3B1cHtncmlkLXJvdzoyO2FsaWduLXNlbGY6Y2VudGVyfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsMi1jZW50ZXI+LnN3YWwyLXBvcHVwe2dyaWQtY29sdW1uOjI7Z3JpZC1yb3c6MjthbGlnbi1zZWxmOmNlbnRlcjtqdXN0aWZ5LXNlbGY6Y2VudGVyfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsMi1jZW50ZXItZW5kPi5zd2FsMi1wb3B1cCxkaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItY2VudGVyLXJpZ2h0Pi5zd2FsMi1wb3B1cHtncmlkLWNvbHVtbjozO2dyaWQtcm93OjI7YWxpZ24tc2VsZjpjZW50ZXI7anVzdGlmeS1zZWxmOmVuZH1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItYm90dG9tLXN0YXJ0Pi5zd2FsMi1wb3B1cCxkaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItYm90dG9tLWxlZnQ+LnN3YWwyLXBvcHVwe2dyaWQtY29sdW1uOjE7Z3JpZC1yb3c6MzthbGlnbi1zZWxmOmVuZH1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItYm90dG9tPi5zd2FsMi1wb3B1cHtncmlkLWNvbHVtbjoyO2dyaWQtcm93OjM7anVzdGlmeS1zZWxmOmNlbnRlcjthbGlnbi1zZWxmOmVuZH1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItYm90dG9tLWVuZD4uc3dhbDItcG9wdXAsZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLWJvdHRvbS1yaWdodD4uc3dhbDItcG9wdXB7Z3JpZC1jb2x1bW46MztncmlkLXJvdzozO2FsaWduLXNlbGY6ZW5kO2p1c3RpZnktc2VsZjplbmR9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLWdyb3ctcm93Pi5zd2FsMi1wb3B1cCxkaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItZ3Jvdy1mdWxsc2NyZWVuPi5zd2FsMi1wb3B1cHtncmlkLWNvbHVtbjoxLzQ7d2lkdGg6MTAwJX1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItZ3Jvdy1jb2x1bW4+LnN3YWwyLXBvcHVwLGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsMi1ncm93LWZ1bGxzY3JlZW4+LnN3YWwyLXBvcHVwe2dyaWQtcm93OjEvNDthbGlnbi1zZWxmOnN0cmV0Y2h9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLW5vLXRyYW5zaXRpb257dHJhbnNpdGlvbjpub25lICFpbXBvcnRhbnR9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGRpdjp3aGVyZSguc3dhbDItcG9wdXApe2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLCAxMDAlKTt3aWR0aDozMmVtO21heC13aWR0aDoxMDAlO3BhZGRpbmc6MCAwIDEuMjVlbTtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjVweDtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzU0NTQ1NDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZToxcmVtfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBkaXY6d2hlcmUoLnN3YWwyLXBvcHVwKTpmb2N1c3tvdXRsaW5lOm5vbmV9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGRpdjp3aGVyZSguc3dhbDItcG9wdXApLnN3YWwyLWxvYWRpbmd7b3ZlcmZsb3cteTpoaWRkZW59ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGgyOndoZXJlKC5zd2FsMi10aXRsZSl7cG9zaXRpb246cmVsYXRpdmU7bWF4LXdpZHRoOjEwMCU7bWFyZ2luOjA7cGFkZGluZzouOGVtIDFlbSAwO2NvbG9yOmluaGVyaXQ7Zm9udC1zaXplOjEuODc1ZW07Zm9udC13ZWlnaHQ6NjAwO3RleHQtYWxpZ246Y2VudGVyO3RleHQtdHJhbnNmb3JtOm5vbmU7d29yZC13cmFwOmJyZWFrLXdvcmR9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGRpdjp3aGVyZSguc3dhbDItYWN0aW9ucyl7ZGlzcGxheTpmbGV4O3otaW5kZXg6MTtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZmxleC13cmFwOndyYXA7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6YXV0bzttYXJnaW46MS4yNWVtIGF1dG8gMDtwYWRkaW5nOjB9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGRpdjp3aGVyZSguc3dhbDItYWN0aW9ucyk6bm90KC5zd2FsMi1sb2FkaW5nKSAuc3dhbDItc3R5bGVkW2Rpc2FibGVkXXtvcGFjaXR5Oi40fWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBkaXY6d2hlcmUoLnN3YWwyLWFjdGlvbnMpOm5vdCguc3dhbDItbG9hZGluZykgLnN3YWwyLXN0eWxlZDpob3ZlcntiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudChyZ2JhKDAsIDAsIDAsIDAuMSksIHJnYmEoMCwgMCwgMCwgMC4xKSl9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGRpdjp3aGVyZSguc3dhbDItYWN0aW9ucyk6bm90KC5zd2FsMi1sb2FkaW5nKSAuc3dhbDItc3R5bGVkOmFjdGl2ZXtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudChyZ2JhKDAsIDAsIDAsIDAuMiksIHJnYmEoMCwgMCwgMCwgMC4yKSl9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGRpdjp3aGVyZSguc3dhbDItbG9hZGVyKXtkaXNwbGF5Om5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6Mi4yZW07aGVpZ2h0OjIuMmVtO21hcmdpbjowIDEuODc1ZW07YW5pbWF0aW9uOnN3YWwyLXJvdGF0ZS1sb2FkaW5nIDEuNXMgbGluZWFyIDBzIGluZmluaXRlIG5vcm1hbDtib3JkZXItd2lkdGg6LjI1ZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1yYWRpdXM6MTAwJTtib3JkZXItY29sb3I6IzI3NzhjNCByZ2JhKDAsMCwwLDApICMyNzc4YzQgcmdiYSgwLDAsMCwwKX1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgYnV0dG9uOndoZXJlKC5zd2FsMi1zdHlsZWQpe21hcmdpbjouMzEyNWVtO3BhZGRpbmc6LjYyNWVtIDEuMWVtO3RyYW5zaXRpb246Ym94LXNoYWRvdyAuMXM7Ym94LXNoYWRvdzowIDAgMCAzcHggcmdiYSgwLDAsMCwwKTtmb250LXdlaWdodDo1MDB9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGJ1dHRvbjp3aGVyZSguc3dhbDItc3R5bGVkKTpub3QoW2Rpc2FibGVkXSl7Y3Vyc29yOnBvaW50ZXJ9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGJ1dHRvbjp3aGVyZSguc3dhbDItc3R5bGVkKS5zd2FsMi1jb25maXJte2JvcmRlcjowO2JvcmRlci1yYWRpdXM6LjI1ZW07YmFja2dyb3VuZDppbml0aWFsO2JhY2tncm91bmQtY29sb3I6IzcwNjZlMDtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxZW19ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGJ1dHRvbjp3aGVyZSguc3dhbDItc3R5bGVkKS5zd2FsMi1jb25maXJtOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgM3B4IHJnYmEoMTEyLDEwMiwyMjQsLjUpfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBidXR0b246d2hlcmUoLnN3YWwyLXN0eWxlZCkuc3dhbDItZGVueXtib3JkZXI6MDtib3JkZXItcmFkaXVzOi4yNWVtO2JhY2tncm91bmQ6aW5pdGlhbDtiYWNrZ3JvdW5kLWNvbG9yOiNkYzM3NDE7Y29sb3I6I2ZmZjtmb250LXNpemU6MWVtfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBidXR0b246d2hlcmUoLnN3YWwyLXN0eWxlZCkuc3dhbDItZGVueTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDIyMCw1NSw2NSwuNSl9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGJ1dHRvbjp3aGVyZSguc3dhbDItc3R5bGVkKS5zd2FsMi1jYW5jZWx7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czouMjVlbTtiYWNrZ3JvdW5kOmluaXRpYWw7YmFja2dyb3VuZC1jb2xvcjojNmU3ODgxO2NvbG9yOiNmZmY7Zm9udC1zaXplOjFlbX1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgYnV0dG9uOndoZXJlKC5zd2FsMi1zdHlsZWQpLnN3YWwyLWNhbmNlbDpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDExMCwxMjAsMTI5LC41KX1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgYnV0dG9uOndoZXJlKC5zd2FsMi1zdHlsZWQpLnN3YWwyLWRlZmF1bHQtb3V0bGluZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDEwMCwxNTAsMjAwLC41KX1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgYnV0dG9uOndoZXJlKC5zd2FsMi1zdHlsZWQpOmZvY3Vze291dGxpbmU6bm9uZX1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgYnV0dG9uOndoZXJlKC5zd2FsMi1zdHlsZWQpOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBkaXY6d2hlcmUoLnN3YWwyLWZvb3Rlcil7bWFyZ2luOjFlbSAwIDA7cGFkZGluZzoxZW0gMWVtIDA7Ym9yZGVyLXRvcDoxcHggc29saWQgI2VlZTtjb2xvcjppbmhlcml0O2ZvbnQtc2l6ZToxZW07dGV4dC1hbGlnbjpjZW50ZXJ9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIC5zd2FsMi10aW1lci1wcm9ncmVzcy1iYXItY29udGFpbmVye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO2dyaWQtY29sdW1uOmF1dG8gIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NXB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NXB4fWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBkaXY6d2hlcmUoLnN3YWwyLXRpbWVyLXByb2dyZXNzLWJhcil7d2lkdGg6MTAwJTtoZWlnaHQ6LjI1ZW07YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4yKX1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgaW1nOndoZXJlKC5zd2FsMi1pbWFnZSl7bWF4LXdpZHRoOjEwMCU7bWFyZ2luOjJlbSBhdXRvIDFlbX1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgYnV0dG9uOndoZXJlKC5zd2FsMi1jbG9zZSl7ei1pbmRleDoyO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjEuMmVtO2hlaWdodDoxLjJlbTttYXJnaW4tdG9wOjA7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWJvdHRvbTotMS4yZW07cGFkZGluZzowO292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOmNvbG9yIC4xcyxib3gtc2hhZG93IC4xcztib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjVweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Y29sb3I6I2NjYztmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC1zaXplOjIuNWVtO2N1cnNvcjpwb2ludGVyO2p1c3RpZnktc2VsZjplbmR9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGJ1dHRvbjp3aGVyZSguc3dhbDItY2xvc2UpOmhvdmVye3RyYW5zZm9ybTpub25lO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtjb2xvcjojZjI3NDc0fWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBidXR0b246d2hlcmUoLnN3YWwyLWNsb3NlKTpmb2N1c3tvdXRsaW5lOm5vbmU7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAzcHggcmdiYSgxMDAsMTUwLDIwMCwuNSl9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGJ1dHRvbjp3aGVyZSguc3dhbDItY2xvc2UpOjotbW96LWZvY3VzLWlubmVye2JvcmRlcjowfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSAuc3dhbDItaHRtbC1jb250YWluZXJ7ei1pbmRleDoxO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjFlbSAxLjZlbSAuM2VtO3BhZGRpbmc6MDtvdmVyZmxvdzphdXRvO2NvbG9yOmluaGVyaXQ7Zm9udC1zaXplOjEuMTI1ZW07Zm9udC13ZWlnaHQ6bm9ybWFsO2xpbmUtaGVpZ2h0Om5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjt3b3JkLXdyYXA6YnJlYWstd29yZDt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGlucHV0OndoZXJlKC5zd2FsMi1pbnB1dCksZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGlucHV0OndoZXJlKC5zd2FsMi1maWxlKSxkaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgdGV4dGFyZWE6d2hlcmUoLnN3YWwyLXRleHRhcmVhKSxkaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgc2VsZWN0OndoZXJlKC5zd2FsMi1zZWxlY3QpLGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBkaXY6d2hlcmUoLnN3YWwyLXJhZGlvKSxkaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgbGFiZWw6d2hlcmUoLnN3YWwyLWNoZWNrYm94KXttYXJnaW46MWVtIDJlbSAzcHh9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGlucHV0OndoZXJlKC5zd2FsMi1pbnB1dCksZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGlucHV0OndoZXJlKC5zd2FsMi1maWxlKSxkaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgdGV4dGFyZWE6d2hlcmUoLnN3YWwyLXRleHRhcmVhKXtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6YXV0bzt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMXMsYm94LXNoYWRvdyAuMXM7Ym9yZGVyOjFweCBzb2xpZCAjZDlkOWQ5O2JvcmRlci1yYWRpdXM6LjE4NzVlbTtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDYpLDAgMCAwIDNweCByZ2JhKDAsMCwwLDApO2NvbG9yOmluaGVyaXQ7Zm9udC1zaXplOjEuMTI1ZW19ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGlucHV0OndoZXJlKC5zd2FsMi1pbnB1dCkuc3dhbDItaW5wdXRlcnJvcixkaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgaW5wdXQ6d2hlcmUoLnN3YWwyLWZpbGUpLnN3YWwyLWlucHV0ZXJyb3IsZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIHRleHRhcmVhOndoZXJlKC5zd2FsMi10ZXh0YXJlYSkuc3dhbDItaW5wdXRlcnJvcntib3JkZXItY29sb3I6I2YyNzQ3NCAhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAwIDJweCAjZjI3NDc0ICFpbXBvcnRhbnR9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGlucHV0OndoZXJlKC5zd2FsMi1pbnB1dCk6Zm9jdXMsZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGlucHV0OndoZXJlKC5zd2FsMi1maWxlKTpmb2N1cyxkaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgdGV4dGFyZWE6d2hlcmUoLnN3YWwyLXRleHRhcmVhKTpmb2N1c3tib3JkZXI6MXB4IHNvbGlkICNiNGRiZWQ7b3V0bGluZTpub25lO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA2KSwwIDAgMCAzcHggcmdiYSgxMDAsMTUwLDIwMCwuNSl9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIGlucHV0OndoZXJlKC5zd2FsMi1pbnB1dCk6OnBsYWNlaG9sZGVyLGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBpbnB1dDp3aGVyZSguc3dhbDItZmlsZSk6OnBsYWNlaG9sZGVyLGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSB0ZXh0YXJlYTp3aGVyZSguc3dhbDItdGV4dGFyZWEpOjpwbGFjZWhvbGRlcntjb2xvcjojY2NjfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSAuc3dhbDItcmFuZ2V7bWFyZ2luOjFlbSAyZW0gM3B4O2JhY2tncm91bmQ6I2ZmZn1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLXJhbmdlIGlucHV0e3dpZHRoOjgwJX1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLXJhbmdlIG91dHB1dHt3aWR0aDoyMCU7Y29sb3I6aW5oZXJpdDtmb250LXdlaWdodDo2MDA7dGV4dC1hbGlnbjpjZW50ZXJ9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIC5zd2FsMi1yYW5nZSBpbnB1dCxkaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLXJhbmdlIG91dHB1dHtoZWlnaHQ6Mi42MjVlbTtwYWRkaW5nOjA7Zm9udC1zaXplOjEuMTI1ZW07bGluZS1oZWlnaHQ6Mi42MjVlbX1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLWlucHV0e2hlaWdodDoyLjYyNWVtO3BhZGRpbmc6MCAuNzVlbX1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLWZpbGV7d2lkdGg6NzUlO21hcmdpbi1yaWdodDphdXRvO21hcmdpbi1sZWZ0OmF1dG87YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApO2ZvbnQtc2l6ZToxLjEyNWVtfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSAuc3dhbDItdGV4dGFyZWF7aGVpZ2h0OjYuNzVlbTtwYWRkaW5nOi43NWVtfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSAuc3dhbDItc2VsZWN0e21pbi13aWR0aDo1MCU7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzouMzc1ZW0gLjYyNWVtO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtjb2xvcjppbmhlcml0O2ZvbnQtc2l6ZToxLjEyNWVtfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSAuc3dhbDItcmFkaW8sZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIC5zd2FsMi1jaGVja2JveHthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6aW5oZXJpdH1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLXJhZGlvIGxhYmVsLGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSAuc3dhbDItY2hlY2tib3ggbGFiZWx7bWFyZ2luOjAgLjZlbTtmb250LXNpemU6MS4xMjVlbX1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLXJhZGlvIGlucHV0LGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSAuc3dhbDItY2hlY2tib3ggaW5wdXR7ZmxleC1zaHJpbms6MDttYXJnaW46MCAuNGVtfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBsYWJlbDp3aGVyZSguc3dhbDItaW5wdXQtbGFiZWwpe2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbjoxZW0gYXV0byAwfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBkaXY6d2hlcmUoLnN3YWwyLXZhbGlkYXRpb24tbWVzc2FnZSl7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjFlbSAwIDA7cGFkZGluZzouNjI1ZW07b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6I2YwZjBmMDtjb2xvcjojNjY2O2ZvbnQtc2l6ZToxZW07Zm9udC13ZWlnaHQ6MzAwfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSBkaXY6d2hlcmUoLnN3YWwyLXZhbGlkYXRpb24tbWVzc2FnZSk6OmJlZm9yZXtjb250ZW50OlwiIVwiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEuNWVtO21pbi13aWR0aDoxLjVlbTtoZWlnaHQ6MS41ZW07bWFyZ2luOjAgLjYyNWVtO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtY29sb3I6I2YyNzQ3NDtjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxLjVlbTt0ZXh0LWFsaWduOmNlbnRlcn1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLXByb2dyZXNzLXN0ZXBze2ZsZXgtd3JhcDp3cmFwO2FsaWduLWl0ZW1zOmNlbnRlcjttYXgtd2lkdGg6MTAwJTttYXJnaW46MS4yNWVtIGF1dG87cGFkZGluZzowO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwKTtmb250LXdlaWdodDo2MDB9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIC5zd2FsMi1wcm9ncmVzcy1zdGVwcyBsaXtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLXByb2dyZXNzLXN0ZXBzIC5zd2FsMi1wcm9ncmVzcy1zdGVwe3otaW5kZXg6MjA7ZmxleC1zaHJpbms6MDt3aWR0aDoyZW07aGVpZ2h0OjJlbTtib3JkZXItcmFkaXVzOjJlbTtiYWNrZ3JvdW5kOiMyNzc4YzQ7Y29sb3I6I2ZmZjtsaW5lLWhlaWdodDoyZW07dGV4dC1hbGlnbjpjZW50ZXJ9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIC5zd2FsMi1wcm9ncmVzcy1zdGVwcyAuc3dhbDItcHJvZ3Jlc3Mtc3RlcC5zd2FsMi1hY3RpdmUtcHJvZ3Jlc3Mtc3RlcHtiYWNrZ3JvdW5kOiMyNzc4YzR9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpIC5zd2FsMi1wcm9ncmVzcy1zdGVwcyAuc3dhbDItcHJvZ3Jlc3Mtc3RlcC5zd2FsMi1hY3RpdmUtcHJvZ3Jlc3Mtc3RlcH4uc3dhbDItcHJvZ3Jlc3Mtc3RlcHtiYWNrZ3JvdW5kOiNhZGQ4ZTY7Y29sb3I6I2ZmZn1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikgLnN3YWwyLXByb2dyZXNzLXN0ZXBzIC5zd2FsMi1wcm9ncmVzcy1zdGVwLnN3YWwyLWFjdGl2ZS1wcm9ncmVzcy1zdGVwfi5zd2FsMi1wcm9ncmVzcy1zdGVwLWxpbmV7YmFja2dyb3VuZDojYWRkOGU2fWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKSAuc3dhbDItcHJvZ3Jlc3Mtc3RlcHMgLnN3YWwyLXByb2dyZXNzLXN0ZXAtbGluZXt6LWluZGV4OjEwO2ZsZXgtc2hyaW5rOjA7d2lkdGg6Mi41ZW07aGVpZ2h0Oi40ZW07bWFyZ2luOjAgLTFweDtiYWNrZ3JvdW5kOiMyNzc4YzR9ZGl2OndoZXJlKC5zd2FsMi1pY29uKXtwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6NWVtO2hlaWdodDo1ZW07bWFyZ2luOjIuNWVtIGF1dG8gLjZlbTtib3JkZXI6MC4yNWVtIHNvbGlkIHJnYmEoMCwwLDAsMCk7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLWNvbG9yOiMwMDA7Zm9udC1mYW1pbHk6aW5oZXJpdDtsaW5lLWhlaWdodDo1ZW07Y3Vyc29yOmRlZmF1bHQ7dXNlci1zZWxlY3Q6bm9uZX1kaXY6d2hlcmUoLnN3YWwyLWljb24pIC5zd2FsMi1pY29uLWNvbnRlbnR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmb250LXNpemU6My43NWVtfWRpdjp3aGVyZSguc3dhbDItaWNvbikuc3dhbDItZXJyb3J7Ym9yZGVyLWNvbG9yOiNmMjc0NzQ7Y29sb3I6I2YyNzQ3NH1kaXY6d2hlcmUoLnN3YWwyLWljb24pLnN3YWwyLWVycm9yIC5zd2FsMi14LW1hcmt7cG9zaXRpb246cmVsYXRpdmU7ZmxleC1ncm93OjF9ZGl2OndoZXJlKC5zd2FsMi1pY29uKS5zd2FsMi1lcnJvciBbY2xhc3NePXN3YWwyLXgtbWFyay1saW5lXXtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoyLjMxMjVlbTt3aWR0aDoyLjkzNzVlbTtoZWlnaHQ6LjMxMjVlbTtib3JkZXItcmFkaXVzOi4xMjVlbTtiYWNrZ3JvdW5kLWNvbG9yOiNmMjc0NzR9ZGl2OndoZXJlKC5zd2FsMi1pY29uKS5zd2FsMi1lcnJvciBbY2xhc3NePXN3YWwyLXgtbWFyay1saW5lXVtjbGFzcyQ9bGVmdF17bGVmdDoxLjA2MjVlbTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX1kaXY6d2hlcmUoLnN3YWwyLWljb24pLnN3YWwyLWVycm9yIFtjbGFzc149c3dhbDIteC1tYXJrLWxpbmVdW2NsYXNzJD1yaWdodF17cmlnaHQ6MWVtO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX1kaXY6d2hlcmUoLnN3YWwyLWljb24pLnN3YWwyLWVycm9yLnN3YWwyLWljb24tc2hvd3thbmltYXRpb246c3dhbDItYW5pbWF0ZS1lcnJvci1pY29uIC41c31kaXY6d2hlcmUoLnN3YWwyLWljb24pLnN3YWwyLWVycm9yLnN3YWwyLWljb24tc2hvdyAuc3dhbDIteC1tYXJre2FuaW1hdGlvbjpzd2FsMi1hbmltYXRlLWVycm9yLXgtbWFyayAuNXN9ZGl2OndoZXJlKC5zd2FsMi1pY29uKS5zd2FsMi13YXJuaW5ne2JvcmRlci1jb2xvcjojZmFjZWE4O2NvbG9yOiNmOGJiODZ9ZGl2OndoZXJlKC5zd2FsMi1pY29uKS5zd2FsMi13YXJuaW5nLnN3YWwyLWljb24tc2hvd3thbmltYXRpb246c3dhbDItYW5pbWF0ZS1lcnJvci1pY29uIC41c31kaXY6d2hlcmUoLnN3YWwyLWljb24pLnN3YWwyLXdhcm5pbmcuc3dhbDItaWNvbi1zaG93IC5zd2FsMi1pY29uLWNvbnRlbnR7YW5pbWF0aW9uOnN3YWwyLWFuaW1hdGUtaS1tYXJrIC41c31kaXY6d2hlcmUoLnN3YWwyLWljb24pLnN3YWwyLWluZm97Ym9yZGVyLWNvbG9yOiM5ZGUwZjY7Y29sb3I6IzNmYzNlZX1kaXY6d2hlcmUoLnN3YWwyLWljb24pLnN3YWwyLWluZm8uc3dhbDItaWNvbi1zaG93e2FuaW1hdGlvbjpzd2FsMi1hbmltYXRlLWVycm9yLWljb24gLjVzfWRpdjp3aGVyZSguc3dhbDItaWNvbikuc3dhbDItaW5mby5zd2FsMi1pY29uLXNob3cgLnN3YWwyLWljb24tY29udGVudHthbmltYXRpb246c3dhbDItYW5pbWF0ZS1pLW1hcmsgLjhzfWRpdjp3aGVyZSguc3dhbDItaWNvbikuc3dhbDItcXVlc3Rpb257Ym9yZGVyLWNvbG9yOiNjOWRhZTE7Y29sb3I6Izg3YWRiZH1kaXY6d2hlcmUoLnN3YWwyLWljb24pLnN3YWwyLXF1ZXN0aW9uLnN3YWwyLWljb24tc2hvd3thbmltYXRpb246c3dhbDItYW5pbWF0ZS1lcnJvci1pY29uIC41c31kaXY6d2hlcmUoLnN3YWwyLWljb24pLnN3YWwyLXF1ZXN0aW9uLnN3YWwyLWljb24tc2hvdyAuc3dhbDItaWNvbi1jb250ZW50e2FuaW1hdGlvbjpzd2FsMi1hbmltYXRlLXF1ZXN0aW9uLW1hcmsgLjhzfWRpdjp3aGVyZSguc3dhbDItaWNvbikuc3dhbDItc3VjY2Vzc3tib3JkZXItY29sb3I6I2E1ZGM4Njtjb2xvcjojYTVkYzg2fWRpdjp3aGVyZSguc3dhbDItaWNvbikuc3dhbDItc3VjY2VzcyBbY2xhc3NePXN3YWwyLXN1Y2Nlc3MtY2lyY3VsYXItbGluZV17cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6My43NWVtO2hlaWdodDo3LjVlbTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtib3JkZXItcmFkaXVzOjUwJX1kaXY6d2hlcmUoLnN3YWwyLWljb24pLnN3YWwyLXN1Y2Nlc3MgW2NsYXNzXj1zd2FsMi1zdWNjZXNzLWNpcmN1bGFyLWxpbmVdW2NsYXNzJD1sZWZ0XXt0b3A6LTAuNDM3NWVtO2xlZnQ6LTIuMDYzNWVtO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm0tb3JpZ2luOjMuNzVlbSAzLjc1ZW07Ym9yZGVyLXJhZGl1czo3LjVlbSAwIDAgNy41ZW19ZGl2OndoZXJlKC5zd2FsMi1pY29uKS5zd2FsMi1zdWNjZXNzIFtjbGFzc149c3dhbDItc3VjY2Vzcy1jaXJjdWxhci1saW5lXVtjbGFzcyQ9cmlnaHRde3RvcDotMC42ODc1ZW07bGVmdDoxLjg3NWVtO3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTt0cmFuc2Zvcm0tb3JpZ2luOjAgMy43NWVtO2JvcmRlci1yYWRpdXM6MCA3LjVlbSA3LjVlbSAwfWRpdjp3aGVyZSguc3dhbDItaWNvbikuc3dhbDItc3VjY2VzcyAuc3dhbDItc3VjY2Vzcy1yaW5ne3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6Mjt0b3A6LTAuMjVlbTtsZWZ0Oi0wLjI1ZW07Ym94LXNpemluZzpjb250ZW50LWJveDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlcjouMjVlbSBzb2xpZCByZ2JhKDE2NSwyMjAsMTM0LC4zKTtib3JkZXItcmFkaXVzOjUwJX1kaXY6d2hlcmUoLnN3YWwyLWljb24pLnN3YWwyLXN1Y2Nlc3MgLnN3YWwyLXN1Y2Nlc3MtZml4e3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTt0b3A6LjVlbTtsZWZ0OjEuNjI1ZW07d2lkdGg6LjQzNzVlbTtoZWlnaHQ6NS42MjVlbTt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9ZGl2OndoZXJlKC5zd2FsMi1pY29uKS5zd2FsMi1zdWNjZXNzIFtjbGFzc149c3dhbDItc3VjY2Vzcy1saW5lXXtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MjtoZWlnaHQ6LjMxMjVlbTtib3JkZXItcmFkaXVzOi4xMjVlbTtiYWNrZ3JvdW5kLWNvbG9yOiNhNWRjODZ9ZGl2OndoZXJlKC5zd2FsMi1pY29uKS5zd2FsMi1zdWNjZXNzIFtjbGFzc149c3dhbDItc3VjY2Vzcy1saW5lXVtjbGFzcyQ9dGlwXXt0b3A6Mi44NzVlbTtsZWZ0Oi44MTI1ZW07d2lkdGg6MS41NjI1ZW07dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9ZGl2OndoZXJlKC5zd2FsMi1pY29uKS5zd2FsMi1zdWNjZXNzIFtjbGFzc149c3dhbDItc3VjY2Vzcy1saW5lXVtjbGFzcyQ9bG9uZ117dG9wOjIuMzc1ZW07cmlnaHQ6LjVlbTt3aWR0aDoyLjkzNzVlbTt0cmFuc2Zvcm06cm90YXRlKC00NWRlZyl9ZGl2OndoZXJlKC5zd2FsMi1pY29uKS5zd2FsMi1zdWNjZXNzLnN3YWwyLWljb24tc2hvdyAuc3dhbDItc3VjY2Vzcy1saW5lLXRpcHthbmltYXRpb246c3dhbDItYW5pbWF0ZS1zdWNjZXNzLWxpbmUtdGlwIC43NXN9ZGl2OndoZXJlKC5zd2FsMi1pY29uKS5zd2FsMi1zdWNjZXNzLnN3YWwyLWljb24tc2hvdyAuc3dhbDItc3VjY2Vzcy1saW5lLWxvbmd7YW5pbWF0aW9uOnN3YWwyLWFuaW1hdGUtc3VjY2Vzcy1saW5lLWxvbmcgLjc1c31kaXY6d2hlcmUoLnN3YWwyLWljb24pLnN3YWwyLXN1Y2Nlc3Muc3dhbDItaWNvbi1zaG93IC5zd2FsMi1zdWNjZXNzLWNpcmN1bGFyLWxpbmUtcmlnaHR7YW5pbWF0aW9uOnN3YWwyLXJvdGF0ZS1zdWNjZXNzLWNpcmN1bGFyLWxpbmUgNC4yNXMgZWFzZS1pbn1bY2xhc3NePXN3YWwyXXstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKX0uc3dhbDItc2hvd3thbmltYXRpb246c3dhbDItc2hvdyAuM3N9LnN3YWwyLWhpZGV7YW5pbWF0aW9uOnN3YWwyLWhpZGUgLjE1cyBmb3J3YXJkc30uc3dhbDItbm9hbmltYXRpb257dHJhbnNpdGlvbjpub25lfS5zd2FsMi1zY3JvbGxiYXItbWVhc3VyZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTk5OTlweDt3aWR0aDo1MHB4O2hlaWdodDo1MHB4O292ZXJmbG93OnNjcm9sbH0uc3dhbDItcnRsIC5zd2FsMi1jbG9zZXttYXJnaW4tcmlnaHQ6aW5pdGlhbDttYXJnaW4tbGVmdDowfS5zd2FsMi1ydGwgLnN3YWwyLXRpbWVyLXByb2dyZXNzLWJhcntyaWdodDowO2xlZnQ6YXV0b31Aa2V5ZnJhbWVzIHN3YWwyLXRvYXN0LXNob3d7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTAuNjI1ZW0pIHJvdGF0ZVooMmRlZyl9MzMle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHJvdGF0ZVooLTJkZWcpfTY2JXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwLjMxMjVlbSkgcm90YXRlWigyZGVnKX0xMDAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHJvdGF0ZVooMGRlZyl9fUBrZXlmcmFtZXMgc3dhbDItdG9hc3QtaGlkZXsxMDAle3RyYW5zZm9ybTpyb3RhdGVaKDFkZWcpO29wYWNpdHk6MH19QGtleWZyYW1lcyBzd2FsMi10b2FzdC1hbmltYXRlLXN1Y2Nlc3MtbGluZS10aXB7MCV7dG9wOi41NjI1ZW07bGVmdDouMDYyNWVtO3dpZHRoOjB9NTQle3RvcDouMTI1ZW07bGVmdDouMTI1ZW07d2lkdGg6MH03MCV7dG9wOi42MjVlbTtsZWZ0Oi0wLjI1ZW07d2lkdGg6MS42MjVlbX04NCV7dG9wOjEuMDYyNWVtO2xlZnQ6Ljc1ZW07d2lkdGg6LjVlbX0xMDAle3RvcDoxLjEyNWVtO2xlZnQ6LjE4NzVlbTt3aWR0aDouNzVlbX19QGtleWZyYW1lcyBzd2FsMi10b2FzdC1hbmltYXRlLXN1Y2Nlc3MtbGluZS1sb25nezAle3RvcDoxLjYyNWVtO3JpZ2h0OjEuMzc1ZW07d2lkdGg6MH02NSV7dG9wOjEuMjVlbTtyaWdodDouOTM3NWVtO3dpZHRoOjB9ODQle3RvcDouOTM3NWVtO3JpZ2h0OjA7d2lkdGg6MS4xMjVlbX0xMDAle3RvcDouOTM3NWVtO3JpZ2h0Oi4xODc1ZW07d2lkdGg6MS4zNzVlbX19QGtleWZyYW1lcyBzd2FsMi1zaG93ezAle3RyYW5zZm9ybTpzY2FsZSgwLjcpfTQ1JXt0cmFuc2Zvcm06c2NhbGUoMS4wNSl9ODAle3RyYW5zZm9ybTpzY2FsZSgwLjk1KX0xMDAle3RyYW5zZm9ybTpzY2FsZSgxKX19QGtleWZyYW1lcyBzd2FsMi1oaWRlezAle3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9MTAwJXt0cmFuc2Zvcm06c2NhbGUoMC41KTtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgc3dhbDItYW5pbWF0ZS1zdWNjZXNzLWxpbmUtdGlwezAle3RvcDoxLjE4NzVlbTtsZWZ0Oi4wNjI1ZW07d2lkdGg6MH01NCV7dG9wOjEuMDYyNWVtO2xlZnQ6LjEyNWVtO3dpZHRoOjB9NzAle3RvcDoyLjE4NzVlbTtsZWZ0Oi0wLjM3NWVtO3dpZHRoOjMuMTI1ZW19ODQle3RvcDozZW07bGVmdDoxLjMxMjVlbTt3aWR0aDoxLjA2MjVlbX0xMDAle3RvcDoyLjgxMjVlbTtsZWZ0Oi44MTI1ZW07d2lkdGg6MS41NjI1ZW19fUBrZXlmcmFtZXMgc3dhbDItYW5pbWF0ZS1zdWNjZXNzLWxpbmUtbG9uZ3swJXt0b3A6My4zNzVlbTtyaWdodDoyLjg3NWVtO3dpZHRoOjB9NjUle3RvcDozLjM3NWVtO3JpZ2h0OjIuODc1ZW07d2lkdGg6MH04NCV7dG9wOjIuMTg3NWVtO3JpZ2h0OjA7d2lkdGg6My40Mzc1ZW19MTAwJXt0b3A6Mi4zNzVlbTtyaWdodDouNWVtO3dpZHRoOjIuOTM3NWVtfX1Aa2V5ZnJhbWVzIHN3YWwyLXJvdGF0ZS1zdWNjZXNzLWNpcmN1bGFyLWxpbmV7MCV7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfTUle3RyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKX0xMiV7dHJhbnNmb3JtOnJvdGF0ZSgtNDA1ZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoLTQwNWRlZyl9fUBrZXlmcmFtZXMgc3dhbDItYW5pbWF0ZS1lcnJvci14LW1hcmt7MCV7bWFyZ2luLXRvcDoxLjYyNWVtO3RyYW5zZm9ybTpzY2FsZSgwLjQpO29wYWNpdHk6MH01MCV7bWFyZ2luLXRvcDoxLjYyNWVtO3RyYW5zZm9ybTpzY2FsZSgwLjQpO29wYWNpdHk6MH04MCV7bWFyZ2luLXRvcDotMC4zNzVlbTt0cmFuc2Zvcm06c2NhbGUoMS4xNSl9MTAwJXttYXJnaW4tdG9wOjA7dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX19QGtleWZyYW1lcyBzd2FsMi1hbmltYXRlLWVycm9yLWljb257MCV7dHJhbnNmb3JtOnJvdGF0ZVgoMTAwZGVnKTtvcGFjaXR5OjB9MTAwJXt0cmFuc2Zvcm06cm90YXRlWCgwZGVnKTtvcGFjaXR5OjF9fUBrZXlmcmFtZXMgc3dhbDItcm90YXRlLWxvYWRpbmd7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAle3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBzd2FsMi1hbmltYXRlLXF1ZXN0aW9uLW1hcmt7MCV7dHJhbnNmb3JtOnJvdGF0ZVkoLTM2MGRlZyl9MTAwJXt0cmFuc2Zvcm06cm90YXRlWSgwKX19QGtleWZyYW1lcyBzd2FsMi1hbmltYXRlLWktbWFya3swJXt0cmFuc2Zvcm06cm90YXRlWig0NWRlZyk7b3BhY2l0eTowfTI1JXt0cmFuc2Zvcm06cm90YXRlWigtMjVkZWcpO29wYWNpdHk6LjR9NTAle3RyYW5zZm9ybTpyb3RhdGVaKDE1ZGVnKTtvcGFjaXR5Oi44fTc1JXt0cmFuc2Zvcm06cm90YXRlWigtNWRlZyk7b3BhY2l0eToxfTEwMCV7dHJhbnNmb3JtOnJvdGF0ZVgoMCk7b3BhY2l0eToxfX1ib2R5LnN3YWwyLXNob3duOm5vdCguc3dhbDItbm8tYmFja2Ryb3ApOm5vdCguc3dhbDItdG9hc3Qtc2hvd24pe292ZXJmbG93OmhpZGRlbn1ib2R5LnN3YWwyLWhlaWdodC1hdXRve2hlaWdodDphdXRvICFpbXBvcnRhbnR9Ym9keS5zd2FsMi1uby1iYWNrZHJvcCAuc3dhbDItY29udGFpbmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwKSAhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmV9Ym9keS5zd2FsMi1uby1iYWNrZHJvcCAuc3dhbDItY29udGFpbmVyIC5zd2FsMi1wb3B1cHtwb2ludGVyLWV2ZW50czphbGx9Ym9keS5zd2FsMi1uby1iYWNrZHJvcCAuc3dhbDItY29udGFpbmVyIC5zd2FsMi1tb2RhbHtib3gtc2hhZG93OjAgMCAxMHB4IHJnYmEoMCwwLDAsLjQpfUBtZWRpYSBwcmludHtib2R5LnN3YWwyLXNob3duOm5vdCguc3dhbDItbm8tYmFja2Ryb3ApOm5vdCguc3dhbDItdG9hc3Qtc2hvd24pe292ZXJmbG93LXk6c2Nyb2xsICFpbXBvcnRhbnR9Ym9keS5zd2FsMi1zaG93bjpub3QoLnN3YWwyLW5vLWJhY2tkcm9wKTpub3QoLnN3YWwyLXRvYXN0LXNob3duKT5bYXJpYS1oaWRkZW49dHJ1ZV17ZGlzcGxheTpub25lfWJvZHkuc3dhbDItc2hvd246bm90KC5zd2FsMi1uby1iYWNrZHJvcCk6bm90KC5zd2FsMi10b2FzdC1zaG93bikgLnN3YWwyLWNvbnRhaW5lcntwb3NpdGlvbjpzdGF0aWMgIWltcG9ydGFudH19Ym9keS5zd2FsMi10b2FzdC1zaG93biAuc3dhbDItY29udGFpbmVye2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDozNjBweDttYXgtd2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7cG9pbnRlci1ldmVudHM6bm9uZX1ib2R5LnN3YWwyLXRvYXN0LXNob3duIC5zd2FsMi1jb250YWluZXIuc3dhbDItdG9we2luc2V0OjAgYXV0byBhdXRvIDUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX1ib2R5LnN3YWwyLXRvYXN0LXNob3duIC5zd2FsMi1jb250YWluZXIuc3dhbDItdG9wLWVuZCxib2R5LnN3YWwyLXRvYXN0LXNob3duIC5zd2FsMi1jb250YWluZXIuc3dhbDItdG9wLXJpZ2h0e2luc2V0OjAgMCBhdXRvIGF1dG99Ym9keS5zd2FsMi10b2FzdC1zaG93biAuc3dhbDItY29udGFpbmVyLnN3YWwyLXRvcC1zdGFydCxib2R5LnN3YWwyLXRvYXN0LXNob3duIC5zd2FsMi1jb250YWluZXIuc3dhbDItdG9wLWxlZnR7aW5zZXQ6MCBhdXRvIGF1dG8gMH1ib2R5LnN3YWwyLXRvYXN0LXNob3duIC5zd2FsMi1jb250YWluZXIuc3dhbDItY2VudGVyLXN0YXJ0LGJvZHkuc3dhbDItdG9hc3Qtc2hvd24gLnN3YWwyLWNvbnRhaW5lci5zd2FsMi1jZW50ZXItbGVmdHtpbnNldDo1MCUgYXV0byBhdXRvIDA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9Ym9keS5zd2FsMi10b2FzdC1zaG93biAuc3dhbDItY29udGFpbmVyLnN3YWwyLWNlbnRlcntpbnNldDo1MCUgYXV0byBhdXRvIDUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpfWJvZHkuc3dhbDItdG9hc3Qtc2hvd24gLnN3YWwyLWNvbnRhaW5lci5zd2FsMi1jZW50ZXItZW5kLGJvZHkuc3dhbDItdG9hc3Qtc2hvd24gLnN3YWwyLWNvbnRhaW5lci5zd2FsMi1jZW50ZXItcmlnaHR7aW5zZXQ6NTAlIDAgYXV0byBhdXRvO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfWJvZHkuc3dhbDItdG9hc3Qtc2hvd24gLnN3YWwyLWNvbnRhaW5lci5zd2FsMi1ib3R0b20tc3RhcnQsYm9keS5zd2FsMi10b2FzdC1zaG93biAuc3dhbDItY29udGFpbmVyLnN3YWwyLWJvdHRvbS1sZWZ0e2luc2V0OmF1dG8gYXV0byAwIDB9Ym9keS5zd2FsMi10b2FzdC1zaG93biAuc3dhbDItY29udGFpbmVyLnN3YWwyLWJvdHRvbXtpbnNldDphdXRvIGF1dG8gMCA1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSl9Ym9keS5zd2FsMi10b2FzdC1zaG93biAuc3dhbDItY29udGFpbmVyLnN3YWwyLWJvdHRvbS1lbmQsYm9keS5zd2FsMi10b2FzdC1zaG93biAuc3dhbDItY29udGFpbmVyLnN3YWwyLWJvdHRvbS1yaWdodHtpbnNldDphdXRvIDAgMCBhdXRvfVxuIiwiPHRlbXBsYXRlPlxuICA8dGFibGUgYm9yZGVyIGNsYXNzPVwidGFibGVQYXJhbXNcIj5cbiAgICA8dHI+XG4gICAgICA8dGQgcm93c3Bhbj1cIjJcIiBjbGFzcz1cImJnLWhlYWRcIj5cbiAgICAgICAgPGRpdj5PRDwvZGl2PlxuICAgICAgICA8ZGl2PtCf0YDQsNCy0LU8L2Rpdj5cbiAgICAgIDwvdGQ+XG4gICAgICA8dGQgY2xhc3M9XCJiZy1oZWFkXCI+XG4gICAgICAgIDxkaXY+PGIgY2xhc3M9XCJsYXRcIj5TUEg8L2I+IDxzcGFuIHYtaWY9XCIhcmVjZWlwdFwiIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvZGl2PlxuICAgICAgPC90ZD5cbiAgICAgIDx0ZCBjbGFzcz1cImJnLWhlYWRcIj5cbiAgICAgICAgPGRpdj48YiBjbGFzcz1cImxhdFwiPkNZTDwvYj4gPHNwYW4gdi1pZj1cIiFyZWNlaXB0XCIgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9kaXY+XG4gICAgICA8L3RkPlxuICAgICAgPHRkIGNsYXNzPVwiYmctaGVhZFwiIHYtaWY9XCJwYXJzZUZsb2F0KGN5bGluZGVyKSAhPT0gMFwiPlxuICAgICAgICA8ZGl2PjxiIGNsYXNzPVwibGF0XCI+QVhJUzwvYj48L2Rpdj5cbiAgICAgIDwvdGQ+XG4gICAgICA8dGQgY2xhc3M9XCJiZy1oZWFkXCI+PC90ZD5cbiAgICA8L3RyPlxuICAgIDx0cj5cbiAgICAgIDx0ZD5cbiAgICAgICAgPHNlbGVjdCBAY2hhbmdlPVwidXBkYXRlU3BoZXJlXCIgdi1tb2RlbD1cInNwaGVyZVwiPlxuICAgICAgICAgIDxvcHRpb24gdi1mb3I9XCJwcm9kdWN0UGFyYW0gaW4gcHJvZHVjdFBhcmFtcy5maXJzdFwiPlxuICAgICAgICAgICAge3sgcHJvZHVjdFBhcmFtIH19XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC90ZD5cbiAgICAgIDx0ZD5cbiAgICAgICAgPHNlbGVjdCBAY2hhbmdlPVwidXBkYXRlQ3lsaW5kZXJcIiB2LW1vZGVsPVwiY3lsaW5kZXJcIj5cbiAgICAgICAgICA8b3B0aW9uIHYtZm9yPVwicHJvZHVjdFBhcmFtIGluIHByb2R1Y3RQYXJhbXMuc2Vjb25kXCI+XG4gICAgICAgICAgICB7eyBwcm9kdWN0UGFyYW0gfX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L3RkPlxuICAgICAgPHRkIHYtaWY9XCJwYXJzZUZsb2F0KGN5bGluZGVyKSAhPT0gMFwiPlxuICAgICAgICA8c2VsZWN0IEBjaGFuZ2U9XCJ1cGRhdGVBeGlzXCIgdi1tb2RlbD1cImF4aXNcIj5cbiAgICAgICAgICA8b3B0aW9uIHYtZm9yPVwicHJvZHVjdFBhcmFtIGluIHByb2R1Y3RQYXJhbXMuYXhpc1wiPlxuICAgICAgICAgICAge3sgcHJvZHVjdFBhcmFtIH19XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC90ZD5cbiAgICAgIDx0ZD5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi13aGl0ZSBidG4tY2xlYXJcIiBAY2xpY2s9XCJjbGVhclwiIHR5cGU9XCJidXR0b25cIj7QntGH0LjRgdGC0LjRgtC4PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICAgIDx0cj5cbiAgICAgIDx0ZCBjbGFzcz1cImJnLWhlYWRcIj5cbiAgICAgICAgPGRpdj5PUzwvZGl2PlxuICAgICAgICA8ZGl2PtCb0ZbQstC1PC9kaXY+XG4gICAgICA8L3RkPlxuICAgICAgPHRkPlxuICAgICAgICA8c2VsZWN0IEBjaGFuZ2U9XCJ1cGRhdGVTcGhlcmUyXCIgdi1tb2RlbD1cInNwaGVyZTJcIj5cbiAgICAgICAgICA8b3B0aW9uIHYtZm9yPVwicHJvZHVjdFBhcmFtMiBpbiBwcm9kdWN0UGFyYW1zMi5maXJzdFwiPlxuICAgICAgICAgICAge3sgcHJvZHVjdFBhcmFtMiB9fVxuICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvdGQ+XG4gICAgICA8dGQ+XG4gICAgICAgIDxzZWxlY3QgQGNoYW5nZT1cInVwZGF0ZUN5bGluZGVyMlwiIHYtbW9kZWw9XCJjeWxpbmRlcjJcIj5cbiAgICAgICAgICA8b3B0aW9uIHYtZm9yPVwicHJvZHVjdFBhcmFtMiBpbiBwcm9kdWN0UGFyYW1zMi5zZWNvbmRcIj5cbiAgICAgICAgICAgIHt7IHByb2R1Y3RQYXJhbTIgfX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L3RkPlxuICAgICAgPHRkIHYtaWY9XCJwYXJzZUZsb2F0KGN5bGluZGVyKSAhPT0gMFwiPlxuICAgICAgICA8c2VsZWN0IEBjaGFuZ2U9XCJ1cGRhdGVBeGlzMlwiIHYtbW9kZWw9XCJheGlzMlwiPlxuICAgICAgICAgIDxvcHRpb24gdi1mb3I9XCJwcm9kdWN0UGFyYW0yIGluIHByb2R1Y3RQYXJhbXMyLmF4aXNcIj5cbiAgICAgICAgICAgIHt7IHByb2R1Y3RQYXJhbTIgfX1cbiAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L3RkPlxuICAgICAgPHRkPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXdoaXRlIGJ0bi1jbGVhclwiIEBjbGljaz1cImNsZWFyMlwiIHR5cGU9XCJidXR0b25cIj7QntGH0LjRgdGC0LjRgtC4PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3RhYmxlPlxuICA8IS0tICA8ZGl2IGNsYXNzPVwicGFyYW1zV3JhcHBlclwiIGlkPVwibGVuc2UtYnJhbmRcIj4tLT5cblxuICA8IS0tICAgIDxkaXYgY2xhc3M9XCJwYXJhbXNXcmFwcGVySXRlbSBwYXJhbXNXcmFwcGVyRXllc1wiPi0tPlxuICA8IS0tICAgICAgPGRpdiB2LWlmPVwiZXllID09PSAncmlnaHQnXCI+T0Q8L2Rpdj4tLT5cbiAgPCEtLSAgICAgIDxkaXYgdi1lbHNlPk9TPC9kaXY+LS0+XG4gIDwhLS0gICAgPC9kaXY+LS0+XG4gIDwhLS0gICAgPGRpdiBjbGFzcz1cInBhcmFtc1dyYXBwZXJJdGVtXCI+LS0+XG4gIDwhLS0gICAgICA8ZGl2PjxiIGNsYXNzPVwibGF0XCI+U1BIPC9iPiA8c3BhbiB2LWlmPVwiIXJlY2VpcHRcIiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj4tLT5cbiAgPCEtLSAgICAgIDxkaXY+LS0+XG4gIDwhLS0gICAgICAgIDxzZWxlY3QgQGNoYW5nZT1cInVwZGF0ZVNwaGVyZVwiIHYtbW9kZWw9XCJzcGhlcmVcIj4tLT5cbiAgPCEtLSAgICAgICAgICA8b3B0aW9uIHYtZm9yPVwicHJvZHVjdFBhcmFtIGluIHByb2R1Y3RQYXJhbXMuZmlyc3RcIj4tLT5cbiAgPCEtLSAgICAgICAgICAgIHt7IHByb2R1Y3RQYXJhbSB9fS0tPlxuICA8IS0tICAgICAgICAgIDwvb3B0aW9uPi0tPlxuICA8IS0tICAgICAgICA8L3NlbGVjdD4tLT5cbiAgPCEtLSAgICAgIDwvZGl2Pi0tPlxuICA8IS0tICAgIDwvZGl2Pi0tPlxuICA8IS0tICAgIDxkaXYgY2xhc3M9XCJwYXJhbXNXcmFwcGVySXRlbVwiPi0tPlxuICA8IS0tICAgICAgPGRpdj48YiBjbGFzcz1cImxhdFwiPkNZTDwvYj4gPHNwYW4gdi1pZj1cIiFyZWNlaXB0XCIgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9kaXY+LS0+XG4gIDwhLS0gICAgICA8ZGl2Pi0tPlxuICA8IS0tICAgICAgICA8c2VsZWN0IEBjaGFuZ2U9XCJ1cGRhdGVDeWxpbmRlclwiIHYtbW9kZWw9XCJjeWxpbmRlclwiPi0tPlxuICA8IS0tICAgICAgICAgIDxvcHRpb24gdi1mb3I9XCJwcm9kdWN0UGFyYW0gaW4gcHJvZHVjdFBhcmFtcy5zZWNvbmRcIj4tLT5cbiAgPCEtLSAgICAgICAgICAgIHt7IHByb2R1Y3RQYXJhbSB9fS0tPlxuICA8IS0tICAgICAgICAgIDwvb3B0aW9uPi0tPlxuICA8IS0tICAgICAgICA8L3NlbGVjdD4tLT5cbiAgPCEtLSAgICAgIDwvZGl2Pi0tPlxuICA8IS0tICAgIDwvZGl2Pi0tPlxuICA8IS0tICAgIDxkaXYgY2xhc3M9XCJwYXJhbXNXcmFwcGVySXRlbVwiPi0tPlxuICA8IS0tICAgICAgPGRpdiB2LWlmPVwicGFyc2VGbG9hdChjeWxpbmRlcikgIT09IDBcIj48YiBjbGFzcz1cImxhdFwiPkFYSVM8L2I+PC9kaXY+LS0+XG4gIDwhLS0gICAgICA8ZGl2IHYtaWY9XCJwYXJzZUZsb2F0KGN5bGluZGVyKSAhPT0gMFwiPi0tPlxuICA8IS0tICAgICAgICA8c2VsZWN0IEBjaGFuZ2U9XCJ1cGRhdGVBeGlzXCIgdi1tb2RlbD1cImF4aXNcIj4tLT5cbiAgPCEtLSAgICAgICAgICA8b3B0aW9uIHYtZm9yPVwicHJvZHVjdFBhcmFtIGluIHByb2R1Y3RQYXJhbXMuYXhpc1wiPi0tPlxuICA8IS0tICAgICAgICAgICAge3sgcHJvZHVjdFBhcmFtIH19LS0+XG4gIDwhLS0gICAgICAgICAgPC9vcHRpb24+LS0+XG4gIDwhLS0gICAgICAgIDwvc2VsZWN0Pi0tPlxuICA8IS0tICAgICAgPC9kaXY+LS0+XG4gIDwhLS0gICAgPC9kaXY+LS0+XG4gIDwhLS0gICAgPGRpdiBjbGFzcz1cInBhcmFtc1dyYXBwZXJJdGVtXCI+LS0+XG4gIDwhLS0gICAgICA8ZGl2PiZuYnNwOzwvZGl2Pi0tPlxuICA8IS0tICAgICAgPGRpdj4tLT5cbiAgPCEtLSAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4td2hpdGUgYnRuLWxnXCIgQGNsaWNrPVwiY2xlYXJcIj7QntGH0LjRgdGC0LjRgtC4PC9idXR0b24+LS0+XG4gIDwhLS0gICAgICA8L2Rpdj4tLT5cbiAgPCEtLSAgICA8L2Rpdj4tLT5cbiAgPCEtLSAgPC9kaXY+LS0+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiBcIlByb2R1Y3RQYXJhbXNTZWxlY3RvclwiLFxuICBwcm9wczoge1xuICAgIGV5ZToge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH0sXG4gICAgcHJvZHVjdFBhcmFtczoge30sXG4gICAgcHJvZHVjdFBhcmFtU3BoZXJlOiB7fSxcbiAgICBwcm9kdWN0UGFyYW1DeWxpbmRlcjoge30sXG4gICAgcHJvZHVjdFBhcmFtQXhpczoge30sXG4gICAgcHJvZHVjdFBhcmFtczI6IHt9LFxuICAgIHByb2R1Y3RQYXJhbVNwaGVyZTI6IHt9LFxuICAgIHByb2R1Y3RQYXJhbUN5bGluZGVyMjoge30sXG4gICAgcHJvZHVjdFBhcmFtQXhpczI6IHt9LFxuICAgIHJlY2VpcHQ6IHt9LFxuICB9LFxuICBlbWl0czogW1xuICAgICd1cGRhdGVTcGhlcmUnLFxuICAgICd1cGRhdGVDeWxpbmRlcicsXG4gICAgJ3VwZGF0ZUF4aXMnLFxuICAgICdjbGVhclZhbHVlcycsXG4gICAgJ3VwZGF0ZVNwaGVyZTInLFxuICAgICd1cGRhdGVDeWxpbmRlcjInLFxuICAgICd1cGRhdGVBeGlzMicsXG4gICAgJ2NsZWFyVmFsdWVzMicsXG4gIF0sXG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNwaGVyZTogbnVsbCxcbiAgICAgIGN5bGluZGVyOiBudWxsLFxuICAgICAgYXhpczogbnVsbCxcbiAgICAgIHNwaGVyZTI6IG51bGwsXG4gICAgICBjeWxpbmRlcjI6IG51bGwsXG4gICAgICBheGlzMjogbnVsbCxcbiAgICB9XG4gIH0sXG4gIG1ldGhvZHM6IHtcbiAgICB1cGRhdGVTcGhlcmUoKSB7XG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGVTcGhlcmUnLCB0aGlzLnNwaGVyZSk7XG4gICAgICB0aGlzLnByb2R1Y3RQYXJhbXMuc2Vjb25kLmZvckVhY2gocGFyYW0gPT4ge1xuICAgICAgICBpZiAocGFyc2VGbG9hdChwYXJhbSkgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmN5bGluZGVyID0gcGFyYW07XG4gICAgICAgICAgdGhpcy51cGRhdGVDeWxpbmRlcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICAgIHVwZGF0ZUN5bGluZGVyKCkge1xuICAgICAgdGhpcy4kZW1pdCgndXBkYXRlQ3lsaW5kZXInLCB0aGlzLmN5bGluZGVyKTtcbiAgICB9LFxuICAgIHVwZGF0ZUF4aXMoKSB7XG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGVBeGlzJywgdGhpcy5heGlzKTtcbiAgICB9LFxuICAgIGNsZWFyKCkge1xuICAgICAgdGhpcy4kZW1pdCgnY2xlYXJWYWx1ZXMnKTtcbiAgICB9LFxuICAgIHVwZGF0ZVNwaGVyZTIoKSB7XG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGVTcGhlcmUyJywgdGhpcy5zcGhlcmUyKTtcbiAgICAgIHRoaXMucHJvZHVjdFBhcmFtcy5zZWNvbmQuZm9yRWFjaChwYXJhbSA9PiB7XG4gICAgICAgIGlmIChwYXJzZUZsb2F0KHBhcmFtKSA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuY3lsaW5kZXIyID0gcGFyYW07XG4gICAgICAgICAgdGhpcy51cGRhdGVDeWxpbmRlcjIoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgICB1cGRhdGVDeWxpbmRlcjIoKSB7XG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGVDeWxpbmRlcjInLCB0aGlzLmN5bGluZGVyMik7XG4gICAgfSxcbiAgICB1cGRhdGVBeGlzMigpIHtcbiAgICAgIHRoaXMuJGVtaXQoJ3VwZGF0ZUF4aXMyJywgdGhpcy5heGlzMik7XG4gICAgfSxcbiAgICBjbGVhcjIoKSB7XG4gICAgICB0aGlzLiRlbWl0KCdjbGVhclZhbHVlczInKTtcbiAgICB9LFxuICB9LFxuICB3YXRjaDoge1xuICAgIHByb2R1Y3RQYXJhbVNwaGVyZShpbnB1dCkge1xuICAgICAgaWYgKGlucHV0ICE9PSB0aGlzLnNwaGVyZSkge1xuICAgICAgICB0aGlzLnNwaGVyZSA9IG51bGw7XG4gICAgICB9XG4gICAgfSxcbiAgICBwcm9kdWN0UGFyYW1DeWxpbmRlcihpbnB1dCkge1xuICAgICAgaWYgKGlucHV0ICE9PSB0aGlzLmN5bGluZGVyKSB7XG4gICAgICAgIHRoaXMuY3lsaW5kZXIgPSBudWxsO1xuICAgICAgfVxuICAgIH0sXG4gICAgcHJvZHVjdFBhcmFtQXhpcyhpbnB1dCkge1xuICAgICAgaWYgKGlucHV0ICE9PSB0aGlzLmF4aXMpIHtcbiAgICAgICAgdGhpcy5heGlzID0gbnVsbDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHByb2R1Y3RQYXJhbVNwaGVyZTIoaW5wdXQpIHtcbiAgICAgIGlmIChpbnB1dCAhPT0gdGhpcy5zcGhlcmUyKSB7XG4gICAgICAgIHRoaXMuc3BoZXJlMiA9IG51bGw7XG4gICAgICB9XG4gICAgfSxcbiAgICBwcm9kdWN0UGFyYW1DeWxpbmRlcjIoaW5wdXQpIHtcbiAgICAgIGlmIChpbnB1dCAhPT0gdGhpcy5jeWxpbmRlcjIpIHtcbiAgICAgICAgdGhpcy5jeWxpbmRlcjIgPSBudWxsO1xuICAgICAgfVxuICAgIH0sXG4gICAgcHJvZHVjdFBhcmFtQXhpczIoaW5wdXQpIHtcbiAgICAgIGlmIChpbnB1dCAhPT0gdGhpcy5heGlzMikge1xuICAgICAgICB0aGlzLmF4aXMyID0gbnVsbDtcbiAgICAgIH1cbiAgICB9LFxuICB9XG59XG48L3NjcmlwdD5cblxuPHN0eWxlPlxuLnRhYmxlUGFyYW1zIHtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA5NTBweCkge1xuICAudGFibGVQYXJhbXMge1xuICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICB9XG59XG5cbi50YWJsZVBhcmFtcyB0ZCB7XG4gIHZlcnRpY2FsLWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDVweDtcbn1cbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDk1MHB4KSB7XG4gIC50YWJsZVBhcmFtcyB0ZCB7XG4gICAgcGFkZGluZzogMnB4O1xuICB9XG59XG5cbi50YWJsZVBhcmFtcyB0ZCBkaXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi50YWJsZVBhcmFtcyB0ZCBzZWxlY3Qge1xuICB3aWR0aDogODBweDtcbiAgcGFkZGluZzogNXB4O1xufVxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTUwcHgpIHtcbiAgLnRhYmxlUGFyYW1zIHRkIHNlbGVjdCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4uYmctaGVhZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGYyZmM7XG4gIG1pbi1oZWlnaHQ6IDMwcHg7XG4gIG1pbi13aWR0aDogOTBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA5NTBweCkge1xuICAuYmctaGVhZCB7XG4gICAgbWluLWhlaWdodDogMjBweDtcbiAgICBtaW4td2lkdGg6IDMwcHg7XG4gIH1cbn1cblxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTUwcHgpIHtcbiAgLmJ0bi1jbGVhciB7XG4gICAgcGFkZGluZzozcHg7XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG4gIH1cbn1cblxuXG5cbi5wYXJhbXNXcmFwcGVyIHNlbGVjdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICBwYWRkaW5nOiA1cHg7XG4gIG1hcmdpbjogNXB4IDA7XG59XG5cbi5wYXJhbXNXcmFwcGVyRXllcyB7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgYm9yZGVyOiA7XG59XG5cbi5wYXJhbXNXcmFwcGVyRXllcyBkaXYge1xuICBwYWRkaW5nOiA1cHggMDtcbn1cblxuLnJlcXVpcmVkIHtcbiAgY29sb3I6IHJlZDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmxhdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ub2tvIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ub2tvLXJpZ2h0IHtcbiAgbGVmdDogMTAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5va28tbGVmdCB7XG4gIGxlZnQ6IDI4cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG48L3N0eWxlPiIsIjx0ZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwibGRzLWVsbGlwc2lzXCI+XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICAgIDxkaXY+PC9kaXY+XG4gICAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuZXhwb3J0IGRlZmF1bHQge1xuICAgIG5hbWU6IFwiTG9hZGluZ0FuaW1hdGlvblwiXG59XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbi5sZHMtZWxsaXBzaXMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgaGVpZ2h0OiA4MHB4O1xufVxuXG4ubGRzLWVsbGlwc2lzIGRpdiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMzNweDtcbiAgICB3aWR0aDogMTNweDtcbiAgICBoZWlnaHQ6IDEzcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IGJsYWNrO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAxLCAxLCAwKTtcbn1cblxuLmxkcy1lbGxpcHNpcyBkaXY6bnRoLWNoaWxkKDEpIHtcbiAgICBsZWZ0OiA4cHg7XG4gICAgYW5pbWF0aW9uOiBsZHMtZWxsaXBzaXMxIDAuNnMgaW5maW5pdGU7XG59XG5cbi5sZHMtZWxsaXBzaXMgZGl2Om50aC1jaGlsZCgyKSB7XG4gICAgbGVmdDogOHB4O1xuICAgIGFuaW1hdGlvbjogbGRzLWVsbGlwc2lzMiAwLjZzIGluZmluaXRlO1xufVxuXG4ubGRzLWVsbGlwc2lzIGRpdjpudGgtY2hpbGQoMykge1xuICAgIGxlZnQ6IDMycHg7XG4gICAgYW5pbWF0aW9uOiBsZHMtZWxsaXBzaXMyIDAuNnMgaW5maW5pdGU7XG59XG5cbi5sZHMtZWxsaXBzaXMgZGl2Om50aC1jaGlsZCg0KSB7XG4gICAgbGVmdDogNTZweDtcbiAgICBhbmltYXRpb246IGxkcy1lbGxpcHNpczMgMC42cyBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBsZHMtZWxsaXBzaXMxIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBsZHMtZWxsaXBzaXMzIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBsZHMtZWxsaXBzaXMyIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjRweCwgMCk7XG4gICAgfVxufVxuXG48L3N0eWxlPiIsIjxzY3JpcHQ+XHJcbmltcG9ydCBheGlvcyBmcm9tIFwiYXhpb3NcIjtcclxuaW1wb3J0IHtTd2lwZXIsIFN3aXBlclNsaWRlfSBmcm9tIFwic3dpcGVyL3Z1ZVwiO1xyXG5pbXBvcnQgUHJvZHVjdFBhcmFtc1NlbGVjdG9yIGZyb20gXCIuL1Byb2R1Y3RQYXJhbXNTZWxlY3Rvci52dWVcIjtcclxuaW1wb3J0IExvYWRpbmdBbmltYXRpb24gZnJvbSBcIi4uL0xvYWRpbmdBbmltYXRpb24udnVlXCI7XHJcbmltcG9ydCBQcm9kdWN0UHJpY2UgZnJvbSBcIi4vUHJvZHVjdFByaWNlLnZ1ZVwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwiUHJvZHVjdFZ1ZUZ1bGxTY3BlZW5cIixcclxuICBjb21wb25lbnRzOiB7XHJcbiAgICBTd2lwZXIsXHJcbiAgICBTd2lwZXJTbGlkZSxcclxuICAgIFByb2R1Y3RQYXJhbXNTZWxlY3RvcixcclxuICAgIExvYWRpbmdBbmltYXRpb24sXHJcbiAgICBQcm9kdWN0UHJpY2UsXHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgdGhpcy5wcm9kdWN0SWQgPSBwYXJzZUludChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1wcm9kdWN0LWlkXScpLmRhdGFzZXQucHJvZHVjdElkKTtcclxuICAgIHRoaXMuaW5pdERhdGEoKTtcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmdWxsU2NyZWVuTW9kYWw6IGZhbHNlLFxyXG4gICAgICBjdXJyZW50U3RhZ2U6IDAsXHJcbiAgICAgIGlzTG9hZGluZzogdHJ1ZSxcclxuICAgICAgZG9tYWluOiAnLycsXHJcbiAgICAgIGltYWdlOiBudWxsLFxyXG4gICAgICBicmFuZHM6IFtdLFxyXG4gICAgICBzZWxlY3RlZEJyYW5kOiBudWxsLFxyXG4gICAgICBsZW5zZXM6IFtdLFxyXG4gICAgICBzZWxlY3RlZExlbnM6IG51bGwsXHJcbiAgICAgIHNlbGVjdGVkTGVuc05hbWU6IG51bGwsXHJcbiAgICAgIGxlbnNUeXBlczogW10sXHJcbiAgICAgIHNlbGVjdGVkTGVuc1R5cGU6IG51bGwsXHJcbiAgICAgIHNlbGVjdGVkTGVuc1R5cGVOYW1lOiBudWxsLFxyXG4gICAgICBwcm9kdWN0czogW10sXHJcbiAgICAgIHNlbGVjdGVkUHJvZHVjdDogbnVsbCxcclxuICAgICAgc2VsZWN0ZWRQcm9kdWN0TmFtZTogbnVsbCxcclxuICAgICAgcGFyYW1zV2lkdGhEaWZmZXJlbnQ6IGZhbHNlLFxyXG4gICAgICBuZWVkSGVscDogZmFsc2UsXHJcbiAgICAgIHJlY2VpcHQ6IG51bGwsXHJcbiAgICAgIHByb2R1Y3RQYXJhbXNEZWZhdWx0OiB7XHJcbiAgICAgICAgZmlyc3Q6IFtdLFxyXG4gICAgICAgIHNlY29uZDogW10sXHJcbiAgICAgICAgYXhpczogW10sXHJcbiAgICAgICAgYWxsOiBbXSxcclxuICAgICAgfSxcclxuICAgICAgcHJvZHVjdFBhcmFtc1JpZ2h0OiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnByb2R1Y3RQYXJhbXNEZWZhdWx0KSxcclxuICAgICAgcHJvZHVjdFBhcmFtc0xlZnQ6IE9iamVjdC5hc3NpZ24oe30sIHRoaXMucHJvZHVjdFBhcmFtc0RlZmF1bHQpLFxyXG4gICAgICBwcm9kdWN0UGFyYW1SaWdodFNwaGVyZTogbnVsbCxcclxuICAgICAgcHJvZHVjdFBhcmFtTGVmdFNwaGVyZTogbnVsbCxcclxuICAgICAgcHJvZHVjdFBhcmFtUmlnaHRDeWxpbmRlcjogbnVsbCxcclxuICAgICAgcHJvZHVjdFBhcmFtTGVmdEN5bGluZGVyOiBudWxsLFxyXG4gICAgICBwcm9kdWN0UGFyYW1SaWdodEF4aXM6IG51bGwsXHJcbiAgICAgIHByb2R1Y3RQYXJhbUxlZnRBeGlzOiBudWxsLFxyXG4gICAgICBwcm9kdWN0UGFyYW1SaWdodERpc3RhbmNlOiBudWxsLFxyXG4gICAgICBwcm9kdWN0UGFyYW1MZWZ0RGlzdGFuY2U6IG51bGwsXHJcbiAgICAgIHByb2R1Y3RQcmljZTogbnVsbCxcclxuICAgICAgbGVmdExlbnNQcmljZTogbnVsbCxcclxuICAgICAgcmlnaHRMZW5zUHJpY2U6IG51bGwsXHJcbiAgICAgIGZpbmFsUHJpY2U6IG51bGwsXHJcbiAgICAgIHBhcmFtc1dpZHRoOiBudWxsLFxyXG4gICAgICBwYXJhbXNXaWR0aFJpZ2h0OiBudWxsLFxyXG4gICAgICBwYXJhbXNXaWR0aExlZnQ6IG51bGwsXHJcbiAgICAgIGFjdGl2ZVN1Ym1pdDogZmFsc2UsXHJcblxyXG4gICAgICB0eXBlSW1hZ2VzOiB7XHJcbiAgICAgICAgJ9Ch0YLQsNC90LTQsNGA0YLQvdGWJzogJzEucG5nJyxcclxuICAgICAgICAn0JHQu9C+0LrRg9Cy0LDQvdC90Y8g0YHQuNC90YzQvtCz0L4g0YHQstGW0YLQu9CwJzogJzIucG5nJyxcclxuICAgICAgICAn0KTQvtGC0L7RhdGA0L7QvNC90ZYnOiAnMy5wbmcnLFxyXG4gICAgICAgICfQodC+0L3RhtC10LfQsNGF0LjRgdC90ZYnOiAnNC5wbmcnLFxyXG4gICAgICAgICfQktC+0LTRltC50YHRjNC60ZYnOiAnNS5wbmcnLFxyXG4gICAgICAgICfQn9GA0L7Qs9GA0LXRgdC40LLQuC/QkdGW0YTQvtC60LDQu9C4JzogJzYucG5nJyxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIG1vZGFsT3BlbjogZmFsc2UsXHJcbiAgICAgIG1vZGFsQ29udGVudDogJycsXHJcbiAgICB9XHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBzZXRTdGFnZShzdGFnZSkge1xyXG4gICAgICBpZiAoc3RhZ2UgPT09IDIgJiYgdGhpcy5zZWxlY3RlZEJyYW5kID09IG51bGwpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH0gZWxzZSBpZiAoc3RhZ2UgPT09IDMgJiYgdGhpcy5zZWxlY3RlZExlbnMgPT09IG51bGwpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH0gZWxzZSBpZiAoc3RhZ2UgPT09IDQgJiYgdGhpcy5zZWxlY3RlZExlbnNUeXBlID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9IGVsc2UgaWYgKHN0YWdlID09PSA1ICYmIHRoaXMuc2VsZWN0ZWRQcm9kdWN0ID09PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY3VycmVudFN0YWdlID0gc3RhZ2U7XHJcbiAgICB9LFxyXG4gICAgZ2V0U3RhZ2VDbGFzcyhzdGFnZSkge1xyXG4gICAgICBsZXQgY2xhc3NlcyA9IFsncHJlcy1pdGVtJ107XHJcbiAgICAgIGlmIChzdGFnZSA9PT0gMiAmJiB0aGlzLnNlbGVjdGVkQnJhbmQgPT0gbnVsbCkge1xyXG4gICAgICAgIGNsYXNzZXMucHVzaCgncHJlcy1pdGVtLWluYWN0aXZlJylcclxuICAgICAgfSBlbHNlIGlmIChzdGFnZSA9PT0gMyAmJiB0aGlzLnNlbGVjdGVkTGVucyA9PT0gbnVsbCkge1xyXG4gICAgICAgIGNsYXNzZXMucHVzaCgncHJlcy1pdGVtLWluYWN0aXZlJylcclxuICAgICAgfSBlbHNlIGlmIChzdGFnZSA9PT0gNCAmJiB0aGlzLnNlbGVjdGVkTGVuc1R5cGUgPT09IG51bGwpIHtcclxuICAgICAgICBjbGFzc2VzLnB1c2goJ3ByZXMtaXRlbS1pbmFjdGl2ZScpXHJcbiAgICAgIH0gZWxzZSBpZiAoc3RhZ2UgPT09IDUgJiYgdGhpcy5zZWxlY3RlZFByb2R1Y3QgPT09IG51bGwpIHtcclxuICAgICAgICBjbGFzc2VzLnB1c2goJ3ByZXMtaXRlbS1pbmFjdGl2ZScpXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xyXG4gICAgfSxcclxuICAgIGNsb3NlUG9wdXAoKSB7XHJcbiAgICAgIHRoaXMuZnVsbFNjcmVlbk1vZGFsID0gZmFsc2U7XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgaW5pdERhdGEoKSB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgYXdhaXQgYXhpb3NcclxuICAgICAgICAgIC5nZXQoXHJcbiAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLm9yaWdpbiArICcvcHJvZHVjdF92dWUvaW5pdFNlbGVjdEZ1bGwnLFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICBwcm9kdWN0SWQ6IHRoaXMucHJvZHVjdElkLFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIClcclxuICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnJhbmRzID0gcmVzcG9uc2UuZGF0YS5icmFuZHM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmltYWdlID0gcmVzcG9uc2UuZGF0YS5pbWFnZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdFByaWNlID0gcmVzcG9uc2UuZGF0YS5wcmljZTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJyYW5kcy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEJyYW5kID0gdGhpcy5icmFuZHNbMF0uaWQ7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRCcmFuZE5hbWUgPSB0aGlzLmJyYW5kc1swXS5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YWdlKDIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZUZpbmFsUHJpY2UoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgIH0sXHJcbiAgICBzZWxlY3RCcmFuZChicmFuZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQnJhbmQgPSBicmFuZC5pZDtcclxuICAgICAgdGhpcy5zZWxlY3RlZEJyYW5kTmFtZSA9IGJyYW5kLm5hbWU7XHJcbiAgICAgIHRoaXMuc2V0U3RhZ2UoMik7XHJcbiAgICB9LFxyXG4gICAgYnJhbmRzQ2xhc3NlcyhicmFuZCkge1xyXG4gICAgICBpZiAoYnJhbmQuaWQgPT09IHRoaXMuc2VsZWN0ZWRCcmFuZCkge1xyXG4gICAgICAgIHJldHVybiBbJ2JyYW5kX19pdGVtJywgJ2JyYW5kX19pdGVtU2VsZWN0ZWQnXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gWydicmFuZF9faXRlbScsICdicmFuZF9faXRlbVVuc2VsZWN0ZWQnXTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGxlbnNlc0NsYXNzZXMobGVucykge1xyXG4gICAgICBpZiAobGVucy5pZCA9PT0gdGhpcy5zZWxlY3RlZExlbnMpIHtcclxuICAgICAgICByZXR1cm4gWydsZW5zZV9faXRlbScsICdicmFuZC1pdGVtLXNlbGVjdGVkJ107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFsnbGVuc2VfX2l0ZW0nLCAnYnJhbmQtaXRlbS11bnNlbGVjdGVkJ107XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzZWxlY3RMZW5zKGxlbnMpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZExlbnMgPSBsZW5zLmlkO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkTGVuc05hbWUgPSBsZW5zLnZhbHVlO1xyXG4gICAgICB0aGlzLnNldFN0YWdlKDMpO1xyXG4gICAgfSxcclxuICAgIGxlbnNUeXBlQ2xhc3NlcyhsZW5zVHlwZSkge1xyXG4gICAgICBpZiAobGVuc1R5cGUuaWQgPT09IHRoaXMuc2VsZWN0ZWRMZW5zVHlwZSkge1xyXG4gICAgICAgIHJldHVybiBbJ2xlbnNUeXBlQmxvY2tfX2l0ZW0nLCAnYnJhbmQtaXRlbS1zZWxlY3RlZCddO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBbJ2xlbnNUeXBlQmxvY2tfX2l0ZW0nLCAnYnJhbmQtaXRlbS11bnNlbGVjdGVkJ107XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzZWxlY3RMZW5zVHlwZShsZW5zVHlwZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkTGVuc1R5cGUgPSBsZW5zVHlwZS5pZDtcclxuICAgICAgdGhpcy5zZWxlY3RlZExlbnNUeXBlTmFtZSA9IGxlbnNUeXBlLnZhbHVlO1xyXG4gICAgICB0aGlzLnNldFN0YWdlKDQpO1xyXG4gICAgfSxcclxuICAgIHByb2R1Y3RDbGFzc2VzKHByb2R1Y3QpIHtcclxuICAgICAgaWYgKHByb2R1Y3QuaWQgPT09IHRoaXMuc2VsZWN0ZWRQcm9kdWN0KSB7XHJcbiAgICAgICAgcmV0dXJuIFsnbGVuc1R5cGVfX2l0ZW0nLCAnbGVuc1R5cGVfX2l0ZW1TZWxlY3RlZCddO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBbJ2xlbnNUeXBlX19pdGVtJywgJ2xlbnNUeXBlX19pdGVtVW5zZWxlY3RlZCddO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2VsZWN0UHJvZHVjdChwcm9kdWN0KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm9kdWN0ID0gcHJvZHVjdC5pZDtcclxuICAgICAgdGhpcy5zZWxlY3RlZFByb2R1Y3ROYW1lID0gcHJvZHVjdC50aXRsZTtcclxuICAgICAgdGhpcy5zZXRTdGFnZSg1KTtcclxuICAgIH0sXHJcbiAgICB1cGRhdGVTcGhlcmVSaWdodChzcGhlcmUpIHtcclxuICAgICAgdGhpcy5wcm9kdWN0UGFyYW1SaWdodFNwaGVyZSA9IHNwaGVyZTtcclxuICAgIH0sXHJcbiAgICB1cGRhdGVTcGhlcmVMZWZ0KHNwaGVyZSkge1xyXG4gICAgICB0aGlzLnByb2R1Y3RQYXJhbUxlZnRTcGhlcmUgPSBzcGhlcmU7XHJcbiAgICB9LFxyXG4gICAgdXBkYXRlQ3lsaW5kZXJSaWdodChjeWxpbmRlcikge1xyXG4gICAgICB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0Q3lsaW5kZXIgPSBjeWxpbmRlcjtcclxuICAgIH0sXHJcbiAgICBjbGVhclZhbHVlc1JpZ2h0KCkge1xyXG4gICAgICB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0Q3lsaW5kZXIgPSBudWxsO1xyXG4gICAgICB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0U3BoZXJlID0gbnVsbDtcclxuICAgICAgdGhpcy5wcm9kdWN0UGFyYW1SaWdodEF4aXMgPSBudWxsO1xyXG4gICAgfSxcclxuICAgIHVwZGF0ZUN5bGluZGVyTGVmdChjeWxpbmRlcikge1xyXG4gICAgICB0aGlzLnByb2R1Y3RQYXJhbUxlZnRDeWxpbmRlciA9IGN5bGluZGVyO1xyXG4gICAgfSxcclxuICAgIHVwZGF0ZUF4aXNSaWdodChheGlzKSB7XHJcbiAgICAgIHRoaXMucHJvZHVjdFBhcmFtUmlnaHRBeGlzID0gYXhpcztcclxuICAgIH0sXHJcbiAgICB1cGRhdGVBeGlzTGVmdChheGlzKSB7XHJcbiAgICAgIHRoaXMucHJvZHVjdFBhcmFtTGVmdEF4aXMgPSBheGlzO1xyXG4gICAgfSxcclxuICAgIGNsZWFyVmFsdWVzTGVmdCgpIHtcclxuICAgICAgdGhpcy5wcm9kdWN0UGFyYW1MZWZ0Q3lsaW5kZXIgPSBudWxsO1xyXG4gICAgICB0aGlzLnByb2R1Y3RQYXJhbUxlZnRTcGhlcmUgPSBudWxsO1xyXG4gICAgICB0aGlzLnByb2R1Y3RQYXJhbUxlZnRBeGlzID0gbnVsbDtcclxuICAgIH0sXHJcbiAgICBhc3luYyB1cGRhdGVQYXJhbXMoZXllKSB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IHNwaGVyZSA9IG51bGw7XHJcbiAgICAgIGxldCBjeWxpbmRlciA9IG51bGw7XHJcbiAgICAgIGlmIChleWUgPT09ICdyaWdodCcpIHtcclxuICAgICAgICBzcGhlcmUgPSB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0U3BoZXJlO1xyXG4gICAgICAgIGN5bGluZGVyID0gbnVsbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzcGhlcmUgPSB0aGlzLnByb2R1Y3RQYXJhbUxlZnRTcGhlcmU7XHJcbiAgICAgICAgY3lsaW5kZXIgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGF3YWl0IGF4aW9zXHJcbiAgICAgICAgICAuZ2V0KFxyXG4gICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAnL3Byb2R1Y3RfdnVlL3Byb2R1Y3RQYXJhbXMnLFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZFByb2R1Y3Q6IHRoaXMuc2VsZWN0ZWRQcm9kdWN0LFxyXG4gICAgICAgICAgICAgICAgICBzcGhlcmU6IHNwaGVyZSxcclxuICAgICAgICAgICAgICAgICAgY3lsaW5kZXI6IGN5bGluZGVyLFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIClcclxuICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgaWYgKGV5ZSA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgIHRoaXMucHJvZHVjdFBhcmFtc1JpZ2h0ID0gcmVzcG9uc2UuZGF0YS5wcm9kdWN0UGFyYW1zO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMucHJvZHVjdFBhcmFtc0xlZnQgPSByZXNwb25zZS5kYXRhLnByb2R1Y3RQYXJhbXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZUZpbmFsUHJpY2UoKTtcclxuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIGNsZWFyUGFyYW1zKCkge1xyXG4gICAgICB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0U3BoZXJlID0gbnVsbDtcclxuICAgICAgdGhpcy5wcm9kdWN0UGFyYW1MZWZ0U3BoZXJlID0gbnVsbDtcclxuICAgICAgdGhpcy5wcm9kdWN0UGFyYW1SaWdodEN5bGluZGVyID0gbnVsbDtcclxuICAgICAgdGhpcy5wcm9kdWN0UGFyYW1MZWZ0Q3lsaW5kZXIgPSBudWxsO1xyXG4gICAgICB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0QXhpcyA9IG51bGw7XHJcbiAgICAgIHRoaXMucHJvZHVjdFBhcmFtTGVmdEF4aXMgPSBudWxsO1xyXG4gICAgICB0aGlzLnByb2R1Y3RQYXJhbXNSaWdodCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMucHJvZHVjdFBhcmFtc0RlZmF1bHQpO1xyXG4gICAgICB0aGlzLnByb2R1Y3RQYXJhbXNMZWZ0ID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5wcm9kdWN0UGFyYW1zRGVmYXVsdCk7XHJcbiAgICB9LFxyXG4gICAgcmVhZFJlY2VpcHQoZXZlbnQpIHtcclxuICAgICAgbGV0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgIGxldCBmaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgICBpZiAoZmlsZS5zaXplID4gMTAyNCAqIDEwMjQgKiA1MCkge1xyXG4gICAgICAgIGFsZXJ0KCfQoNC+0LfQvNGW0YAg0YTQsNC50LvRgyDQvdC1INC/0L7QstC40L3QtdC9INC/0LXRgNC10LLQuNGJ0YPQstCw0YLQuCA1MNCc0JEnKTtcclxuICAgICAgICB0aGlzLmNsZWFyUmVjZXB0KCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghWydpbWFnZS9wbmcnLCAnaW1hZ2UvanBlZycsICdpbWFnZS9zdmcnXS5pbmNsdWRlcyhmaWxlWyd0eXBlJ10pKSB7XHJcbiAgICAgICAgYWxlcnQoJ9Ck0LDQudC7INC80L7QttC1INCx0YPRgtC4INC70LjRiNC1INC90LDRgdGC0YPQv9C90LjRhSDRhNC+0YDQvNCw0YLRltCyOiBQTkcsIEpQRywgU1ZHJyk7XHJcbiAgICAgICAgdGhpcy5jbGVhclJlY2VwdCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZWNlaXB0ID0ge1xyXG4gICAgICAgICAgZmlsZU5hbWU6IGZpbGUubmFtZSxcclxuICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgICBGaWxlUmVhZGVyOiByZWFkZXIucmVzdWx0LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZUZpbmFsUHJpY2UoKTtcclxuICAgICAgfTtcclxuICAgIH0sXHJcbiAgICBjbGVhclJlY2VwdCgpIHtcclxuICAgICAgdGhpcy5yZWNlaXB0ID0gbnVsbDtcclxuICAgICAgdGhpcy4kcmVmcy5maWxldXBsb2FkLnZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5yZWNhbGN1bGF0ZUZpbmFsUHJpY2UoKTtcclxuICAgIH0sXHJcbiAgICByZWNhbGN1bGF0ZUZpbmFsUHJpY2UoKSB7XHJcbiAgICAgIHRoaXMuZmluYWxQcmljZSA9IHRoaXMucHJvZHVjdFByaWNlO1xyXG4gICAgICBsZXQgc2Vjb25kUHJpY2UgPSAwO1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFByb2R1Y3QpIHtcclxuICAgICAgICB0aGlzLnByb2R1Y3RzLmZvckVhY2gocHJvZHVjdCA9PiB7XHJcbiAgICAgICAgICBpZiAocHJvZHVjdC5pZCA9PT0gdGhpcy5zZWxlY3RlZFByb2R1Y3QpIHtcclxuICAgICAgICAgICAgc2Vjb25kUHJpY2UgPSBwcm9kdWN0LnByaWNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgICAgLy8gY2FsY3VsYXRlIGVmdCBleWUgcGFyYW1zXHJcbiAgICAgIGxldCBsZWZ0RXllUHJpY2UgPSBzZWNvbmRQcmljZTtcclxuICAgICAgaWYgKHRoaXMucHJvZHVjdFBhcmFtTGVmdFNwaGVyZSAmJiB0aGlzLnByb2R1Y3RQYXJhbUxlZnRDeWxpbmRlciAmJiAhdGhpcy5yZWNlaXB0KSB7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0UGFyYW1zUmlnaHQuYWxsLmZvckVhY2gocHJvcGVydHkgPT4ge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgIHByb3BlcnR5LmZpcnN0ID09PSB0aGlzLnByb2R1Y3RQYXJhbUxlZnRTcGhlcmVcclxuICAgICAgICAgICAgICAmJiBwcm9wZXJ0eS5zZWNvbmQgPT09IHRoaXMucHJvZHVjdFBhcmFtTGVmdEN5bGluZGVyXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgbGVmdEV5ZVByaWNlID0gcGFyc2VGbG9hdChwcm9wZXJ0eS5wcmljZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gY2FsY3VsYXRlIHJpZ2h0IGV5ZSBwYXJhbXNcclxuICAgICAgbGV0IHJpZ2h0RXllUHJpY2UgPSBzZWNvbmRQcmljZTtcclxuICAgICAgaWYgKHRoaXMucHJvZHVjdFBhcmFtUmlnaHRTcGhlcmUgJiYgdGhpcy5wcm9kdWN0UGFyYW1SaWdodEN5bGluZGVyICYmICF0aGlzLnJlY2VpcHQpIHtcclxuICAgICAgICB0aGlzLnByb2R1Y3RQYXJhbXNSaWdodC5hbGwuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgcHJvcGVydHkuZmlyc3QgPT09IHRoaXMucHJvZHVjdFBhcmFtUmlnaHRTcGhlcmVcclxuICAgICAgICAgICAgICAmJiBwcm9wZXJ0eS5zZWNvbmQgPT09IHRoaXMucHJvZHVjdFBhcmFtUmlnaHRDeWxpbmRlclxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHJpZ2h0RXllUHJpY2UgPSBwYXJzZUZsb2F0KHByb3BlcnR5LnByaWNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxlZnRMZW5zUHJpY2UgPSBsZWZ0RXllUHJpY2U7XHJcbiAgICAgIHRoaXMucmlnaHRMZW5zUHJpY2UgPSByaWdodEV5ZVByaWNlO1xyXG4gICAgICB0aGlzLmZpbmFsUHJpY2UgPSB0aGlzLnByb2R1Y3RQcmljZSArIGxlZnRFeWVQcmljZSArIHJpZ2h0RXllUHJpY2U7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm9kdWN0XHJcbiAgICAgICAgICAmJlxyXG4gICAgICAgICAgKChcclxuICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RQYXJhbUxlZnRTcGhlcmVcclxuICAgICAgICAgICAgICAmJiB0aGlzLnByb2R1Y3RQYXJhbUxlZnRDeWxpbmRlclxyXG4gICAgICAgICAgICAgICYmIHRoaXMucHJvZHVjdFBhcmFtUmlnaHRTcGhlcmVcclxuICAgICAgICAgICAgICAmJiB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0Q3lsaW5kZXJcclxuICAgICAgICAgICkgfHwgdGhpcy5yZWNlaXB0KVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVN1Ym1pdCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVTdWJtaXQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGFzeW5jIHN1Ym1pdFByb2R1Y3QoKSB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhO1xyXG4gICAgICBsZXQgY21zVG9rZW4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiW25hbWU9J2Ntc190b2tlbiddXCIpO1xyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2Ntc190b2tlbicsIGNtc1Rva2VuLnZhbHVlKTtcclxuICAgICAgZm9ybURhdGEuYXBwZW5kKCdwcm9kdWN0SWQnLCB0aGlzLnByb2R1Y3RJZCk7XHJcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnc2VsZWN0ZWRQcm9kdWN0JywgdGhpcy5zZWxlY3RlZFByb2R1Y3QpO1xyXG5cclxuICAgICAgZm9ybURhdGEuYXBwZW5kKCdwcm9kdWN0UGFyYW1SaWdodFNwaGVyZScsIHRoaXMucHJvZHVjdFBhcmFtUmlnaHRTcGhlcmUpO1xyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2R1Y3RQYXJhbVJpZ2h0Q3lsaW5kZXInLCB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0Q3lsaW5kZXIpO1xyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2R1Y3RQYXJhbVJpZ2h0QXhpcycsIHRoaXMucHJvZHVjdFBhcmFtUmlnaHRBeGlzKTtcclxuICAgICAgZm9ybURhdGEuYXBwZW5kKCdwcm9kdWN0UGFyYW1SaWdodERpc3RhbmNlJywgdGhpcy5wcm9kdWN0UGFyYW1SaWdodERpc3RhbmNlKTtcclxuXHJcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgncHJvZHVjdFBhcmFtTGVmdFNwaGVyZScsIHRoaXMucHJvZHVjdFBhcmFtTGVmdFNwaGVyZSk7XHJcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgncHJvZHVjdFBhcmFtTGVmdEN5bGluZGVyJywgdGhpcy5wcm9kdWN0UGFyYW1MZWZ0Q3lsaW5kZXIpO1xyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2R1Y3RQYXJhbUxlZnRBeGlzJywgdGhpcy5wcm9kdWN0UGFyYW1MZWZ0QXhpcyk7XHJcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgncHJvZHVjdFBhcmFtTGVmdERpc3RhbmNlJywgdGhpcy5wcm9kdWN0UGFyYW1MZWZ0RGlzdGFuY2UpO1xyXG5cclxuICAgICAgZm9ybURhdGEuYXBwZW5kKCdwYXJhbXNXaWR0aERpZmZlcmVudCcsIHRoaXMucGFyYW1zV2lkdGhEaWZmZXJlbnQpO1xyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ3BhcmFtc1dpZHRoJywgdGhpcy5wYXJhbXNXaWR0aCk7XHJcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgncGFyYW1zV2lkdGhSaWdodCcsIHRoaXMucGFyYW1zV2lkdGhSaWdodCk7XHJcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgncGFyYW1zV2lkdGhMZWZ0JywgdGhpcy5wYXJhbXNXaWR0aExlZnQpO1xyXG5cclxuICAgICAgZm9ybURhdGEuYXBwZW5kKCduZWVkSGVscCcsIHRoaXMubmVlZEhlbHApO1xyXG4gICAgICBpZiAodGhpcy5yZWNlaXB0KSB7XHJcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdyZWNlaXB0JywgdGhpcy5yZWNlaXB0LmZpbGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGF3YWl0IGF4aW9zXHJcbiAgICAgICAgICAucG9zdChcclxuICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgJy9wcm9kdWN0X3Z1ZS9hZGRMZW5zVG9DYXJ0JyxcclxuICAgICAgICAgICAgICBmb3JtRGF0YSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSdcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAudGhlbihhc3luYyByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRCcmFuZCA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRCcmFuZE5hbWUgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGVuc1R5cGUgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLmxlbnNUeXBlcyA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvZHVjdCA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdHMgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy5jbGVhclBhcmFtcygpO1xyXG4gICAgICAgICAgICB0aGlzLnJlY2FsY3VsYXRlRmluYWxQcmljZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBsZXQgdXJsID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7XHJcbiAgICAgICAgICAgIHVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKCdzaG93Q2FydCcsICd0cnVlJyk7XHJcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsLmhyZWY7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmNhdGNoKFxyXG4gICAgICAgICAgICAgIGVycm9yID0+IHtcclxuICAgICAgICAgICAgICAgIGFsZXJ0KGVycm9yKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgIH0sXHJcbiAgICByYW5nZURpc3RhbmNlU2FtZSgpIHtcclxuICAgICAgbGV0IGxpc3QgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaSA9IDQ0OyBpIDw9IDc4OyBpKyspIHtcclxuICAgICAgICBsaXN0LnB1c2goaSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGxpc3Q7XHJcbiAgICB9LFxyXG4gICAgcmFuZ2VEaXN0YW5jZURpZmZlcmVudCgpIHtcclxuICAgICAgbGV0IGxpc3QgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaSA9IDIyOyBpIDw9IDQwOyBpKyspIHtcclxuICAgICAgICBsaXN0LnB1c2goaSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGxpc3Q7XHJcbiAgICB9LFxyXG4gICAgbGVuc1R5cGVJbWFnZSh2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gJy9hcHBsaWNhdGlvbi9tb2R1bGVzL3Byb2R1Y3RfdnVlL2Fzc2V0cy9pbWFnZXMvJyArIHRoaXMudHlwZUltYWdlc1t2YWx1ZV07XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgcG9wdXAodHlwZSkge1xyXG5cclxuICAgICAgYXdhaXQgYXhpb3NcclxuICAgICAgICAgIC5nZXQod2luZG93LmxvY2F0aW9uLm9yaWdpbiArICcvcHJvZHVjdF92dWUvZ2V0UGFnZScsIHtwYXJhbXM6IHtwYWdlOiB0eXBlfX0pXHJcbiAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kYWxPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5tb2RhbENvbnRlbnQgPSByZXNwb25zZS5kYXRhO1xyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgfSxcclxuICB9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBhc3luYyBzZWxlY3RlZEJyYW5kKGJyYW5kSWQpIHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICBhd2FpdCBheGlvc1xyXG4gICAgICAgICAgLmdldCh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgJy9wcm9kdWN0X3Z1ZS9nZXRMZW5zJywge3BhcmFtczoge2JyYW5kSWQ6IGJyYW5kSWR9fSlcclxuICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVuc2VzID0gcmVzcG9uc2UuZGF0YS5sZW5zZXM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGVuc1R5cGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZW5zVHlwZXMgPSBbXTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm9kdWN0ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdHMgPSBbXTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJQYXJhbXMoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVjYWxjdWxhdGVGaW5hbFByaWNlKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgc2VsZWN0ZWRMZW5zKCkge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIGF3YWl0IGF4aW9zXHJcbiAgICAgICAgICAuZ2V0KFxyXG4gICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAnL3Byb2R1Y3RfdnVlL2dldExlbnNUeXBlcycsXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICAgIGJyYW5kSWQ6IHRoaXMuc2VsZWN0ZWRCcmFuZCxcclxuICAgICAgICAgICAgICAgICAgbGVuc0lkOiB0aGlzLnNlbGVjdGVkTGVucyxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxlbnNUeXBlcyA9IHJlc3BvbnNlLmRhdGEubGVuc1R5cGVzO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExlbnNUeXBlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm9kdWN0ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdHMgPSBbXTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJQYXJhbXMoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVjYWxjdWxhdGVGaW5hbFByaWNlKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgc2VsZWN0ZWRMZW5zVHlwZSgpIHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICBhd2FpdCBheGlvc1xyXG4gICAgICAgICAgLmdldChcclxuICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgJy9wcm9kdWN0X3Z1ZS9nZXRQcm9kdWN0cycsXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICAgIGJyYW5kSWQ6IHRoaXMuc2VsZWN0ZWRCcmFuZCxcclxuICAgICAgICAgICAgICAgICAgbGVuc0lkOiB0aGlzLnNlbGVjdGVkTGVucyxcclxuICAgICAgICAgICAgICAgICAgbGVuc1R5cGU6IHRoaXMuc2VsZWN0ZWRMZW5zVHlwZSxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RzID0gcmVzcG9uc2UuZGF0YS5wcm9kdWN0cztcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvZHVjdCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyUGFyYW1zKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY2FsY3VsYXRlRmluYWxQcmljZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgfSxcclxuICAgIGFzeW5jIHNlbGVjdGVkUHJvZHVjdChzZWxlY3RlZFByb2R1Y3QpIHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNsZWFyUGFyYW1zKCk7XHJcbiAgICAgIGF3YWl0IGF4aW9zXHJcbiAgICAgICAgICAuZ2V0KFxyXG4gICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAnL3Byb2R1Y3RfdnVlL3Byb2R1Y3RQYXJhbXMnLFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZFByb2R1Y3Q6IHNlbGVjdGVkUHJvZHVjdCxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RQYXJhbXNSaWdodCA9IHJlc3BvbnNlLmRhdGEucHJvZHVjdFBhcmFtcztcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdFBhcmFtc0xlZnQgPSByZXNwb25zZS5kYXRhLnByb2R1Y3RQYXJhbXM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY2FsY3VsYXRlRmluYWxQcmljZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgfSxcclxuICAgIHByb2R1Y3RQYXJhbVJpZ2h0U3BoZXJlKCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVBhcmFtcygncmlnaHQnKTtcclxuICAgIH0sXHJcbiAgICBwcm9kdWN0UGFyYW1MZWZ0U3BoZXJlKCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVBhcmFtcygnbGVmdCcpO1xyXG4gICAgfSxcclxuICAgIHByb2R1Y3RQYXJhbVJpZ2h0Q3lsaW5kZXIoKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlUGFyYW1zKCdyaWdodCcpO1xyXG4gICAgfSxcclxuICAgIHByb2R1Y3RQYXJhbUxlZnRDeWxpbmRlcigpIHtcclxuICAgICAgdGhpcy51cGRhdGVQYXJhbXMoJ2xlZnQnKTtcclxuICAgIH0sXHJcbiAgICBtb2RhbE9wZW4odmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGwgPSBcIm5vXCI7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2F1dG8nO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsID0gXCJ5ZXNcIjtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGZ1bGxTY3JlZW5Nb2RhbCh2YWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdodG1sJylcclxuICAgICAgICAgICAgLnN0eWxlXHJcbiAgICAgICAgICAgIC5vdmVyZmxvdyA9ICdoaWRkZW4nO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2h0bWwnKVxyXG4gICAgICAgICAgICAuc3R5bGVcclxuICAgICAgICAgICAgLm92ZXJmbG93ID0gJ2F1dG8nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbjwvc2NyaXB0PlxyXG5cclxuPHRlbXBsYXRlPlxyXG4gIDxhIEBjbGljaz1cImZ1bGxTY3JlZW5Nb2RhbCA9IHRydWVcIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tbGdcIj5cclxuICAgIDxzcGFuPtCS0YHRgtCw0L3QvtCy0LjRgtC4INC70ZbQvdC30Lg8L3NwYW4+XHJcbiAgPC9hPlxyXG4gIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCIgdi1pZj1cImZ1bGxTY3JlZW5Nb2RhbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNlbnRyYWxQYXJ0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0UGFydFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1kZXNjLWRpYWctYXJlYVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLWRlc2MtaW5uZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdsYXNzLWltZy13cmFwXCI+XHJcbiAgICAgICAgICAgICAgPGltZyA6c3JjPVwiZG9tYWluICsgJ3VwbG9hZHMvc2hvcC9wcm9kdWN0cy9tYWluLycgKyBpbWFnZVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlubmVyLWJveFwiPlxyXG4gICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInByaWNlRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwcmljZURhdGFOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAg0JLQsNGA0YLRltGB0YLRjCDRgtC+0LLQsNGA0YM6XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInByaWNlRGF0YVZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHByb2R1Y3QtcHJpY2UgOnByaWNlPVwicHJvZHVjdFByaWNlXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDx0ciB2LWlmPVwicmlnaHRMZW5zUHJpY2UgPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInByaWNlRGF0YU5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICDQktCw0YDRgtGW0YHRgtGMINC70ZbQvdC30Lgg0LTQu9GPINC/0YDQsNCy0L7Qs9C+INC+0LrQsDpcclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHJpY2VEYXRhVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cHJvZHVjdC1wcmljZSA6cHJpY2U9XCJyaWdodExlbnNQcmljZVwiLz5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8dHIgdi1pZj1cImxlZnRMZW5zUHJpY2UgPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInByaWNlRGF0YU5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICDQktCw0YDRgtGW0YHRgtGMINC70ZbQvdC30Lgg0LTQu9GPINC70ZbQstC+0LPQviDQvtC60LA6XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInByaWNlRGF0YVZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHByb2R1Y3QtcHJpY2UgOnByaWNlPVwibGVmdExlbnNQcmljZVwiLz5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInByaWNlRGF0YU5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICDQodGD0LzQvNCwOlxyXG4gICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwcmljZURhdGFWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwcm9kdWN0LXByaWNlIDpwcmljZT1cImZpbmFsUHJpY2VcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHRQYXJ0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0UGFydEhlYWRlcldyYXBwZXJcIj5cclxuICAgICAgICAgIDxoMj7QntCx0LXRgNGW0YLRjCDQu9GW0L3Qt9C4INC00LvRjyDQvtC60YPQu9GP0YDRltCyPC9oMj5cclxuICAgICAgICAgIDxkaXYgQGNsaWNrPVwiY2xvc2VQb3B1cCgpXCIgY2xhc3M9XCJjbG9zZVwiPlg8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YSBAY2xpY2s9XCJjdXJyZW50U3RhZ2UgPSBjdXJyZW50U3RhZ2UgLSAxXCIgdi1zaG93PVwiWzIsMyw0LDVdLmluY2x1ZGVzKGN1cnJlbnRTdGFnZSlcIiBjbGFzcz1cImdvQmFja1wiPlxyXG4gICAgICAgICAgJiMxMDA5NDsg0J/QvtCy0LXRgNC90YPRgtC40YHRj1xyXG4gICAgICAgIDwvYT5cclxuICAgICAgICA8dWwgY2xhc3M9XCJyaWdodFBhcnRMaXN0XCI+XHJcbiAgICAgICAgICA8bGkgY2xhc3M9XCJpdGVtLWJveFwiIEBjbGljaz1cInNldFN0YWdlKDEpXCIgdi1zaG93PVwiIVsyLDMsNCw1XS5pbmNsdWRlcyhjdXJyZW50U3RhZ2UpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgOmNsYXNzPVwiZ2V0U3RhZ2VDbGFzcygxKVwiPlxyXG4gICAgICAgICAgICAgINCe0LHQtdGA0ZbRgtGMINCx0YDQtdC90LRcclxuICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJzZWxlY3RlZEJyYW5kXCI+IC0ge3sgc2VsZWN0ZWRCcmFuZE5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJjdXJyZW50U3RhZ2UgPT09IDFcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gU0VMRUNUIEJSQU5EIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHYtZm9yPVwiYnJhbmQgaW4gYnJhbmRzXCIgQGNsaWNrLnN0b3A9XCJzZWxlY3RCcmFuZChicmFuZClcIiBjbGFzcz1cImJyYW5kc19faXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiA6Y2xhc3M9XCJicmFuZHNDbGFzc2VzKGJyYW5kKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIDpzcmM9XCJkb21haW4gKyAndXBsb2Fkcy9zaG9wL2JyYW5kcy8nICsgYnJhbmQuaW1hZ2VcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiB2LWh0bWw9XCJicmFuZC5kZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDxsaSBjbGFzcz1cIml0ZW0tYm94XCIgQGNsaWNrPVwic2V0U3RhZ2UoMilcIiB2LXNob3c9XCIhWzMsNCw1XS5pbmNsdWRlcyhjdXJyZW50U3RhZ2UpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgOmNsYXNzPVwiZ2V0U3RhZ2VDbGFzcygyKVwiPlxyXG4gICAgICAgICAgICAgINCe0LHQtdGA0ZbRgtGMINC70ZbQvdC30LhcclxuICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJzZWxlY3RlZExlbnNcIj4gLSB7eyBzZWxlY3RlZExlbnNOYW1lIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiY3VycmVudFN0YWdlID09PSAyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJzZWxlY3RlZEJyYW5kXCIgY2xhc3M9XCJncm91cC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gU0VMRUNUIEJSQU5EIC0tPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHYtZm9yPVwibGVucyBpbiBsZW5zZXNcIiBAY2xpY2suc3RvcD1cInNlbGVjdExlbnMobGVucylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiA6Y2xhc3M9XCJsZW5zZXNDbGFzc2VzKGxlbnMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlbnNlX19pdGVtTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57eyBsZW5zLnZhbHVlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlbnNlX19pdGVtRGVzY3JpcHRpb25cIj57eyBsZW5zLmRlc2NyaXB0aW9uIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHYtZWxzZSBjbGFzcz1cImdyb3VwLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UgbWVzc2FnZS0taW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgINCh0L/QvtGH0LDRgtC60YMg0LLQuNCx0LXRgNGW0YLRjCDQsdGA0LXQvdC0INC70ZbQvdC30LhcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPGxpIGNsYXNzPVwiaXRlbS1ib3hcIiBAY2xpY2s9XCJzZXRTdGFnZSgzKVwiIHYtc2hvdz1cIiFbNCw1XS5pbmNsdWRlcyhjdXJyZW50U3RhZ2UpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgOmNsYXNzPVwiZ2V0U3RhZ2VDbGFzcygzKVwiPlxyXG4gICAgICAgICAgICAgINCe0LHQtdGA0ZbRgtGMINGC0LjQvyDQu9GW0L3Qt9C4XHJcbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwic2VsZWN0ZWRMZW5zVHlwZVwiPiAtIHt7IHNlbGVjdGVkTGVuc1R5cGVOYW1lIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiY3VycmVudFN0YWdlID09PSAzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJzZWxlY3RlZExlbnNcIiBjbGFzcz1cImdyb3VwLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiB2LWZvcj1cImxlbnNUeXBlIGluIGxlbnNUeXBlc1wiIEBjbGljay5zdG9wPVwic2VsZWN0TGVuc1R5cGUobGVuc1R5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgOmNsYXNzPVwibGVuc1R5cGVDbGFzc2VzKGxlbnNUeXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZW5zVHlwZUJsb2NrX19pdGVtTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyA6c3JjPVwibGVuc1R5cGVJbWFnZShsZW5zVHlwZS52YWx1ZSlcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVuc1R5cGVCbG9ja19faXRlbURlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZm9udC13ZWlnaHQ6Ym9sZDtcIj57eyBsZW5zVHlwZS52YWx1ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj57eyBsZW5zVHlwZS5kZXNjcmlwdGlvbiB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiB2LWVsc2UgY2xhc3M9XCJncm91cC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlIG1lc3NhZ2UtLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICDQodC/0L7Rh9Cw0YLQutGDINCy0LjQsdC10YDRltGC0Ywg0LvRltC90LfQuFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8bGkgY2xhc3M9XCJpdGVtLWJveFwiIEBjbGljaz1cInNldFN0YWdlKDQpXCIgdi1zaG93PVwiIVs1XS5pbmNsdWRlcyhjdXJyZW50U3RhZ2UpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgOmNsYXNzPVwiZ2V0U3RhZ2VDbGFzcyg0KVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWxwVGV4dFwiPtCe0LHQtdGA0ZbRgtGMINC/0ZbQtNGF0L7QtNGP0YnRliDQu9GW0L3Qt9C4PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwic2VsZWN0ZWRQcm9kdWN0XCI+IC0ge3sgc2VsZWN0ZWRQcm9kdWN0TmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgdi1pZj1cImN1cnJlbnRTdGFnZSA9PT0gNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiB2LWlmPVwic2VsZWN0ZWRMZW5zVHlwZVwiIGNsYXNzPVwiZ3JvdXAtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVuc1R5cGVfX2l0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiB2LWZvcj1cInByb2R1Y3QgaW4gcHJvZHVjdHNcIiBAY2xpY2suc3RvcD1cInNlbGVjdFByb2R1Y3QocHJvZHVjdClcIiBjbGFzcz1cImxlbnNUeXBlX19pdGVtV3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiA6Y2xhc3M9XCJwcm9kdWN0Q2xhc3Nlcyhwcm9kdWN0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVuc1R5cGVfX2ltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyA6c3JjPVwiZG9tYWluICsgJ3VwbG9hZHMvc2hvcC9wcm9kdWN0cy9tZWRpdW0vJyArIHByb2R1Y3QuaW1hZ2VcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZW5zVHlwZV9fcHJvcGVydGllc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0VGl0bGVcIj57eyBwcm9kdWN0LnRpdGxlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwicHJvZHVjdFByb3BlcnRpZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciB2LWZvcj1cInByb3BlcnR5IGluIHByb2R1Y3QubWFpbl9wcm9wZXJ0aWVzXCIgY2xhc3M9XCJwcm9kdWN0UHJvcGVydHlSb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7IHByb3BlcnR5LnByb3BlcnR5X25hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgcHJvcGVydHkucHJvcGVydHlfdmFsdWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlbnNUeXBlX19wcmljZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJQcm9kdWN0UHJpY2VXcmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZm9udC13ZWlnaHQ6Ym9sZDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0LLRltC0IDxzcGFuIGNsYXNzPVwicHJvZHVjdFByaWNlXCIgdi1odG1sPVwicHJvZHVjdC5wcmljZV9mcm9tXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdFByaWNlSW5mb1wiIHN0eWxlPVwiZm9udC13ZWlnaHQ6Ym9sZDtcIj7Qt9CwINC/0LDRgNGDPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHYtZWxzZSBjbGFzcz1cImdyb3VwLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UgbWVzc2FnZS0taW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgINCh0L/QvtGH0LDRgtC60YMg0L7QsdC10YDRltGC0Ywg0YLQuNC/INC70ZbQvdC30LhcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPGxpIGNsYXNzPVwiaXRlbS1ib3hcIiBAY2xpY2s9XCJzZXRTdGFnZSg1KVwiPlxyXG4gICAgICAgICAgICA8ZGl2IDpjbGFzcz1cImdldFN0YWdlQ2xhc3MoNSlcIj5cclxuICAgICAgICAgICAgICDQktCy0LXQtNGW0YLRjCDRgdCy0L7RlyDQt9C90LDRh9C10L3QvdGPINGA0LXRhtC10L/RgtGDXHJcbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiY3VycmVudFN0YWdlID09PSA1XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJzZWxlY3RlZFByb2R1Y3RcIiBjbGFzcz1cImdyb3VwLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgPHByb2R1Y3QtcGFyYW1zLXNlbGVjdG9yXHJcbiAgICAgICAgICAgICAgICAgICAgICA6ZXllPVwiJ3JpZ2h0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6cmVjZWlwdD1cInJlY2VpcHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOnByb2R1Y3RQYXJhbXM9XCJwcm9kdWN0UGFyYW1zUmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOnByb2R1Y3RQYXJhbVNwaGVyZT1cInByb2R1Y3RQYXJhbVJpZ2h0U3BoZXJlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIDpwcm9kdWN0UGFyYW1DeWxpbmRlcj1cInByb2R1Y3RQYXJhbVJpZ2h0Q3lsaW5kZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOnByb2R1Y3RQYXJhbUF4aXM9XCJwcm9kdWN0UGFyYW1SaWdodEF4aXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOnByb2R1Y3RQYXJhbXMyPVwicHJvZHVjdFBhcmFtc0xlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOnByb2R1Y3RQYXJhbVNwaGVyZTI9XCJwcm9kdWN0UGFyYW1MZWZ0U3BoZXJlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIDpwcm9kdWN0UGFyYW1DeWxpbmRlcjI9XCJwcm9kdWN0UGFyYW1MZWZ0Q3lsaW5kZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOnByb2R1Y3RQYXJhbUF4aXMyPVwicHJvZHVjdFBhcmFtTGVmdEF4aXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgQHVwZGF0ZVNwaGVyZT1cInVwZGF0ZVNwaGVyZVJpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIEB1cGRhdGVDeWxpbmRlcj1cInVwZGF0ZUN5bGluZGVyUmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgQHVwZGF0ZUF4aXM9XCJ1cGRhdGVBeGlzUmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgQGNsZWFyVmFsdWVzPVwiY2xlYXJWYWx1ZXNSaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBAdXBkYXRlU3BoZXJlMj1cInVwZGF0ZVNwaGVyZUxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgQHVwZGF0ZUN5bGluZGVyMj1cInVwZGF0ZUN5bGluZGVyTGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBAdXBkYXRlQXhpczI9XCJ1cGRhdGVBeGlzTGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBAY2xlYXJWYWx1ZXMyPVwiY2xlYXJWYWx1ZXNMZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICA8cHJvZHVjdC1wYXJhbXMtc2VsZWN0b3ItLT5cclxuICAgICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgICAgICA6ZXllPVwiJ2xlZnQnXCItLT5cclxuICAgICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgICAgICA6cmVjZWlwdD1cInJlY2VpcHRcIi0tPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgIDpwcm9kdWN0UGFyYW1zPVwicHJvZHVjdFBhcmFtc0xlZnRcIi0tPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgIDpwcm9kdWN0UGFyYW1TcGhlcmU9XCJwcm9kdWN0UGFyYW1MZWZ0U3BoZXJlXCItLT5cclxuICAgICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgICAgICA6cHJvZHVjdFBhcmFtQ3lsaW5kZXI9XCJwcm9kdWN0UGFyYW1MZWZ0Q3lsaW5kZXJcIi0tPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgIDpwcm9kdWN0UGFyYW1BeGlzPVwicHJvZHVjdFBhcmFtTGVmdEF4aXNcIi0tPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgIEB1cGRhdGVTcGhlcmU9XCJ1cGRhdGVTcGhlcmVMZWZ0XCItLT5cclxuICAgICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgICAgICBAdXBkYXRlQ3lsaW5kZXI9XCJ1cGRhdGVDeWxpbmRlckxlZnRcIi0tPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgIEB1cGRhdGVBeGlzPVwidXBkYXRlQXhpc0xlZnRcIi0tPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgIEBjbGVhclZhbHVlcz1cImNsZWFyVmFsdWVzTGVmdFwiLS0+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAvPi0tPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXJhbXNXcmFwcGVySXRlbSBwYXJhbXNXcmFwcGVySXRlbVdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj4mbmJzcDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiB2LW1vZGVsPVwicGFyYW1zV2lkdGhEaWZmZXJlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgINCU0LvRjyDRgNGW0LfQvdC40YUg0L7Rh9C10LlcclxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXIgY2xhc3M9XCJ0YWJsZVBhcmFtc1wiIHYtaWY9XCJwYXJhbXNXaWR0aERpZmZlcmVudCA9PT0gZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJiZy1oZWFkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+UEQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj7QktGW0LTRgdGC0LDQvdGMINC80ZbQtiDQt9GW0L3QvdC40YbRj9C80Lg8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3Qgdi1tb2RlbD1cInBhcmFtc1dpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2LWZvcj1cImRpc3RhbmNlIGluIHJhbmdlRGlzdGFuY2VTYW1lKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRpc3RhbmNlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlciBjbGFzcz1cInRhYmxlUGFyYW1zXCIgdi1pZj1cInBhcmFtc1dpZHRoRGlmZmVyZW50ID09PSB0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiYmctaGVhZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlBEIChPRCk8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj7QktGW0LTRgdGC0LDQvdGMINC80ZbQtiDQt9GW0L3QvdC40YbRj9C80LggKNGB0L/RgNCw0LLQsCk8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3Qgdi1tb2RlbD1cInBhcmFtc1dpZHRoUmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHYtZm9yPVwiZGlzdGFuY2UgaW4gcmFuZ2VEaXN0YW5jZURpZmZlcmVudCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkaXN0YW5jZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJiZy1oZWFkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+UEQgKE9TKTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PtCS0ZbQtNGB0YLQsNC90Ywg0LzRltC2INC30ZbQvdC90LjRhtGP0LzQuCAo0LfQu9GW0LLQsCk8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3Qgdi1tb2RlbD1cInBhcmFtc1dpZHRoTGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdi1mb3I9XCJkaXN0YW5jZSBpbiByYW5nZURpc3RhbmNlRGlmZmVyZW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRpc3RhbmNlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGJyPjxicj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHBCbG9ja1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAg0JfQsNCy0LDQvdGC0LDQttC40YLQuCDRgNC10YbQtdC/0YIgKNGE0L7RgtC+KTpcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQ9XCJpbWFnZS8qXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5wdXQ9XCJyZWFkUmVjZWlwdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPVwiZmlsZXVwbG9hZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiB2LWlmPVwicmVjZWlwdFwiIGNsYXNzPVwiaGVscEJsb2NrUmVzdWx0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg0J/RgNC40LrRgNGW0L/Qu9C10L3QuNC5INGE0LDQudC7INGA0LXRhtC10L/RgtGDOiB7eyByZWNlaXB0LmZpbGVOYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiY2xlYXJSZWNlcHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImNvbG9yOmJsdWU7XCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICDQktGW0LTQutGA0ZbQv9C40YLQuFxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+0K/QutGJ0L4g0LIg0YDQtdGG0LXQv9GC0ZYg0ZQg0YPRgdGWINC90LXQvtGF0ZbQsdC90ZYg0LTQsNC90ZYgLSDQsiDRgtCw0LrQvtC80YMg0LLQuNC/0LDQtNC60YMg0L/QvtC70Y8g0L3QuNC20YfQtSDQvdC1INC+0LHQvtCyJ9GP0LfQutC+0LLRliDQtNC+INC30LDQv9C+0LLQvdC10L3QvdGPXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHYtZWxzZT5cclxuICAgICAgICAgICAgICAgICAgICDQr9C60YnQviDQstC4INC30LDQstCw0L3RgtCw0LbQtdGC0LUg0YTQsNC50LsgLSDQsiDRgtCw0LrQvtC80YMg0LLQuNC/0LDQtNC60YMg0L/QvtC70Y8g0LLQuNGJ0LUg0L3QtSDQvtCx0L7QsifRj9C30LrQvtCy0ZYg0LTQviDQt9Cw0L/QvtCy0L3QtdC90L3Rj1xyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHYtZWxzZSBjbGFzcz1cImdyb3VwLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UgbWVzc2FnZS0taW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgINCh0L/QvtGH0LDRgtC60YMg0L7QsdC10YDRltGC0Ywg0LvRltC90LfRg1xyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJnbGFzcy1wcm9jZXNzLWJvdHRvbS1hcmVhXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJ0b3RhbC13cmFwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1YnRvdGFsLWlubmVyXCI+XHJcbiAgICAgICAgICA8cHJvZHVjdC1wcmljZSA6cHJpY2U9XCJmaW5hbFByaWNlXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGRUb0NhcnRXcmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IHYtaWY9XCJhY3RpdmVTdWJtaXRcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tbGdcIiB0eXBlPVwiYnV0dG9uXCIgQGNsaWNrPVwic3VibWl0UHJvZHVjdFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuPtCU0L7QtNCw0YLQuCDQsiDQutC+0YDQt9C40L3Rgzwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O2p1c3RpZnktaXRlbXM6IGNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgPGRpdiB2LWlmPVwiYWN0aXZlU3VibWl0ID09PSBmYWxzZVwiIGNsYXNzPVwicHJvZHVjdEVycm9yIG1lc3NhZ2UgbWVzc2FnZS0tZXJyb3JcIj5cclxuICAgICAgICAgICAgICDQktCw0Lwg0L3QtdC+0LHRhdGW0LTQvdC+INC+0LHRgNCw0YLQuCDQu9GW0L3Qt9GDLCDRgdGE0LXRgNGDINGC0LAg0YbQuNC70ZbQvdC00YAg0LTQu9GPINC+0LHQvtGFINC+0YfQtdC5LCDRidC+0LEg0LzQsNGC0Lgg0LzQvtC20LvQuNCy0ZbRgdGC0Ywg0LfQsNC80L7QstC40YLQuCDQutC+0LzQv9C70LXQutGCXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c3R5bGUgc2NvcGVkPlxyXG4ud3JhcHBlciB7XHJcbiAgcG9zaXRpb246IGZpeGVkO1xyXG4gIHRvcDogMDtcclxuICBsZWZ0OiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICByaWdodDogMDtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI0OCwgMjQ4LCAyNDgsIDEpO1xyXG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcclxuICBwYWRkaW5nOiAwIDAgODdweDtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB6LWluZGV4OiA5OTk7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5jZW50cmFsUGFydCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogMTMwMHB4O1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDk1MHB4KSB7XHJcbiAgLmNlbnRyYWxQYXJ0IHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBvdmVyZmxvdzogc2Nyb2xsO1xyXG4gIH1cclxufVxyXG5cclxuLmxlZnRQYXJ0IHtcclxuICB3aWR0aDogNTAlO1xyXG59XHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA5NTBweCkge1xyXG4gIC5sZWZ0UGFydCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLnJpZ2h0UGFydCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHBhZGRpbmc6IDUwcHg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTUwcHgpIHtcclxuICAucmlnaHRQYXJ0IHtcclxuICAgIHBhZGRpbmc6IDVweDtcclxuICB9XHJcbn1cclxuXHJcbi5yaWdodFBhcnRMaXN0IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuICBvdmVyZmxvdy14OiBoaWRkZW47XHJcbn1cclxuXHJcbi5pdGVtLWJveCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcclxuICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcclxufVxyXG5cclxuXHJcbi5wcmVzLWl0ZW0ge1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgcGFkZGluZzogMTZweCAxNHB4O1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5wcmVzLWl0ZW0taW5hY3RpdmUge1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNykgIWltcG9ydGFudDtcclxuICBjb2xvcjogcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjYxKTtcclxufVxyXG5cclxuLyoqKi9cclxuLmdyb3VwLWhlYWRlciB7XHJcbiAgY29sb3I6ICMzMzM7XHJcbiAgZm9udC1zaXplOiAxLjVyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICBmb250LWZhbWlseTogXCJCZWJhcyBOZXVlIEN5cmlsbGljXCIsIHNhbnMtc2VyaWY7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XHJcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMwMDdlZWY7XHJcbn1cclxuXHJcbi5icmFuZC1pdGVtIHtcclxuICBtaW4taGVpZ2h0OiAxMDBweDtcclxuICBtYXJnaW46IDEwcHg7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICB0cmFuc2l0aW9uOiAuM3MgYWxsIGVhc2U7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5icmFuZC1pdGVtLXNlbGVjdGVkIHtcclxuICBib3gtc2hhZG93OiAwIDAgMTBweCByZ2IoMCAxMjYgMjM5IC8gMjAlKTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjMDA3ZWVmO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDdlZWY7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4ucHJvZHVjdFByaWNlV3JhcHBlciB7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5icmFuZC1pdGVtLXNlbGVjdGVkIC5wcm9kdWN0UHJpY2Uge1xyXG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYnJhbmQtaXRlbS11bnNlbGVjdGVkIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xyXG59XHJcblxyXG4uYnJhbmQtaXRlbTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcclxufVxyXG5cclxuLmxlbnNUeXBlX19pdGVtV3JhcHBlciA6aG92ZXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7XHJcbn1cclxuXHJcbi8qKlxyXG5CT1RUT01cclxuICovXHJcbi5nbGFzcy1wcm9jZXNzLWJvdHRvbS1hcmVhIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiA4N3B4O1xyXG4gIHotaW5kZXg6IDEwMjtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gIGJveC1zaGFkb3c6IDAgLTRweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAuMDgpO1xyXG4gIHRyYW5zaXRpb246IGFsbCAuM3M7XHJcbn1cclxuXHJcbi5zdWJ0b3RhbC13cmFwIHtcclxuICBtYXgtd2lkdGg6IDEzMDBweDtcclxuICBwYWRkaW5nLXJpZ2h0OiAzLjU0MTY2NjY2Njd2dztcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxufVxyXG5cclxuLnN1YnRvdGFsLWlubmVyIHtcclxuICBmbGV4OiAxO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTUwcHgpIHtcclxuICAuc3VidG90YWwtaW5uZXIge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG5MRUZUIFNJREVcclxuICovXHJcbi5wcmljZS1kZXNjLWRpYWctYXJlYSB7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5wcmljZS1kZXNjLWlubmVyIHtcclxuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA5MHB4KTtcclxuICBwb3NpdGlvbjogc3RpY2t5O1xyXG4gIHRvcDogMDtcclxuICB3aWR0aDogNTM0cHg7XHJcbiAgcGFkZGluZy1yaWdodDogMy41NDE2NjY2NjY3dnc7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5nbGFzcy1pbWctd3JhcCB7XHJcbiAgcGFkZGluZy10b3A6IDkuMzc1dnc7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5pbm5lci1ib3gge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDMzMHB4O1xyXG4gIHBhZGRpbmctYm90dG9tOiAxLjI1dnc7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTUwcHgpIHtcclxuICAuaW5uZXItYm94IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLyoqICAqL1xyXG4uYnJhbmRzX19pdGVtIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI0U1RTVFNTtcclxufVxyXG5cclxuLmJyYW5kX19pdGVtID4gaW1nIHtcclxuICBtYXgtaGVpZ2h0OiAxNTBweDtcclxuICBtYXgtd2lkdGg6IDE1MHB4O1xyXG59XHJcblxyXG4uYnJhbmRfX2l0ZW0ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLmxlbnNlX19pdGVtIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgbWFyZ2luOiAxMHB4IDA7XHJcbn1cclxuXHJcbi5sZW5zZV9faXRlbSAubGVuc2VfX2l0ZW1OYW1lIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBhc3BlY3QtcmF0aW86IDYvMztcclxuICBtYXgtaGVpZ2h0OiAxNTBweDtcclxuICBtYXgtd2lkdGg6IDI1MHB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLmxlbnNlX19pdGVtIC5sZW5zZV9faXRlbU5hbWUgPiBkaXYge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLmxlbnNUeXBlX19pdGVtcyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG59XHJcblxyXG4ubGVuc1R5cGVfX2l0ZW0ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgcGFkZGluZzogNXB4O1xyXG4gIG1hcmdpbjogNXB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNFNUU1RTU7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG59XHJcblxyXG4ubGVuc1R5cGVfX2ltYWdlIHtcclxuICB3aWR0aDogMjAlO1xyXG4gIHBhZGRpbmc6IDVweDtcclxuICBhc3BlY3QtcmF0aW86IGF1dG87XHJcbn1cclxuXHJcbi5wcm9kdWN0VGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4ubGVuc1R5cGVfX3Byb3BlcnRpZXMge1xyXG4gIHdpZHRoOiA2MCU7XHJcbiAgcGFkZGluZzogNXB4O1xyXG4gIGFzcGVjdC1yYXRpbzogYXV0bztcclxufVxyXG5cclxuLmxlbnNUeXBlX19wcmljZSB7XHJcbiAgd2lkdGg6IDIwJTtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5sZW5zVHlwZUJsb2NrX19pdGVtIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgbWFyZ2luOiAxMHB4IDA7XHJcbn1cclxuXHJcbi5sZW5zVHlwZUJsb2NrX19pdGVtIC5sZW5zVHlwZUJsb2NrX19pdGVtTmFtZSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYXNwZWN0LXJhdGlvOiA0LzM7XHJcbiAgbWF4LWhlaWdodDogMTUwcHg7XHJcbiAgbWF4LXdpZHRoOiAxNTBweDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5sZW5zVHlwZUJsb2NrX19pdGVtIC5sZW5zVHlwZUJsb2NrX19pdGVtTmFtZSA+IGRpdiB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG5cclxuLnBhcmFtc1dyYXBwZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMGQ0ZGI7XHJcbn1cclxuXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDk1MHB4KSB7XHJcbiAgLnBhcmFtc1dyYXBwZXIge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDk1MHB4KSB7XHJcbiAgLnBhcmFtc1dyYXBwZXIge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICB9XHJcbn1cclxuXHJcbi5wYXJhbXNXcmFwcGVyIC5wYXJhbXNXcmFwcGVySXRlbSB7XHJcbiAgZmxleDogMTtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDk1MHB4KSB7XHJcbiAgLnBhcmFtc1dyYXBwZXIgLnBhcmFtc1dyYXBwZXJJdGVtIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogOTUwcHgpIHtcclxuICAucGFyYW1zV3JhcHBlciAucGFyYW1zV3JhcHBlckl0ZW0ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgfVxyXG59XHJcblxyXG4uYWRkVG9DYXJ0V3JhcHBlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi5yaWdodFBhcnRIZWFkZXJXcmFwcGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxufVxyXG5cclxuLnJpZ2h0UGFydEhlYWRlcldyYXBwZXIgaDIge1xyXG4gIGZvbnQtc2l6ZTogMnJlbTtcclxufVxyXG5cclxuLnJpZ2h0UGFydEhlYWRlcldyYXBwZXIgLmNsb3NlIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwYWRkaW5nOiA1cHg7XHJcbiAgbWFyZ2luOiA1cHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2QwZDRkYjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLnByaWNlRGF0YSB0ZCB7XHJcbiAgcGFkZGluZzogMTBweDtcclxufVxyXG5cclxuLmdvQmFjayB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4uZ29CYWNrOmhvdmVyIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcclxufVxyXG5cclxuLmhlbHBUZXh0IHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLmJyYW5kLWl0ZW0tdW5zZWxlY3RlZDpob3ZlciB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNkMGQ0ZGI7XHJcbn1cclxuXHJcbi5iYnJhbmRfX2l0ZW1VbnNlbGVjdGVkOmhvdmVyIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwZDRkYjtcclxufVxyXG48L3N0eWxlPiIsIjx0ZW1wbGF0ZT5cclxuICA8ZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm9fX3dyYXBwZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm9fX3ByaWNlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtcHJpY2VcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LXByaWNlX19tYWluXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHRvdGFsUHJpY2UoKSB9fTwvc3Bhbj4ge3sgcHJvZHVjdEN1cnJlbmN5IH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZV9fd3JhcHBlclwiPlxyXG4gICAgICA8ZGl2IEBjbGljaz1cImFtb3VudEV5ZXMgPSAxXCIgY2xhc3M9XCJlX19leWVzXCI+XHJcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjI2XCIgaGVpZ2h0PVwiMjZcIiB2aWV3Qm94PVwiMCAwIDI2IDI2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMjUuODM0OCAxMi40OTQ0QzI1LjYwMjUgMTIuMTc2NiAyMC4wNjgyIDQuNzE0MzYgMTIuOTk5OSA0LjcxNDM2QzUuOTMxNTcgNC43MTQzNiAwLjM5NzAwOSAxMi4xNzY2IDAuMTY0OTg5IDEyLjQ5NDFDLTAuMDU0OTk2MiAxMi43OTU1IC0wLjA1NDk5NjIgMTMuMjA0MyAwLjE2NDk4OSAxMy41MDU4QzAuMzk3MDA5IDEzLjgyMzUgNS45MzE1NyAyMS4yODU4IDEyLjk5OTkgMjEuMjg1OEMyMC4wNjgyIDIxLjI4NTggMjUuNjAyNSAxMy44MjM1IDI1LjgzNDggMTMuNTA2QzI2LjA1NSAxMy4yMDQ2IDI2LjA1NSAxMi43OTU1IDI1LjgzNDggMTIuNDk0NFpNMTIuOTk5OSAxOS41NzE1QzcuNzkzMzEgMTkuNTcxNSAzLjI4Mzg4IDE0LjYxODYgMS45NDg5OSAxMi45OTk1QzMuMjgyMTUgMTEuMzc4OSA3Ljc4MjE0IDYuNDI4NjMgMTIuOTk5OSA2LjQyODYzQzE4LjIwNjIgNi40Mjg2MyAyMi43MTUzIDExLjM4MDYgMjQuMDUwOCAxMy4wMDA3QzIyLjcxNzYgMTQuNjIxMiAxOC4yMTc2IDE5LjU3MTUgMTIuOTk5OSAxOS41NzE1WlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIiMwMDdlZWZcIj48L3BhdGg+XHJcbiAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMTMuMTQyOSA3Ljg1NzQyQzEwLjMwNzEgNy44NTc0MiA4IDEwLjE2NDYgOCAxMy4wMDAzQzggMTUuODM2IDEwLjMwNzEgMTguMTQzMiAxMy4xNDI5IDE4LjE0MzJDMTUuOTc4NiAxOC4xNDMyIDE4LjI4NTggMTUuODM2IDE4LjI4NTggMTMuMDAwM0MxOC4yODU4IDEwLjE2NDYgMTUuOTc4NiA3Ljg1NzQyIDEzLjE0MjkgNy44NTc0MlpNMTMuMTQyOSAxNEMxMS4yNTIzIDE0IDE0LjY0NDUgMTQuODkwNSAxNC42NDQ1IDEzQzE0LjY0NDUgMTEuMTA5NSAxMS43NTQgMTIgMTMuNjQ0NSAxMkMxNS41MzUxIDEyIDEyLjE0NDUgMTEuMTA5NSAxMi4xNDQ1IDEzQzEyLjE0NDUgMTQuODkwNSAxNS4wMzM1IDE0IDEzLjE0MjkgMTRaXCJcclxuICAgICAgICAgICAgICBmaWxsPVwiIzAwN2VlZlwiIHYtaWY9XCJhbW91bnRFeWVzID09PSAxXCI+PC9wYXRoPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDxkaXY+0J7QtNC90LDQutC+0LLRljwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBAY2xpY2s9XCJhbW91bnRFeWVzID0gMlwiIGNsYXNzPVwiZV9fZXllc1wiPlxyXG4gICAgICAgIDxzdmcgd2lkdGg9XCIyNlwiIGhlaWdodD1cIjI2XCIgdmlld0JveD1cIjAgMCAyNiAyNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICBkPVwiTTI1LjgzNDggMTIuNDk0NEMyNS42MDI1IDEyLjE3NjYgMjAuMDY4MiA0LjcxNDM2IDEyLjk5OTkgNC43MTQzNkM1LjkzMTU3IDQuNzE0MzYgMC4zOTcwMDkgMTIuMTc2NiAwLjE2NDk4OSAxMi40OTQxQy0wLjA1NDk5NjIgMTIuNzk1NSAtMC4wNTQ5OTYyIDEzLjIwNDMgMC4xNjQ5ODkgMTMuNTA1OEMwLjM5NzAwOSAxMy44MjM1IDUuOTMxNTcgMjEuMjg1OCAxMi45OTk5IDIxLjI4NThDMjAuMDY4MiAyMS4yODU4IDI1LjYwMjUgMTMuODIzNSAyNS44MzQ4IDEzLjUwNkMyNi4wNTUgMTMuMjA0NiAyNi4wNTUgMTIuNzk1NSAyNS44MzQ4IDEyLjQ5NDRaTTEyLjk5OTkgMTkuNTcxNUM3Ljc5MzMxIDE5LjU3MTUgMy4yODM4OCAxNC42MTg2IDEuOTQ4OTkgMTIuOTk5NUMzLjI4MjE1IDExLjM3ODkgNy43ODIxNCA2LjQyODYzIDEyLjk5OTkgNi40Mjg2M0MxOC4yMDYyIDYuNDI4NjMgMjIuNzE1MyAxMS4zODA2IDI0LjA1MDggMTMuMDAwN0MyMi43MTc2IDE0LjYyMTIgMTguMjE3NiAxOS41NzE1IDEyLjk5OTkgMTkuNTcxNVpcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjMDA3ZWVmXCI+PC9wYXRoPlxyXG4gICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICBkPVwiTTEzLjE0MjkgNy44NTc0MkMxMC4zMDcxIDcuODU3NDIgOCAxMC4xNjQ2IDggMTMuMDAwM0M4IDE1LjgzNiAxMC4zMDcxIDE4LjE0MzIgMTMuMTQyOSAxOC4xNDMyQzE1Ljk3ODYgMTguMTQzMiAxOC4yODU4IDE1LjgzNiAxOC4yODU4IDEzLjAwMDNDMTguMjg1OCAxMC4xNjQ2IDE1Ljk3ODYgNy44NTc0MiAxMy4xNDI5IDcuODU3NDJaTTEzLjE0MjkgMTRDMTEuMjUyMyAxNCAxNC42NDQ1IDE0Ljg5MDUgMTQuNjQ0NSAxM0MxNC42NDQ1IDExLjEwOTUgMTEuNzU0IDEyIDEzLjY0NDUgMTJDMTUuNTM1MSAxMiAxMi4xNDQ1IDExLjEwOTUgMTIuMTQ0NSAxM0MxMi4xNDQ1IDE0Ljg5MDUgMTUuMDMzNSAxNCAxMy4xNDI5IDE0WlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIiMwMDdlZWZcIiB2LWlmPVwiYW1vdW50RXllcyA9PT0gMlwiPjwvcGF0aD5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8ZGl2PtCg0ZbQt9C90ZY8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2X193cmFwcGVyXCIgOnN0eWxlPVwiKHZhcmlhbnRzLmxlbmd0aCA8PSAxKSA/ICdkaXNwbGF5Om5vbmU7JyA6ICcnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlbF9fbGVmdFwiPlxyXG4gICAgICAgIHt7IHZhcmlhbnROYW1lIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZWxfX3JpZ2h0XCI+XHJcbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInZhcmlhbnRzLXNlbGVjdF9fZmllbGQgIHZhcmlhbnRzLXNlbGVjdF9fZmllbGQtLWxnXCIgc3R5bGU9XCJtYXgtd2lkdGg6IDE1MHB4XCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJzZWxlY3RlZFZhcmlhbnQxXCIgQGNoYW5nZT1cImNoYW5nZVZhcmlhbnQoMClcIj5cclxuICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICB2LWZvcj1cIih2YXJpYW50LCBrZXkpIGluIHZhcmlhbnRzXCJcclxuICAgICAgICAgICAgICA6dmFsdWU9XCJ2YXJpYW50LmlkXCJcclxuICAgICAgICAgICAgICBAY2hhbmdlPVwic2V0Q3VycmVudFZhcmlhbnQodmFyaWFudCwgMSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyB2YXJpYW50LnRpdGxlIH19XHJcbiAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlbF9fcmlnaHRcIiB2LWlmPVwiYW1vdW50RXllcyA9PT0gMlwiPlxyXG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJ2YXJpYW50cy1zZWxlY3RfX2ZpZWxkICB2YXJpYW50cy1zZWxlY3RfX2ZpZWxkLS1sZ1wiIHN0eWxlPVwibWF4LXdpZHRoOiAxNTBweFwiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwic2VsZWN0ZWRWYXJpYW50MlwiIEBjaGFuZ2U9XCJjaGFuZ2VWYXJpYW50KDEpXCI+XHJcbiAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgdi1mb3I9XCIodmFyaWFudCwga2V5KSBpbiB2YXJpYW50c1wiXHJcbiAgICAgICAgICAgICAgOnZhbHVlPVwidmFyaWFudC5pZFwiXHJcbiAgICAgICAgICAgICAgQGNoYW5nZT1cInNldEN1cnJlbnRWYXJpYW50KHZhcmlhbnQsIDEpXCJcclxuICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJ2YXJpYW50LnN0b2NrID09PSAwXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgdmFyaWFudC50aXRsZSB9fVxyXG4gICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiB2LWlmPVwicHJvZHVjdFR5cGVPZkxlbnNcIj5cclxuICAgICAgPHNlbGVjdCBjbGFzcz1cInZhcmlhbnRzLXNlbGVjdF9fZmllbGQgdmFyaWFudHMtc2VsZWN0X19maWVsZC0tbGdcIiBAY2hhbmdlPVwiY2hhbmdlQ2F0ZWdvcnlcIiB2LW1vZGVsPVwicHJvZHVjdElkXCI+XHJcbiAgICAgICAgPG9wdGlvbiA6dmFsdWU9XCJudWxsXCI+Tm90IHNlbGVjdGVkPC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICB2LWZvcj1cImNhdGVnb3J5IGluIGlubmVyVHlwZU9mTGVuc0NhdGVnb3J5XCJcclxuICAgICAgICAgICAgdi1odG1sPVwiY2F0ZWdvcnkudGV4dFwiXHJcbiAgICAgICAgICAgIDp2YWx1ZT1cImNhdGVnb3J5LmlkXCJcclxuICAgICAgICAgICAgOnNlbGVjdGVkPVwicHJvZHVjdElkID09PSBjYXRlZ29yeS5pZFwiLz5cclxuICAgICAgPC9zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tICAgIC0tPlxyXG4gICAgPCEtLSAgICAtLT5cclxuICAgIDwhLS0gICAgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwidl9fd3JhcHBlclwiIHYtaWY9XCJ0aGlzLmZpcnN0SXRlbXMxLmxlbmd0aCA+IDBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVsX19sZWZ0XCI+XHJcbiAgICAgICAg0KHQpNCV0KDQkFxyXG4gICAgICAgIDxzcGFuPio8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZWxfX2xlZnRcIj5cclxuICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgIDpjbGFzcz1cIihwcmljZUZpcnN0MSA9PT0gbnVsbCAmJiBpc1N1Ym1pdHRlZCA9PT0gdHJ1ZSkgPyAndmFyaWFudHMtc2VsZWN0X19maWVsZCB2YXJpYW50cy1zZWxlY3RfX2ZpZWxkLS1sZyByZXF1aXJlZC1maWVsZCcgOiAndmFyaWFudHMtc2VsZWN0X19maWVsZCAgdmFyaWFudHMtc2VsZWN0X19maWVsZC0tbGcnXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IDE1MHB4XCJcclxuICAgICAgICAgICAgdi1tb2RlbD1cInByaWNlRmlyc3QxXCJcclxuICAgICAgICAgICAgQGNoYW5nZT1cImZldGNoU2Vjb25kUHJpY2UoMSlcIj5cclxuICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICB2LWZvcj1cIihwcm9wZXJ0eSwga2V5KSBpbiB0aGlzLmZpcnN0SXRlbXMxXCJcclxuICAgICAgICAgICAgICA6dmFsdWU9XCJwcm9wZXJ0eS5maXJzdFwiXHJcbiAgICAgICAgICAgICAgOmtleT1cImtleVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHByb3BlcnR5LmZpcnN0IH19XHJcbiAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlbF9fcmlnaHRcIiB2LWlmPVwiYW1vdW50RXllcyA9PT0gMlwiPlxyXG4gICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgOmNsYXNzPVwiKHByaWNlRmlyc3QyID09PSBudWxsICYmIGlzU3VibWl0dGVkID09PSB0cnVlKSA/ICd2YXJpYW50cy1zZWxlY3RfX2ZpZWxkIHZhcmlhbnRzLXNlbGVjdF9fZmllbGQtLWxnIHJlcXVpcmVkLWZpZWxkJyA6ICd2YXJpYW50cy1zZWxlY3RfX2ZpZWxkICB2YXJpYW50cy1zZWxlY3RfX2ZpZWxkLS1sZydcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1heC13aWR0aDogMTUwcHhcIlxyXG4gICAgICAgICAgICB2LW1vZGVsPVwicHJpY2VGaXJzdDJcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiZmV0Y2hTZWNvbmRQcmljZSgyKVwiPlxyXG4gICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgIHYtZm9yPVwiKHByb3BlcnR5LCBrZXkpIGluIHRoaXMuZmlyc3RJdGVtczJcIlxyXG4gICAgICAgICAgICAgIDp2YWx1ZT1cInByb3BlcnR5LmZpcnN0XCJcclxuICAgICAgICAgICAgICA6a2V5PVwia2V5XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgcHJvcGVydHkuZmlyc3QgfX1cclxuICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ2X193cmFwcGVyXCIgdi1pZj1cInNlY29uZEl0ZW1zU3VtIDwgMTAwMFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZWxfX2xlZnRcIj5cclxuICAgICAgICDQptCY0JvQhtCd0JTQoFxyXG4gICAgICAgIDxzcGFuPio8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZWxfX2xlZnRcIj5cclxuICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgIDpjbGFzcz1cIihwcmljZVNlY29uZDEgPT09IG51bGwgJiYgaXNTdWJtaXR0ZWQgPT09IHRydWUpID8gJ3ZhcmlhbnRzLXNlbGVjdF9fZmllbGQgdmFyaWFudHMtc2VsZWN0X19maWVsZC0tbGcgcmVxdWlyZWQtZmllbGQnIDogJ3ZhcmlhbnRzLXNlbGVjdF9fZmllbGQgIHZhcmlhbnRzLXNlbGVjdF9fZmllbGQtLWxnJ1wiXHJcbiAgICAgICAgICAgIHN0eWxlPVwibWF4LXdpZHRoOiAxNTBweFwiXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJwcmljZVNlY29uZDFcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwic2VsZWN0ZWRTZWNvbmRQcm9wZXJ0eSgxKVwiPlxyXG4gICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAgIHYtZm9yPVwiKHByb3BlcnR5LCBrZXkpIGluIHRoaXMuc2Vjb25kSXRlbXMxXCJcclxuICAgICAgICAgICAgICA6dmFsdWU9XCJwcm9wZXJ0eS5zZWNvbmRcIlxyXG4gICAgICAgICAgICAgIDprZXk9XCJrZXlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBwcm9wZXJ0eS5zZWNvbmQgfX1cclxuICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVsX19yaWdodFwiIHYtaWY9XCJhbW91bnRFeWVzID09PSAyXCI+XHJcbiAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICA6Y2xhc3M9XCIocHJpY2VTZWNvbmQyID09PSBudWxsICYmIGlzU3VibWl0dGVkID09PSB0cnVlKSA/ICd2YXJpYW50cy1zZWxlY3RfX2ZpZWxkIHZhcmlhbnRzLXNlbGVjdF9fZmllbGQtLWxnIHJlcXVpcmVkLWZpZWxkJyA6ICd2YXJpYW50cy1zZWxlY3RfX2ZpZWxkICB2YXJpYW50cy1zZWxlY3RfX2ZpZWxkLS1sZydcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1heC13aWR0aDogMTUwcHhcIlxyXG4gICAgICAgICAgICB2LW1vZGVsPVwicHJpY2VTZWNvbmQyXCJcclxuICAgICAgICAgICAgQGNoYW5nZT1cInNlbGVjdGVkU2Vjb25kUHJvcGVydHkoMilcIj5cclxuICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICB2LWZvcj1cIihwcm9wZXJ0eSwga2V5KSBpbiB0aGlzLnNlY29uZEl0ZW1zMlwiXHJcbiAgICAgICAgICAgICAgOnZhbHVlPVwicHJvcGVydHkuc2Vjb25kXCJcclxuICAgICAgICAgICAgICA6a2V5PVwia2V5XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgcHJvcGVydHkuc2Vjb25kIH19XHJcbiAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tICAgIC0tPlxyXG4gICAgPCEtLSAgICAtLT5cclxuICAgIDwhLS0gICAgLS0+XHJcblxyXG4gICAgPGRpdiB2LWlmPVwiYXR0cmlidXRlcy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgdi1mb3I9XCIoYXR0cmlidXRlLCBrZXlBdHRyaWJ1dGUpIGluIGF0dHJpYnV0ZXNcIlxyXG4gICAgICAgICA6a2V5PVwia2V5QXR0cmlidXRlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ2X193cmFwcGVyXCIgdi1pZj1cImF0dHJpYnV0ZS5uYW1lLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWxfX2xlZnRcIj5cclxuICAgICAgICAgIHt7IGF0dHJpYnV0ZS5uYW1lIH19XHJcbiAgICAgICAgICA8c3BhbiB2LWlmPVwiYXR0cmlidXRlLnJlcXVpcmVkID09MVwiPio8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVsX19yaWdodFwiPlxyXG4gICAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAgICA8c2VsZWN0IDpuYW1lPVwiU3RyaW5nKGtleUF0dHJpYnV0ZSkgKyAnLTEnXCIgdi1tb2RlbD1cImF0dHJpYnV0ZXMxW1N0cmluZyhrZXlBdHRyaWJ1dGUpXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiZ2V0U2VsZWN0Q29sb3IoYXR0cmlidXRlLCBhdHRyaWJ1dGVzMVtTdHJpbmcoa2V5QXR0cmlidXRlKV0pXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1heC13aWR0aDoxMDBweDt0ZXh0LWFsaWduOmNlbnRlcjsgXCI+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiBkaXNhYmxlZCB2YWx1ZT1cIlwiPiAtLTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gdi1mb3I9XCIoYXR0cmlidXRlLCBrZXkpIGluIGF0dHJpYnV0ZS50ZXh0XCIgOnZhbHVlPVwiYXR0cmlidXRlXCI+e3sgYXR0cmlidXRlIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWxfX3JpZ2h0XCIgdi1pZj1cImFtb3VudEV5ZXMgPT09IDJcIj5cclxuICAgICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgICAgPHNlbGVjdCA6bmFtZT1cIlN0cmluZyhrZXlBdHRyaWJ1dGUpICsgJy0yJ1wiIHYtbW9kZWw9XCJhdHRyaWJ1dGVzMltTdHJpbmcoa2V5QXR0cmlidXRlKV1cIlxyXG4gICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImdldFNlbGVjdENvbG9yKGF0dHJpYnV0ZSwgYXR0cmlidXRlczJbU3RyaW5nKGtleUF0dHJpYnV0ZSldKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6MTAwcHg7dGV4dC1hbGlnbjpjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiBkaXNhYmxlZCB2YWx1ZT1cIlwiPiAtLTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gdi1mb3I9XCIoYXR0cmlidXRlLCBrZXkpIGluIGF0dHJpYnV0ZS50ZXh0XCIgOnZhbHVlPVwiYXR0cmlidXRlXCI+e3sgYXR0cmlidXRlIH19PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidl9fd3JhcHBlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZWxfX2xlZnRcIj5cclxuICAgICAgICDQntCx0LXRgNGW0YLRjCDQutGW0LvRjNC60ZbRgdGC0YxcclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlbF9fcmlnaHRcIj5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIHYtbW9kZWw9XCJhbW91bnQxXCIgY2xhc3M9XCJmb3JtLWlucHV0X19jb250cm9sIGZvcm0taW5wdXRfX2NvbnRyb2wtLXF1YW50aXR5XCJcclxuICAgICAgICAgICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6MTAwcHg7dGV4dC1hbGlnbjpjZW50ZXI7XCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZWxfX3JpZ2h0XCIgdi1pZj1cImFtb3VudEV5ZXMgPT09IDIgJiYgdnVlQ2F0ZWdvcnlEb3VibGU9PT0wXCI+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiB2LW1vZGVsPVwiYW1vdW50MlwiIGNsYXNzPVwiZm9ybS1pbnB1dF9fY29udHJvbCBmb3JtLWlucHV0X19jb250cm9sLS1xdWFudGl0eVwiXHJcbiAgICAgICAgICAgICAgIHN0eWxlPVwibWF4LXdpZHRoOjEwMHB4O3RleHQtYWxpZ246Y2VudGVyO1wiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidl9fd3JhcHBlclwiIHYtaWY9XCJpbm5lclR5cGVPZkxlbnNDYXRlZ29yeVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZWxfX2xlZnRcIj5cclxuICAgICAgICDQptGW0L3QsFxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVsX19yaWdodFwiPlxyXG4gICAgICAgIHt7IHRoaXMucHJvZHVjdFByaWNlMSAqIHRoaXMuYW1vdW50MSB9fSDQk9Cg0J1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlbF9fcmlnaHRcIiB2LWlmPVwiYW1vdW50RXllcyA9PT0gMiAmJiB2dWVDYXRlZ29yeURvdWJsZT09PTBcIj5cclxuICAgICAgICB7eyB0aGlzLnByb2R1Y3RQcmljZTIgKiB0aGlzLmFtb3VudDIgfX0g0JPQoNCdXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJhbGVydFwiIHYtaWY9XCJpc0F2YWlsYWJsZVN1Ym1pdCgpPT09ZmFsc2UgJiYgaXNTdWJtaXR0ZWRcIj5cclxuICAgICAg0J/QvtC70Y8g0LcgKiDQvtCx0L7QsifRj9C30LrQvtCy0ZYg0LTQviDQt9Cw0L/QvtCy0L3QtdC90L3Rj1xyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tSWYgYWRkZWQgdG8gQ2FydCAgLS0+XHJcblxyXG4gICAgPGRpdiB2LWlmPVwiYWRkZWRUb0NhcnRcIiBjbGFzcz1cImFkZGVkX3RvX2NhcnRcIj4g0KLQvtCy0LDRgCDRg9C20LUg0LIg0LrQvtGA0LfQuNC90ZY8L2Rpdj5cclxuICAgIDxkaXYgdi1pZj1cImFsZXJ0TWVzc2FnZVwiIGNsYXNzPVwiYWRkZWRfdG9fY2FydFwiPiB7eyBhbGVydE1lc3NhZ2UgfX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWludHJvX19mbGV4LWNvbnRhaW5lclwiIHN0eWxlPVwiYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjNWM1YzU7bWFyZ2luLXRvcDogMjBweDtcIj5cclxuICAgICAgPCEtLSBQcm9kdWN0IGFkZCB0byBjYXJ0IGJ1dHRvbiAtLT5cclxuXHJcbiAgICAgIDwhLS0gSXRlbXMgaW4gc3RvY2sgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LXB1cmNoYXNlIFwiIGRhdGEtcHJvZHVjdC1hdmFpbGFibGU9XCJcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1sZ1wiIHR5cGU9XCJidXR0b25cIiBAY2xpY2s9XCJhZGRUb0NhcnQoKVwiIDpkaXNhYmxlZD1cImNhcnREaXNhYmxlZFwiPlxyXG4gICAgICAgICAgPHNwYW4gdi1pZj1cImNhcnREaXNhYmxlZFwiPtCd0LXQvNCwINCyINC90LDRj9Cy0L3QvtGB0YLRljwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIHYtZWxzZT7QlNC+0LTQsNGC0Lgg0LIg0LrQvtGA0LfQuNC90YM8L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBXaXNobGlzdCBidXR0b25zLiBEb250IHNob3cgYnV0dG9uIG9uIHdoaXNobGlzdCBwYWdlIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1hY3Rpb24gcHJvZHVjdC1hY3Rpb24tLWxnXCIgZGF0YS1hamF4LWluamVjdD1cIndpc2hsaXN0LWJ0bi0xODg0NVwiPlxyXG5cclxuICAgICAgICA8IS0tIEJ1dHRvbiBsaW5rLCB1c2VkIGluIGNhdGFsb2cgcGFnZSAtLT5cclxuICAgICAgICA8YSBjbGFzcz1cImJ0bi13aGl0ZSAgcHJvZHVjdC1waG90b19fYWN0aW9uLWJ0blwiIGhyZWY9XCIvdWEvd2lzaGxpc3QvcmVuZGVyUG9wdXAvMTg4NDVcIiBkYXRhLW1vZGFsPVwiXCJcclxuICAgICAgICAgICByZWw9XCJub2ZvbGxvd1wiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJidG4td2hpdGVfX2ljbyBidG4td2hpdGVfX2ljby0td2lzaGxpc3RcIj5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInN2Zy1pY29uXCI+XHJcbiAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPVwiL3RlbXBsYXRlcy9tZWdhc2hvcC9faW1nL3Nwcml0ZS5zdmcjc3ZnLWljb25fX2hlYXJ0LWZpbGxcIj48L3VzZT5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi1oZWFydFwiPjwvc3Bhbj4gPC9pPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDwhLS0gRWRpdCBhbmQgcmVtb3ZlIGJ1dHRvbnMuIERpc3BsYXkgb25seSBvbiB3aXNobGlzdCBwYWdlIC0tPlxyXG4gICAgICA8IS0tIFwiQWRkIHRvXCIgb3IgXCJPcGVuIGluXCIgY29tcGFyZSBidXR0b25zIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1hY3Rpb24gcHJvZHVjdC1hY3Rpb24tLWxnXCI+XHJcblxyXG4gICAgICAgIDxkaXYgZGF0YS1jb21wYXJlLXNjb3BlPVwiYWRkX3RvXCI+XHJcblxyXG4gICAgICAgICAgPCEtLSBJdGVtIGlzbid0IGluIGNvbXBhcmUgbGlzdCAtLT5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4td2hpdGUgcHJvZHVjdC1waG90b19fYWN0aW9uLWJ0biBcIiB0eXBlPVwiYnV0dG9uXCIgcmVsPVwibm9mb2xsb3dcIlxyXG4gICAgICAgICAgICAgICAgICBkYXRhLWNvbXBhcmUtYWRkPVwiL3Nob3AvY29tcGFyZV9hcGkvYWRkLzE3OTU2XCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiYnRuLXdoaXRlX19pY28gYnRuLXdoaXRlX19pY28tLWNvbXBhcmVcIj5cclxuXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLWxpYnJhXCI+PC9zcGFuPiA8L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8IS0tIEl0ZW0gYWxyZWFkeSBpcyBpbiBjb21wYXJlIGxpc3QgLS0+XHJcbiAgICAgICAgICA8YSBjbGFzcz1cImJ0bi13aGl0ZSBidG4td2hpdGUtLWFjdGl2ZSBwcm9kdWN0LXBob3RvX19hY3Rpb24tYnRuICBoaWRkZW5cIiBocmVmPVwiL3Nob3AvY29tcGFyZVwiIHJlbD1cIm5vZm9sbG93XCJcclxuICAgICAgICAgICAgIGRhdGEtY29tcGFyZS1vcGVuPVwiXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiYnRuLXdoaXRlX19pY28gYnRuLXdoaXRlX19pY28tLWNvbXBhcmVcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24tbGlicmFcIj48L3NwYW4+IDwvaT5cclxuICAgICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwib19idXlcIj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tXHJcbiAgICAgICAgPGEgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLWxnXCJcclxuICAgICAgICAgICBocmVmPVwiaHR0cDovL3Byb29rby5sb2Mvc2hvcC9hamF4L2dldE5vdGlmeWluZ1JlcXVlc3RcIlxyXG4gICAgICAgICAgIGRhdGEtcHJvZHVjdC1ub3RpZnk9XCJ7e3Byb2R1Y3RJZH19XCJcclxuICAgICAgICAgICBkYXRhLXByb2R1Y3Qtbm90aWZ5LXZhcmlhbnQ9XCJ7e3NlbGVjdGVkVmFyaWFudDF9fVwiXHJcbiAgICAgICAgICAgcmVsPVwibm9mb2xsb3dcIj5cclxuICAgICAgICAgINCf0L7QstGW0LTQvtC80LjRgtC4INC/0YDQviDQv9C+0Y/QstGDXHJcbiAgICAgICAgPC9hPiAtLT5cclxuICA8L2Rpdj5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzY3JpcHQ+XHJcbmltcG9ydCBQcm9kdWN0VnVlRnVsbFNjcGVlbiBmcm9tIFwiLi9Qcm9kdWN0VnVlRnVsbFNjcGVlbi52dWVcIjtcclxuXHJcbmNvbnN0IGF4aW9zID0gcmVxdWlyZSgnYXhpb3MnKVxyXG5cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiBcIlByb2R1Y3RWdWVcIixcclxuICBjb21wb25lbnRzOiB7UHJvZHVjdFZ1ZUZ1bGxTY3BlZW59LFxyXG4gIGRhdGE6ICgpID0+ICh7XHJcbiAgICBzZWNvbmRJdGVtc1N1bTogMCxcclxuICAgIGxvY2tBbW91bnRVcGRhdGU6IGZhbHNlLFxyXG4gICAgYWxlcnRNZXNzYWdlOiBudWxsLFxyXG4gICAgY2FydERpc2FibGVkOiBmYWxzZSxcclxuICAgIHByb2R1Y3RJZDogMCxcclxuICAgIGlzTG9hZGluZzogZmFsc2UsXHJcbiAgICB2YXJpYW50czogW10sXHJcbiAgICBhdHRyaWJ1dGVzOiBbXSxcclxuICAgIGFtb3VudEV5ZXM6IDEsXHJcbiAgICBwcm9kdWN0UHJpY2UxOiAwLFxyXG4gICAgcHJvZHVjdFByaWNlMjogMCxcclxuICAgIGFtb3VudDE6IDEsXHJcbiAgICBhbW91bnQyOiAxLFxyXG4gICAgc2VsZWN0ZWRWYXJpYW50MTogMCxcclxuICAgIHNlbGVjdGVkVmFyaWFudDI6IDAsXHJcbiAgICBhdHRyaWJ1dGVzMToge30sXHJcbiAgICBhdHRyaWJ1dGVzMjoge30sXHJcbiAgICBwcm9kdWN0Q3VycmVuY3k6ICfQs9GA0L0nLFxyXG4gICAgaXNTdWJtaXR0ZWQ6IGZhbHNlLFxyXG4gICAgdmFyaWFudE5hbWU6ICcnLFxyXG4gICAgYWRkZWRUb0NhcnQ6IGZhbHNlLFxyXG4gICAgdnVlQ2F0ZWdvcnlEb3VibGU6IGZhbHNlLFxyXG5cclxuICAgIHByaWNlRmlyc3QxOiBudWxsLFxyXG4gICAgcHJpY2VTZWNvbmQxOiAwLFxyXG4gICAgZmlyc3RJdGVtczE6IFtdLFxyXG4gICAgc2Vjb25kSXRlbXMxOiBbe1xyXG4gICAgICBzZWNvbmQ6IDAsXHJcbiAgICB9XSxcclxuICAgIHByaWNlRmlyc3QyOiBudWxsLFxyXG4gICAgcHJpY2VTZWNvbmQyOiAwLFxyXG4gICAgZmlyc3RJdGVtczI6IFtdLFxyXG4gICAgc2Vjb25kSXRlbXMyOiBbe1xyXG4gICAgICBzZWNvbmQ6IDAsXHJcbiAgICB9XSxcclxuICAgIHByb2R1Y3RUeXBlT2ZMZW5zOiBmYWxzZSxcclxuICAgIGlubmVyVHlwZU9mTGVuc0NhdGVnb3J5OiBbXSxcclxuICB9KSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBjaGFuZ2VDYXRlZ29yeSgpIHtcclxuICAgICAgdGhpcy5pbm5lclR5cGVPZkxlbnNDYXRlZ29yeS5mb3JFYWNoKGNhdGVnb3J5ID0+IHtcclxuICAgICAgICBpZiAoY2F0ZWdvcnkuaWQgPT09IHRoaXMucHJvZHVjdElkKSB7XHJcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGNhdGVnb3J5LnVybDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIGNvbnNvbGUubG9nKCk7XHJcbiAgICB9LFxyXG4gICAgZ2V0U2VsZWN0Q29sb3IoYXR0cmlidXRlLCBzZWxlY3RlZEF0dHJpYnV0ZSkge1xyXG4gICAgICBpZiAoYXR0cmlidXRlLnJlcXVpcmVkID09PSBcIjFcIiAmJiB0eXBlb2Ygc2VsZWN0ZWRBdHRyaWJ1dGUgPT09IFwidW5kZWZpbmVkXCIgJiYgdGhpcy5pc1N1Ym1pdHRlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHJldHVybiBbJ3NlbGVjdC1zdHlsZScsICd2YXJpYW50cy1zZWxlY3RfX2ZpZWxkJywgJ3ZhcmlhbnRzLXNlbGVjdF9fZmllbGQtLWxnJywgJ3JlcXVpcmVkLWZpZWxkJ107XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIFsnc2VsZWN0LXN0eWxlJywgJ3ZhcmlhbnRzLXNlbGVjdF9fZmllbGQnLCAndmFyaWFudHMtc2VsZWN0X19maWVsZC0tbGcnXTtcclxuICAgIH0sXHJcbiAgICBhc3luYyBhZGRUb0NhcnQoKSB7XHJcbiAgICAgIGxldCBhY2Nlc3MgPSB0aGlzLmlzQXZhaWxhYmxlU3VibWl0KCk7XHJcbiAgICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgaWYgKGFjY2VzcyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgbGV0IHByb3BzID0ge1xyXG4gICAgICAgICAgICBwcm9kdWN0SWQ6IHRoaXMucHJvZHVjdElkLFxyXG4gICAgICAgICAgICBzZWxlY3RlZFZhcmlhbnQxOiB0aGlzLnNlbGVjdGVkVmFyaWFudDEsXHJcbiAgICAgICAgICAgIHNlbGVjdGVkVmFyaWFudDI6IHRoaXMuc2VsZWN0ZWRWYXJpYW50MixcclxuICAgICAgICAgICAgYXR0cmlidXRlczE6IHRoaXMuYXR0cmlidXRlczEsXHJcbiAgICAgICAgICAgIGF0dHJpYnV0ZXMyOiB0aGlzLmF0dHJpYnV0ZXMyLFxyXG4gICAgICAgICAgICBhbW91bnRFeWVzOiB0aGlzLmFtb3VudEV5ZXMsXHJcbiAgICAgICAgICAgIGFtb3VudDE6IHRoaXMuYW1vdW50MSxcclxuICAgICAgICAgICAgYW1vdW50MjogdGhpcy5hbW91bnQyLFxyXG4gICAgICAgICAgICBwcmljZUZpcnN0MTogdGhpcy5wcmljZUZpcnN0MSxcclxuICAgICAgICAgICAgcHJpY2VTZWNvbmQxOiB0aGlzLnByaWNlU2Vjb25kMSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBpZiAodGhpcy5hbW91bnRFeWVzID09PSAyKSB7XHJcbiAgICAgICAgICAgIHByb3BzLnByaWNlRmlyc3QyID0gdGhpcy5wcmljZUZpcnN0MjtcclxuICAgICAgICAgICAgcHJvcHMucHJpY2VTZWNvbmQyID0gdGhpcy5wcmljZVNlY29uZDI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLnBvc3Qod2luZG93LmxvY2F0aW9uLm9yaWdpbiArICcvcHJvZHVjdF92dWUvYWRkX3RvX2NhcnQnLCBwcm9wcyk7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgICAgYWxlcnQocmVzcG9uc2UuZGF0YSk7XHJcbiAgICAgICAgICAgIGFjY2VzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGUpO1xyXG4gICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgIGlmIChhY2Nlc3MgPT09IHRydWUpIHtcclxuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gd2luZG93LmxvY2F0aW9uLmhyZWYgKyAnP3Nob3dDYXJ0PXRydWUnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLypcclxuXHJcbiAgICAgKi9cclxuICAgIGlzQXZhaWxhYmxlU3VibWl0KCkge1xyXG4gICAgICBsZXQgYWNjZXNzID0gdHJ1ZTtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAodGhpcy5hdHRyaWJ1dGVzW2ldLnJlcXVpcmVkID09PSAnMScpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5hdHRyaWJ1dGVzMVtpXSA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgICBhY2Nlc3MgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLmFtb3VudEV5ZXMgPT09IDIgJiYgdHlwZW9mIHRoaXMuYXR0cmlidXRlczJbaV0gPT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgICAgICAgYWNjZXNzID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIGNoZWNrIGZpcnN0IGltcG9ydGFudCBwYXJhbVxyXG4gICAgICBpZiAodGhpcy5maXJzdEl0ZW1zMS5sZW5ndGggPiAwICYmICh0aGlzLnByaWNlRmlyc3QxID09PSBudWxsIHx8IGlzTmFOKHRoaXMucHJpY2VGaXJzdDEpKSkge1xyXG4gICAgICAgIGFjY2VzcyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGNoZWNrIHNlY29uZCBpbXBvcnRhbnQgcGFyYW1cclxuICAgICAgaWYgKHRoaXMuc2Vjb25kSXRlbXMxLmxlbmd0aCA+IDAgJiYgKHRoaXMucHJpY2VTZWNvbmQxID09PSBudWxsIHx8IGlzTmFOKHRoaXMucHJpY2VTZWNvbmQxKSkpIHtcclxuICAgICAgICBhY2Nlc3MgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICAvLyBjaGVjayBmb3IgMiBleWVcclxuICAgICAgaWYgKHRoaXMuYW1vdW50RXllcyA9PT0gMikge1xyXG4gICAgICAgIC8vIGNoZWNrIGZpcnN0IGltcG9ydGFudCBwYXJhbVxyXG4gICAgICAgIGlmICh0aGlzLmZpcnN0SXRlbXMyLmxlbmd0aCA+IDAgJiYgKHRoaXMucHJpY2VGaXJzdDIgPT09IG51bGwgfHwgaXNOYU4odGhpcy5wcmljZUZpcnN0MikpKSB7XHJcbiAgICAgICAgICBhY2Nlc3MgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY2hlY2sgc2Vjb25kIGltcG9ydGFudCBwYXJhbVxyXG4gICAgICAgIGlmICh0aGlzLnNlY29uZEl0ZW1zMi5sZW5ndGggPiAwICYmICh0aGlzLnByaWNlU2Vjb25kMiA9PT0gbnVsbCB8fCBpc05hTih0aGlzLnByaWNlU2Vjb25kMikpKSB7XHJcbiAgICAgICAgICBhY2Nlc3MgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGFjY2VzcztcclxuICAgIH0sXHJcblxyXG5cclxuICAgIHNldEN1cnJlbnRWYXJpYW50KHZhcmlhbnQsIGtleSkge1xyXG4gICAgICBpZiAoa2V5ID09PSAxKSB7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0UHJpY2UxID0gdmFyaWFudC5wcmljZTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFyaWFudDEgPSB2YXJpYW50LmlkO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucHJvZHVjdFByaWNlMiA9IHZhcmlhbnQucHJpY2U7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhcmlhbnQyID0gdmFyaWFudC5pZDtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNoYW5nZVZhcmlhbnQoa2V5KSB7XHJcbiAgICAgIGlmIChrZXkgPT09IDApIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudmFyaWFudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmICh0aGlzLnZhcmlhbnRzW2ldWydpZCddID09PSB0aGlzLnNlbGVjdGVkVmFyaWFudDEpIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0UHJpY2UxID0gdGhpcy52YXJpYW50c1tpXS5wcmljZTtcclxuICAgICAgICAgICAgbGV0IG1haW5Qcm9kdWN0SW1hZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1wcm9kdWN0LXBob3RvXScpO1xyXG4gICAgICAgICAgICBtYWluUHJvZHVjdEltYWdlLnNyYyA9IHRoaXMudmFyaWFudHNbaV0uaW1hZ2U7XHJcbiAgICAgICAgICAgIG1haW5Qcm9kdWN0SW1hZ2UuZGF0YXNldC5kYXRhWm9vbUltYWdlID0gdGhpcy52YXJpYW50c1tpXS5pbWFnZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnZhcmlhbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy52YXJpYW50c1tpXVsnaWQnXSA9PT0gdGhpcy5zZWxlY3RlZFZhcmlhbnQyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdFByaWNlMiA9IHRoaXMudmFyaWFudHNbaV0ucHJpY2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKCk7XHJcbiAgICB9LFxyXG4gICAgc2V0Q3VycmVudEF0dHJpYnV0ZShhdHRyaWJ1dGUsIGtleUF0dHJpYnV0ZSwga2V5KSB7XHJcbiAgICAgIGlmIChrZXkgPT09IDEpIHtcclxuICAgICAgICB0aGlzLmF0dHJpYnV0ZXMxW1N0cmluZyhrZXlBdHRyaWJ1dGUpXSA9IGF0dHJpYnV0ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmF0dHJpYnV0ZXMyW1N0cmluZyhrZXlBdHRyaWJ1dGUpXSA9IGF0dHJpYnV0ZTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHRvdGFsUHJpY2UoKSB7XHJcbiAgICAgIGlmICh0aGlzLmFtb3VudEV5ZXMgPT09IDEpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMuZmlyc3RJdGVtczEubGVuZ3RoID4gMFxyXG4gICAgICAgICAgICAmJiAodGhpcy5wcmljZUZpcnN0MSA9PT0gbnVsbCB8fCBpc05hTih0aGlzLnByaWNlRmlyc3QxKSlcclxuICAgICAgICAgICAgJiYgKHRoaXMucHJpY2VTZWNvbmQxID09PSBudWxsIHx8IGlzTmFOKHRoaXMucHJpY2VTZWNvbmQxKSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHJldHVybiAnLS0tJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudnVlQ2F0ZWdvcnlEb3VibGUgPT09IDApIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbW91bnRFeWVzID09PSAxID8gdGhpcy5wcm9kdWN0UHJpY2UxICogdGhpcy5hbW91bnQxIDogKHRoaXMucHJvZHVjdFByaWNlMSAqIHRoaXMuYW1vdW50MSkgKyAodGhpcy5wcm9kdWN0UHJpY2UyICogdGhpcy5hbW91bnQyKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9kdWN0UHJpY2UxICogdGhpcy5hbW91bnQxO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgYXN5bmMgbG9hZFZhcmlhbnREYXRhKHByb2R1Y3RJZCkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLmdldCh3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgJy9wcm9kdWN0X3Z1ZS92YXJpYW50cz9wcm9kdWN0SWQ9JyArIHByb2R1Y3RJZCk7XHJcbiAgICAgICAgdGhpcy52YXJpYW50cyA9IHJlc3BvbnNlLmRhdGEudmFyaWFudHM7XHJcbiAgICAgICAgdGhpcy5maXJzdEl0ZW1zMSA9IHJlc3BvbnNlLmRhdGEuZmlyc3RJdGVtcztcclxuICAgICAgICB0aGlzLmZpcnN0SXRlbXMyID0gcmVzcG9uc2UuZGF0YS5maXJzdEl0ZW1zO1xyXG4gICAgICAgIHRoaXMuc2Vjb25kSXRlbXNTdW0gPSByZXNwb25zZS5kYXRhLnNlY29uZEl0ZW1zU3VtO1xyXG4gICAgICAgIHRoaXMuYXR0cmlidXRlcyA9IHJlc3BvbnNlLmRhdGEuYXR0cmlidXRlcztcclxuICAgICAgICB0aGlzLnZhcmlhbnROYW1lID0gcmVzcG9uc2UuZGF0YS52YXJpYW50TmFtZTtcclxuICAgICAgICB0aGlzLmFkZGVkVG9DYXJ0ID0gcmVzcG9uc2UuZGF0YS5hZGRlZFRvQ2FydDtcclxuICAgICAgICB0aGlzLnZ1ZUNhdGVnb3J5RG91YmxlID0gcmVzcG9uc2UuZGF0YS52dWVDYXRlZ29yeURvdWJsZTtcclxuICAgICAgICB0aGlzLnNldEN1cnJlbnRWYXJpYW50KHRoaXMudmFyaWFudHNbMF0sIDEpO1xyXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFZhcmlhbnQodGhpcy52YXJpYW50c1swXSwgMik7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0VHlwZU9mTGVucyA9IHJlc3BvbnNlLmRhdGEucHJvZHVjdFR5cGVPZkxlbnM7XHJcbiAgICAgICAgdGhpcy5pbm5lclR5cGVPZkxlbnNDYXRlZ29yeSA9IHJlc3BvbnNlLmRhdGEuaW5uZXJUeXBlT2ZMZW5zQ2F0ZWdvcnk7XHJcblxyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSk7XHJcbiAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGNoZWNrU3RvY2soY2hhbmdlZFZhcmlhbnQgPSBmYWxzZSkge1xyXG4gICAgICBpZiAodGhpcy5sb2NrQW1vdW50VXBkYXRlID09PSB0cnVlKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY2hhbmdlZFZhcmlhbnQgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLmxvY2tBbW91bnRVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYW1vdW50MSA9IDE7XHJcbiAgICAgICAgdGhpcy5hbW91bnQyID0gMTtcclxuICAgICAgICB0aGlzLmxvY2tBbW91bnRVcGRhdGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFsZXJ0TWVzc2FnZSA9IG51bGw7XHJcbiAgICAgIHRoaXMubG9ja0Ftb3VudFVwZGF0ZSA9IHRydWU7XHJcbiAgICAgIC8vIGdldCBkYXRhXHJcbiAgICAgIGxldCBzdG9jazEgPSAwO1xyXG4gICAgICBsZXQgdGl0bGUxID0gJyc7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy52YXJpYW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLnZhcmlhbnRzW2ldWydpZCddID09PSB0aGlzLnNlbGVjdGVkVmFyaWFudDEpIHtcclxuICAgICAgICAgIHN0b2NrMSA9IHRoaXMudmFyaWFudHNbaV1bJ3N0b2NrJ107XHJcbiAgICAgICAgICB0aXRsZTEgPSB0aGlzLnZhcmlhbnRzW2ldWyd0aXRsZSddO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBsZXQgc3RvY2syID0gMDtcclxuICAgICAgbGV0IHRpdGxlMiA9ICcnO1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudmFyaWFudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAodGhpcy52YXJpYW50c1tpXVsnaWQnXSA9PT0gdGhpcy5zZWxlY3RlZFZhcmlhbnQyKSB7XHJcbiAgICAgICAgICBzdG9jazIgPSB0aGlzLnZhcmlhbnRzW2ldWydzdG9jayddO1xyXG4gICAgICAgICAgdGl0bGUyID0gdGhpcy52YXJpYW50c1tpXVsndGl0bGUnXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy8gY2FsY3VsYXRlXHJcblxyXG4gICAgICBpZiAodGhpcy5hbW91bnQxIDwgMCkge1xyXG4gICAgICAgIHRoaXMuYW1vdW50MSA9IDE7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuYW1vdW50MiA8IDApIHtcclxuICAgICAgICB0aGlzLmFtb3VudDIgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmFtb3VudDEgPiBzdG9jazEgJiYgc3RvY2sxICE9PSAwKSB7XHJcbiAgICAgICAgLy8gdGhpcy5hbGVydE1lc3NhZ2UgPSAn0J3QsCDQttCw0LvRjCwg0YMg0L3QsNGBINCyINC90LDRj9Cy0L3QvtGB0YLRliBcIicgKyB0aXRsZTEgKyAnXCIg0LvQuNGI0LUgJyArIHN0b2NrMSArICcg0YjRgi4nO1xyXG4gICAgICAgIGlmICh0aXRsZTEgIT09IG51bGwpIHtcclxuICAgICAgICAgIGFsZXJ0KCfQndCwINC20LDQu9GMLCDRgyDQvdCw0YEg0LIg0L3QsNGP0LLQvdC+0YHRgtGWIFwiJyArIHRpdGxlMSArICdcIiDQu9C40YjQtSAnICsgc3RvY2sxICsgJyDQvtC00LjQvdC40YbRjC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5hbW91bnQxID0gc3RvY2sxO1xyXG4gICAgICAgIHRoaXMuY2FydERpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5sb2NrQW1vdW50VXBkYXRlID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9IGVsc2UgaWYgKHN0b2NrMSA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuY2FydERpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmFtb3VudDEgPSAwO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2FydERpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnZ1ZUNhdGVnb3J5RG91YmxlID09PSAwICYmIHRoaXMuYW1vdW50RXllcyA9PT0gMikge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFyaWFudDEgPT09IHRoaXMuc2VsZWN0ZWRWYXJpYW50Mikge1xyXG4gICAgICAgICAgLy8g0Y/QutGJ0L4g0L3QsCDQtNCy0LAg0L7QutCwINC+0LTQvdCw0LrQvtCy0ZZcclxuICAgICAgICAgIGxldCBzdW1BbW91bnQgPSArdGhpcy5hbW91bnQxICsgK3RoaXMuYW1vdW50MjtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHN1bUFtb3VudCk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhzdG9jazEpO1xyXG4gICAgICAgICAgaWYgKHN1bUFtb3VudCA+IHN0b2NrMSAmJiBzdG9jazEgPj0gMikge1xyXG4gICAgICAgICAgICAvLyB0aGlzLmFsZXJ0TWVzc2FnZSA9ICfQndCwINC20LDQu9GMLCDRgyDQvdCw0YEg0LIg0L3QsNGP0LLQvdC+0YHRgtGWIFwiJyArIHRpdGxlMSArICdcIiDQu9C40YjQtSAnICsgc3RvY2sxICsgJyDRiNGCLic7XHJcbiAgICAgICAgICAgIGlmICh0aXRsZTEgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICBhbGVydCgn0J3QsCDQttCw0LvRjCwg0YMg0L3QsNGBINCyINC90LDRj9Cy0L3QvtGB0YLRliBcIicgKyB0aXRsZTEgKyAnXCIg0LvQuNGI0LUgJyArIHN0b2NrMSArICcg0L7QtNC40L3QuNGG0YwuJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5hbW91bnQxID0gMTtcclxuICAgICAgICAgICAgdGhpcy5hbW91bnQyID0gMTtcclxuICAgICAgICAgICAgdGhpcy5jYXJ0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5sb2NrQW1vdW50VXBkYXRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoc3RvY2sxIDwgMiAmJiBzdW1BbW91bnQgIT09IDApIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5hbGVydE1lc3NhZ2UgPSAn0J3QsCDQttCw0LvRjCwg0YMg0L3QsNGBINCyINC90LDRj9Cy0L3QvtGB0YLRliBcIicgKyB0aXRsZTEgKyAnXCIg0LvQuNGI0LUgJyArIHN0b2NrMSArICcg0YjRgi4nO1xyXG4gICAgICAgICAgICBpZiAodGl0bGUxICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgYWxlcnQoJ9Cd0LAg0LbQsNC70YwsINGDINC90LDRgSDQsiDQvdCw0Y/QstC90L7RgdGC0ZYgXCInICsgdGl0bGUxICsgJ1wiINC70LjRiNC1ICcgKyBzdG9jazEgKyAnINC+0LTQuNC90LjRhtGMLicpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2FydERpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5hbW91bnQxID0gMDtcclxuICAgICAgICAgICAgdGhpcy5hbW91bnQyID0gMDtcclxuICAgICAgICAgICAgdGhpcy5sb2NrQW1vdW50VXBkYXRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydERpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vINGP0LrRidC+INC90LAg0LTQstCwINC+0LrQsCDRgNGW0LfQvdGWXHJcbiAgICAgICAgICBpZiAodGhpcy5hbW91bnQyID4gc3RvY2syICYmIHN0b2NrMiAhPT0gMCkge1xyXG4gICAgICAgICAgICAvLyB0aGlzLmFsZXJ0TWVzc2FnZSA9ICfQndCwINC20LDQu9GMLCDRgyDQvdCw0YEg0LIg0L3QsNGP0LLQvdC+0YHRgtGWIFwiJyArIHRpdGxlMSArICdcIiDQu9C40YjQtSAnICsgc3RvY2sxICsgJyDRiNGCLic7XHJcbiAgICAgICAgICAgIGlmICh0aXRsZTEgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICBhbGVydCgn0J3QsCDQttCw0LvRjCwg0YMg0L3QsNGBINCyINC90LDRj9Cy0L3QvtGB0YLRliBcIicgKyB0aXRsZTIgKyAnXCIg0LvQuNGI0LUgJyArIHN0b2NrMiArICcg0L7QtNC40L3QuNGG0YwuJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5hbW91bnQyID0gc3RvY2syO1xyXG4gICAgICAgICAgICB0aGlzLmNhcnREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2tBbW91bnRVcGRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChzdG9jazIgPT09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5jYXJ0RGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmFtb3VudDIgPSAwO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jYXJ0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5hbW91bnRFeWVzID09PSAyKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYXJpYW50MSA9PT0gdGhpcy5zZWxlY3RlZFZhcmlhbnQyKSB7XHJcbiAgICAgICAgICAvLyDRj9C60YnQviDQvdCwINC00LLQsCDQvtC60LAg0L7QtNC90LDQutC+0LLRllxyXG4gICAgICAgICAgbGV0IHN1bUFtb3VudCA9IHRoaXMuYW1vdW50MTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHN1bUFtb3VudCk7XHJcbiAgICAgICAgICBpZiAoc3VtQW1vdW50ID4gc3RvY2sxICYmIHN0b2NrMSA+PSAxKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuYWxlcnRNZXNzYWdlID0gJ9Cd0LAg0LbQsNC70YwsINGDINC90LDRgSDQsiDQvdCw0Y/QstC90L7RgdGC0ZYgXCInICsgdGl0bGUxICsgJ1wiINC70LjRiNC1ICcgKyBzdG9jazEgKyAnINGI0YIuJztcclxuICAgICAgICAgICAgaWYgKHRpdGxlMSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIGFsZXJ0KCfQndCwINC20LDQu9GMLCDRgyDQvdCw0YEg0LIg0L3QsNGP0LLQvdC+0YHRgtGWIFwiJyArIHRpdGxlMSArICdcIiDQu9C40YjQtSAnICsgc3RvY2sxICsgJyDQvtC00LjQvdC40YbRjC4nKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmFtb3VudDEgPSAxO1xyXG4gICAgICAgICAgICB0aGlzLmNhcnREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2tBbW91bnRVcGRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChzdG9jazEgPCAxICYmIHRoaXMuYW1vdW50MSAhPT0gMCkge1xyXG4gICAgICAgICAgICAvLyB0aGlzLmFsZXJ0TWVzc2FnZSA9ICfQndCwINC20LDQu9GMLCDRgyDQvdCw0YEg0LIg0L3QsNGP0LLQvdC+0YHRgtGWIFwiJyArIHRpdGxlMSArICdcIiDQu9C40YjQtSAnICsgc3RvY2sxICsgJyDRiNGCLic7XHJcbiAgICAgICAgICAgIGlmICh0aXRsZTEgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICBhbGVydCgn0J3QsCDQttCw0LvRjCwg0YMg0L3QsNGBINCyINC90LDRj9Cy0L3QvtGB0YLRliBcIicgKyB0aXRsZTEgKyAnXCIg0LvQuNGI0LUgJyArIHN0b2NrMSArICcg0L7QtNC40L3QuNGG0YwuJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jYXJ0RGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmFtb3VudDEgPSAwO1xyXG4gICAgICAgICAgICB0aGlzLmxvY2tBbW91bnRVcGRhdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jYXJ0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8g0Y/QutGJ0L4g0L3QsCDQtNCy0LAg0L7QutCwINGA0ZbQt9C90ZZcclxuICAgICAgICAgIGlmICh0aGlzLmFtb3VudDEgPiBzdG9jazEgJiYgc3RvY2sxID4gMCkge1xyXG4gICAgICAgICAgICAvLyB0aGlzLmFsZXJ0TWVzc2FnZSA9ICfQndCwINC20LDQu9GMLCDRgyDQvdCw0YEg0LIg0L3QsNGP0LLQvdC+0YHRgtGWIFwiJyArIHRpdGxlMSArICdcIiDQu9C40YjQtSAnICsgc3RvY2sxICsgJyDRiNGCLic7XHJcbiAgICAgICAgICAgIGlmICh0aXRsZTEgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICBhbGVydCgn0J3QsCDQttCw0LvRjCwg0YMg0L3QsNGBINCyINC90LDRj9Cy0L3QvtGB0YLRliBcIicgKyB0aXRsZTEgKyAnXCIg0LvQuNGI0LUgJyArIHN0b2NrMSArICcg0L7QtNC40L3QuNGG0YwuJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5hbW91bnQxID0gMTtcclxuICAgICAgICAgICAgdGhpcy5jYXJ0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5sb2NrQW1vdW50VXBkYXRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoc3RvY2sxID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydERpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5hbW91bnQxID0gMDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydERpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuYW1vdW50MSA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuY2FydERpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxvY2tBbW91bnRVcGRhdGUgPSBmYWxzZTtcclxuICAgIH0sXHJcblxyXG4gICAgLypcclxuICAgICAqIEZldGNoIHNlY29uZCBwcmljZVxyXG4gICAgICovXHJcbiAgICBhc3luYyBmZXRjaFNlY29uZFByaWNlKG9rbyA9IDEpIHtcclxuICAgICAgbGV0IGZpcnN0U2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICBpZiAob2tvID09PSAxKSB7XHJcbiAgICAgICAgZmlyc3RTZWxlY3RlZCA9IHRoaXMucHJpY2VGaXJzdDE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZmlyc3RTZWxlY3RlZCA9IHRoaXMucHJpY2VGaXJzdDI7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAnL3Byb2R1Y3RfdnVlL3NlY29uZFByaWNlJztcclxuICAgICAgYXdhaXQgYXhpb3MuZ2V0KHVybCwge3BhcmFtczoge3Byb2R1Y3RJZDogdGhpcy5wcm9kdWN0SWQsIGZpcnN0OiBmaXJzdFNlbGVjdGVkfX0pLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGlmIChva28gPT09IDEpIHtcclxuICAgICAgICAgIHRoaXMucHJpY2VTZWNvbmQxID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMuc2Vjb25kSXRlbXMxID0gcmVzcG9uc2UuZGF0YS5pdGVtcztcclxuICAgICAgICAgIHRoaXMucHJpY2VTZWNvbmQxID0gcmVzcG9uc2UuZGF0YS5zZWxlY3RlZFNlY29uZDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5wcmljZVNlY29uZDIgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5zZWNvbmRJdGVtczIgPSByZXNwb25zZS5kYXRhLml0ZW1zO1xyXG4gICAgICAgICAgdGhpcy5wcmljZVNlY29uZDIgPSByZXNwb25zZS5kYXRhLnNlbGVjdGVkU2Vjb25kO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlbGVjdGVkU2Vjb25kUHJvcGVydHkob2tvKTtcclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLypcclxuXHJcbiAgICAgKi9cclxuICAgIHNlbGVjdGVkU2Vjb25kUHJvcGVydHkob2tvID0gMSkge1xyXG4gICAgICBpZiAob2tvID09PSAxKSB7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0UHJpY2UxID0gMDtcclxuICAgICAgICB0aGlzLnNlY29uZEl0ZW1zMS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgaWYgKGl0ZW0uc2Vjb25kID09PSB0aGlzLnByaWNlU2Vjb25kMSkge1xyXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RQcmljZTEgPSBpdGVtLnByaWNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucHJvZHVjdFByaWNlMiA9IDA7XHJcbiAgICAgICAgdGhpcy5zZWNvbmRJdGVtczIuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgIGlmIChpdGVtLnNlY29uZCA9PT0gdGhpcy5wcmljZVNlY29uZDIpIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0UHJpY2UyID0gaXRlbS5wcmljZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgd2F0Y2g6IHtcclxuICAgIGFtb3VudDEoKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tTdG9jaygpO1xyXG4gICAgfSxcclxuICAgIGFtb3VudDIoKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tTdG9jaygpO1xyXG4gICAgfSxcclxuICAgIHNlbGVjdGVkVmFyaWFudDEoKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tTdG9jayh0cnVlKTtcclxuICAgIH0sXHJcbiAgICBzZWxlY3RlZFZhcmlhbnQyKCkge1xyXG4gICAgICB0aGlzLmNoZWNrU3RvY2sodHJ1ZSk7XHJcbiAgICB9LFxyXG4gICAgYW1vdW50RXllcygpIHtcclxuICAgICAgdGhpcy5jaGVja1N0b2NrKCk7XHJcbiAgICB9XHJcbiAgfSxcclxuICBhc3luYyBtb3VudGVkKCkge1xyXG4gICAgdGhpcy5wcm9kdWN0SWQgPSBqUXVlcnkoJ1tkYXRhLXZhcmlhbnQtaWRdJykuZGF0YSgndmFyaWFudC1pZCcpO1xyXG4gICAgYXdhaXQgdGhpcy5sb2FkVmFyaWFudERhdGEodGhpcy5wcm9kdWN0SWQpO1xyXG4gICAgalF1ZXJ5KCcucHJvZHVjdC1pbnRyby1iYXNlJykuaGlkZSgpO1xyXG4gICAgalF1ZXJ5KCcucHJvZHVjdC1pbnRyb19fZmxleC1jb250YWluZXItLXYtYm90dG9tJykuaGlkZSgpO1xyXG4gICAgaWYgKHRoaXMucHJvZHVjdFR5cGVPZkxlbnMpIHtcclxuICAgICAgdGhpcy5hbW91bnRFeWVzID0gMjtcclxuICAgICAgdGhpcy5jaGVja1N0b2NrKCk7XHJcbiAgICAgIGlmICh0aGlzLnByb2R1Y3RUeXBlT2ZMZW5zKSB7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnBhZ2VfX2JyZWFkY3J1bWJzJykuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuY29udGVudF9fc2lkZWJhcicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICAgICAgJCgnLnByb2R1Y3QtaW50cm9fX3JvdycpLmhpZGUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgc2NvcGVkPlxyXG5cclxuXHJcbi5vX193cmFwcGVyIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2M1YzVjNTtcclxufVxyXG5cclxuLnZfX3dyYXBwZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4uZWxfX2xlZnQge1xyXG4gIHdpZHRoOiA1MCU7XHJcbiAgcGFkZGluZzogNXB4O1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcblxyXG4uZWxfX3JpZ2h0IHtcclxuICB3aWR0aDogNTAlO1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi5lX193cmFwcGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbn1cclxuXHJcbi5lX19leWVzIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4uZV9fZXllczpob3ZlciB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4udmFyaWFudHMge1xyXG4gIHBhZGRpbmc6IDJweDtcclxufVxyXG5cclxuLnZhcmlhbnRzICoge1xyXG4gIHBhZGRpbmc6IDNweDtcclxufVxyXG5cclxuLnJlcXVpcmVkLWZpZWxkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbn1cclxuXHJcbi5hbGVydCB7XHJcbiAgcGFkZGluZzogMjBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2OyAvKiBSZWQgKi9cclxuICBjb2xvcjogd2hpdGU7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxufVxyXG5cclxuLmFkZGVkX3RvX2NhcnQge1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICMwMDdlZWY7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICBtYXJnaW46IDEwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLnNlbGVjdC1zdHlsZSB7XHJcbiAgZm9udC1zaXplOiAxOHB4O1xyXG59XHJcbjwvc3R5bGU+IiwiLyoqXG4gKiBTd2lwZXIgOS4yLjNcbiAqIE1vc3QgbW9kZXJuIG1vYmlsZSB0b3VjaCBzbGlkZXIgYW5kIGZyYW1ld29yayB3aXRoIGhhcmR3YXJlIGFjY2VsZXJhdGVkIHRyYW5zaXRpb25zXG4gKiBodHRwczovL3N3aXBlcmpzLmNvbVxuICpcbiAqIENvcHlyaWdodCAyMDE0LTIwMjMgVmxhZGltaXIgS2hhcmxhbXBpZGlcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2VcbiAqXG4gKiBSZWxlYXNlZCBvbjogQXByaWwgMTcsIDIwMjNcbiAqL1xuXG5AZm9udC1mYWNle2ZvbnQtZmFtaWx5OnN3aXBlci1pY29ucztzcmM6dXJsKCdkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCwgZDA5R1JnQUJBQUFBQUFaZ0FCQUFBQUFBREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJHUmxSTkFBQUdSQUFBQUJvQUFBQWNpNnFIa1VkRVJVWUFBQVdnQUFBQUl3QUFBQ1FBWUFCWFIxQlBVd0FBQmhRQUFBQXVBQUFBTnVBWTcreEhVMVZDQUFBRnhBQUFBRkFBQUFCbTJmUGN6VTlUTHpJQUFBSGNBQUFBU2dBQUFHQlA5VjVSWTIxaGNBQUFBa1FBQUFDSUFBQUJZdDZGMGNCamRuUWdBQUFDekFBQUFBUUFBQUFFQUJFQlJHZGhjM0FBQUFXWUFBQUFDQUFBQUFqLy93QURaMng1WmdBQUF5d0FBQURNQUFBRDJNSHRyeVZvWldGa0FBQUJiQUFBQURBQUFBQTJFMitlb1dob1pXRUFBQUdjQUFBQUh3QUFBQ1FDOWdEemFHMTBlQUFBQWlnQUFBQVpBQUFBcmdKa0FCRnNiMk5oQUFBQzBBQUFBRm9BQUFCYUZRQVVHRzFoZUhBQUFBRzhBQUFBSHdBQUFDQUFjQUJBYm1GdFpRQUFBL2dBQUFFNUFBQUNYdkZkQndsd2IzTjBBQUFGTkFBQUFHSUFBQUNFNXM3NGhYamFZMkJrWUdBQVlwZjVIdS9qK1cyK01uQXpNWURBemFYNlFqRDYvNC8vQnhqNUdBOEF1UndNWUdrQVB5d0wxM2phWTJCa1lHQTg4UDhBZ3g0aisvOGZRRFlmQTFBRUJXZ0RBSUIyQk9vQWVOcGpZR1JnWU5CaDRHZGdZZ0FCRU1uSUFCSnpZTkFEQ1FBQUNXZ0FzUUI0Mm1OZ1lmekNPSUdCbFlHQjBZY3hqWUdCd1IxS2YyV1FaR2hoWUdCaVlHVm1nQUZHQmlRUWtPYWF3dERBb01CUXhYamcvd0VHUGNZRERBNHdOVUEyQ0Nnd3NBQUFPNEVMNmdBQWVOcGoyTTBneUFBQ3F4Z0dOV0JrWjJENC93TUEreGtEZGdBQUFIamFZMkJnWUdhQVlCa0dSZ1lRaUFIeUdNRjhGZ1lISU0zRHdNSEFCR1FyTU9neVdETEVNMVQ5L3c4VUJmRU1nTHpFLy8vL1AvNS8vZi9WL3h2K3I0ZWFBQWVNYkF4d0lVWW1JTUhFZ0tZQVlqVWNzREF3c0xLeGMzQnljZlB3OGpFUUEvZ1pCQVNGaEVWRXhjUWxKS1drWldUbDVCVVVsWlJWVk5YVU5UUVpCZ01BQU1SK0UrZ0FFUUZFQUFBQUtnQXFBQ29BTkFBK0FFZ0FVZ0JjQUdZQWNBQjZBSVFBamdDWUFLSUFyQUMyQU1BQXlnRFVBTjRBNkFEeUFQd0JCZ0VRQVJvQkpBRXVBVGdCUWdGTUFWWUJZQUZxQVhRQmZnR0lBWklCbkFHbUFiSUJ6Z0hzQUFCNDJ1Mk5NUTZDVUF5R1c1Njh4OUFuZVlZZ200TUpiaEtGYUV4SU9BVlg4QXBld1N0NEJpYzRBZmVBaWQzVk9CaXhEeGZQWUV6YTVPK1hmaTA0WUFEZ2dpVUlVTEN1RUpLOFZoTzRiU3ZwZG5rdEhJNVFDWXRkaTJzbDhablhhSGxxVXJOS3pkS2NUOGNqbHErcndaU3ZJVmN6TmllenNmblAvdXpubWZQRkJOT0RNMks3TVRRNDVZRUFacUdQODFBbUdHY0YzaVBxT29wMHIxU1BUYVRiVmtmVWU0SFhqOTd3WUUreU53V1l4d1d1NHYxdWdXSGdvM1MxWGRaRVZxV003RVQwY2ZuTEd4V2ZrZ1I0Mm8yUHZXckRNQlNGai9JSExhRjB6S2pSZ2RpVk13U2NOUkFvV1VvSDc4WTJpY0IveUlZMDlBbjZBSDJCZHUvVUIreXhvcFlzaFFpRXZudnUwZFVSZ0R0OFFlQzhQRHc3RnBqaTNmRUE0ei9QRUo2WU9CNWhLaDRkajNFdlhoeFBxSC9TS1VZM3JKN3NyWjRGWm5oMVBNQXRQaHdQNmZsMlBNSk1QRGdlUTRyWThZVDZHemFvMGVBRUE0MDlEdWdnbVRuRm5PY1NDaUVpTE1neENpVEk2Q3E1RFpVZDNRbXAxMHZPMExhTFRkMmNqTjRmT3VtbGM3bFVZYlNRY1pGa3V0Ukc3ZzZKS1pLeTBSbWRMWTY4MENEbkVKK1VNa3BGRmUxUk43bnhkVnBYckM0YVR0bmF1ck9uWWVyY1pnMllWbUxOL2QvZ2N6ZkVpbXJFL2ZzL2JPdXEyOVptbjh0bG9PUmFYZ1pnR2E3OHlPOS9jblhtMkJwYUd2cTI1RHY5UzRFOSs1U0ljOVBxdXBKS2hZRlNTbDQ3K1FjcjFtWU5BQUFBZU5wdHcwY0t3a0FBQU1EWkpBOFE3T1VKdmtMc1BmWjZ6RlZFUlB5OHFIaDJZRVIrM2kvQlA4M3ZJQkxMeVNzb0tpbXJxS3FwYTJocDYranE2UnNZR2htYm1KcVpTeTBzcmF4dGJPM3NIUnlkbkVNVTR1UjZ5eDdKSlh2ZVA3V3JEeWNBQUFBQUFBSC8vd0FDZU5wallHUmdZT0FCWWhrZ1pnSkNaZ1pOQmtZR0xRWnRJSnNGTE1ZQUFBdzNBTGdBZU5vbGl6RUtnREFRQkNjaFJiQzJzRkVSMFlENnFWUWlCQ3YvSDllekdJNlo1WEJBdzhDQksvbTVpUVFWYXVWYlhMbk9yTVp2Mm9MZEtGYThQanVydTJoSnpHYWJtT1NMek5NenZ1dHBCM040Mm1OZ1pHQmc0R0tRWXpCaFlNeEpMTWxqNEdCZ0FZb3cvUC9QQUpKaExNNnNTb1dLZldDQUF3REFqZ2JSQUFCNDJtTmdZR0JrQUlJYkNabzVJUHJtVW4waEdBMEFPOEVGVFFBQScpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbH06cm9vdHstLXN3aXBlci10aGVtZS1jb2xvcjojMDA3YWZmfS5zd2lwZXIsc3dpcGVyLWNvbnRhaW5lcnttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZzowO3otaW5kZXg6MTtkaXNwbGF5OmJsb2NrfS5zd2lwZXItdmVydGljYWw+LnN3aXBlci13cmFwcGVye2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uc3dpcGVyLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OjE7ZGlzcGxheTpmbGV4O3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLXN3aXBlci13cmFwcGVyLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLGluaXRpYWwpO2JveC1zaXppbmc6Y29udGVudC1ib3h9LnN3aXBlci1hbmRyb2lkIC5zd2lwZXItc2xpZGUsLnN3aXBlci13cmFwcGVye3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwcHgsMCwwKX0uc3dpcGVyLWhvcml6b250YWx7dG91Y2gtYWN0aW9uOnBhbi15fS5zd2lwZXItdmVydGljYWx7dG91Y2gtYWN0aW9uOnBhbi14fS5zd2lwZXItc2xpZGUsc3dpcGVyLXNsaWRle2ZsZXgtc2hyaW5rOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybTtkaXNwbGF5OmJsb2NrfS5zd2lwZXItc2xpZGUtaW52aXNpYmxlLWJsYW5re3Zpc2liaWxpdHk6aGlkZGVufS5zd2lwZXItYXV0b2hlaWdodCwuc3dpcGVyLWF1dG9oZWlnaHQgLnN3aXBlci1zbGlkZXtoZWlnaHQ6YXV0b30uc3dpcGVyLWF1dG9oZWlnaHQgLnN3aXBlci13cmFwcGVye2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm0saGVpZ2h0fS5zd2lwZXItYmFja2ZhY2UtaGlkZGVuIC5zd2lwZXItc2xpZGV7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbn0uc3dpcGVyLTNkLnN3aXBlci1jc3MtbW9kZSAuc3dpcGVyLXdyYXBwZXJ7cGVyc3BlY3RpdmU6MTIwMHB4fS5zd2lwZXItM2QgLnN3aXBlci13cmFwcGVye3RyYW5zZm9ybS1zdHlsZTpwcmVzZXJ2ZS0zZH0uc3dpcGVyLTNke3BlcnNwZWN0aXZlOjEyMDBweH0uc3dpcGVyLTNkIC5zd2lwZXItY3ViZS1zaGFkb3csLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3csLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3B7dHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkfS5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3csLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20sLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0LC5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3ctcmlnaHQsLnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3B7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjEwfS5zd2lwZXItM2QgLnN3aXBlci1zbGlkZS1zaGFkb3d7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xNSl9LnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0e2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGxlZnQscmdiYSgwLDAsMCwuNSkscmdiYSgwLDAsMCwwKSl9LnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCxyZ2JhKDAsMCwwLC41KSxyZ2JhKDAsMCwwLDApKX0uc3dpcGVyLTNkIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcHtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byB0b3AscmdiYSgwLDAsMCwuNSkscmdiYSgwLDAsMCwwKSl9LnN3aXBlci0zZCAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b217YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHJnYmEoMCwwLDAsLjUpLHJnYmEoMCwwLDAsMCkpfS5zd2lwZXItY3NzLW1vZGU+LnN3aXBlci13cmFwcGVye292ZXJmbG93OmF1dG87c2Nyb2xsYmFyLXdpZHRoOm5vbmU7LW1zLW92ZXJmbG93LXN0eWxlOm5vbmV9LnN3aXBlci1jc3MtbW9kZT4uc3dpcGVyLXdyYXBwZXI6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0uc3dpcGVyLWNzcy1tb2RlPi5zd2lwZXItd3JhcHBlcj4uc3dpcGVyLXNsaWRle3Njcm9sbC1zbmFwLWFsaWduOnN0YXJ0IHN0YXJ0fS5zd2lwZXItaG9yaXpvbnRhbC5zd2lwZXItY3NzLW1vZGU+LnN3aXBlci13cmFwcGVye3Njcm9sbC1zbmFwLXR5cGU6eCBtYW5kYXRvcnl9LnN3aXBlci12ZXJ0aWNhbC5zd2lwZXItY3NzLW1vZGU+LnN3aXBlci13cmFwcGVye3Njcm9sbC1zbmFwLXR5cGU6eSBtYW5kYXRvcnl9LnN3aXBlci1jZW50ZXJlZD4uc3dpcGVyLXdyYXBwZXI6OmJlZm9yZXtjb250ZW50OicnO2ZsZXgtc2hyaW5rOjA7b3JkZXI6OTk5OX0uc3dpcGVyLWNlbnRlcmVkPi5zd2lwZXItd3JhcHBlcj4uc3dpcGVyLXNsaWRle3Njcm9sbC1zbmFwLWFsaWduOmNlbnRlciBjZW50ZXI7c2Nyb2xsLXNuYXAtc3RvcDphbHdheXN9LnN3aXBlci1jZW50ZXJlZC5zd2lwZXItaG9yaXpvbnRhbD4uc3dpcGVyLXdyYXBwZXI+LnN3aXBlci1zbGlkZTpmaXJzdC1jaGlsZHttYXJnaW4taW5saW5lLXN0YXJ0OnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYmVmb3JlKX0uc3dpcGVyLWNlbnRlcmVkLnN3aXBlci1ob3Jpem9udGFsPi5zd2lwZXItd3JhcHBlcjo6YmVmb3Jle2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6MXB4O3dpZHRoOnZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIpfS5zd2lwZXItY2VudGVyZWQuc3dpcGVyLXZlcnRpY2FsPi5zd2lwZXItd3JhcHBlcj4uc3dpcGVyLXNsaWRlOmZpcnN0LWNoaWxke21hcmdpbi1ibG9jay1zdGFydDp2YXIoLS1zd2lwZXItY2VudGVyZWQtb2Zmc2V0LWJlZm9yZSl9LnN3aXBlci1jZW50ZXJlZC5zd2lwZXItdmVydGljYWw+LnN3aXBlci13cmFwcGVyOjpiZWZvcmV7d2lkdGg6MTAwJTttaW4td2lkdGg6MXB4O2hlaWdodDp2YXIoLS1zd2lwZXItY2VudGVyZWQtb2Zmc2V0LWFmdGVyKX0uc3dpcGVyLWxhenktcHJlbG9hZGVye3dpZHRoOjQycHg7aGVpZ2h0OjQycHg7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1MCU7dG9wOjUwJTttYXJnaW4tbGVmdDotMjFweDttYXJnaW4tdG9wOi0yMXB4O3otaW5kZXg6MTA7dHJhbnNmb3JtLW9yaWdpbjo1MCU7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjo0cHggc29saWQgdmFyKC0tc3dpcGVyLXByZWxvYWRlci1jb2xvcix2YXIoLS1zd2lwZXItdGhlbWUtY29sb3IpKTtib3JkZXItcmFkaXVzOjUwJTtib3JkZXItdG9wLWNvbG9yOnRyYW5zcGFyZW50fS5zd2lwZXItd2F0Y2gtcHJvZ3Jlc3MgLnN3aXBlci1zbGlkZS12aXNpYmxlIC5zd2lwZXItbGF6eS1wcmVsb2FkZXIsLnN3aXBlcjpub3QoLnN3aXBlci13YXRjaC1wcm9ncmVzcykgLnN3aXBlci1sYXp5LXByZWxvYWRlcixzd2lwZXItY29udGFpbmVyOm5vdCguc3dpcGVyLXdhdGNoLXByb2dyZXNzKSAuc3dpcGVyLWxhenktcHJlbG9hZGVye2FuaW1hdGlvbjpzd2lwZXItcHJlbG9hZGVyLXNwaW4gMXMgaW5maW5pdGUgbGluZWFyfS5zd2lwZXItbGF6eS1wcmVsb2FkZXItd2hpdGV7LS1zd2lwZXItcHJlbG9hZGVyLWNvbG9yOiNmZmZ9LnN3aXBlci1sYXp5LXByZWxvYWRlci1ibGFja3stLXN3aXBlci1wcmVsb2FkZXItY29sb3I6IzAwMH1Aa2V5ZnJhbWVzIHN3aXBlci1wcmVsb2FkZXItc3BpbnswJXt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTEwMCV7dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX0iLCI8dGVtcGxhdGU+XG4gIDxQcm9kdWN0VnVlRnVsbFNjcGVlbi8+XG48IS0tICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIj4tLT5cbjwhLS0gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1vdmVybGF5XCIgdi1pZj1cIm1vZGFsT3BlblwiIEBjbGljaz1cIm1vZGFsT3BlbiA9ICFtb2RhbE9wZW5cIj4tLT5cbjwhLS0gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiIEBjbGljay5zdG9wPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW5cIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgIDxkaXY+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJtb2RhbF9faGVhZGVyLWNsb3NlIHN2Zy1pY29uXCIgcm9sZT1cImJ1dHRvblwiIEBjbGljaz1cIm1vZGFsT3BlbiA9ICFtb2RhbE9wZW5cIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9XCIvdGVtcGxhdGVzL21lZ2FzaG9wL19pbWcvc3ByaXRlLnN2ZyNzdmctaWNvbl9fY2xvc2VcIj48L3VzZT4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgIDwvc3ZnPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR5cG9cIiB2LWh0bWw9XCJtb2RhbENvbnRlbnRcIi8+LS0+XG48IS0tICAgICAgICAgICAgPC9kaXY+LS0+XG48IS0tICAgICAgICA8L2Rpdj4tLT5cblxuPCEtLSAgICAgICAgPHZ1ZS1sb2FkaW5nIHYtbW9kZWw6YWN0aXZlPVwiaXNMb2FkaW5nXCI+LS0+XG48IS0tICAgICAgICAgICAgPGxvYWRpbmctYW5pbWF0aW9uLz4tLT5cbjwhLS0gICAgICAgIDwvdnVlLWxvYWRpbmc+LS0+XG48IS0tICAgICAgICAmbHQ7ISZuZGFzaDsgU0VMRUNUIEJSQU5EICZuZGFzaDsmZ3Q7LS0+XG48IS0tICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtd3JhcHBlclwiPi0tPlxuPCEtLSAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1oZWFkZXJcIj7QntCx0LXRgNGW0YLRjCDQsdGA0LXQvdC0INC70ZbQvdC3PC9kaXY+LS0+XG48IS0tICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWJvZHlcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPHN3aXBlci0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDpzcGFjZS1iZXR3ZWVuPVwiMTBcIi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDp3aWR0aD1cIjIyMFwiLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgOnNob3J0LXN3aXBlcz1cInRydWVcIi0tPlxuPCEtLSAgICAgICAgICAgICAgICA+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8c3dpcGVyLXNsaWRlIHYtZm9yPVwiYnJhbmQgaW4gYnJhbmRzXCIgQGNsaWNrPVwic2VsZWN0QnJhbmQoYnJhbmQpXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiA6Y2xhc3M9XCJicmFuZHNDbGFzc2VzKGJyYW5kKVwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIDpzcmM9XCInaHR0cHM6Ly9wcm9va28uY29tLnVhL3VwbG9hZHMvc2hvcC9icmFuZHMvJyArIGJyYW5kLmltYWdlXCIgYWx0PVwiXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8L3N3aXBlci1zbGlkZT4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPC9zd2lwZXI+LS0+XG48IS0tICAgICAgICAgICAgPC9kaXY+LS0+XG48IS0tICAgICAgICA8L2Rpdj4tLT5cblxuPCEtLSAgICAgICAgJmx0OyEmbmRhc2g7IFNFTEVDVCBMRU5TICZuZGFzaDsmZ3Q7LS0+XG48IS0tICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtd3JhcHBlclwiPi0tPlxuPCEtLSAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1oZWFkZXJcIj7QntCx0LXRgNGW0YLRjCDQu9GW0L3Qt9C4PC9kaXY+LS0+XG48IS0tICAgICAgICAgICAgPGRpdiB2LWlmPVwic2VsZWN0ZWRCcmFuZFwiIGNsYXNzPVwiZ3JvdXAtYm9keVwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8c3dpcGVyLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgOnNwYWNlLWJldHdlZW49XCIxMFwiLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgOndpZHRoPVwiMjIwXCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA6c2hvcnQtc3dpcGVzPVwidHJ1ZVwiLS0+XG48IS0tICAgICAgICAgICAgICAgID4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgIDxzd2lwZXItc2xpZGUgdi1mb3I9XCJsZW5zIGluIGxlbnNlc1wiIEBjbGljaz1cInNlbGVjdExlbnMobGVucylcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IDpjbGFzcz1cImxlbnNlc0NsYXNzZXMobGVucylcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGVucy52YWx1ZSB9fS0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPC9zd2lwZXItc2xpZGU+LS0+XG48IS0tICAgICAgICAgICAgICAgIDwvc3dpcGVyPi0tPlxuPCEtLSAgICAgICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgIDxkaXYgdi1lbHNlIGNsYXNzPVwiZ3JvdXAtYm9keVwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZSBtZXNzYWdlJiM0NTsmIzQ1O2luZm9cIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgINCh0L/QvtGH0LDRgtC60YMg0LLQuNCx0LXRgNGW0YLRjCDQsdGA0LXQvdC0INC70ZbQvdC30LgtLT5cbjwhLS0gICAgICAgICAgICAgICAgPC9kaXY+LS0+XG48IS0tICAgICAgICAgICAgPC9kaXY+LS0+XG48IS0tICAgICAgICA8L2Rpdj4tLT5cblxuPCEtLSAgICAgICAgJmx0OyEmbmRhc2g7IFNFTEVDVCBMRU5TIFRZUEUgJm5kYXNoOyZndDstLT5cbjwhLS0gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC13cmFwcGVyXCI+LS0+XG48IS0tICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWhlYWRlclwiPtCe0LHQtdGA0ZbRgtGMINGC0LjQvyDQu9GW0L3Qt9C4PC9kaXY+LS0+XG48IS0tICAgICAgICAgICAgPGRpdiB2LWlmPVwic2VsZWN0ZWRMZW5zXCIgY2xhc3M9XCJncm91cC1ib2R5XCI+LS0+XG48IS0tICAgICAgICAgICAgICAgIDxzd2lwZXItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA6c3BhY2UtYmV0d2Vlbj1cIjEwXCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA6d2lkdGg9XCIyMjBcIi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDpzaG9ydC1zd2lwZXM9XCJ0cnVlXCItLT5cbjwhLS0gICAgICAgICAgICAgICAgPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPHN3aXBlci1zbGlkZSB2LWZvcj1cImxlbnNUeXBlIGluIGxlbnNUeXBlc1wiIEBjbGljaz1cInNlbGVjdExlbnNUeXBlKGxlbnNUeXBlKVwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgOmNsYXNzPVwibGVuc1R5cGVDbGFzc2VzKGxlbnNUeXBlKVwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxOTBweDt3aWR0aDoxOTBweDtcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgOnNyYz1cImxlbnNUeXBlSW1hZ2UobGVuc1R5cGUudmFsdWUpXCIgYWx0PVwiXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OjUwcHg7XCI+e3sgbGVuc1R5cGUudmFsdWUgfX08L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgIDwvc3dpcGVyLXNsaWRlPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8L3N3aXBlcj4tLT5cbjwhLS0gICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICA8ZGl2IHYtZWxzZSBjbGFzcz1cImdyb3VwLWJvZHlcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UgbWVzc2FnZSYjNDU7JiM0NTtpbmZvXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICDQodC/0L7Rh9Cw0YLQutGDINCy0LjQsdC10YDRltGC0Ywg0LvRltC90LfQuC0tPlxuPCEtLSAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgIDwvZGl2Pi0tPlxuXG48IS0tICAgICAgICAmbHQ7ISZuZGFzaDsgU0VMRUNUIFBST0RVQ1QgJm5kYXNoOyZndDstLT5cbjwhLS0gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC13cmFwcGVyXCI+LS0+XG48IS0tICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWhlYWRlclwiPtCe0LHQtdGA0ZbRgtGMINC/0ZbQtNGF0L7QtNGP0YnRliDQu9GW0L3Qt9C4PC9kaXY+LS0+XG48IS0tICAgICAgICAgICAgPGRpdiB2LWlmPVwic2VsZWN0ZWRMZW5zVHlwZVwiIGNsYXNzPVwiZ3JvdXAtYm9keVwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8c3dpcGVyLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgOnNwYWNlLWJldHdlZW49XCIxMFwiLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgOndpZHRoPVwiMjIwXCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA6c2hvcnQtc3dpcGVzPVwidHJ1ZVwiLS0+XG48IS0tICAgICAgICAgICAgICAgID4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgIDxzd2lwZXItc2xpZGUgdi1mb3I9XCJwcm9kdWN0IGluIHByb2R1Y3RzXCIgQGNsaWNrPVwic2VsZWN0UHJvZHVjdChwcm9kdWN0KVwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgOmNsYXNzPVwicHJvZHVjdENsYXNzZXMocHJvZHVjdClcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyA6c3JjPVwiJ2h0dHBzOi8vcHJvb2tvLmNvbS51YS91cGxvYWRzL3Nob3AvcHJvZHVjdHMvbWVkaXVtLycgKyBwcm9kdWN0LmltYWdlXCIgYWx0PVwiXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0VGl0bGVcIj57eyBwcm9kdWN0LnRpdGxlIH19PC9kaXY+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJQcm9kdWN0UHJpY2VXcmFwcGVyXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINCy0ZbQtCA8c3BhbiBjbGFzcz1cInByb2R1Y3RQcmljZVwiIHYtaHRtbD1cInByb2R1Y3QucHJpY2VfZnJvbVwiLz4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3RQcmljZUluZm9cIj7Qt9CwINC/0LDRgNGDPC9kaXY+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJwcm9kdWN0UHJvcGVydGllc1wiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIHYtZm9yPVwicHJvcGVydHkgaW4gcHJvZHVjdC5tYWluX3Byb3BlcnRpZXNcIiBjbGFzcz1cInByb2R1Y3RQcm9wZXJ0eVJvd1wiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBwcm9wZXJ0eS5wcm9wZXJ0eV9uYW1lIH19PC90ZD4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgcHJvcGVydHkucHJvcGVydHlfdmFsdWUgfX08L3RkPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgIDwvc3dpcGVyLXNsaWRlPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8L3N3aXBlcj4tLT5cbjwhLS0gICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICA8ZGl2IHYtZWxzZSBjbGFzcz1cImdyb3VwLWJvZHlcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UgbWVzc2FnZSYjNDU7JiM0NTtpbmZvXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICDQodC/0L7Rh9Cw0YLQutGDINC+0LHQtdGA0ZbRgtGMINGC0LjQvyDQu9GW0L3Qt9C4LS0+XG48IS0tICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgPC9kaXY+LS0+XG5cbjwhLS0gICAgICAgICZsdDshJm5kYXNoOyBTRUxFQ1QgUEFSQU1TICZuZGFzaDsmZ3Q7LS0+XG48IS0tICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtd3JhcHBlclwiPi0tPlxuPCEtLSAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1oZWFkZXJcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAg0JLQstC10LTRltGC0Ywg0YHQstC+0Zcg0LfQvdCw0YfQtdC90L3RjyDQtNC70Y8g0YHQutC70LAtLT5cbjwhLS0gICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICA8ZGl2IHYtaWY9XCJzZWxlY3RlZFByb2R1Y3RcIiBjbGFzcz1cImdyb3VwLWJvZHlcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlbHBCbG9ja1wiPi0tPlxuXG48IS0tICAgICAgICAgICAgICAgICAgICA8ZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgINCX0LDQstCw0L3RgtCw0LbQuNGC0Lgg0YDQtdGG0LXQv9GCICjRhNC+0YLQvik6LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cblxuPCEtLSAgICAgICAgICAgICAgICAgICAgPGRpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQtLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdD1cImltYWdlLypcIi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlucHV0PVwicmVhZFJlY2VpcHRcIi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPVwiZmlsZXVwbG9hZFwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPC9kaXY+LS0+XG48IS0tICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJyZWNlaXB0XCIgY2xhc3M9XCJoZWxwQmxvY2tSZXN1bHRcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgINCf0YDQuNC60YDRltC/0LvQtdC90LjQuSDRhNCw0LnQuyDRgNC10YbQtdC/0YLRgzoge3sgcmVjZWlwdC5maWxlTmFtZSB9fS0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiY2xlYXJSZWNlcHRcIi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImNvbG9yOmJsdWU7XCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgID4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICDQktGW0LTQutGA0ZbQv9C40YLQuC0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8ZGl2PtCv0LrRidC+INCyINGA0LXRhtC10L/RgtGWINGUINGD0YHRliDQvdC10L7RhdGW0LHQvdGWINC00LDQvdGWIC0g0LIg0YLQsNC60L7QvNGDINCy0LjQv9Cw0LTQutGDINC/0L7Qu9GPINC90LjQttGH0LUg0L3QtSDQvtCx0L7QsifRj9C30LrQvtCy0ZYg0LTQviDQt9Cw0L/QvtCy0L3QtdC90L3Rjy0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPC9kaXY+LS0+XG48IS0tICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8ZGl2IHYtZWxzZT4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgINCv0LrRidC+INCy0Lgg0LfQsNCy0LDQvdGC0LDQttC10YLQtSDRhNCw0LnQuyAtINCyINGC0LDQutC+0LzRgyDQstC40L/QsNC00LrRgyDQv9C+0LvRjyDQvdC40LbRh9C1INC90LUg0L7QsdC+0LIn0Y/Qt9C60L7QstGWINC00L4g0LfQsNC/0L7QstC90LXQvdC90Y8tLT5cbjwhLS0gICAgICAgICAgICAgICAgPC9kaXY+LS0+XG5cblxuPCEtLSAgICAgICAgICAgICAgICA8cHJvZHVjdC1wYXJhbXMtc2VsZWN0b3ItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA6ZXllPVwiJ3JpZ2h0J1wiLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgOnJlY2VpcHQ9XCJyZWNlaXB0XCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA6cHJvZHVjdFBhcmFtcz1cInByb2R1Y3RQYXJhbXNSaWdodFwiLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgOnByb2R1Y3RQYXJhbVNwaGVyZT1cInByb2R1Y3RQYXJhbVJpZ2h0U3BoZXJlXCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA6cHJvZHVjdFBhcmFtQ3lsaW5kZXI9XCJwcm9kdWN0UGFyYW1SaWdodEN5bGluZGVyXCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA6cHJvZHVjdFBhcmFtQXhpcz1cInByb2R1Y3RQYXJhbVJpZ2h0QXhpc1wiLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgQHVwZGF0ZVNwaGVyZT1cInVwZGF0ZVNwaGVyZVJpZ2h0XCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICBAdXBkYXRlQ3lsaW5kZXI9XCJ1cGRhdGVDeWxpbmRlclJpZ2h0XCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICBAdXBkYXRlQXhpcz1cInVwZGF0ZUF4aXNSaWdodFwiLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgQGNsZWFyVmFsdWVzPVwiY2xlYXJWYWx1ZXNSaWdodFwiLS0+XG48IS0tICAgICAgICAgICAgICAgIC8+LS0+XG5cbjwhLS0gICAgICAgICAgICAgICAgPHByb2R1Y3QtcGFyYW1zLXNlbGVjdG9yLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgOmV5ZT1cIidsZWZ0J1wiLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgOnJlY2VpcHQ9XCJyZWNlaXB0XCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA6cHJvZHVjdFBhcmFtcz1cInByb2R1Y3RQYXJhbXNMZWZ0XCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA6cHJvZHVjdFBhcmFtU3BoZXJlPVwicHJvZHVjdFBhcmFtTGVmdFNwaGVyZVwiLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgOnByb2R1Y3RQYXJhbUN5bGluZGVyPVwicHJvZHVjdFBhcmFtTGVmdEN5bGluZGVyXCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA6cHJvZHVjdFBhcmFtQXhpcz1cInByb2R1Y3RQYXJhbUxlZnRBeGlzXCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICBAdXBkYXRlU3BoZXJlPVwidXBkYXRlU3BoZXJlTGVmdFwiLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgQHVwZGF0ZUN5bGluZGVyPVwidXBkYXRlQ3lsaW5kZXJMZWZ0XCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICBAdXBkYXRlQXhpcz1cInVwZGF0ZUF4aXNMZWZ0XCItLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICBAY2xlYXJWYWx1ZXM9XCJjbGVhclZhbHVlc0xlZnRcIi0tPlxuPCEtLSAgICAgICAgICAgICAgICAvPi0tPlxuXG48IS0tICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGRpdGlvbmFsUGFyYW1zV3JhcHBlclwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPGRpdiB2LWlmPVwicGFyYW1zV2lkdGhEaWZmZXJlbnQgPT09IGZhbHNlXCIgY2xhc3M9XCJwYXJhbXNXcmFwcGVySXRlbSBwYXJhbXNXcmFwcGVySXRlbVdpZHRoXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj7QntCx0LXRgNGW0YLRjCDQstGW0LTRgdGC0LDQvdGMINC80ZbQtiDQt9GW0L3QvdC40YbRj9C80Lg8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IHYtbW9kZWw9XCJwYXJhbXNXaWR0aFwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2LWZvcj1cImRpc3RhbmNlIGluIHJhbmdlRGlzdGFuY2VTYW1lKClcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBkaXN0YW5jZSB9fS0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPC9kaXY+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFyYW1zV3JhcHBlckl0ZW0gcGFyYW1zV3JhcHBlckl0ZW1XaWR0aFwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+Jm5ic3A8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiB2LW1vZGVsPVwicGFyYW1zV2lkdGhEaWZmZXJlbnRcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg0JTQu9GPINGA0ZbQt9C90LjRhSDQvtGH0LXQuS0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPC9kaXY+LS0+XG5cbjwhLS0gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZGl0aW9uYWxQYXJhbXNXcmFwcGVyXCIgdi1pZj1cInBhcmFtc1dpZHRoRGlmZmVyZW50ID09PSB0cnVlXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFyYW1zV3JhcHBlckl0ZW0gcGFyYW1zV3JhcHBlckl0ZW1XaWR0aFwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+0JTQu9GPINC/0YDQsNCy0L7Qs9C+PC9kaXY+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCB2LW1vZGVsPVwicGFyYW1zV2lkdGhSaWdodFwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2LWZvcj1cImRpc3RhbmNlIGluIHJhbmdlRGlzdGFuY2VEaWZmZXJlbnQoKVwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRpc3RhbmNlIH19LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXJhbXNXcmFwcGVySXRlbSBwYXJhbXNXcmFwcGVySXRlbVdpZHRoXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj7QlNC70Y8g0LvRltCy0L7Qs9C+PC9kaXY+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCB2LW1vZGVsPVwicGFyYW1zV2lkdGhMZWZ0XCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHYtZm9yPVwiZGlzdGFuY2UgaW4gcmFuZ2VEaXN0YW5jZURpZmZlcmVudCgpXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGlzdGFuY2UgfX0tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cblxuPCEtLSAgICAgICAgICAgIDwvZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgIDxkaXYgdi1lbHNlIGNsYXNzPVwiZ3JvdXAtYm9keVwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZSBtZXNzYWdlJiM0NTsmIzQ1O2luZm9cIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgINCh0L/QvtGH0LDRgtC60YMg0L7QsdC10YDRltGC0Ywg0LvRltC90LfRgy0tPlxuPCEtLSAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgIDwvZGl2Pi0tPlxuXG48IS0tICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXBMaW5rc1wiPi0tPlxuPCEtLSAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwibGluayBsaW5rJiM0NTsmIzQ1O21haW5cIiBAY2xpY2s9XCJwb3B1cCgxKVwiPtCv0Log0LLQuNC80ZbRgNGP0YLQuCDQstGW0LTRgdGC0LDQvdGMINC80ZbQtiDQt9GW0YDQvdC40YbRj9C80Lg/PC9idXR0b24+LS0+XG48IS0tICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJsaW5rIGxpbmsmIzQ1OyYjNDU7bWFpblwiIEBjbGljaz1cInBvcHVwKDIpXCI+0K/QuiDQt9Cw0L/QvtCy0L3QuNGC0Lgg0YDQtdGG0LXQv9GCPzwvYnV0dG9uPi0tPlxuPCEtLSAgICAgICAgPC9kaXY+LS0+XG5cbjwhLS0gICAgICAgIDx0YWJsZSBjbGFzcz1cInByaWNlRGF0YVwiPi0tPlxuPCEtLSAgICAgICAgICAgIDx0cj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHJpY2VEYXRhTmFtZVwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAg0JLQsNGA0YLRltGB0YLRjCDRgtC+0LLQsNGA0YM6LS0+XG48IS0tICAgICAgICAgICAgICAgIDwvdGQ+LS0+XG48IS0tICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInByaWNlRGF0YVZhbHVlXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8cHJvZHVjdC1wcmljZSA6cHJpY2U9XCJwcm9kdWN0UHJpY2VcIi8+LS0+XG48IS0tICAgICAgICAgICAgICAgIDwvdGQ+LS0+XG48IS0tICAgICAgICAgICAgPC90cj4tLT5cbjwhLS0gICAgICAgICAgICA8dHIgdi1pZj1cInJpZ2h0TGVuc1ByaWNlID4gMFwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwcmljZURhdGFOYW1lXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICDQktCw0YDRgtGW0YHRgtGMINC70ZbQvdC30Lgg0LTQu9GPINC/0YDQsNCy0L7Qs9C+INC+0LrQsDotLT5cbjwhLS0gICAgICAgICAgICAgICAgPC90ZD4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicHJpY2VEYXRhVmFsdWVcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgIDxwcm9kdWN0LXByaWNlIDpwcmljZT1cInJpZ2h0TGVuc1ByaWNlXCIvPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8L3RkPi0tPlxuPCEtLSAgICAgICAgICAgIDwvdHI+LS0+XG48IS0tICAgICAgICAgICAgPHRyIHYtaWY9XCJsZWZ0TGVuc1ByaWNlID4gMFwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwcmljZURhdGFOYW1lXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICDQktCw0YDRgtGW0YHRgtGMINC70ZbQvdC30Lgg0LTQu9GPINC70ZbQstC+0LPQviDQvtC60LA6LS0+XG48IS0tICAgICAgICAgICAgICAgIDwvdGQ+LS0+XG48IS0tICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInByaWNlRGF0YVZhbHVlXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8cHJvZHVjdC1wcmljZSA6cHJpY2U9XCJsZWZ0TGVuc1ByaWNlXCIvPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8L3RkPi0tPlxuPCEtLSAgICAgICAgICAgIDwvdHI+LS0+XG48IS0tICAgICAgICAgICAgPHRyPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwcmljZURhdGFOYW1lXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICDQodGD0LzQvNCwOi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8L3RkPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwcmljZURhdGFWYWx1ZVwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPHByb2R1Y3QtcHJpY2UgOnByaWNlPVwiZmluYWxQcmljZVwiLz4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPC90ZD4tLT5cbjwhLS0gICAgICAgICAgICA8L3RyPi0tPlxuPCEtLSAgICAgICAgPC90YWJsZT4tLT5cblxuPCEtLSAgICAgICAgPGRpdj4tLT5cbjwhLS0gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1sZ1wiIHR5cGU9XCJidXR0b25cIiBAY2xpY2s9XCJzdWJtaXRQcm9kdWN0XCIgOmRpc2FibGVkPVwiIWFjdGl2ZVN1Ym1pdFwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8c3Bhbj7QlNC+0LTQsNGC0Lgg0LIg0LrQvtGA0LfQuNC90YM8L3NwYW4+LS0+XG48IS0tICAgICAgICAgICAgPC9idXR0b24+LS0+XG48IS0tICAgICAgICAgICAgPGRpdiB2LWlmPVwiYWN0aXZlU3VibWl0ID09PSBmYWxzZVwiIGNsYXNzPVwicHJvZHVjdEVycm9yIG1lc3NhZ2UgbWVzc2FnZSYjNDU7JiM0NTtlcnJvclwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICDQktCw0Lwg0L3QtdC+0LHRhdGW0LTQvdC+INC+0LHRgNCw0YLQuCDQu9GW0L3Qt9GDLCDRgdGE0LXRgNGDINGC0LAg0YbQuNC70ZbQvdC00YAg0LTQu9GPINC+0LHQvtGFINC+0YfQtdC5LCDRidC+0LEg0LzQsNGC0Lgg0LzQvtC20LvQuNCy0ZbRgdGC0Ywg0LfQsNC80L7QstC40YLQuCDQutC+0LzQv9C70LXQutGCLS0+XG48IS0tICAgICAgICAgICAgPC9kaXY+LS0+XG48IS0tICAgICAgICA8L2Rpdj4tLT5cblxuPCEtLSAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNlclwiLz4tLT5cblxuPCEtLSAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj4tLT5cbjwhLS0gICAgICAgICAgICB7eyBzZWxlY3RlZEJyYW5kIH19IC0ge3sgc2VsZWN0ZWRMZW5zIH19IC0ge3sgc2VsZWN0ZWRMZW5zVHlwZSB9fSAtIHt7IHNlbGVjdGVkUHJvZHVjdCB9fS0tPlxuPCEtLSAgICAgICAgICAgIC0mIzQ1OyYjNDU7LS0+XG48IS0tICAgICAgICAgICAgPGJyPi0tPlxuPCEtLSAgICAgICAgICAgIHByb2R1Y3RQYXJhbVJpZ2h0U3BoZXJlOiB7eyBwcm9kdWN0UGFyYW1SaWdodFNwaGVyZSB9fSA8YnI+LS0+XG48IS0tICAgICAgICAgICAgcHJvZHVjdFBhcmFtTGVmdFNwaGVyZToge3sgcHJvZHVjdFBhcmFtTGVmdFNwaGVyZSB9fTxicj4tLT5cbjwhLS0gICAgICAgICAgICBwcm9kdWN0UGFyYW1SaWdodEN5bGluZGVyOiB7eyBwcm9kdWN0UGFyYW1SaWdodEN5bGluZGVyIH19IDxicj4tLT5cbjwhLS0gICAgICAgICAgICBwcm9kdWN0UGFyYW1MZWZ0Q3lsaW5kZXI6IHt7IHByb2R1Y3RQYXJhbUxlZnRDeWxpbmRlciB9fTxicj4tLT5cbjwhLS0gICAgICAgICAgICBwcm9kdWN0UGFyYW1SaWdodEF4aXM6IHt7IHByb2R1Y3RQYXJhbVJpZ2h0QXhpcyB9fSA8YnI+LS0+XG48IS0tICAgICAgICAgICAgcHJvZHVjdFBhcmFtTGVmdEF4aXM6IHt7IHByb2R1Y3RQYXJhbUxlZnRBeGlzIH19PGJyPi0tPlxuPCEtLSAgICAgICAgICAgIDxicj4tLT5cbjwhLS0gICAgICAgICAgICBuZWVkSGVscDoge3sgbmVlZEhlbHAgfX08YnI+LS0+XG48IS0tICAgICAgICAgICAgcmVjZWlwdDoge3sgcmVjZWlwdCB9fTxicj4tLT5cbjwhLS0gICAgICAgICAgICA8YnI+LS0+XG48IS0tICAgICAgICAgICAgcHJvZHVjdFByaWNlOiB7eyBwcm9kdWN0UHJpY2UgfX08YnI+LS0+XG48IS0tICAgICAgICAgICAgZmluYWxQcmljZToge3sgZmluYWxQcmljZSB9fTxicj4tLT5cbjwhLS0gICAgICAgICAgICBzZWxlY3RlZFByb2R1Y3Q6IHt7IHNlbGVjdGVkUHJvZHVjdCB9fTxicj4tLT5cbjwhLS0gICAgICAgICAgICBwcm9kdWN0czoge3sgcHJvZHVjdHMgfX08YnI+LS0+XG48IS0tICAgICAgICA8L2Rpdj4tLT5cblxuPCEtLSAgICA8L2Rpdj4tLT5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgYXhpb3MgZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQge1N3aXBlciwgU3dpcGVyU2xpZGV9IGZyb20gJ3N3aXBlci92dWUnO1xuaW1wb3J0ICdzd2lwZXIvY3NzJztcbmltcG9ydCBQcm9kdWN0UGFyYW1zU2VsZWN0b3IgZnJvbSBcIi4vUHJvZHVjdFBhcmFtc1NlbGVjdG9yLnZ1ZVwiO1xuaW1wb3J0IFByb2R1Y3RQcmljZSBmcm9tIFwiLi9Qcm9kdWN0UHJpY2UudnVlXCI7XG5pbXBvcnQgTG9hZGluZ0FuaW1hdGlvbiBmcm9tIFwiLi4vTG9hZGluZ0FuaW1hdGlvbi52dWVcIjtcbmltcG9ydCBQcm9kdWN0VnVlRnVsbFNjcGVlbiBmcm9tIFwiLi9Qcm9kdWN0VnVlRnVsbFNjcGVlbi52dWVcIjtcblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIG5hbWU6IFwiUHJvZHVjdFNlbGVjdEZ1bGxcIixcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICBQcm9kdWN0VnVlRnVsbFNjcGVlbixcbiAgICAgICAgTG9hZGluZ0FuaW1hdGlvbixcbiAgICAgICAgUHJvZHVjdFByaWNlLFxuICAgICAgICBQcm9kdWN0UGFyYW1zU2VsZWN0b3IsXG4gICAgICAgIFN3aXBlcixcbiAgICAgICAgU3dpcGVyU2xpZGUsXG4gICAgfSxcbiAgICBkYXRhKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgICAgICAgYnJhbmRzOiBbXSxcbiAgICAgICAgICAgIHNlbGVjdGVkQnJhbmQ6IG51bGwsXG4gICAgICAgICAgICBsZW5zZXM6IFtdLFxuICAgICAgICAgICAgc2VsZWN0ZWRMZW5zOiBudWxsLFxuICAgICAgICAgICAgbGVuc1R5cGVzOiBbXSxcbiAgICAgICAgICAgIHNlbGVjdGVkTGVuc1R5cGU6IG51bGwsXG4gICAgICAgICAgICBwcm9kdWN0czogW10sXG4gICAgICAgICAgICBzZWxlY3RlZFByb2R1Y3Q6IG51bGwsXG4gICAgICAgICAgICBwYXJhbXNXaWR0aERpZmZlcmVudDogZmFsc2UsXG4gICAgICAgICAgICBuZWVkSGVscDogZmFsc2UsXG4gICAgICAgICAgICByZWNlaXB0OiBudWxsLFxuICAgICAgICAgICAgcHJvZHVjdFBhcmFtc0RlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICBmaXJzdDogW10sXG4gICAgICAgICAgICAgICAgc2Vjb25kOiBbXSxcbiAgICAgICAgICAgICAgICBheGlzOiBbXSxcbiAgICAgICAgICAgICAgICBhbGw6IFtdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb2R1Y3RQYXJhbXNSaWdodDogT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5wcm9kdWN0UGFyYW1zRGVmYXVsdCksXG4gICAgICAgICAgICBwcm9kdWN0UGFyYW1zTGVmdDogT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5wcm9kdWN0UGFyYW1zRGVmYXVsdCksXG4gICAgICAgICAgICBwcm9kdWN0UGFyYW1SaWdodFNwaGVyZTogbnVsbCxcbiAgICAgICAgICAgIHByb2R1Y3RQYXJhbUxlZnRTcGhlcmU6IG51bGwsXG4gICAgICAgICAgICBwcm9kdWN0UGFyYW1SaWdodEN5bGluZGVyOiBudWxsLFxuICAgICAgICAgICAgcHJvZHVjdFBhcmFtTGVmdEN5bGluZGVyOiBudWxsLFxuICAgICAgICAgICAgcHJvZHVjdFBhcmFtUmlnaHRBeGlzOiBudWxsLFxuICAgICAgICAgICAgcHJvZHVjdFBhcmFtTGVmdEF4aXM6IG51bGwsXG4gICAgICAgICAgICBwcm9kdWN0UGFyYW1SaWdodERpc3RhbmNlOiBudWxsLFxuICAgICAgICAgICAgcHJvZHVjdFBhcmFtTGVmdERpc3RhbmNlOiBudWxsLFxuICAgICAgICAgICAgcHJvZHVjdFByaWNlOiBudWxsLFxuICAgICAgICAgICAgbGVmdExlbnNQcmljZTogbnVsbCxcbiAgICAgICAgICAgIHJpZ2h0TGVuc1ByaWNlOiBudWxsLFxuICAgICAgICAgICAgZmluYWxQcmljZTogbnVsbCxcbiAgICAgICAgICAgIHBhcmFtc1dpZHRoOiBudWxsLFxuICAgICAgICAgICAgcGFyYW1zV2lkdGhSaWdodDogbnVsbCxcbiAgICAgICAgICAgIHBhcmFtc1dpZHRoTGVmdDogbnVsbCxcbiAgICAgICAgICAgIGFjdGl2ZVN1Ym1pdDogZmFsc2UsXG5cbiAgICAgICAgICAgIHR5cGVJbWFnZXM6IHtcbiAgICAgICAgICAgICAgICAn0KHRgtCw0L3QtNCw0YDRgtC90ZYnOiAnMS5wbtC/JyxcbiAgICAgICAgICAgICAgICAn0JHQu9C+0LrRg9Cy0LDQvdC90Y8g0YHQuNC90YzQvtCz0L4g0YHQstGW0YLQu9CwJzogJzIucG5nJyxcbiAgICAgICAgICAgICAgICAn0KTQvtGC0L7RhdGA0L7QvNC90ZYnOiAnMy5wbmcnLFxuICAgICAgICAgICAgICAgICfQodC+0L3RhtC10LfQsNGF0LjRgdC90ZYnOiAnNC5wbmcnLFxuICAgICAgICAgICAgICAgICfQktC+0LTRltC50YHRjNC60ZYnOiAnNS5wbmcnLFxuICAgICAgICAgICAgICAgICfQn9GA0L7Qs9GA0LXRgdC40LLQuC/QkdGW0YTQvtC60LDQu9C4JzogJzYucG5nJyxcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIG1vZGFsT3BlbjogZmFsc2UsXG4gICAgICAgICAgICBtb2RhbENvbnRlbnQ6ICcnLFxuICAgICAgICB9XG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICAgIGFzeW5jIGluaXREYXRhKCkge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYXdhaXQgYXhpb3NcbiAgICAgICAgICAgICAgICAuZ2V0KFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgJy9wcm9kdWN0X3Z1ZS9pbml0U2VsZWN0RnVsbCcsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RJZDogdGhpcy5wcm9kdWN0SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5icmFuZHMgPSByZXNwb25zZS5kYXRhLmJyYW5kcztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdFByaWNlID0gcmVzcG9uc2UuZGF0YS5wcmljZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmJyYW5kcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQnJhbmQgPSB0aGlzLmJyYW5kc1swXS5pZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVjYWxjdWxhdGVGaW5hbFByaWNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgc2VsZWN0QnJhbmQoYnJhbmQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRCcmFuZCA9IGJyYW5kLmlkO1xuICAgICAgICB9LFxuICAgICAgICBicmFuZHNDbGFzc2VzKGJyYW5kKSB7XG4gICAgICAgICAgICBpZiAoYnJhbmQuaWQgPT09IHRoaXMuc2VsZWN0ZWRCcmFuZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbJ2JyYW5kLWl0ZW0nLCAnYnJhbmQtaXRlbS1zZWxlY3RlZCddO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gWydicmFuZC1pdGVtJywgJ2JyYW5kLWl0ZW0tdW5zZWxlY3RlZCddO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBsZW5zZXNDbGFzc2VzKGxlbnMpIHtcbiAgICAgICAgICAgIGlmIChsZW5zLmlkID09PSB0aGlzLnNlbGVjdGVkTGVucykge1xuICAgICAgICAgICAgICAgIHJldHVybiBbJ2JyYW5kLWl0ZW0nLCAnYnJhbmQtaXRlbS1zZWxlY3RlZCddO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gWydicmFuZC1pdGVtJywgJ2JyYW5kLWl0ZW0tdW5zZWxlY3RlZCddO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBzZWxlY3RMZW5zKGxlbnMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMZW5zID0gbGVucy5pZDtcbiAgICAgICAgfSxcbiAgICAgICAgbGVuc1R5cGVDbGFzc2VzKGxlbnNUeXBlKSB7XG4gICAgICAgICAgICBpZiAobGVuc1R5cGUuaWQgPT09IHRoaXMuc2VsZWN0ZWRMZW5zVHlwZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbJ2JyYW5kLWl0ZW0nLCAnYnJhbmQtaXRlbS1zZWxlY3RlZCddO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gWydicmFuZC1pdGVtJywgJ2JyYW5kLWl0ZW0tdW5zZWxlY3RlZCddO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBzZWxlY3RMZW5zVHlwZShsZW5zVHlwZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExlbnNUeXBlID0gbGVuc1R5cGUuaWQ7XG4gICAgICAgIH0sXG4gICAgICAgIHByb2R1Y3RDbGFzc2VzKHByb2R1Y3QpIHtcbiAgICAgICAgICAgIGlmIChwcm9kdWN0LmlkID09PSB0aGlzLnNlbGVjdGVkUHJvZHVjdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbJ2JyYW5kLWl0ZW0nLCAnYnJhbmQtaXRlbS1zZWxlY3RlZCddO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gWydicmFuZC1pdGVtJywgJ2JyYW5kLWl0ZW0tdW5zZWxlY3RlZCddO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBzZWxlY3RQcm9kdWN0KHByb2R1Y3QpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm9kdWN0ID0gcHJvZHVjdC5pZDtcbiAgICAgICAgfSxcbiAgICAgICAgdXBkYXRlU3BoZXJlUmlnaHQoc3BoZXJlKSB7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0U3BoZXJlID0gc3BoZXJlO1xuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVTcGhlcmVMZWZ0KHNwaGVyZSkge1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0UGFyYW1MZWZ0U3BoZXJlID0gc3BoZXJlO1xuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVDeWxpbmRlclJpZ2h0KGN5bGluZGVyKSB7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0Q3lsaW5kZXIgPSBjeWxpbmRlcjtcbiAgICAgICAgfSxcbiAgICAgICAgY2xlYXJWYWx1ZXNSaWdodCgpIHtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdFBhcmFtUmlnaHRDeWxpbmRlciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0U3BoZXJlID0gbnVsbDtcbiAgICAgICAgfSxcbiAgICAgICAgdXBkYXRlQ3lsaW5kZXJMZWZ0KGN5bGluZGVyKSB7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RQYXJhbUxlZnRDeWxpbmRlciA9IGN5bGluZGVyO1xuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVBeGlzUmlnaHQoYXhpcykge1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0UGFyYW1SaWdodEF4aXMgPSBheGlzO1xuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVBeGlzTGVmdChheGlzKSB7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RQYXJhbUxlZnRBeGlzID0gYXhpcztcbiAgICAgICAgfSxcbiAgICAgICAgY2xlYXJWYWx1ZXNMZWZ0KCkge1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0UGFyYW1MZWZ0Q3lsaW5kZXIgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0UGFyYW1MZWZ0U3BoZXJlID0gbnVsbDtcbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgdXBkYXRlUGFyYW1zKGV5ZSkge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgbGV0IHNwaGVyZSA9IG51bGw7XG4gICAgICAgICAgICBsZXQgY3lsaW5kZXIgPSBudWxsO1xuICAgICAgICAgICAgaWYgKGV5ZSA9PT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgIHNwaGVyZSA9IHRoaXMucHJvZHVjdFBhcmFtUmlnaHRTcGhlcmU7XG4gICAgICAgICAgICAgICAgY3lsaW5kZXIgPSBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzcGhlcmUgPSB0aGlzLnByb2R1Y3RQYXJhbUxlZnRTcGhlcmU7XG4gICAgICAgICAgICAgICAgY3lsaW5kZXIgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgYXhpb3NcbiAgICAgICAgICAgICAgICAuZ2V0KFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgJy9wcm9kdWN0X3Z1ZS9wcm9kdWN0UGFyYW1zJyxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRQcm9kdWN0OiB0aGlzLnNlbGVjdGVkUHJvZHVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGhlcmU6IHNwaGVyZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjeWxpbmRlcjogY3lsaW5kZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXllID09PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RQYXJhbXNSaWdodCA9IHJlc3BvbnNlLmRhdGEucHJvZHVjdFBhcmFtcztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdFBhcmFtc0xlZnQgPSByZXNwb25zZS5kYXRhLnByb2R1Y3RQYXJhbXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZUZpbmFsUHJpY2UoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgY2xlYXJQYXJhbXMoKSB7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0U3BoZXJlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdFBhcmFtTGVmdFNwaGVyZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0Q3lsaW5kZXIgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0UGFyYW1MZWZ0Q3lsaW5kZXIgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0UGFyYW1SaWdodEF4aXMgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0UGFyYW1MZWZ0QXhpcyA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RQYXJhbXNSaWdodCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMucHJvZHVjdFBhcmFtc0RlZmF1bHQpO1xuICAgICAgICAgICAgdGhpcy5wcm9kdWN0UGFyYW1zTGVmdCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMucHJvZHVjdFBhcmFtc0RlZmF1bHQpO1xuICAgICAgICB9LFxuICAgICAgICByZWFkUmVjZWlwdChldmVudCkge1xuICAgICAgICAgICAgbGV0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICBsZXQgZmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1swXTtcbiAgICAgICAgICAgIGlmIChmaWxlLnNpemUgPiAxMDI0ICogMTAyNCAqIDUwKSB7XG4gICAgICAgICAgICAgICAgYWxlcnQoJ9Cg0L7Qt9C80ZbRgCDRhNCw0LnQu9GDINC90LUg0L/QvtCy0LjQvdC10L0g0L/QtdGA0LXQstC40YnRg9Cy0LDRgtC4IDUw0JzQkScpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJSZWNlcHQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIVsnaW1hZ2UvcG5nJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2Uvc3ZnJ10uaW5jbHVkZXMoZmlsZVsndHlwZSddKSkge1xuICAgICAgICAgICAgICAgIGFsZXJ0KCfQpNCw0LnQuyDQvNC+0LbQtSDQsdGD0YLQuCDQu9C40YjQtSDQvdCw0YHRgtGD0L/QvdC40YUg0YTQvtGA0LzQsNGC0ZbQsjogUE5HLCBKUEcsIFNWRycpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJSZWNlcHQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlY2VpcHQgPSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGUsXG4gICAgICAgICAgICAgICAgICAgIEZpbGVSZWFkZXI6IHJlYWRlci5yZXN1bHQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlY2FsY3VsYXRlRmluYWxQcmljZSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICAgY2xlYXJSZWNlcHQoKSB7XG4gICAgICAgICAgICB0aGlzLnJlY2VpcHQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy4kcmVmcy5maWxldXBsb2FkLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMucmVjYWxjdWxhdGVGaW5hbFByaWNlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlY2FsY3VsYXRlRmluYWxQcmljZSgpIHtcbiAgICAgICAgICAgIHRoaXMuZmluYWxQcmljZSA9IHRoaXMucHJvZHVjdFByaWNlO1xuICAgICAgICAgICAgbGV0IHNlY29uZFByaWNlID0gMDtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkUHJvZHVjdCkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdHMuZm9yRWFjaChwcm9kdWN0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2R1Y3QuaWQgPT09IHRoaXMuc2VsZWN0ZWRQcm9kdWN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRQcmljZSA9IHByb2R1Y3QucHJpY2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gY2FsY3VsYXRlIGVmdCBleWUgcGFyYW1zXG4gICAgICAgICAgICBsZXQgbGVmdEV5ZVByaWNlID0gc2Vjb25kUHJpY2U7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9kdWN0UGFyYW1MZWZ0U3BoZXJlICYmIHRoaXMucHJvZHVjdFBhcmFtTGVmdEN5bGluZGVyICYmICF0aGlzLnJlY2VpcHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RQYXJhbXNSaWdodC5hbGwuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LmZpcnN0ID09PSB0aGlzLnByb2R1Y3RQYXJhbUxlZnRTcGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIHByb3BlcnR5LnNlY29uZCA9PT0gdGhpcy5wcm9kdWN0UGFyYW1MZWZ0Q3lsaW5kZXJcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0RXllUHJpY2UgPSBwYXJzZUZsb2F0KHByb3BlcnR5LnByaWNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gY2FsY3VsYXRlIHJpZ2h0IGV5ZSBwYXJhbXNcbiAgICAgICAgICAgIGxldCByaWdodEV5ZVByaWNlID0gc2Vjb25kUHJpY2U7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9kdWN0UGFyYW1SaWdodFNwaGVyZSAmJiB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0Q3lsaW5kZXIgJiYgIXRoaXMucmVjZWlwdCkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdFBhcmFtc1JpZ2h0LmFsbC5mb3JFYWNoKHByb3BlcnR5ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkuZmlyc3QgPT09IHRoaXMucHJvZHVjdFBhcmFtUmlnaHRTcGhlcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIHByb3BlcnR5LnNlY29uZCA9PT0gdGhpcy5wcm9kdWN0UGFyYW1SaWdodEN5bGluZGVyXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRFeWVQcmljZSA9IHBhcnNlRmxvYXQocHJvcGVydHkucHJpY2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmxlZnRMZW5zUHJpY2UgPSBsZWZ0RXllUHJpY2U7XG4gICAgICAgICAgICB0aGlzLnJpZ2h0TGVuc1ByaWNlID0gcmlnaHRFeWVQcmljZTtcbiAgICAgICAgICAgIHRoaXMuZmluYWxQcmljZSA9IHRoaXMucHJvZHVjdFByaWNlICsgbGVmdEV5ZVByaWNlICsgcmlnaHRFeWVQcmljZTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkUHJvZHVjdFxuICAgICAgICAgICAgICAgICYmXG4gICAgICAgICAgICAgICAgKChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0UGFyYW1MZWZ0U3BoZXJlXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMucHJvZHVjdFBhcmFtTGVmdEN5bGluZGVyXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMucHJvZHVjdFBhcmFtUmlnaHRTcGhlcmVcbiAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5wcm9kdWN0UGFyYW1SaWdodEN5bGluZGVyXG4gICAgICAgICAgICAgICAgKSB8fCB0aGlzLnJlY2VpcHQpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVN1Ym1pdCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlU3VibWl0ID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jIHN1Ym1pdFByb2R1Y3QoKSB7XG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICBsZXQgZm9ybURhdGEgPSBuZXcgRm9ybURhdGE7XG4gICAgICAgICAgICBsZXQgY21zVG9rZW4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiW25hbWU9J2Ntc190b2tlbiddXCIpO1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdjbXNfdG9rZW4nLCBjbXNUb2tlbi52YWx1ZSk7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2R1Y3RJZCcsIHRoaXMucHJvZHVjdElkKTtcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnc2VsZWN0ZWRQcm9kdWN0JywgdGhpcy5zZWxlY3RlZFByb2R1Y3QpO1xuXG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2R1Y3RQYXJhbVJpZ2h0U3BoZXJlJywgdGhpcy5wcm9kdWN0UGFyYW1SaWdodFNwaGVyZSk7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2R1Y3RQYXJhbVJpZ2h0Q3lsaW5kZXInLCB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0Q3lsaW5kZXIpO1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdwcm9kdWN0UGFyYW1SaWdodEF4aXMnLCB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0QXhpcyk7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2R1Y3RQYXJhbVJpZ2h0RGlzdGFuY2UnLCB0aGlzLnByb2R1Y3RQYXJhbVJpZ2h0RGlzdGFuY2UpO1xuXG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2R1Y3RQYXJhbUxlZnRTcGhlcmUnLCB0aGlzLnByb2R1Y3RQYXJhbUxlZnRTcGhlcmUpO1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdwcm9kdWN0UGFyYW1MZWZ0Q3lsaW5kZXInLCB0aGlzLnByb2R1Y3RQYXJhbUxlZnRDeWxpbmRlcik7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2R1Y3RQYXJhbUxlZnRBeGlzJywgdGhpcy5wcm9kdWN0UGFyYW1MZWZ0QXhpcyk7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Byb2R1Y3RQYXJhbUxlZnREaXN0YW5jZScsIHRoaXMucHJvZHVjdFBhcmFtTGVmdERpc3RhbmNlKTtcblxuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdwYXJhbXNXaWR0aERpZmZlcmVudCcsIHRoaXMucGFyYW1zV2lkdGhEaWZmZXJlbnQpO1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdwYXJhbXNXaWR0aCcsIHRoaXMucGFyYW1zV2lkdGgpO1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdwYXJhbXNXaWR0aFJpZ2h0JywgdGhpcy5wYXJhbXNXaWR0aFJpZ2h0KTtcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgncGFyYW1zV2lkdGhMZWZ0JywgdGhpcy5wYXJhbXNXaWR0aExlZnQpO1xuXG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ25lZWRIZWxwJywgdGhpcy5uZWVkSGVscCk7XG4gICAgICAgICAgICBpZiAodGhpcy5yZWNlaXB0KSB7XG4gICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdyZWNlaXB0JywgdGhpcy5yZWNlaXB0LmZpbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXdhaXQgYXhpb3NcbiAgICAgICAgICAgICAgICAucG9zdChcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLm9yaWdpbiArICcvcHJvZHVjdF92dWUvYWRkTGVuc1RvQ2FydCcsXG4gICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdtdWx0aXBhcnQvZm9ybS1kYXRhJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC50aGVuKGFzeW5jIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEJyYW5kID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExlbnNUeXBlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sZW5zVHlwZXMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFByb2R1Y3QgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RzID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJQYXJhbXMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZUZpbmFsUHJpY2UoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHVybCA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICAgICAgICAgICAgICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLmFwcGVuZCgnc2hvd0NhcnQnLCAndHJ1ZScpO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybC5ocmVmO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKFxuICAgICAgICAgICAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGVydChlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmFuZ2VEaXN0YW5jZVNhbWUoKSB7XG4gICAgICAgICAgICBsZXQgbGlzdCA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDQ0OyBpIDw9IDc4OyBpKyspIHtcbiAgICAgICAgICAgICAgICBsaXN0LnB1c2goaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbGlzdDtcbiAgICAgICAgfSxcbiAgICAgICAgcmFuZ2VEaXN0YW5jZURpZmZlcmVudCgpIHtcbiAgICAgICAgICAgIGxldCBsaXN0ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMjI7IGkgPD0gNDA7IGkrKykge1xuICAgICAgICAgICAgICAgIGxpc3QucHVzaChpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBsaXN0O1xuICAgICAgICB9LFxuICAgICAgICBsZW5zVHlwZUltYWdlKHZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gJy9hcHBsaWNhdGlvbi9tb2R1bGVzL3Byb2R1Y3RfdnVlL2Fzc2V0cy9pbWFnZXMvJyArIHRoaXMudHlwZUltYWdlc1t2YWx1ZV07XG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jIHBvcHVwKHR5cGUpIHtcblxuICAgICAgICAgICAgYXdhaXQgYXhpb3NcbiAgICAgICAgICAgICAgICAuZ2V0KHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAnL3Byb2R1Y3RfdnVlL2dldFBhZ2UnLCB7cGFyYW1zOiB7cGFnZTogdHlwZX19KVxuICAgICAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RhbE9wZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGFsQ29udGVudCA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfSxcbiAgICB9LFxuICAgIHdhdGNoOiB7XG4gICAgICAgIGFzeW5jIHNlbGVjdGVkQnJhbmQoYnJhbmRJZCkge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYXdhaXQgYXhpb3NcbiAgICAgICAgICAgICAgICAuZ2V0KHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAnL3Byb2R1Y3RfdnVlL2dldExlbnMnLCB7cGFyYW1zOiB7YnJhbmRJZDogYnJhbmRJZH19KVxuICAgICAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGVuc2VzID0gcmVzcG9uc2UuZGF0YS5sZW5zZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkTGVuc1R5cGUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sZW5zVHlwZXMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm9kdWN0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdHMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJQYXJhbXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVjYWxjdWxhdGVGaW5hbFByaWNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgc2VsZWN0ZWRMZW5zKCkge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgYXdhaXQgYXhpb3NcbiAgICAgICAgICAgICAgICAuZ2V0KFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgJy9wcm9kdWN0X3Z1ZS9nZXRMZW5zVHlwZXMnLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmFuZElkOiB0aGlzLnNlbGVjdGVkQnJhbmQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuc0lkOiB0aGlzLnNlbGVjdGVkTGVucyxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxlbnNUeXBlcyA9IHJlc3BvbnNlLmRhdGEubGVuc1R5cGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZExlbnNUeXBlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm9kdWN0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdHMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJQYXJhbXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVjYWxjdWxhdGVGaW5hbFByaWNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgc2VsZWN0ZWRMZW5zVHlwZSgpIHtcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGF3YWl0IGF4aW9zXG4gICAgICAgICAgICAgICAgLmdldChcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLm9yaWdpbiArICcvcHJvZHVjdF92dWUvZ2V0UHJvZHVjdHMnLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmFuZElkOiB0aGlzLnNlbGVjdGVkQnJhbmQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuc0lkOiB0aGlzLnNlbGVjdGVkTGVucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5zVHlwZTogdGhpcy5zZWxlY3RlZExlbnNUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdHMgPSByZXNwb25zZS5kYXRhLnByb2R1Y3RzO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQcm9kdWN0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJQYXJhbXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVjYWxjdWxhdGVGaW5hbFByaWNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgc2VsZWN0ZWRQcm9kdWN0KHNlbGVjdGVkUHJvZHVjdCkge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5jbGVhclBhcmFtcygpO1xuICAgICAgICAgICAgYXdhaXQgYXhpb3NcbiAgICAgICAgICAgICAgICAuZ2V0KFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgJy9wcm9kdWN0X3Z1ZS9wcm9kdWN0UGFyYW1zJyxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRQcm9kdWN0OiBzZWxlY3RlZFByb2R1Y3QsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0UGFyYW1zUmlnaHQgPSByZXNwb25zZS5kYXRhLnByb2R1Y3RQYXJhbXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3RQYXJhbXNMZWZ0ID0gcmVzcG9uc2UuZGF0YS5wcm9kdWN0UGFyYW1zO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWNhbGN1bGF0ZUZpbmFsUHJpY2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9LFxuICAgICAgICBwcm9kdWN0UGFyYW1SaWdodFNwaGVyZSgpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGFyYW1zKCdyaWdodCcpO1xuICAgICAgICB9LFxuICAgICAgICBwcm9kdWN0UGFyYW1MZWZ0U3BoZXJlKCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQYXJhbXMoJ2xlZnQnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcHJvZHVjdFBhcmFtUmlnaHRDeWxpbmRlcigpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUGFyYW1zKCdyaWdodCcpO1xuICAgICAgICB9LFxuICAgICAgICBwcm9kdWN0UGFyYW1MZWZ0Q3lsaW5kZXIoKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBhcmFtcygnbGVmdCcpO1xuICAgICAgICB9LFxuICAgICAgICBtb2RhbE9wZW4odmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsID0gXCJub1wiO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnYXV0byc7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGwgPSBcInllc1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcbiAgICBtb3VudGVkKCkge1xuICAgICAgICB0aGlzLnByb2R1Y3RJZCA9IHBhcnNlSW50KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXByb2R1Y3QtaWRdJykuZGF0YXNldC5wcm9kdWN0SWQpO1xuICAgICAgICB0aGlzLmluaXREYXRhKCdicmFuZC1pdGVtJyk7XG4gICAgfVxufVxuPC9zY3JpcHQ+XG5cbjxzdHlsZSBzY29wZWQ+XG4uZ3JvdXAtd3JhcHBlciB7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG59XG5cbi5ncm91cC1oZWFkZXIge1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1mYW1pbHk6IFwiQmViYXMgTmV1ZSBDeXJpbGxpY1wiLCBzYW5zLXNlcmlmO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMDA3ZWVmO1xufVxuXG4uYnJhbmQtaXRlbSB7XG4gICAgbWluLWhlaWdodDogMTAwcHg7XG4gICAgbWFyZ2luOiAxMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgdHJhbnNpdGlvbjogLjNzIGFsbCBlYXNlO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYnJhbmQtaXRlbS1zZWxlY3RlZCB7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiKDAgMTI2IDIzOSAvIDIwJSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzAwN2VlZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3ZWVmO1xuICAgIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmJyYW5kLWl0ZW0tc2VsZWN0ZWQgLnByb2R1Y3RQcmljZSB7XG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5icmFuZC1pdGVtLXVuc2VsZWN0ZWQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG59XG5cbi5wcm9kdWN0VGl0bGUge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5Qcm9kdWN0UHJpY2VXcmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA1cHg7XG59XG5cbi5wcm9kdWN0UHJpY2Uge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY29sb3I6ICMwMDdlZWY7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5wcm9kdWN0UHJpY2VJbmZvIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM5OTk7XG59XG5cbi5wcm9kdWN0UHJvcGVydGllcyB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ucHJvZHVjdFByb3BlcnR5Um93IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICNlMGUwZTA7XG59XG5cbi5wcm9kdWN0UHJvcGVydHlSb3c6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IDFweCBkYXNoZWQgI2UwZTBlMDtcbn1cblxuLmFkZGl0aW9uYWxQYXJhbXNXcmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uYWRkaXRpb25hbFBhcmFtc1dyYXBwZXIgc2VsZWN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBtYXJnaW46IDVweCAwO1xufVxuXG4uYWRkaXRpb25hbFBhcmFtc1dyYXBwZXIgLnBhcmFtc1dyYXBwZXJJdGVtIHtcbiAgICBmbGV4OiAxO1xuICAgIHBhZGRpbmc6IDVweDtcbn1cblxuLnByb2R1Y3RQcm9wZXJ0eVJvdyB0ZCB7XG4gICAgcGFkZGluZzogM3B4IDA7XG59XG5cbi5wYXJhbXNXcmFwcGVySXRlbVdpZHRoIHtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xufVxuXG4uaGVscEJsb2NrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uaGVscEJsb2NrIGxhYmVsLCAuaGVscEJsb2NrIGRpdiB7XG4gICAgcGFkZGluZzogNXB4O1xufVxuXG4ucHJpY2VEYXRhTmFtZSB7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ucHJpY2VEYXRhVmFsdWUge1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnNwYWNlciB7XG4gICAgaGVpZ2h0OiAzMHB4O1xufVxuXG4ucHJvZHVjdEVycm9yIHtcbiAgICBtYXJnaW46IDIwcHggMDtcbn1cblxuLnBvcHVwTGlua3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICBtYXJnaW46IDEwcHg7XG59XG5cbi5wb3B1cExpbmtzIGJ1dHRvbiB7XG4gICAgcGFkZGluZzogNXB4O1xufVxuXG4ubW9kYWwtb3ZlcmxheSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIHotaW5kZXg6IDUwMDtcbn1cblxuLm1vZGFsLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICBoZWlnaHQ6IDgwJTtcbiAgICB3aWR0aDogODAlO1xuICAgIHBhZGRpbmc6IDUlO1xufVxuPC9zdHlsZT4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/