.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__leftName[data-v-929fb582] {
  width: 20%;
  padding: 5px;
  text-align: right;
}
.el__left[data-v-929fb582] {
  width: 40%;
  padding: 5px;
  text-align: right;
}
.el__right[data-v-929fb582] {
  width: 40%;
  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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bG9hZGluZy1vdmVybGF5L2Rpc3QvdnVlLWxvYWRpbmcuY3NzIiwid2VicGFjazovL3Byb2R1Y3RfdnVlLy4vbm9kZV9tb2R1bGVzL3N3ZWV0YWxlcnQyL2Rpc3Qvc3dlZXRhbGVydDIubWluLmNzcyIsIndlYnBhY2s6Ly9wcm9kdWN0X3Z1ZS8uL2Fzc2V0cy9qcy9Qcm9kdWN0UGFyYW1zU2VsZWN0b3IudnVlIiwid2VicGFjazovL3Byb2R1Y3RfdnVlLy4vYXNzZXRzL0xvYWRpbmdBbmltYXRpb24udnVlIiwid2VicGFjazovL3Byb2R1Y3RfdnVlLy4vYXNzZXRzL2pzL1Byb2R1Y3RWdWVGdWxsU2NwZWVuLnZ1ZSIsIndlYnBhY2s6Ly9wcm9kdWN0X3Z1ZS8uL2Fzc2V0cy9qcy9Qcm9kdWN0VnVlLnZ1ZSIsIndlYnBhY2s6Ly9wcm9kdWN0X3Z1ZS8uL25vZGVfbW9kdWxlcy9zd2lwZXIvc3dpcGVyLm1pbi5jc3MiLCJ3ZWJwYWNrOi8vcHJvZHVjdF92dWUvLi9hc3NldHMvanMvUHJvZHVjdFNlbGVjdEZ1bGwudnVlIl0sInNvdXJjZXNDb250ZW50IjpbIi52bGQtc2hvd24ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udmxkLW92ZXJsYXkge1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogbm9uZTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbi52bGQtb3ZlcmxheS5pcy1hY3RpdmUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4udmxkLW92ZXJsYXkuaXMtZnVsbC1wYWdlIHtcbiAgei1pbmRleDogOTk5OTtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuXG4udmxkLW92ZXJsYXkgLnZsZC1iYWNrZ3JvdW5kIHtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLnZsZC1vdmVybGF5IC52bGQtaWNvbiwgLnZsZC1wYXJlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiIsIi5zd2FsMi1wb3B1cC5zd2FsMi10b2FzdHtib3gtc2l6aW5nOmJvcmRlci1ib3g7Z3JpZC1jb2x1bW46MS80ICFpbXBvcnRhbnQ7Z3JpZC1yb3c6MS80ICFpbXBvcnRhbnQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbi1jb250ZW50IGF1dG8gbWluLWNvbnRlbnQ7cGFkZGluZzoxZW07b3ZlcmZsb3cteTpoaWRkZW47YmFja2dyb3VuZDojZmZmO2JveC1zaGFkb3c6MCAwIDFweCByZ2JhKDAsMCwwLC4wNzUpLDAgMXB4IDJweCByZ2JhKDAsMCwwLC4wNzUpLDFweCAycHggNHB4IHJnYmEoMCwwLDAsLjA3NSksMXB4IDNweCA4cHggcmdiYSgwLDAsMCwuMDc1KSwycHggNHB4IDE2cHggcmdiYSgwLDAsMCwuMDc1KTtwb2ludGVyLWV2ZW50czphbGx9LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0Pip7Z3JpZC1jb2x1bW46Mn0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLXRpdGxle21hcmdpbjouNWVtIDFlbTtwYWRkaW5nOjA7Zm9udC1zaXplOjFlbTt0ZXh0LWFsaWduOmluaXRpYWx9LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1sb2FkaW5ne2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1pbnB1dHtoZWlnaHQ6MmVtO21hcmdpbjouNWVtO2ZvbnQtc2l6ZToxZW19LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi12YWxpZGF0aW9uLW1lc3NhZ2V7Zm9udC1zaXplOjFlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWZvb3RlcnttYXJnaW46LjVlbSAwIDA7cGFkZGluZzouNWVtIDAgMDtmb250LXNpemU6LjhlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWNsb3Nle2dyaWQtY29sdW1uOjMvMztncmlkLXJvdzoxLzk5O2FsaWduLXNlbGY6Y2VudGVyO3dpZHRoOi44ZW07aGVpZ2h0Oi44ZW07bWFyZ2luOjA7Zm9udC1zaXplOjJlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWh0bWwtY29udGFpbmVye21hcmdpbjouNWVtIDFlbTtwYWRkaW5nOjA7b3ZlcmZsb3c6aW5pdGlhbDtmb250LXNpemU6MWVtO3RleHQtYWxpZ246aW5pdGlhbH0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWh0bWwtY29udGFpbmVyOmVtcHR5e3BhZGRpbmc6MH0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWxvYWRlcntncmlkLWNvbHVtbjoxO2dyaWQtcm93OjEvOTk7YWxpZ24tc2VsZjpjZW50ZXI7d2lkdGg6MmVtO2hlaWdodDoyZW07bWFyZ2luOi4yNWVtfS5zd2FsMi1wb3B1cC5zd2FsMi10b2FzdCAuc3dhbDItaWNvbntncmlkLWNvbHVtbjoxO2dyaWQtcm93OjEvOTk7YWxpZ24tc2VsZjpjZW50ZXI7d2lkdGg6MmVtO21pbi13aWR0aDoyZW07aGVpZ2h0OjJlbTttYXJnaW46MCAuNWVtIDAgMH0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWljb24gLnN3YWwyLWljb24tY29udGVudHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZToxLjhlbTtmb250LXdlaWdodDpib2xkfS5zd2FsMi1wb3B1cC5zd2FsMi10b2FzdCAuc3dhbDItaWNvbi5zd2FsMi1zdWNjZXNzIC5zd2FsMi1zdWNjZXNzLXJpbmd7d2lkdGg6MmVtO2hlaWdodDoyZW19LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1pY29uLnN3YWwyLWVycm9yIFtjbGFzc149c3dhbDIteC1tYXJrLWxpbmVde3RvcDouODc1ZW07d2lkdGg6MS4zNzVlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWljb24uc3dhbDItZXJyb3IgW2NsYXNzXj1zd2FsMi14LW1hcmstbGluZV1bY2xhc3MkPWxlZnRde2xlZnQ6LjMxMjVlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLWljb24uc3dhbDItZXJyb3IgW2NsYXNzXj1zd2FsMi14LW1hcmstbGluZV1bY2xhc3MkPXJpZ2h0XXtyaWdodDouMzEyNWVtfS5zd2FsMi1wb3B1cC5zd2FsMi10b2FzdCAuc3dhbDItYWN0aW9uc3tqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtoZWlnaHQ6YXV0bzttYXJnaW46MDttYXJnaW4tdG9wOi41ZW07cGFkZGluZzowIC41ZW19LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1zdHlsZWR7bWFyZ2luOi4yNWVtIC41ZW07cGFkZGluZzouNGVtIC42ZW07Zm9udC1zaXplOjFlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLXN1Y2Nlc3N7Ym9yZGVyLWNvbG9yOiNhNWRjODZ9LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1zdWNjZXNzIFtjbGFzc149c3dhbDItc3VjY2Vzcy1jaXJjdWxhci1saW5lXXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxLjZlbTtoZWlnaHQ6M2VtO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO2JvcmRlci1yYWRpdXM6NTAlfS5zd2FsMi1wb3B1cC5zd2FsMi10b2FzdCAuc3dhbDItc3VjY2VzcyBbY2xhc3NePXN3YWwyLXN1Y2Nlc3MtY2lyY3VsYXItbGluZV1bY2xhc3MkPWxlZnRde3RvcDotMC44ZW07bGVmdDotMC41ZW07dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpO3RyYW5zZm9ybS1vcmlnaW46MmVtIDJlbTtib3JkZXItcmFkaXVzOjRlbSAwIDAgNGVtfS5zd2FsMi1wb3B1cC5zd2FsMi10b2FzdCAuc3dhbDItc3VjY2VzcyBbY2xhc3NePXN3YWwyLXN1Y2Nlc3MtY2lyY3VsYXItbGluZV1bY2xhc3MkPXJpZ2h0XXt0b3A6LTAuMjVlbTtsZWZ0Oi45Mzc1ZW07dHJhbnNmb3JtLW9yaWdpbjowIDEuNWVtO2JvcmRlci1yYWRpdXM6MCA0ZW0gNGVtIDB9LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1zdWNjZXNzIC5zd2FsMi1zdWNjZXNzLXJpbmd7d2lkdGg6MmVtO2hlaWdodDoyZW19LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1zdWNjZXNzIC5zd2FsMi1zdWNjZXNzLWZpeHt0b3A6MDtsZWZ0Oi40Mzc1ZW07d2lkdGg6LjQzNzVlbTtoZWlnaHQ6Mi42ODc1ZW19LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1zdWNjZXNzIFtjbGFzc149c3dhbDItc3VjY2Vzcy1saW5lXXtoZWlnaHQ6LjMxMjVlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLXN1Y2Nlc3MgW2NsYXNzXj1zd2FsMi1zdWNjZXNzLWxpbmVdW2NsYXNzJD10aXBde3RvcDoxLjEyNWVtO2xlZnQ6LjE4NzVlbTt3aWR0aDouNzVlbX0uc3dhbDItcG9wdXAuc3dhbDItdG9hc3QgLnN3YWwyLXN1Y2Nlc3MgW2NsYXNzXj1zd2FsMi1zdWNjZXNzLWxpbmVdW2NsYXNzJD1sb25nXXt0b3A6LjkzNzVlbTtyaWdodDouMTg3NWVtO3dpZHRoOjEuMzc1ZW19LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1zdWNjZXNzLnN3YWwyLWljb24tc2hvdyAuc3dhbDItc3VjY2Vzcy1saW5lLXRpcHthbmltYXRpb246c3dhbDItdG9hc3QtYW5pbWF0ZS1zdWNjZXNzLWxpbmUtdGlwIC43NXN9LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0IC5zd2FsMi1zdWNjZXNzLnN3YWwyLWljb24tc2hvdyAuc3dhbDItc3VjY2Vzcy1saW5lLWxvbmd7YW5pbWF0aW9uOnN3YWwyLXRvYXN0LWFuaW1hdGUtc3VjY2Vzcy1saW5lLWxvbmcgLjc1c30uc3dhbDItcG9wdXAuc3dhbDItdG9hc3Quc3dhbDItc2hvd3thbmltYXRpb246c3dhbDItdG9hc3Qtc2hvdyAuNXN9LnN3YWwyLXBvcHVwLnN3YWwyLXRvYXN0LnN3YWwyLWhpZGV7YW5pbWF0aW9uOnN3YWwyLXRvYXN0LWhpZGUgLjFzIGZvcndhcmRzfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKXtkaXNwbGF5OmdyaWQ7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDoxMDYwO2luc2V0OjA7Ym94LXNpemluZzpib3JkZXItYm94O2dyaWQtdGVtcGxhdGUtYXJlYXM6XCJ0b3Atc3RhcnQgICAgIHRvcCAgICAgICAgICAgIHRvcC1lbmRcIiBcImNlbnRlci1zdGFydCAgY2VudGVyICAgICAgICAgY2VudGVyLWVuZFwiIFwiYm90dG9tLXN0YXJ0ICBib3R0b20tY2VudGVyICBib3R0b20tZW5kXCI7Z3JpZC10ZW1wbGF0ZS1yb3dzOm1pbm1heChtaW4tY29udGVudCwgYXV0bykgbWlubWF4KG1pbi1jb250ZW50LCBhdXRvKSBtaW5tYXgobWluLWNvbnRlbnQsIGF1dG8pO2hlaWdodDoxMDAlO3BhZGRpbmc6LjYyNWVtO292ZXJmbG93LXg6aGlkZGVuO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMXM7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLWJhY2tkcm9wLXNob3csZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLW5vYW5pbWF0aW9ue2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNCl9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLWJhY2tkcm9wLWhpZGV7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDApICFpbXBvcnRhbnR9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLXRvcC1zdGFydCxkaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItY2VudGVyLXN0YXJ0LGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsMi1ib3R0b20tc3RhcnR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLCAxZnIpIGF1dG8gYXV0b31kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItdG9wLGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsMi1jZW50ZXIsZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLWJvdHRvbXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6YXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsMi10b3AtZW5kLGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsMi1jZW50ZXItZW5kLGRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsMi1ib3R0b20tZW5ke2dyaWQtdGVtcGxhdGUtY29sdW1uczphdXRvIGF1dG8gbWlubWF4KDAsIDFmcil9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLXRvcC1zdGFydD4uc3dhbDItcG9wdXB7YWxpZ24tc2VsZjpzdGFydH1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItdG9wPi5zd2FsMi1wb3B1cHtncmlkLWNvbHVtbjoyO2FsaWduLXNlbGY6c3RhcnQ7anVzdGlmeS1zZWxmOmNlbnRlcn1kaXY6d2hlcmUoLnN3YWwyLWNvbnRhaW5lcikuc3dhbDItdG9wLWVuZD4uc3dhbDItcG9wdXAsZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLXRvcC1yaWdodD4uc3dhbDItcG9wdXB7Z3JpZC1jb2x1bW46MzthbGlnbi1zZWxmOnN0YXJ0O2p1c3RpZnktc2VsZjplbmR9ZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLWNlbnRlci1zdGFydD4uc3dhbDItcG9wdXAsZGl2OndoZXJlKC5zd2FsMi1jb250YWluZXIpLnN3YWwyLWNlbnRlci1sZWZ0Pi5zd2FsMi1wb3B1cHtncmlkLXJvdzoyO2FsaWduLXNlbGY6Y2VudGVyfWRpdjp3aGVyZSguc3dhbDItY29udGFpbmVyKS5zd2FsMi1jZW50ZXI+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+IC0ge3sgc2VsZWN0ZWRCcmFuZE5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJjdXJyZW50U3RhZ2UgPT09IDFcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gU0VMRUNUIEJSQU5EIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHYtZm9yPVwiYnJhbmQgaW4gYnJhbmRzXCIgQGNsaWNrLnN0b3A9XCJzZWxlY3RCcmFuZChicmFuZClcIiBjbGFzcz1cImJyYW5kc19faXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiA6Y2xhc3M9XCJicmFuZHNDbGFzc2VzKGJyYW5kKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIDpzcmM9XCJkb21haW4gKyAnL3VwbG9hZHMvc2hvcC9icmFuZHMvJyArIGJyYW5kLmltYWdlXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgdi1odG1sPVwiYnJhbmQuZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8bGkgY2xhc3M9XCJpdGVtLWJveFwiIEBjbGljaz1cInNldFN0YWdlKDIpXCIgdi1zaG93PVwiIVszLDQsNV0uaW5jbHVkZXMoY3VycmVudFN0YWdlKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IDpjbGFzcz1cImdldFN0YWdlQ2xhc3MoMilcIj5cclxuICAgICAgICAgICAgICDQntCx0LXRgNGW0YLRjCDQu9GW0L3Qt9C4XHJcbiAgICAgICAgICAgICAgPGRpdiB2LWlmPVwic2VsZWN0ZWRMZW5zXCI+IC0ge3sgc2VsZWN0ZWRMZW5zTmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgdi1pZj1cImN1cnJlbnRTdGFnZSA9PT0gMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiB2LWlmPVwic2VsZWN0ZWRCcmFuZFwiIGNsYXNzPVwiZ3JvdXAtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIFNFTEVDVCBCUkFORCAtLT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiB2LWZvcj1cImxlbnMgaW4gbGVuc2VzXCIgQGNsaWNrLnN0b3A9XCJzZWxlY3RMZW5zKGxlbnMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgOmNsYXNzPVwibGVuc2VzQ2xhc3NlcyhsZW5zKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZW5zZV9faXRlbU5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgbGVucy52YWx1ZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZW5zZV9faXRlbURlc2NyaXB0aW9uXCI+e3sgbGVucy5kZXNjcmlwdGlvbiB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiB2LWVsc2UgY2xhc3M9XCJncm91cC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlIG1lc3NhZ2UtLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICDQodC/0L7Rh9Cw0YLQutGDINCy0LjQsdC10YDRltGC0Ywg0LHRgNC10L3QtCDQu9GW0L3Qt9C4XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9saT5cclxuICAgICAgICAgIDxsaSBjbGFzcz1cIml0ZW0tYm94XCIgQGNsaWNrPVwic2V0U3RhZ2UoMylcIiB2LXNob3c9XCIhWzQsNV0uaW5jbHVkZXMoY3VycmVudFN0YWdlKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IDpjbGFzcz1cImdldFN0YWdlQ2xhc3MoMylcIj5cclxuICAgICAgICAgICAgICDQntCx0LXRgNGW0YLRjCDRgtC40L8g0LvRltC90LfQuFxyXG4gICAgICAgICAgICAgIDxkaXYgdi1pZj1cInNlbGVjdGVkTGVuc1R5cGVcIj4gLSB7eyBzZWxlY3RlZExlbnNUeXBlTmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgdi1pZj1cImN1cnJlbnRTdGFnZSA9PT0gM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiB2LWlmPVwic2VsZWN0ZWRMZW5zXCIgY2xhc3M9XCJncm91cC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgdi1mb3I9XCJsZW5zVHlwZSBpbiBsZW5zVHlwZXNcIiBAY2xpY2suc3RvcD1cInNlbGVjdExlbnNUeXBlKGxlbnNUeXBlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IDpjbGFzcz1cImxlbnNUeXBlQ2xhc3NlcyhsZW5zVHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVuc1R5cGVCbG9ja19faXRlbU5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgOnNyYz1cImxlbnNUeXBlSW1hZ2UobGVuc1R5cGUudmFsdWUpXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlbnNUeXBlQmxvY2tfX2l0ZW1EZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImZvbnQtd2VpZ2h0OmJvbGQ7XCI+e3sgbGVuc1R5cGUudmFsdWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgbGVuc1R5cGUuZGVzY3JpcHRpb24gfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgdi1lbHNlIGNsYXNzPVwiZ3JvdXAtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZSBtZXNzYWdlLS1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAg0KHQv9C+0YfQsNGC0LrRgyDQstC40LHQtdGA0ZbRgtGMINC70ZbQvdC30LhcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPGxpIGNsYXNzPVwiaXRlbS1ib3hcIiBAY2xpY2s9XCJzZXRTdGFnZSg0KVwiIHYtc2hvdz1cIiFbNV0uaW5jbHVkZXMoY3VycmVudFN0YWdlKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IDpjbGFzcz1cImdldFN0YWdlQ2xhc3MoNClcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscFRleHRcIj7QntCx0LXRgNGW0YLRjCDQv9GW0LTRhdC+0LTRj9GJ0ZYg0LvRltC90LfQuDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgdi1pZj1cInNlbGVjdGVkUHJvZHVjdFwiPiAtIHt7IHNlbGVjdGVkUHJvZHVjdE5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJjdXJyZW50U3RhZ2UgPT09IDRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgdi1pZj1cInNlbGVjdGVkTGVuc1R5cGVcIiBjbGFzcz1cImdyb3VwLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlbnNUeXBlX19pdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgdi1mb3I9XCJwcm9kdWN0IGluIHByb2R1Y3RzXCIgQGNsaWNrLnN0b3A9XCJzZWxlY3RQcm9kdWN0KHByb2R1Y3QpXCIgY2xhc3M9XCJsZW5zVHlwZV9faXRlbVdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgOmNsYXNzPVwicHJvZHVjdENsYXNzZXMocHJvZHVjdClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlbnNUeXBlX19pbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgOnNyYz1cImRvbWFpbiArICcvdXBsb2Fkcy9zaG9wL3Byb2R1Y3RzL21lZGl1bS8nICsgcHJvZHVjdC5pbWFnZVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlbnNUeXBlX19wcm9wZXJ0aWVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3RUaXRsZVwiPnt7IHByb2R1Y3QudGl0bGUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJwcm9kdWN0UHJvcGVydGllc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIHYtZm9yPVwicHJvcGVydHkgaW4gcHJvZHVjdC5tYWluX3Byb3BlcnRpZXNcIiBjbGFzcz1cInByb2R1Y3RQcm9wZXJ0eVJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgcHJvcGVydHkucHJvcGVydHlfbmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57eyBwcm9wZXJ0eS5wcm9wZXJ0eV92YWx1ZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVuc1R5cGVfX3ByaWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlByb2R1Y3RQcmljZVdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJmb250LXdlaWdodDpib2xkO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICDQstGW0LQgPHNwYW4gY2xhc3M9XCJwcm9kdWN0UHJpY2VcIiB2LWh0bWw9XCJwcm9kdWN0LnByaWNlX2Zyb21cIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0UHJpY2VJbmZvXCIgc3R5bGU9XCJmb250LXdlaWdodDpib2xkO1wiPtC30LAg0L/QsNGA0YM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgdi1lbHNlIGNsYXNzPVwiZ3JvdXAtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZSBtZXNzYWdlLS1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAg0KHQv9C+0YfQsNGC0LrRgyDQvtCx0LXRgNGW0YLRjCDRgtC40L8g0LvRltC90LfQuFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8bGkgY2xhc3M9XCJpdGVtLWJveFwiIEBjbGljaz1cInNldFN0YWdlKDUpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgOmNsYXNzPVwiZ2V0U3RhZ2VDbGFzcyg1KVwiPlxyXG4gICAgICAgICAgICAgINCS0LLQtdC00ZbRgtGMINGB0LLQvtGXINC30L3QsNGH0LXQvdC90Y8g0YDQtdGG0LXQv9GC0YNcclxuICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJjdXJyZW50U3RhZ2UgPT09IDVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgdi1pZj1cInNlbGVjdGVkUHJvZHVjdFwiIGNsYXNzPVwiZ3JvdXAtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICA8cHJvZHVjdC1wYXJhbXMtc2VsZWN0b3JcclxuICAgICAgICAgICAgICAgICAgICAgIDpleWU9XCIncmlnaHQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgIDpyZWNlaXB0PVwicmVjZWlwdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6cHJvZHVjdFBhcmFtcz1cInByb2R1Y3RQYXJhbXNSaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6cHJvZHVjdFBhcmFtU3BoZXJlPVwicHJvZHVjdFBhcmFtUmlnaHRTcGhlcmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOnByb2R1Y3RQYXJhbUN5bGluZGVyPVwicHJvZHVjdFBhcmFtUmlnaHRDeWxpbmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6cHJvZHVjdFBhcmFtQXhpcz1cInByb2R1Y3RQYXJhbVJpZ2h0QXhpc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6cHJvZHVjdFBhcmFtczI9XCJwcm9kdWN0UGFyYW1zTGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6cHJvZHVjdFBhcmFtU3BoZXJlMj1cInByb2R1Y3RQYXJhbUxlZnRTcGhlcmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOnByb2R1Y3RQYXJhbUN5bGluZGVyMj1cInByb2R1Y3RQYXJhbUxlZnRDeWxpbmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6cHJvZHVjdFBhcmFtQXhpczI9XCJwcm9kdWN0UGFyYW1MZWZ0QXhpc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBAdXBkYXRlU3BoZXJlPVwidXBkYXRlU3BoZXJlUmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgQHVwZGF0ZUN5bGluZGVyPVwidXBkYXRlQ3lsaW5kZXJSaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBAdXBkYXRlQXhpcz1cInVwZGF0ZUF4aXNSaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBAY2xlYXJWYWx1ZXM9XCJjbGVhclZhbHVlc1JpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIEB1cGRhdGVTcGhlcmUyPVwidXBkYXRlU3BoZXJlTGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBAdXBkYXRlQ3lsaW5kZXIyPVwidXBkYXRlQ3lsaW5kZXJMZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIEB1cGRhdGVBeGlzMj1cInVwZGF0ZUF4aXNMZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIEBjbGVhclZhbHVlczI9XCJjbGVhclZhbHVlc0xlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgIDxwcm9kdWN0LXBhcmFtcy1zZWxlY3Rvci0tPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgIDpleWU9XCInbGVmdCdcIi0tPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgIDpyZWNlaXB0PVwicmVjZWlwdFwiLS0+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgOnByb2R1Y3RQYXJhbXM9XCJwcm9kdWN0UGFyYW1zTGVmdFwiLS0+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgOnByb2R1Y3RQYXJhbVNwaGVyZT1cInByb2R1Y3RQYXJhbUxlZnRTcGhlcmVcIi0tPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgIDpwcm9kdWN0UGFyYW1DeWxpbmRlcj1cInByb2R1Y3RQYXJhbUxlZnRDeWxpbmRlclwiLS0+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgOnByb2R1Y3RQYXJhbUF4aXM9XCJwcm9kdWN0UGFyYW1MZWZ0QXhpc1wiLS0+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgQHVwZGF0ZVNwaGVyZT1cInVwZGF0ZVNwaGVyZUxlZnRcIi0tPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tICAgICAgICAgICAgICAgICAgICAgIEB1cGRhdGVDeWxpbmRlcj1cInVwZGF0ZUN5bGluZGVyTGVmdFwiLS0+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgQHVwZGF0ZUF4aXM9XCJ1cGRhdGVBeGlzTGVmdFwiLS0+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gICAgICAgICAgICAgICAgICAgICAgQGNsZWFyVmFsdWVzPVwiY2xlYXJWYWx1ZXNMZWZ0XCItLT5cclxuICAgICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICAgIC8+LS0+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhcmFtc1dyYXBwZXJJdGVtIHBhcmFtc1dyYXBwZXJJdGVtV2lkdGhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PiZuYnNwPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHYtbW9kZWw9XCJwYXJhbXNXaWR0aERpZmZlcmVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAg0JTQu9GPINGA0ZbQt9C90LjRhSDQvtGH0LXQuVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHRhYmxlIGJvcmRlciBjbGFzcz1cInRhYmxlUGFyYW1zXCIgdi1pZj1cInBhcmFtc1dpZHRoRGlmZmVyZW50ID09PSBmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJnLWhlYWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5QRDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PtCS0ZbQtNGB0YLQsNC90Ywg0LzRltC2INC30ZbQvdC90LjRhtGP0LzQuDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCB2LW1vZGVsPVwicGFyYW1zV2lkdGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHYtZm9yPVwiZGlzdGFuY2UgaW4gcmFuZ2VEaXN0YW5jZVNhbWUoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGlzdGFuY2UgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyIGNsYXNzPVwidGFibGVQYXJhbXNcIiB2LWlmPVwicGFyYW1zV2lkdGhEaWZmZXJlbnQgPT09IHRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJiZy1oZWFkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+UEQgKE9EKTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PtCS0ZbQtNGB0YLQsNC90Ywg0LzRltC2INC30ZbQvdC90LjRhtGP0LzQuCAo0YHQv9GA0LDQstCwKTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCB2LW1vZGVsPVwicGFyYW1zV2lkdGhSaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdi1mb3I9XCJkaXN0YW5jZSBpbiByYW5nZURpc3RhbmNlRGlmZmVyZW50KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRpc3RhbmNlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImJnLWhlYWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5QRCAoT1MpPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+0JLRltC00YHRgtCw0L3RjCDQvNGW0LYg0LfRltC90L3QuNGG0Y/QvNC4ICjQt9C70ZbQstCwKTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCB2LW1vZGVsPVwicGFyYW1zV2lkdGhMZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2LWZvcj1cImRpc3RhbmNlIGluIHJhbmdlRGlzdGFuY2VEaWZmZXJlbnQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGlzdGFuY2UgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8YnI+PGJyPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVscEJsb2NrXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICDQl9Cw0LLQsNC90YLQsNC20LjRgtC4INGA0LXRhtC10L/RgiAo0YTQvtGC0L4pOlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdD1cImltYWdlLypcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBpbnB1dD1cInJlYWRSZWNlaXB0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWY9XCJmaWxldXBsb2FkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJyZWNlaXB0XCIgY2xhc3M9XCJoZWxwQmxvY2tSZXN1bHRcIj5cclxuICAgICAgICAgICAgICAgICAgICDQn9GA0LjQutGA0ZbQv9C70LXQvdC40Lkg0YTQsNC50Lsg0YDQtdGG0LXQv9GC0YM6IHt7IHJlY2VpcHQuZmlsZU5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJjbGVhclJlY2VwdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY29sb3I6Ymx1ZTtcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgINCS0ZbQtNC60YDRltC/0LjRgtC4XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj7Qr9C60YnQviDQsiDRgNC10YbQtdC/0YLRliDRlCDRg9GB0ZYg0L3QtdC+0YXRltCx0L3RliDQtNCw0L3RliAtINCyINGC0LDQutC+0LzRgyDQstC40L/QsNC00LrRgyDQv9C+0LvRjyDQvdC40LbRh9C1INC90LUg0L7QsdC+0LIn0Y/Qt9C60L7QstGWINC00L4g0LfQsNC/0L7QstC90LXQvdC90Y9cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgdi1lbHNlPlxyXG4gICAgICAgICAgICAgICAgICAgINCv0LrRidC+INCy0Lgg0LfQsNCy0LDQvdGC0LDQttC10YLQtSDRhNCw0LnQuyAtINCyINGC0LDQutC+0LzRgyDQstC40L/QsNC00LrRgyDQv9C+0LvRjyDQstC40YnQtSDQvdC1INC+0LHQvtCyJ9GP0LfQutC+0LLRliDQtNC+INC30LDQv9C+0LLQvdC10L3QvdGPXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgdi1lbHNlIGNsYXNzPVwiZ3JvdXAtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZSBtZXNzYWdlLS1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAg0KHQv9C+0YfQsNGC0LrRgyDQvtCx0LXRgNGW0YLRjCDQu9GW0L3Qt9GDXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImdsYXNzLXByb2Nlc3MtYm90dG9tLWFyZWFcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN1YnRvdGFsLXdyYXBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3VidG90YWwtaW5uZXJcIj5cclxuICAgICAgICAgIDxwcm9kdWN0LXByaWNlIDpwcmljZT1cImZpbmFsUHJpY2VcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZFRvQ2FydFdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgdi1pZj1cImFjdGl2ZVN1Ym1pdFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1sZ1wiIHR5cGU9XCJidXR0b25cIiBAY2xpY2s9XCJzdWJtaXRQcm9kdWN0XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+0JTQvtC00LDRgtC4INCyINC60L7RgNC30LjQvdGDPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7anVzdGlmeS1pdGVtczogY2VudGVyO2p1c3RpZnktY29udGVudDogY2VudGVyO1wiPlxyXG4gICAgICAgICAgICA8ZGl2IHYtaWY9XCJhY3RpdmVTdWJtaXQgPT09IGZhbHNlXCIgY2xhc3M9XCJwcm9kdWN0RXJyb3IgbWVzc2FnZSBtZXNzYWdlLS1lcnJvclwiPlxyXG4gICAgICAgICAgICAgINCS0LDQvCDQvdC10L7QsdGF0ZbQtNC90L4g0L7QsdGA0LDRgtC4INC70ZbQvdC30YMsINGB0YTQtdGA0YMg0YLQsCDRhtC40LvRltC90LTRgCDQtNC70Y8g0L7QsdC+0YUg0L7Rh9C10LksINGJ0L7QsSDQvNCw0YLQuCDQvNC+0LbQu9C40LLRltGB0YLRjCDQt9Cw0LzQvtCy0LjRgtC4INC60L7QvNC/0LvQtdC60YJcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC90ZW1wbGF0ZT5cclxuXHJcbjxzdHlsZSBzY29wZWQ+XHJcbi53cmFwcGVyIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgYm90dG9tOiAwO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ4LCAyNDgsIDI0OCwgMSk7XHJcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xyXG4gIHBhZGRpbmc6IDAgMCA4N3B4O1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHotaW5kZXg6IDk5OTtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIHRyYW5zaXRpb246IGFsbCAuM3M7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuLmNlbnRyYWxQYXJ0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWF4LXdpZHRoOiAxMzAwcHg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTUwcHgpIHtcclxuICAuY2VudHJhbFBhcnQge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIG92ZXJmbG93OiBzY3JvbGw7XHJcbiAgfVxyXG59XHJcblxyXG4ubGVmdFBhcnQge1xyXG4gIHdpZHRoOiA1MCU7XHJcbn1cclxuXHJcbkBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDk1MHB4KSB7XHJcbiAgLmxlZnRQYXJ0IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG4ucmlnaHRQYXJ0IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgcGFkZGluZzogNTBweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA5NTBweCkge1xyXG4gIC5yaWdodFBhcnQge1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG4gIH1cclxufVxyXG5cclxuLnJpZ2h0UGFydExpc3Qge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxufVxyXG5cclxuLml0ZW0tYm94IHtcclxuICB3aWR0aDogMTAwJTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xyXG4gIGJvcmRlci1yYWRpdXM6IDZweDtcclxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xyXG59XHJcblxyXG5cclxuLnByZXMtaXRlbSB7XHJcbiAgYmFja2dyb3VuZDogI2ZmZjtcclxuICBwYWRkaW5nOiAxNnB4IDE0cHg7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLnByZXMtaXRlbS1pbmFjdGl2ZSB7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI3KSAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuNjEpO1xyXG59XHJcblxyXG4vKioqL1xyXG4uZ3JvdXAtaGVhZGVyIHtcclxuICBjb2xvcjogIzMzMztcclxuICBmb250LXNpemU6IDEuNXJlbTtcclxuICBmb250LXdlaWdodDogNDAwO1xyXG4gIGZvbnQtZmFtaWx5OiBcIkJlYmFzIE5ldWUgQ3lyaWxsaWNcIiwgc2Fucy1zZXJpZjtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBwYWRkaW5nLWJvdHRvbTogMTJweDtcclxuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzAwN2VlZjtcclxufVxyXG5cclxuLmJyYW5kLWl0ZW0ge1xyXG4gIG1pbi1oZWlnaHQ6IDEwMHB4O1xyXG4gIG1hcmdpbjogMTBweDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIHRyYW5zaXRpb246IC4zcyBhbGwgZWFzZTtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLmJyYW5kLWl0ZW0tc2VsZWN0ZWQge1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYigwIDEyNiAyMzkgLyAyMCUpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDdlZWY7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2VlZjtcclxuICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi5wcm9kdWN0UHJpY2VXcmFwcGVyIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLmJyYW5kLWl0ZW0tc2VsZWN0ZWQgLnByb2R1Y3RQcmljZSB7XHJcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5icmFuZC1pdGVtLXVuc2VsZWN0ZWQge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XHJcbn1cclxuXHJcbi5icmFuZC1pdGVtOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xyXG59XHJcblxyXG4ubGVuc1R5cGVfX2l0ZW1XcmFwcGVyIDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcclxufVxyXG5cclxuLyoqXHJcbkJPVFRPTVxyXG4gKi9cclxuLmdsYXNzLXByb2Nlc3MtYm90dG9tLWFyZWEge1xyXG4gIHBvc2l0aW9uOiBmaXhlZDtcclxuICBib3R0b206IDA7XHJcbiAgbGVmdDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDg3cHg7XHJcbiAgei1pbmRleDogMTAyO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xyXG4gIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgYm94LXNoYWRvdzogMCAtNHB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIC4wOCk7XHJcbiAgdHJhbnNpdGlvbjogYWxsIC4zcztcclxufVxyXG5cclxuLnN1YnRvdGFsLXdyYXAge1xyXG4gIG1heC13aWR0aDogMTMwMHB4O1xyXG4gIHBhZGRpbmctcmlnaHQ6IDMuNTQxNjY2NjY2N3Z3O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcblxyXG4uc3VidG90YWwtaW5uZXIge1xyXG4gIGZsZXg6IDE7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IG5vd3JhcDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA5NTBweCkge1xyXG4gIC5zdWJ0b3RhbC1pbm5lciB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbkxFRlQgU0lERVxyXG4gKi9cclxuLnByaWNlLWRlc2MtZGlhZy1hcmVhIHtcclxuICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuLnByaWNlLWRlc2MtaW5uZXIge1xyXG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDkwcHgpO1xyXG4gIHBvc2l0aW9uOiBzdGlja3k7XHJcbiAgdG9wOiAwO1xyXG4gIHdpZHRoOiA1MzRweDtcclxuICBwYWRkaW5nLXJpZ2h0OiAzLjU0MTY2NjY2Njd2dztcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiBub3dyYXA7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLmdsYXNzLWltZy13cmFwIHtcclxuICBwYWRkaW5nLXRvcDogOS4zNzV2dztcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogbm93cmFwO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLmlubmVyLWJveCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMzMwcHg7XHJcbiAgcGFkZGluZy1ib3R0b206IDEuMjV2dztcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG59XHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA5NTBweCkge1xyXG4gIC5pbm5lci1ib3gge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcblxyXG4vKiogICovXHJcbi5icmFuZHNfX2l0ZW0ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjRTVFNUU1O1xyXG59XHJcblxyXG4uYnJhbmRfX2l0ZW0gPiBpbWcge1xyXG4gIG1heC1oZWlnaHQ6IDE1MHB4O1xyXG4gIG1heC13aWR0aDogMTUwcHg7XHJcbn1cclxuXHJcbi5icmFuZF9faXRlbSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4ubGVuc2VfX2l0ZW0ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtYXJnaW46IDEwcHggMDtcclxufVxyXG5cclxuLmxlbnNlX19pdGVtIC5sZW5zZV9faXRlbU5hbWUge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGFzcGVjdC1yYXRpbzogNi8zO1xyXG4gIG1heC1oZWlnaHQ6IDE1MHB4O1xyXG4gIG1heC13aWR0aDogMjUwcHg7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4ubGVuc2VfX2l0ZW0gLmxlbnNlX19pdGVtTmFtZSA+IGRpdiB7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4ubGVuc1R5cGVfX2l0ZW1zIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5sZW5zVHlwZV9faXRlbSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBwYWRkaW5nOiA1cHg7XHJcbiAgbWFyZ2luOiA1cHg7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI0U1RTVFNTtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbn1cclxuXHJcbi5sZW5zVHlwZV9faW1hZ2Uge1xyXG4gIHdpZHRoOiAyMCU7XHJcbiAgcGFkZGluZzogNXB4O1xyXG4gIGFzcGVjdC1yYXRpbzogYXV0bztcclxufVxyXG5cclxuLnByb2R1Y3RUaXRsZSB7XHJcbiAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5sZW5zVHlwZV9fcHJvcGVydGllcyB7XHJcbiAgd2lkdGg6IDYwJTtcclxuICBwYWRkaW5nOiA1cHg7XHJcbiAgYXNwZWN0LXJhdGlvOiBhdXRvO1xyXG59XHJcblxyXG4ubGVuc1R5cGVfX3ByaWNlIHtcclxuICB3aWR0aDogMjAlO1xyXG4gIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuLmxlbnNUeXBlQmxvY2tfX2l0ZW0ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtYXJnaW46IDEwcHggMDtcclxufVxyXG5cclxuLmxlbnNUeXBlQmxvY2tfX2l0ZW0gLmxlbnNUeXBlQmxvY2tfX2l0ZW1OYW1lIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBhc3BlY3QtcmF0aW86IDQvMztcclxuICBtYXgtaGVpZ2h0OiAxNTBweDtcclxuICBtYXgtd2lkdGg6IDE1MHB4O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLmxlbnNUeXBlQmxvY2tfX2l0ZW0gLmxlbnNUeXBlQmxvY2tfX2l0ZW1OYW1lID4gZGl2IHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcblxyXG4ucGFyYW1zV3JhcHBlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI2QwZDRkYjtcclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTUwcHgpIHtcclxuICAucGFyYW1zV3JhcHBlciB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogOTUwcHgpIHtcclxuICAucGFyYW1zV3JhcHBlciB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIH1cclxufVxyXG5cclxuLnBhcmFtc1dyYXBwZXIgLnBhcmFtc1dyYXBwZXJJdGVtIHtcclxuICBmbGV4OiAxO1xyXG4gIHBhZGRpbmc6IDVweDtcclxufVxyXG5cclxuQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogOTUwcHgpIHtcclxuICAucGFyYW1zV3JhcHBlciAucGFyYW1zV3JhcHBlckl0ZW0ge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA5NTBweCkge1xyXG4gIC5wYXJhbXNXcmFwcGVyIC5wYXJhbXNXcmFwcGVySXRlbSB7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICB9XHJcbn1cclxuXHJcbi5hZGRUb0NhcnRXcmFwcGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgcGFkZGluZzogMTBweDtcclxufVxyXG5cclxuLnJpZ2h0UGFydEhlYWRlcldyYXBwZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG59XHJcblxyXG4ucmlnaHRQYXJ0SGVhZGVyV3JhcHBlciBoMiB7XHJcbiAgZm9udC1zaXplOiAycmVtO1xyXG59XHJcblxyXG4ucmlnaHRQYXJ0SGVhZGVyV3JhcHBlciAuY2xvc2Uge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBhZGRpbmc6IDVweDtcclxuICBtYXJnaW46IDVweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZDBkNGRiO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4ucHJpY2VEYXRhIHRkIHtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4uZ29CYWNrIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5nb0JhY2s6aG92ZXIge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xyXG59XHJcblxyXG4uaGVscFRleHQge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4uYnJhbmQtaXRlbS11bnNlbGVjdGVkOmhvdmVyIHtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QwZDRkYjtcclxufVxyXG5cclxuLmJicmFuZF9faXRlbVVuc2VsZWN0ZWQ6aG92ZXIge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDBkNGRiO1xyXG59XHJcbjwvc3R5bGU+IiwiPHRlbXBsYXRlPlxyXG4gIDxkaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwib19fd3JhcHBlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwib19fcHJpY2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1wcmljZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtcHJpY2VfX21haW5cIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgdG90YWxQcmljZSgpIH19PC9zcGFuPiB7eyBwcm9kdWN0Q3VycmVuY3kgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJlX193cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgQGNsaWNrPVwiYW1vdW50RXllcyA9IDFcIiBjbGFzcz1cImVfX2V5ZXNcIj5cclxuICAgICAgICA8c3ZnIHdpZHRoPVwiMjZcIiBoZWlnaHQ9XCIyNlwiIHZpZXdCb3g9XCIwIDAgMjYgMjZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0yNS44MzQ4IDEyLjQ5NDRDMjUuNjAyNSAxMi4xNzY2IDIwLjA2ODIgNC43MTQzNiAxMi45OTk5IDQuNzE0MzZDNS45MzE1NyA0LjcxNDM2IDAuMzk3MDA5IDEyLjE3NjYgMC4xNjQ5ODkgMTIuNDk0MUMtMC4wNTQ5OTYyIDEyLjc5NTUgLTAuMDU0OTk2MiAxMy4yMDQzIDAuMTY0OTg5IDEzLjUwNThDMC4zOTcwMDkgMTMuODIzNSA1LjkzMTU3IDIxLjI4NTggMTIuOTk5OSAyMS4yODU4QzIwLjA2ODIgMjEuMjg1OCAyNS42MDI1IDEzLjgyMzUgMjUuODM0OCAxMy41MDZDMjYuMDU1IDEzLjIwNDYgMjYuMDU1IDEyLjc5NTUgMjUuODM0OCAxMi40OTQ0Wk0xMi45OTk5IDE5LjU3MTVDNy43OTMzMSAxOS41NzE1IDMuMjgzODggMTQuNjE4NiAxLjk0ODk5IDEyLjk5OTVDMy4yODIxNSAxMS4zNzg5IDcuNzgyMTQgNi40Mjg2MyAxMi45OTk5IDYuNDI4NjNDMTguMjA2MiA2LjQyODYzIDIyLjcxNTMgMTEuMzgwNiAyNC4wNTA4IDEzLjAwMDdDMjIuNzE3NiAxNC42MjEyIDE4LjIxNzYgMTkuNTcxNSAxMi45OTk5IDE5LjU3MTVaXCJcclxuICAgICAgICAgICAgICBmaWxsPVwiIzAwN2VlZlwiPjwvcGF0aD5cclxuICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0xMy4xNDI5IDcuODU3NDJDMTAuMzA3MSA3Ljg1NzQyIDggMTAuMTY0NiA4IDEzLjAwMDNDOCAxNS44MzYgMTAuMzA3MSAxOC4xNDMyIDEzLjE0MjkgMTguMTQzMkMxNS45Nzg2IDE4LjE0MzIgMTguMjg1OCAxNS44MzYgMTguMjg1OCAxMy4wMDAzQzE4LjI4NTggMTAuMTY0NiAxNS45Nzg2IDcuODU3NDIgMTMuMTQyOSA3Ljg1NzQyWk0xMy4xNDI5IDE0QzExLjI1MjMgMTQgMTQuNjQ0NSAxNC44OTA1IDE0LjY0NDUgMTNDMTQuNjQ0NSAxMS4xMDk1IDExLjc1NCAxMiAxMy42NDQ1IDEyQzE1LjUzNTEgMTIgMTIuMTQ0NSAxMS4xMDk1IDEyLjE0NDUgMTNDMTIuMTQ0NSAxNC44OTA1IDE1LjAzMzUgMTQgMTMuMTQyOSAxNFpcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjMDA3ZWVmXCIgdi1pZj1cImFtb3VudEV5ZXMgPT09IDFcIj48L3BhdGg+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPGRpdj7QntC00L3QsNC60L7QstGWPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IEBjbGljaz1cImFtb3VudEV5ZXMgPSAyXCIgY2xhc3M9XCJlX19leWVzXCI+XHJcbiAgICAgICAgPHN2ZyB3aWR0aD1cIjI2XCIgaGVpZ2h0PVwiMjZcIiB2aWV3Qm94PVwiMCAwIDI2IDI2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMjUuODM0OCAxMi40OTQ0QzI1LjYwMjUgMTIuMTc2NiAyMC4wNjgyIDQuNzE0MzYgMTIuOTk5OSA0LjcxNDM2QzUuOTMxNTcgNC43MTQzNiAwLjM5NzAwOSAxMi4xNzY2IDAuMTY0OTg5IDEyLjQ5NDFDLTAuMDU0OTk2MiAxMi43OTU1IC0wLjA1NDk5NjIgMTMuMjA0MyAwLjE2NDk4OSAxMy41MDU4QzAuMzk3MDA5IDEzLjgyMzUgNS45MzE1NyAyMS4yODU4IDEyLjk5OTkgMjEuMjg1OEMyMC4wNjgyIDIxLjI4NTggMjUuNjAyNSAxMy44MjM1IDI1LjgzNDggMTMuNTA2QzI2LjA1NSAxMy4yMDQ2IDI2LjA1NSAxMi43OTU1IDI1LjgzNDggMTIuNDk0NFpNMTIuOTk5OSAxOS41NzE1QzcuNzkzMzEgMTkuNTcxNSAzLjI4Mzg4IDE0LjYxODYgMS45NDg5OSAxMi45OTk1QzMuMjgyMTUgMTEuMzc4OSA3Ljc4MjE0IDYuNDI4NjMgMTIuOTk5OSA2LjQyODYzQzE4LjIwNjIgNi40Mjg2MyAyMi43MTUzIDExLjM4MDYgMjQuMDUwOCAxMy4wMDA3QzIyLjcxNzYgMTQuNjIxMiAxOC4yMTc2IDE5LjU3MTUgMTIuOTk5OSAxOS41NzE1WlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIiMwMDdlZWZcIj48L3BhdGg+XHJcbiAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMTMuMTQyOSA3Ljg1NzQyQzEwLjMwNzEgNy44NTc0MiA4IDEwLjE2NDYgOCAxMy4wMDAzQzggMTUuODM2IDEwLjMwNzEgMTguMTQzMiAxMy4xNDI5IDE4LjE0MzJDMTUuOTc4NiAxOC4xNDMyIDE4LjI4NTggMTUuODM2IDE4LjI4NTggMTMuMDAwM0MxOC4yODU4IDEwLjE2NDYgMTUuOTc4NiA3Ljg1NzQyIDEzLjE0MjkgNy44NTc0MlpNMTMuMTQyOSAxNEMxMS4yNTIzIDE0IDE0LjY0NDUgMTQuODkwNSAxNC42NDQ1IDEzQzE0LjY0NDUgMTEuMTA5NSAxMS43NTQgMTIgMTMuNjQ0NSAxMkMxNS41MzUxIDEyIDEyLjE0NDUgMTEuMTA5NSAxMi4xNDQ1IDEzQzEyLjE0NDUgMTQuODkwNSAxNS4wMzM1IDE0IDEzLjE0MjkgMTRaXCJcclxuICAgICAgICAgICAgICBmaWxsPVwiIzAwN2VlZlwiIHYtaWY9XCJhbW91bnRFeWVzID09PSAyXCI+PC9wYXRoPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDxkaXY+0KDRltC30L3RljwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInZfX3dyYXBwZXJcIiA6c3R5bGU9XCIodmFyaWFudHMubGVuZ3RoIDw9IDEpID8gJ2Rpc3BsYXk6bm9uZTsnIDogJydcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVsX19sZWZ0TmFtZVwiPlxyXG4gICAgICAgIHt7IHZhcmlhbnROYW1lIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZWxfX3JpZ2h0XCI+XHJcbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInZhcmlhbnRzLXNlbGVjdF9fZmllbGQgIHZhcmlhbnRzLXNlbGVjdF9fZmllbGQtLWxnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJzZWxlY3RlZFZhcmlhbnQxXCIgQGNoYW5nZT1cImNoYW5nZVZhcmlhbnQoMClcIj5cclxuICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICB2LWZvcj1cIih2YXJpYW50LCBrZXkpIGluIHZhcmlhbnRzXCJcclxuICAgICAgICAgICAgICA6dmFsdWU9XCJ2YXJpYW50LmlkXCJcclxuICAgICAgICAgICAgICBAY2hhbmdlPVwic2V0Q3VycmVudFZhcmlhbnQodmFyaWFudCwgMSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyB2YXJpYW50LnRpdGxlIH19XHJcbiAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlbF9fcmlnaHRcIiB2LWlmPVwiYW1vdW50RXllcyA9PT0gMlwiPlxyXG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJ2YXJpYW50cy1zZWxlY3RfX2ZpZWxkICB2YXJpYW50cy1zZWxlY3RfX2ZpZWxkLS1sZ1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwic2VsZWN0ZWRWYXJpYW50MlwiIEBjaGFuZ2U9XCJjaGFuZ2VWYXJpYW50KDEpXCI+XHJcbiAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgdi1mb3I9XCIodmFyaWFudCwga2V5KSBpbiB2YXJpYW50c1wiXHJcbiAgICAgICAgICAgICAgOnZhbHVlPVwidmFyaWFudC5pZFwiXHJcbiAgICAgICAgICAgICAgQGNoYW5nZT1cInNldEN1cnJlbnRWYXJpYW50KHZhcmlhbnQsIDEpXCJcclxuICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJ2YXJpYW50LnN0b2NrID09PSAwXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgdmFyaWFudC50aXRsZSB9fVxyXG4gICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiB2LWlmPVwicHJvZHVjdFR5cGVPZkxlbnNcIj5cclxuICAgICAgPHNlbGVjdCBjbGFzcz1cInZhcmlhbnRzLXNlbGVjdF9fZmllbGQgdmFyaWFudHMtc2VsZWN0X19maWVsZC0tbGdcIiBAY2hhbmdlPVwiY2hhbmdlQ2F0ZWdvcnlcIiB2LW1vZGVsPVwicHJvZHVjdElkXCI+XHJcbiAgICAgICAgPG9wdGlvbiA6dmFsdWU9XCJudWxsXCI+Tm90IHNlbGVjdGVkPC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICB2LWZvcj1cImNhdGVnb3J5IGluIGlubmVyVHlwZU9mTGVuc0NhdGVnb3J5XCJcclxuICAgICAgICAgICAgdi1odG1sPVwiY2F0ZWdvcnkudGV4dFwiXHJcbiAgICAgICAgICAgIDp2YWx1ZT1cImNhdGVnb3J5LmlkXCJcclxuICAgICAgICAgICAgOnNlbGVjdGVkPVwicHJvZHVjdElkID09PSBjYXRlZ29yeS5pZFwiLz5cclxuICAgICAgPC9zZWxlY3Q+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tICAgIC0tPlxyXG4gICAgPCEtLSAgICAtLT5cclxuICAgIDwhLS0gICAgLS0+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInZfX3dyYXBwZXJcIiB2LWlmPVwidGhpcy5maXJzdEl0ZW1zMS5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlbF9fbGVmdE5hbWVcIj5cclxuICAgICAgICA8c3BhbiB2LWlmPVwiZmllbGRzICYmIGZpZWxkcy5wcm9wMVwiPnt7ZmllbGRzLnByb3AxfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlPlxyXG4gICAgICAgICAg0KHQpNCV0KDQkFxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3Bhbj4qPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVsX19sZWZ0XCI+XHJcbiAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICA6Y2xhc3M9XCIocHJpY2VGaXJzdDEgPT09IG51bGwgJiYgaXNTdWJtaXR0ZWQgPT09IHRydWUpID8gJ3ZhcmlhbnRzLXNlbGVjdF9fZmllbGQgdmFyaWFudHMtc2VsZWN0X19maWVsZC0tbGcgcmVxdWlyZWQtZmllbGQnIDogJ3ZhcmlhbnRzLXNlbGVjdF9fZmllbGQgIHZhcmlhbnRzLXNlbGVjdF9fZmllbGQtLWxnJ1wiXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJwcmljZUZpcnN0MVwiXHJcbiAgICAgICAgICAgIEBjaGFuZ2U9XCJmZXRjaFNlY29uZFByaWNlKDEpXCI+XHJcbiAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgdi1mb3I9XCIocHJvcGVydHksIGtleSkgaW4gdGhpcy5maXJzdEl0ZW1zMVwiXHJcbiAgICAgICAgICAgICAgOnZhbHVlPVwicHJvcGVydHkuZmlyc3RcIlxyXG4gICAgICAgICAgICAgIDprZXk9XCJrZXlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBwcm9wZXJ0eS5maXJzdCB9fVxyXG4gICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZWxfX3JpZ2h0XCIgdi1pZj1cImFtb3VudEV5ZXMgPT09IDJcIj5cclxuICAgICAgICA8c2VsZWN0XHJcbiAgICAgICAgICAgIDpjbGFzcz1cIihwcmljZUZpcnN0MiA9PT0gbnVsbCAmJiBpc1N1Ym1pdHRlZCA9PT0gdHJ1ZSkgPyAndmFyaWFudHMtc2VsZWN0X19maWVsZCB2YXJpYW50cy1zZWxlY3RfX2ZpZWxkLS1sZyByZXF1aXJlZC1maWVsZCcgOiAndmFyaWFudHMtc2VsZWN0X19maWVsZCAgdmFyaWFudHMtc2VsZWN0X19maWVsZC0tbGcnXCJcclxuICAgICAgICAgICAgdi1tb2RlbD1cInByaWNlRmlyc3QyXCJcclxuICAgICAgICAgICAgQGNoYW5nZT1cImZldGNoU2Vjb25kUHJpY2UoMilcIj5cclxuICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICB2LWZvcj1cIihwcm9wZXJ0eSwga2V5KSBpbiB0aGlzLmZpcnN0SXRlbXMyXCJcclxuICAgICAgICAgICAgICA6dmFsdWU9XCJwcm9wZXJ0eS5maXJzdFwiXHJcbiAgICAgICAgICAgICAgOmtleT1cImtleVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHByb3BlcnR5LmZpcnN0IH19XHJcbiAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidl9fd3JhcHBlclwiIHYtaWY9XCJzZWNvbmRJdGVtc1N1bSA8IDEwMDBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVsX19sZWZ0TmFtZVwiPlxyXG4gICAgICAgIDxzcGFuIHYtaWY9XCJmaWVsZHMgJiYgZmllbGRzLnByb3AyXCI+e3tmaWVsZHMucHJvcDJ9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2U+XHJcbiAgICAgICAgICDQptCY0JvQhtCd0JTQoFxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8c3Bhbj4qPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVsX19sZWZ0XCI+XHJcbiAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgICA6Y2xhc3M9XCIocHJpY2VTZWNvbmQxID09PSBudWxsICYmIGlzU3VibWl0dGVkID09PSB0cnVlKSA/ICd2YXJpYW50cy1zZWxlY3RfX2ZpZWxkIHZhcmlhbnRzLXNlbGVjdF9fZmllbGQtLWxnIHJlcXVpcmVkLWZpZWxkJyA6ICd2YXJpYW50cy1zZWxlY3RfX2ZpZWxkICB2YXJpYW50cy1zZWxlY3RfX2ZpZWxkLS1sZydcIlxyXG4gICAgICAgICAgICB2LW1vZGVsPVwicHJpY2VTZWNvbmQxXCJcclxuICAgICAgICAgICAgQGNoYW5nZT1cInNlbGVjdGVkU2Vjb25kUHJvcGVydHkoMSlcIj5cclxuICAgICAgICAgIDxvcHRpb25cclxuICAgICAgICAgICAgICB2LWZvcj1cIihwcm9wZXJ0eSwga2V5KSBpbiB0aGlzLnNlY29uZEl0ZW1zMVwiXHJcbiAgICAgICAgICAgICAgOnZhbHVlPVwicHJvcGVydHkuc2Vjb25kXCJcclxuICAgICAgICAgICAgICA6a2V5PVwia2V5XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgcHJvcGVydHkuc2Vjb25kIH19XHJcbiAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlbF9fcmlnaHRcIiB2LWlmPVwiYW1vdW50RXllcyA9PT0gMlwiPlxyXG4gICAgICAgIDxzZWxlY3RcclxuICAgICAgICAgICAgOmNsYXNzPVwiKHByaWNlU2Vjb25kMiA9PT0gbnVsbCAmJiBpc1N1Ym1pdHRlZCA9PT0gdHJ1ZSkgPyAndmFyaWFudHMtc2VsZWN0X19maWVsZCB2YXJpYW50cy1zZWxlY3RfX2ZpZWxkLS1sZyByZXF1aXJlZC1maWVsZCcgOiAndmFyaWFudHMtc2VsZWN0X19maWVsZCAgdmFyaWFudHMtc2VsZWN0X19maWVsZC0tbGcnXCJcclxuICAgICAgICAgICAgdi1tb2RlbD1cInByaWNlU2Vjb25kMlwiXHJcbiAgICAgICAgICAgIEBjaGFuZ2U9XCJzZWxlY3RlZFNlY29uZFByb3BlcnR5KDIpXCI+XHJcbiAgICAgICAgICA8b3B0aW9uXHJcbiAgICAgICAgICAgICAgdi1mb3I9XCIocHJvcGVydHksIGtleSkgaW4gdGhpcy5zZWNvbmRJdGVtczJcIlxyXG4gICAgICAgICAgICAgIDp2YWx1ZT1cInByb3BlcnR5LnNlY29uZFwiXHJcbiAgICAgICAgICAgICAgOmtleT1cImtleVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHByb3BlcnR5LnNlY29uZCB9fVxyXG4gICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSAgICAtLT5cclxuICAgIDwhLS0gICAgLS0+XHJcbiAgICA8IS0tICAgIC0tPlxyXG5cclxuICAgIDxkaXYgdi1pZj1cImF0dHJpYnV0ZXMubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgIHYtZm9yPVwiKGF0dHJpYnV0ZSwga2V5QXR0cmlidXRlKSBpbiBhdHRyaWJ1dGVzLmZpbHRlcihhdHRyaWJ1dGUgPT4gYXR0cmlidXRlLm5hbWUgJiYgYXR0cmlidXRlLm5hbWUubGVuZ3RoID4gMClcIlxyXG4gICAgICAgICA6a2V5PVwia2V5QXR0cmlidXRlXCJcclxuICAgICAgICAgY2xhc3M9XCJ2X193cmFwcGVyXCJcclxuICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZWxfX2xlZnROYW1lXCI+XHJcbiAgICAgICAgICB7eyBhdHRyaWJ1dGUubmFtZSB9fVxyXG4gICAgICAgICAgPHNwYW4gdi1pZj1cImF0dHJpYnV0ZS5yZXF1aXJlZCA9PTFcIj4qPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbF9fcmlnaHRcIj5cclxuICAgICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgICAgPHNlbGVjdCA6bmFtZT1cIlN0cmluZyhrZXlBdHRyaWJ1dGUpICsgJy0xJ1wiIHYtbW9kZWw9XCJhdHRyaWJ1dGVzMVtTdHJpbmcoa2V5QXR0cmlidXRlKV1cIlxyXG4gICAgICAgICAgICAgICAgICAgIDpjbGFzcz1cImdldFNlbGVjdENvbG9yKGF0dHJpYnV0ZSwgYXR0cmlidXRlczFbU3RyaW5nKGtleUF0dHJpYnV0ZSldKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gZGlzYWJsZWQgdmFsdWU9XCJcIj4gLS08L29wdGlvbj5cclxuICAgICAgICAgICAgICA8b3B0aW9uIHYtZm9yPVwiKGF0dHJpYnV0ZSwga2V5KSBpbiBhdHRyaWJ1dGUudGV4dFwiIDp2YWx1ZT1cImF0dHJpYnV0ZVwiPnt7IGF0dHJpYnV0ZSB9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVsX19yaWdodFwiIHYtaWY9XCJhbW91bnRFeWVzID09PSAyXCI+XHJcbiAgICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICAgIDxzZWxlY3QgOm5hbWU9XCJTdHJpbmcoa2V5QXR0cmlidXRlKSArICctMidcIiB2LW1vZGVsPVwiYXR0cmlidXRlczJbU3RyaW5nKGtleUF0dHJpYnV0ZSldXCJcclxuICAgICAgICAgICAgICAgICAgICA6Y2xhc3M9XCJnZXRTZWxlY3RDb2xvcihhdHRyaWJ1dGUsIGF0dHJpYnV0ZXMyW1N0cmluZyhrZXlBdHRyaWJ1dGUpXSlcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8b3B0aW9uIGRpc2FibGVkIHZhbHVlPVwiXCI+IC0tPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiB2LWZvcj1cIihhdHRyaWJ1dGUsIGtleSkgaW4gYXR0cmlidXRlLnRleHRcIiA6dmFsdWU9XCJhdHRyaWJ1dGVcIj57eyBhdHRyaWJ1dGUgfX08L29wdGlvbj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInZfX3dyYXBwZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVsX19sZWZ0TmFtZVwiPlxyXG4gICAgICAgINCe0LHQtdGA0ZbRgtGMINC60ZbQu9GM0LrRltGB0YLRjFxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVsX19yaWdodFwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgdi1tb2RlbD1cImFtb3VudDFcIiBjbGFzcz1cImZvcm0taW5wdXRfX2NvbnRyb2wgZm9ybS1pbnB1dF9fY29udHJvbC0tcXVhbnRpdHlcIlxyXG4gICAgICAgICAgICAgICA+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZWxfX3JpZ2h0XCIgdi1pZj1cImFtb3VudEV5ZXMgPT09IDIgJiYgdnVlQ2F0ZWdvcnlEb3VibGU9PT0wXCI+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiB2LW1vZGVsPVwiYW1vdW50MlwiIGNsYXNzPVwiZm9ybS1pbnB1dF9fY29udHJvbCBmb3JtLWlucHV0X19jb250cm9sLS1xdWFudGl0eVwiXHJcbiAgICAgICAgICAgICAgID5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInZfX3dyYXBwZXJcIiB2LWlmPVwiaW5uZXJUeXBlT2ZMZW5zQ2F0ZWdvcnlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVsX19sZWZ0TmFtZVwiPlxyXG4gICAgICAgINCm0ZbQvdCwXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZWxfX3JpZ2h0XCI+XHJcbiAgICAgICAge3sgdGhpcy5wcm9kdWN0UHJpY2UxICogdGhpcy5hbW91bnQxIH19INCT0KDQnVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVsX19yaWdodFwiIHYtaWY9XCJhbW91bnRFeWVzID09PSAyICYmIHZ1ZUNhdGVnb3J5RG91YmxlPT09MFwiPlxyXG4gICAgICAgIHt7IHRoaXMucHJvZHVjdFByaWNlMiAqIHRoaXMuYW1vdW50MiB9fSDQk9Cg0J1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImFsZXJ0XCIgdi1pZj1cImlzQXZhaWxhYmxlU3VibWl0KCk9PT1mYWxzZSAmJiBpc1N1Ym1pdHRlZFwiPlxyXG4gICAgICDQn9C+0LvRjyDQtyAqINC+0LHQvtCyJ9GP0LfQutC+0LLRliDQtNC+INC30LDQv9C+0LLQvdC10L3QvdGPXHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS1JZiBhZGRlZCB0byBDYXJ0ICAtLT5cclxuXHJcbiAgICA8ZGl2IHYtaWY9XCJhZGRlZFRvQ2FydFwiIGNsYXNzPVwiYWRkZWRfdG9fY2FydFwiPiDQotC+0LLQsNGAINGD0LbQtSDQsiDQutC+0YDQt9C40L3RljwvZGl2PlxyXG4gICAgPGRpdiB2LWlmPVwiYWxlcnRNZXNzYWdlXCIgY2xhc3M9XCJhZGRlZF90b19jYXJ0XCI+IHt7IGFsZXJ0TWVzc2FnZSB9fTwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtaW50cm9fX2ZsZXgtY29udGFpbmVyXCIgc3R5bGU9XCJib3JkZXItdG9wOiAxcHggc29saWQgI2M1YzVjNTttYXJnaW4tdG9wOiAyMHB4O1wiPlxyXG4gICAgICA8IS0tIFByb2R1Y3QgYWRkIHRvIGNhcnQgYnV0dG9uIC0tPlxyXG5cclxuICAgICAgPCEtLSBJdGVtcyBpbiBzdG9jayAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtcHVyY2hhc2UgXCIgZGF0YS1wcm9kdWN0LWF2YWlsYWJsZT1cIlwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLWxnXCIgdHlwZT1cImJ1dHRvblwiIEBjbGljaz1cImFkZFRvQ2FydCgpXCIgOmRpc2FibGVkPVwiY2FydERpc2FibGVkXCI+XHJcbiAgICAgICAgICA8c3BhbiB2LWlmPVwiY2FydERpc2FibGVkXCI+0J3QtdC80LAg0LIg0L3QsNGP0LLQvdC+0YHRgtGWPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gdi1lbHNlPtCU0L7QtNCw0YLQuCDQsiDQutC+0YDQt9C40L3Rgzwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIFdpc2hsaXN0IGJ1dHRvbnMuIERvbnQgc2hvdyBidXR0b24gb24gd2hpc2hsaXN0IHBhZ2UgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWFjdGlvbiBwcm9kdWN0LWFjdGlvbi0tbGdcIiBkYXRhLWFqYXgtaW5qZWN0PVwid2lzaGxpc3QtYnRuLTE4ODQ1XCI+XHJcblxyXG4gICAgICAgIDwhLS0gQnV0dG9uIGxpbmssIHVzZWQgaW4gY2F0YWxvZyBwYWdlIC0tPlxyXG4gICAgICAgIDxhIGNsYXNzPVwiYnRuLXdoaXRlICBwcm9kdWN0LXBob3RvX19hY3Rpb24tYnRuXCIgaHJlZj1cIi91YS93aXNobGlzdC9yZW5kZXJQb3B1cC8xODg0NVwiIGRhdGEtbW9kYWw9XCJcIlxyXG4gICAgICAgICAgIHJlbD1cIm5vZm9sbG93XCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImJ0bi13aGl0ZV9faWNvIGJ0bi13aGl0ZV9faWNvLS13aXNobGlzdFwiPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwic3ZnLWljb25cIj5cclxuICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9XCIvdGVtcGxhdGVzL21lZ2FzaG9wL19pbWcvc3ByaXRlLnN2ZyNzdmctaWNvbl9faGVhcnQtZmlsbFwiPjwvdXNlPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLWhlYXJ0XCI+PC9zcGFuPiA8L2k+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLSBFZGl0IGFuZCByZW1vdmUgYnV0dG9ucy4gRGlzcGxheSBvbmx5IG9uIHdpc2hsaXN0IHBhZ2UgLS0+XHJcbiAgICAgIDwhLS0gXCJBZGQgdG9cIiBvciBcIk9wZW4gaW5cIiBjb21wYXJlIGJ1dHRvbnMgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWFjdGlvbiBwcm9kdWN0LWFjdGlvbi0tbGdcIj5cclxuXHJcbiAgICAgICAgPGRpdiBkYXRhLWNvbXBhcmUtc2NvcGU9XCJhZGRfdG9cIj5cclxuXHJcbiAgICAgICAgICA8IS0tIEl0ZW0gaXNuJ3QgaW4gY29tcGFyZSBsaXN0IC0tPlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi13aGl0ZSBwcm9kdWN0LXBob3RvX19hY3Rpb24tYnRuIFwiIHR5cGU9XCJidXR0b25cIiByZWw9XCJub2ZvbGxvd1wiXHJcbiAgICAgICAgICAgICAgICAgIGRhdGEtY29tcGFyZS1hZGQ9XCIvc2hvcC9jb21wYXJlX2FwaS9hZGQvMTc5NTZcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJidG4td2hpdGVfX2ljbyBidG4td2hpdGVfX2ljby0tY29tcGFyZVwiPlxyXG5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24tbGlicmFcIj48L3NwYW4+IDwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgIDwhLS0gSXRlbSBhbHJlYWR5IGlzIGluIGNvbXBhcmUgbGlzdCAtLT5cclxuICAgICAgICAgIDxhIGNsYXNzPVwiYnRuLXdoaXRlIGJ0bi13aGl0ZS0tYWN0aXZlIHByb2R1Y3QtcGhvdG9fX2FjdGlvbi1idG4gIGhpZGRlblwiIGhyZWY9XCIvc2hvcC9jb21wYXJlXCIgcmVsPVwibm9mb2xsb3dcIlxyXG4gICAgICAgICAgICAgZGF0YS1jb21wYXJlLW9wZW49XCJcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJidG4td2hpdGVfX2ljbyBidG4td2hpdGVfX2ljby0tY29tcGFyZVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWNvbi1saWJyYVwiPjwvc3Bhbj4gPC9pPlxyXG4gICAgICAgICAgPC9hPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJvX2J1eVwiPlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS1cclxuICAgICAgICA8YSBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tbGdcIlxyXG4gICAgICAgICAgIGhyZWY9XCJodHRwOi8vcHJvb2tvLmxvYy9zaG9wL2FqYXgvZ2V0Tm90aWZ5aW5nUmVxdWVzdFwiXHJcbiAgICAgICAgICAgZGF0YS1wcm9kdWN0LW5vdGlmeT1cInt7cHJvZHVjdElkfX1cIlxyXG4gICAgICAgICAgIGRhdGEtcHJvZHVjdC1ub3RpZnktdmFyaWFudD1cInt7c2VsZWN0ZWRWYXJpYW50MX19XCJcclxuICAgICAgICAgICByZWw9XCJub2ZvbGxvd1wiPlxyXG4gICAgICAgICAg0J/QvtCy0ZbQtNC+0LzQuNGC0Lgg0L/RgNC+INC/0L7Rj9Cy0YNcclxuICAgICAgICA8L2E+IC0tPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFByb2R1Y3RWdWVGdWxsU2NwZWVuIGZyb20gXCIuL1Byb2R1Y3RWdWVGdWxsU2NwZWVuLnZ1ZVwiO1xyXG5cclxuY29uc3QgYXhpb3MgPSByZXF1aXJlKCdheGlvcycpXHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwiUHJvZHVjdFZ1ZVwiLFxyXG4gIGNvbXBvbmVudHM6IHtQcm9kdWN0VnVlRnVsbFNjcGVlbn0sXHJcbiAgZGF0YTogKCkgPT4gKHtcclxuICAgIHNlY29uZEl0ZW1zU3VtOiAwLFxyXG4gICAgZmllbGRzOiB7fSxcclxuICAgIGxvY2tBbW91bnRVcGRhdGU6IGZhbHNlLFxyXG4gICAgYWxlcnRNZXNzYWdlOiBudWxsLFxyXG4gICAgY2FydERpc2FibGVkOiBmYWxzZSxcclxuICAgIHByb2R1Y3RJZDogMCxcclxuICAgIGlzTG9hZGluZzogZmFsc2UsXHJcbiAgICB2YXJpYW50czogW10sXHJcbiAgICBhdHRyaWJ1dGVzOiBbXSxcclxuICAgIGFtb3VudEV5ZXM6IDEsXHJcbiAgICBwcm9kdWN0UHJpY2UxOiAwLFxyXG4gICAgcHJvZHVjdFByaWNlMjogMCxcclxuICAgIGFtb3VudDE6IDEsXHJcbiAgICBhbW91bnQyOiAxLFxyXG4gICAgc2VsZWN0ZWRWYXJpYW50MTogMCxcclxuICAgIHNlbGVjdGVkVmFyaWFudDI6IDAsXHJcbiAgICBhdHRyaWJ1dGVzMToge30sXHJcbiAgICBhdHRyaWJ1dGVzMjoge30sXHJcbiAgICBwcm9kdWN0Q3VycmVuY3k6ICfQs9GA0L0nLFxyXG4gICAgaXNTdWJtaXR0ZWQ6IGZhbHNlLFxyXG4gICAgdmFyaWFudE5hbWU6ICcnLFxyXG4gICAgYWRkZWRUb0NhcnQ6IGZhbHNlLFxyXG4gICAgdnVlQ2F0ZWdvcnlEb3VibGU6IGZhbHNlLFxyXG5cclxuICAgIHByaWNlRmlyc3QxOiBudWxsLFxyXG4gICAgcHJpY2VTZWNvbmQxOiAwLFxyXG4gICAgZmlyc3RJdGVtczE6IFtdLFxyXG4gICAgc2Vjb25kSXRlbXMxOiBbe1xyXG4gICAgICBzZWNvbmQ6IDAsXHJcbiAgICB9XSxcclxuICAgIHByaWNlRmlyc3QyOiBudWxsLFxyXG4gICAgcHJpY2VTZWNvbmQyOiAwLFxyXG4gICAgZmlyc3RJdGVtczI6IFtdLFxyXG4gICAgc2Vjb25kSXRlbXMyOiBbe1xyXG4gICAgICBzZWNvbmQ6IDAsXHJcbiAgICB9XSxcclxuICAgIHByb2R1Y3RUeXBlT2ZMZW5zOiBmYWxzZSxcclxuICAgIGlubmVyVHlwZU9mTGVuc0NhdGVnb3J5OiBbXSxcclxuICB9KSxcclxuICBtZXRob2RzOiB7XHJcbiAgICBjaGFuZ2VDYXRlZ29yeSgpIHtcclxuICAgICAgdGhpcy5pbm5lclR5cGVPZkxlbnNDYXRlZ29yeS5mb3JFYWNoKGNhdGVnb3J5ID0+IHtcclxuICAgICAgICBpZiAoY2F0ZWdvcnkuaWQgPT09IHRoaXMucHJvZHVjdElkKSB7XHJcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGNhdGVnb3J5LnVybDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIGNvbnNvbGUubG9nKCk7XHJcbiAgICB9LFxyXG4gICAgZ2V0U2VsZWN0Q29sb3IoYXR0cmlidXRlLCBzZWxlY3RlZEF0dHJpYnV0ZSkge1xyXG4gICAgICBpZiAoYXR0cmlidXRlLnJlcXVpcmVkID09PSBcIjFcIiAmJiB0eXBlb2Ygc2VsZWN0ZWRBdHRyaWJ1dGUgPT09IFwidW5kZWZpbmVkXCIgJiYgdGhpcy5pc1N1Ym1pdHRlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHJldHVybiBbJ3NlbGVjdC1zdHlsZScsICd2YXJpYW50cy1zZWxlY3RfX2ZpZWxkJywgJ3ZhcmlhbnRzLXNlbGVjdF9fZmllbGQtLWxnJywgJ3JlcXVpcmVkLWZpZWxkJ107XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIFsnc2VsZWN0LXN0eWxlJywgJ3ZhcmlhbnRzLXNlbGVjdF9fZmllbGQnLCAndmFyaWFudHMtc2VsZWN0X19maWVsZC0tbGcnXTtcclxuICAgIH0sXHJcbiAgICBhc3luYyBhZGRUb0NhcnQoKSB7XHJcbiAgICAgIGxldCBhY2Nlc3MgPSB0aGlzLmlzQXZhaWxhYmxlU3VibWl0KCk7XHJcbiAgICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgaWYgKGFjY2VzcyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgbGV0IHByb3BzID0ge1xyXG4gICAgICAgICAgICBwcm9kdWN0SWQ6IHRoaXMucHJvZHVjdElkLFxyXG4gICAgICAgICAgICBzZWxlY3RlZFZhcmlhbnQxOiB0aGlzLnNlbGVjdGVkVmFyaWFudDEsXHJcbiAgICAgICAgICAgIHNlbGVjdGVkVmFyaWFudDI6IHRoaXMuc2VsZWN0ZWRWYXJpYW50MixcclxuICAgICAgICAgICAgYXR0cmlidXRlczE6IHRoaXMuYXR0cmlidXRlczEsXHJcbiAgICAgICAgICAgIGF0dHJpYnV0ZXMyOiB0aGlzLmF0dHJpYnV0ZXMyLFxyXG4gICAgICAgICAgICBhbW91bnRFeWVzOiB0aGlzLmFtb3VudEV5ZXMsXHJcbiAgICAgICAgICAgIGFtb3VudDE6IHRoaXMuYW1vdW50MSxcclxuICAgICAgICAgICAgYW1vdW50MjogdGhpcy5hbW91bnQyLFxyXG4gICAgICAgICAgICBwcmljZUZpcnN0MTogdGhpcy5wcmljZUZpcnN0MSxcclxuICAgICAgICAgICAgcHJpY2VTZWNvbmQxOiB0aGlzLnByaWNlU2Vjb25kMSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBpZiAodGhpcy5hbW91bnRFeWVzID09PSAyKSB7XHJcbiAgICAgICAgICAgIHByb3BzLnByaWNlRmlyc3QyID0gdGhpcy5wcmljZUZpcnN0MjtcclxuICAgICAgICAgICAgcHJvcHMucHJpY2VTZWNvbmQyID0gdGhpcy5wcmljZVNlY29uZDI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLnBvc3Qod2luZG93LmxvY2F0aW9uLm9yaWdpbiArICcvcHJvZHVjdF92dWUvYWRkX3RvX2NhcnQnLCBwcm9wcyk7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2UuZGF0YS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgICAgYWxlcnQocmVzcG9uc2UuZGF0YSk7XHJcbiAgICAgICAgICAgIGFjY2VzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGUpO1xyXG4gICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgIGlmIChhY2Nlc3MgPT09IHRydWUpIHtcclxuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gd2luZG93LmxvY2F0aW9uLmhyZWYgKyAnP3Nob3dDYXJ0PXRydWUnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLypcclxuXHJcbiAgICAgKi9cclxuICAgIGlzQXZhaWxhYmxlU3VibWl0KCkge1xyXG4gICAgICBsZXQgYWNjZXNzID0gdHJ1ZTtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAodGhpcy5hdHRyaWJ1dGVzW2ldLnJlcXVpcmVkID09PSAnMScpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5hdHRyaWJ1dGVzMVtpXSA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgICBhY2Nlc3MgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLmFtb3VudEV5ZXMgPT09IDIgJiYgdHlwZW9mIHRoaXMuYXR0cmlidXRlczJbaV0gPT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgICAgICAgYWNjZXNzID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIGNoZWNrIGZpcnN0IGltcG9ydGFudCBwYXJhbVxyXG4gICAgICBpZiAodGhpcy5maXJzdEl0ZW1zMS5sZW5ndGggPiAwICYmIHRoaXMucHJpY2VGaXJzdDEgPT09IG51bGwpIHtcclxuICAgICAgICBhY2Nlc3MgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICAvLyBjaGVjayBzZWNvbmQgaW1wb3J0YW50IHBhcmFtXHJcbiAgICAgIGlmICh0aGlzLnNlY29uZEl0ZW1zMS5sZW5ndGggPiAwICYmIHRoaXMucHJpY2VTZWNvbmQxID09PSBudWxsKSB7XHJcbiAgICAgICAgYWNjZXNzID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgLy8gY2hlY2sgZm9yIDIgZXllXHJcbiAgICAgIGlmICh0aGlzLmFtb3VudEV5ZXMgPT09IDIpIHtcclxuICAgICAgICAvLyBjaGVjayBmaXJzdCBpbXBvcnRhbnQgcGFyYW1cclxuICAgICAgICBpZiAodGhpcy5maXJzdEl0ZW1zMi5sZW5ndGggPiAwICYmIHRoaXMucHJpY2VGaXJzdDIgPT09IG51bGwpIHtcclxuICAgICAgICAgIGFjY2VzcyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjaGVjayBzZWNvbmQgaW1wb3J0YW50IHBhcmFtXHJcbiAgICAgICAgaWYgKHRoaXMuc2Vjb25kSXRlbXMyLmxlbmd0aCA+IDAgJiYgdGhpcy5wcmljZVNlY29uZDIgPT09IG51bGwpIHtcclxuICAgICAgICAgIGFjY2VzcyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gYWNjZXNzO1xyXG4gICAgfSxcclxuXHJcblxyXG4gICAgc2V0Q3VycmVudFZhcmlhbnQodmFyaWFudCwga2V5KSB7XHJcbiAgICAgIGlmIChrZXkgPT09IDEpIHtcclxuICAgICAgICB0aGlzLnByb2R1Y3RQcmljZTEgPSB2YXJpYW50LnByaWNlO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYXJpYW50MSA9IHZhcmlhbnQuaWQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0UHJpY2UyID0gdmFyaWFudC5wcmljZTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFyaWFudDIgPSB2YXJpYW50LmlkO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgY2hhbmdlVmFyaWFudChrZXkpIHtcclxuICAgICAgaWYgKGtleSA9PT0gMCkge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy52YXJpYW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKHRoaXMudmFyaWFudHNbaV1bJ2lkJ10gPT09IHRoaXMuc2VsZWN0ZWRWYXJpYW50MSkge1xyXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RQcmljZTEgPSB0aGlzLnZhcmlhbnRzW2ldLnByaWNlO1xyXG4gICAgICAgICAgICBsZXQgbWFpblByb2R1Y3RJbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXByb2R1Y3QtcGhvdG9dJyk7XHJcbiAgICAgICAgICAgIG1haW5Qcm9kdWN0SW1hZ2Uuc3JjID0gdGhpcy52YXJpYW50c1tpXS5pbWFnZTtcclxuICAgICAgICAgICAgbWFpblByb2R1Y3RJbWFnZS5kYXRhc2V0LmRhdGFab29tSW1hZ2UgPSB0aGlzLnZhcmlhbnRzW2ldLmltYWdlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudmFyaWFudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmICh0aGlzLnZhcmlhbnRzW2ldWydpZCddID09PSB0aGlzLnNlbGVjdGVkVmFyaWFudDIpIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0UHJpY2UyID0gdGhpcy52YXJpYW50c1tpXS5wcmljZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2coKTtcclxuICAgIH0sXHJcbiAgICBzZXRDdXJyZW50QXR0cmlidXRlKGF0dHJpYnV0ZSwga2V5QXR0cmlidXRlLCBrZXkpIHtcclxuICAgICAgaWYgKGtleSA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMuYXR0cmlidXRlczFbU3RyaW5nKGtleUF0dHJpYnV0ZSldID0gYXR0cmlidXRlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYXR0cmlidXRlczJbU3RyaW5nKGtleUF0dHJpYnV0ZSldID0gYXR0cmlidXRlO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdG90YWxQcmljZSgpIHtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5wcmljZUZpcnN0MSwgdGhpcy5wcmljZVNlY29uZDEsIHRoaXMuZmlyc3RJdGVtczEpXHJcbiAgICAgIGlmICh0aGlzLmFtb3VudEV5ZXMgPT09IDEpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMuZmlyc3RJdGVtczEubGVuZ3RoID4gMFxyXG4gICAgICAgICAgICAmJiAodGhpcy5wcmljZUZpcnN0MSA9PT0gbnVsbClcclxuICAgICAgICAgICAgJiYgKHRoaXMucHJpY2VTZWNvbmQxID09PSBudWxsKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgcmV0dXJuICctLS0nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy52dWVDYXRlZ29yeURvdWJsZSA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFtb3VudEV5ZXMgPT09IDEgPyB0aGlzLnByb2R1Y3RQcmljZTEgKiB0aGlzLmFtb3VudDEgOiAodGhpcy5wcm9kdWN0UHJpY2UxICogdGhpcy5hbW91bnQxKSArICh0aGlzLnByb2R1Y3RQcmljZTIgKiB0aGlzLmFtb3VudDIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3RQcmljZTEgKiB0aGlzLmFtb3VudDE7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBhc3luYyBsb2FkVmFyaWFudERhdGEocHJvZHVjdElkKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MuZ2V0KHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyAnL3Byb2R1Y3RfdnVlL3ZhcmlhbnRzP3Byb2R1Y3RJZD0nICsgcHJvZHVjdElkKTtcclxuICAgICAgICB0aGlzLnZhcmlhbnRzID0gcmVzcG9uc2UuZGF0YS52YXJpYW50cztcclxuICAgICAgICB0aGlzLmZpZWxkcyA9IHJlc3BvbnNlLmRhdGEuZmllbGRzO1xyXG4gICAgICAgIHRoaXMuZmlyc3RJdGVtczEgPSByZXNwb25zZS5kYXRhLmZpcnN0SXRlbXM7XHJcbiAgICAgICAgdGhpcy5maXJzdEl0ZW1zMiA9IHJlc3BvbnNlLmRhdGEuZmlyc3RJdGVtcztcclxuICAgICAgICB0aGlzLnNlY29uZEl0ZW1zU3VtID0gcmVzcG9uc2UuZGF0YS5zZWNvbmRJdGVtc1N1bTtcclxuICAgICAgICB0aGlzLmF0dHJpYnV0ZXMgPSByZXNwb25zZS5kYXRhLmF0dHJpYnV0ZXM7XHJcbiAgICAgICAgdGhpcy52YXJpYW50TmFtZSA9IHJlc3BvbnNlLmRhdGEudmFyaWFudE5hbWU7XHJcbiAgICAgICAgdGhpcy5hZGRlZFRvQ2FydCA9IHJlc3BvbnNlLmRhdGEuYWRkZWRUb0NhcnQ7XHJcbiAgICAgICAgdGhpcy52dWVDYXRlZ29yeURvdWJsZSA9IHJlc3BvbnNlLmRhdGEudnVlQ2F0ZWdvcnlEb3VibGU7XHJcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50VmFyaWFudCh0aGlzLnZhcmlhbnRzWzBdLCAxKTtcclxuICAgICAgICB0aGlzLnNldEN1cnJlbnRWYXJpYW50KHRoaXMudmFyaWFudHNbMF0sIDIpO1xyXG4gICAgICAgIHRoaXMucHJvZHVjdFR5cGVPZkxlbnMgPSByZXNwb25zZS5kYXRhLnByb2R1Y3RUeXBlT2ZMZW5zO1xyXG4gICAgICAgIHRoaXMuaW5uZXJUeXBlT2ZMZW5zQ2F0ZWdvcnkgPSByZXNwb25zZS5kYXRhLmlubmVyVHlwZU9mTGVuc0NhdGVnb3J5O1xyXG5cclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGUpO1xyXG4gICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBjaGVja1N0b2NrKGNoYW5nZWRWYXJpYW50ID0gZmFsc2UpIHtcclxuICAgICAgaWYgKHRoaXMubG9ja0Ftb3VudFVwZGF0ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNoYW5nZWRWYXJpYW50ID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5sb2NrQW1vdW50VXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmFtb3VudDEgPSAxO1xyXG4gICAgICAgIHRoaXMuYW1vdW50MiA9IDE7XHJcbiAgICAgICAgdGhpcy5sb2NrQW1vdW50VXBkYXRlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hbGVydE1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICB0aGlzLmxvY2tBbW91bnRVcGRhdGUgPSB0cnVlO1xyXG4gICAgICAvLyBnZXQgZGF0YVxyXG4gICAgICBsZXQgc3RvY2sxID0gMDtcclxuICAgICAgbGV0IHRpdGxlMSA9ICcnO1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudmFyaWFudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAodGhpcy52YXJpYW50c1tpXVsnaWQnXSA9PT0gdGhpcy5zZWxlY3RlZFZhcmlhbnQxKSB7XHJcbiAgICAgICAgICBzdG9jazEgPSB0aGlzLnZhcmlhbnRzW2ldWydzdG9jayddO1xyXG4gICAgICAgICAgdGl0bGUxID0gdGhpcy52YXJpYW50c1tpXVsndGl0bGUnXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHN0b2NrMiA9IDA7XHJcbiAgICAgIGxldCB0aXRsZTIgPSAnJztcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnZhcmlhbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudmFyaWFudHNbaV1bJ2lkJ10gPT09IHRoaXMuc2VsZWN0ZWRWYXJpYW50Mikge1xyXG4gICAgICAgICAgc3RvY2syID0gdGhpcy52YXJpYW50c1tpXVsnc3RvY2snXTtcclxuICAgICAgICAgIHRpdGxlMiA9IHRoaXMudmFyaWFudHNbaV1bJ3RpdGxlJ107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIC8vIGNhbGN1bGF0ZVxyXG5cclxuICAgICAgaWYgKHRoaXMuYW1vdW50MSA8IDApIHtcclxuICAgICAgICB0aGlzLmFtb3VudDEgPSAxO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmFtb3VudDIgPCAwKSB7XHJcbiAgICAgICAgdGhpcy5hbW91bnQyID0gMDtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5hbW91bnQxID4gc3RvY2sxICYmIHN0b2NrMSAhPT0gMCkge1xyXG4gICAgICAgIC8vIHRoaXMuYWxlcnRNZXNzYWdlID0gJ9Cd0LAg0LbQsNC70YwsINGDINC90LDRgSDQsiDQvdCw0Y/QstC90L7RgdGC0ZYgXCInICsgdGl0bGUxICsgJ1wiINC70LjRiNC1ICcgKyBzdG9jazEgKyAnINGI0YIuJztcclxuICAgICAgICBpZiAodGl0bGUxICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBhbGVydCgn0J3QsCDQttCw0LvRjCwg0YMg0L3QsNGBINCyINC90LDRj9Cy0L3QvtGB0YLRliBcIicgKyB0aXRsZTEgKyAnXCIg0LvQuNGI0LUgJyArIHN0b2NrMSArICcg0L7QtNC40L3QuNGG0YwuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYW1vdW50MSA9IHN0b2NrMTtcclxuICAgICAgICB0aGlzLmNhcnREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubG9ja0Ftb3VudFVwZGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIGlmIChzdG9jazEgPT09IDApIHtcclxuICAgICAgICB0aGlzLmNhcnREaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5hbW91bnQxID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNhcnREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy52dWVDYXRlZ29yeURvdWJsZSA9PT0gMCAmJiB0aGlzLmFtb3VudEV5ZXMgPT09IDIpIHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFZhcmlhbnQxID09PSB0aGlzLnNlbGVjdGVkVmFyaWFudDIpIHtcclxuICAgICAgICAgIC8vINGP0LrRidC+INC90LAg0LTQstCwINC+0LrQsCDQvtC00L3QsNC60L7QstGWXHJcbiAgICAgICAgICBsZXQgc3VtQW1vdW50ID0gK3RoaXMuYW1vdW50MSArICt0aGlzLmFtb3VudDI7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhzdW1BbW91bnQpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coc3RvY2sxKTtcclxuICAgICAgICAgIGlmIChzdW1BbW91bnQgPiBzdG9jazEgJiYgc3RvY2sxID49IDIpIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5hbGVydE1lc3NhZ2UgPSAn0J3QsCDQttCw0LvRjCwg0YMg0L3QsNGBINCyINC90LDRj9Cy0L3QvtGB0YLRliBcIicgKyB0aXRsZTEgKyAnXCIg0LvQuNGI0LUgJyArIHN0b2NrMSArICcg0YjRgi4nO1xyXG4gICAgICAgICAgICBpZiAodGl0bGUxICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgYWxlcnQoJ9Cd0LAg0LbQsNC70YwsINGDINC90LDRgSDQsiDQvdCw0Y/QstC90L7RgdGC0ZYgXCInICsgdGl0bGUxICsgJ1wiINC70LjRiNC1ICcgKyBzdG9jazEgKyAnINC+0LTQuNC90LjRhtGMLicpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuYW1vdW50MSA9IDE7XHJcbiAgICAgICAgICAgIHRoaXMuYW1vdW50MiA9IDE7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydERpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubG9ja0Ftb3VudFVwZGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHN0b2NrMSA8IDIgJiYgc3VtQW1vdW50ICE9PSAwKSB7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuYWxlcnRNZXNzYWdlID0gJ9Cd0LAg0LbQsNC70YwsINGDINC90LDRgSDQsiDQvdCw0Y/QstC90L7RgdGC0ZYgXCInICsgdGl0bGUxICsgJ1wiINC70LjRiNC1ICcgKyBzdG9jazEgKyAnINGI0YIuJztcclxuICAgICAgICAgICAgaWYgKHRpdGxlMSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIGFsZXJ0KCfQndCwINC20LDQu9GMLCDRgyDQvdCw0YEg0LIg0L3QsNGP0LLQvdC+0YHRgtGWIFwiJyArIHRpdGxlMSArICdcIiDQu9C40YjQtSAnICsgc3RvY2sxICsgJyDQvtC00LjQvdC40YbRjC4nKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmNhcnREaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuYW1vdW50MSA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMuYW1vdW50MiA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMubG9ja0Ftb3VudFVwZGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNhcnREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyDRj9C60YnQviDQvdCwINC00LLQsCDQvtC60LAg0YDRltC30L3RllxyXG4gICAgICAgICAgaWYgKHRoaXMuYW1vdW50MiA+IHN0b2NrMiAmJiBzdG9jazIgIT09IDApIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5hbGVydE1lc3NhZ2UgPSAn0J3QsCDQttCw0LvRjCwg0YMg0L3QsNGBINCyINC90LDRj9Cy0L3QvtGB0YLRliBcIicgKyB0aXRsZTEgKyAnXCIg0LvQuNGI0LUgJyArIHN0b2NrMSArICcg0YjRgi4nO1xyXG4gICAgICAgICAgICBpZiAodGl0bGUxICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgYWxlcnQoJ9Cd0LAg0LbQsNC70YwsINGDINC90LDRgSDQsiDQvdCw0Y/QstC90L7RgdGC0ZYgXCInICsgdGl0bGUyICsgJ1wiINC70LjRiNC1ICcgKyBzdG9jazIgKyAnINC+0LTQuNC90LjRhtGMLicpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuYW1vdW50MiA9IHN0b2NrMjtcclxuICAgICAgICAgICAgdGhpcy5jYXJ0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5sb2NrQW1vdW50VXBkYXRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoc3RvY2syID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydERpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5hbW91bnQyID0gMDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydERpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuYW1vdW50RXllcyA9PT0gMikge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVmFyaWFudDEgPT09IHRoaXMuc2VsZWN0ZWRWYXJpYW50Mikge1xyXG4gICAgICAgICAgLy8g0Y/QutGJ0L4g0L3QsCDQtNCy0LAg0L7QutCwINC+0LTQvdCw0LrQvtCy0ZZcclxuICAgICAgICAgIGxldCBzdW1BbW91bnQgPSB0aGlzLmFtb3VudDE7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhzdW1BbW91bnQpO1xyXG4gICAgICAgICAgaWYgKHN1bUFtb3VudCA+IHN0b2NrMSAmJiBzdG9jazEgPj0gMSkge1xyXG4gICAgICAgICAgICAvLyB0aGlzLmFsZXJ0TWVzc2FnZSA9ICfQndCwINC20LDQu9GMLCDRgyDQvdCw0YEg0LIg0L3QsNGP0LLQvdC+0YHRgtGWIFwiJyArIHRpdGxlMSArICdcIiDQu9C40YjQtSAnICsgc3RvY2sxICsgJyDRiNGCLic7XHJcbiAgICAgICAgICAgIGlmICh0aXRsZTEgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICBhbGVydCgn0J3QsCDQttCw0LvRjCwg0YMg0L3QsNGBINCyINC90LDRj9Cy0L3QvtGB0YLRliBcIicgKyB0aXRsZTEgKyAnXCIg0LvQuNGI0LUgJyArIHN0b2NrMSArICcg0L7QtNC40L3QuNGG0YwuJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5hbW91bnQxID0gMTtcclxuICAgICAgICAgICAgdGhpcy5jYXJ0RGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5sb2NrQW1vdW50VXBkYXRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoc3RvY2sxIDwgMSAmJiB0aGlzLmFtb3VudDEgIT09IDApIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5hbGVydE1lc3NhZ2UgPSAn0J3QsCDQttCw0LvRjCwg0YMg0L3QsNGBINCyINC90LDRj9Cy0L3QvtGB0YLRliBcIicgKyB0aXRsZTEgKyAnXCIg0LvQuNGI0LUgJyArIHN0b2NrMSArICcg0YjRgi4nO1xyXG4gICAgICAgICAgICBpZiAodGl0bGUxICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgYWxlcnQoJ9Cd0LAg0LbQsNC70YwsINGDINC90LDRgSDQsiDQvdCw0Y/QstC90L7RgdGC0ZYgXCInICsgdGl0bGUxICsgJ1wiINC70LjRiNC1ICcgKyBzdG9jazEgKyAnINC+0LTQuNC90LjRhtGMLicpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2FydERpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5hbW91bnQxID0gMDtcclxuICAgICAgICAgICAgdGhpcy5sb2NrQW1vdW50VXBkYXRlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydERpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vINGP0LrRidC+INC90LAg0LTQstCwINC+0LrQsCDRgNGW0LfQvdGWXHJcbiAgICAgICAgICBpZiAodGhpcy5hbW91bnQxID4gc3RvY2sxICYmIHN0b2NrMSA+IDApIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5hbGVydE1lc3NhZ2UgPSAn0J3QsCDQttCw0LvRjCwg0YMg0L3QsNGBINCyINC90LDRj9Cy0L3QvtGB0YLRliBcIicgKyB0aXRsZTEgKyAnXCIg0LvQuNGI0LUgJyArIHN0b2NrMSArICcg0YjRgi4nO1xyXG4gICAgICAgICAgICBpZiAodGl0bGUxICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgYWxlcnQoJ9Cd0LAg0LbQsNC70YwsINGDINC90LDRgSDQsiDQvdCw0Y/QstC90L7RgdGC0ZYgXCInICsgdGl0bGUxICsgJ1wiINC70LjRiNC1ICcgKyBzdG9jazEgKyAnINC+0LTQuNC90LjRhtGMLicpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuYW1vdW50MSA9IDE7XHJcbiAgICAgICAgICAgIHRoaXMuY2FydERpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubG9ja0Ftb3VudFVwZGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHN0b2NrMSA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmNhcnREaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuYW1vdW50MSA9IDA7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNhcnREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmFtb3VudDEgPT09IDApIHtcclxuICAgICAgICB0aGlzLmNhcnREaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sb2NrQW1vdW50VXBkYXRlID0gZmFsc2U7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qXHJcbiAgICAgKiBGZXRjaCBzZWNvbmQgcHJpY2VcclxuICAgICAqL1xyXG4gICAgYXN5bmMgZmV0Y2hTZWNvbmRQcmljZShva28gPSAxKSB7XHJcbiAgICAgIGxldCBmaXJzdFNlbGVjdGVkID0gbnVsbDtcclxuICAgICAgaWYgKG9rbyA9PT0gMSkge1xyXG4gICAgICAgIGZpcnN0U2VsZWN0ZWQgPSB0aGlzLnByaWNlRmlyc3QxO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZpcnN0U2VsZWN0ZWQgPSB0aGlzLnByaWNlRmlyc3QyO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCB1cmwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgJy9wcm9kdWN0X3Z1ZS9zZWNvbmRQcmljZSc7XHJcbiAgICAgIGF3YWl0IGF4aW9zLmdldCh1cmwsIHtwYXJhbXM6IHtwcm9kdWN0SWQ6IHRoaXMucHJvZHVjdElkLCBmaXJzdDogZmlyc3RTZWxlY3RlZH19KS50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAob2tvID09PSAxKSB7XHJcbiAgICAgICAgICB0aGlzLnByaWNlU2Vjb25kMSA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLnNlY29uZEl0ZW1zMSA9IHJlc3BvbnNlLmRhdGEuaXRlbXM7XHJcbiAgICAgICAgICB0aGlzLnByaWNlU2Vjb25kMSA9IHJlc3BvbnNlLmRhdGEuc2VsZWN0ZWRTZWNvbmQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucHJpY2VTZWNvbmQyID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMuc2Vjb25kSXRlbXMyID0gcmVzcG9uc2UuZGF0YS5pdGVtcztcclxuICAgICAgICAgIHRoaXMucHJpY2VTZWNvbmQyID0gcmVzcG9uc2UuZGF0YS5zZWxlY3RlZFNlY29uZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNlY29uZFByb3BlcnR5KG9rbyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIC8qXHJcblxyXG4gICAgICovXHJcbiAgICBzZWxlY3RlZFNlY29uZFByb3BlcnR5KG9rbyA9IDEpIHtcclxuICAgICAgaWYgKG9rbyA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMucHJvZHVjdFByaWNlMSA9IDA7XHJcbiAgICAgICAgdGhpcy5zZWNvbmRJdGVtczEuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgIGlmIChpdGVtLnNlY29uZCA9PT0gdGhpcy5wcmljZVNlY29uZDEpIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0UHJpY2UxID0gaXRlbS5wcmljZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnByb2R1Y3RQcmljZTIgPSAwO1xyXG4gICAgICAgIHRoaXMuc2Vjb25kSXRlbXMyLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICBpZiAoaXRlbS5zZWNvbmQgPT09IHRoaXMucHJpY2VTZWNvbmQyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdFByaWNlMiA9IGl0ZW0ucHJpY2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBhbW91bnQxKCkge1xyXG4gICAgICB0aGlzLmNoZWNrU3RvY2soKTtcclxuICAgIH0sXHJcblxyXG4gICAgYW1vdW50MigpIHtcclxuICAgICAgdGhpcy5jaGVja1N0b2NrKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIHNlbGVjdGVkVmFyaWFudDEoKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tTdG9jayh0cnVlKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmFtb3VudEV5ZXMgPT09IDIpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFyaWFudDIgPSB0aGlzLnNlbGVjdGVkVmFyaWFudDE7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgc2VsZWN0ZWRWYXJpYW50MigpIHtcclxuICAgICAgdGhpcy5jaGVja1N0b2NrKHRydWUpO1xyXG4gICAgfSxcclxuXHJcbiAgICBhbW91bnRFeWVzKG5ld1ZhbHVlKSB7XHJcbiAgICAgIGlmIChuZXdWYWx1ZSA9PT0gMikge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYXJpYW50MiA9IHRoaXMuc2VsZWN0ZWRWYXJpYW50MTtcclxuXHJcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzMiA9IHsuLi50aGlzLmF0dHJpYnV0ZXMxfTtcclxuXHJcbiAgICAgICAgdGhpcy5wcmljZUZpcnN0MiA9IHRoaXMucHJpY2VGaXJzdDE7XHJcbiAgICAgICAgdGhpcy5wcmljZVNlY29uZDIgPSB0aGlzLnByaWNlU2Vjb25kMTtcclxuXHJcbiAgICAgICAgdGhpcy5hbW91bnQyID0gdGhpcy5hbW91bnQxO1xyXG5cclxuICAgICAgICB0aGlzLnNlY29uZEl0ZW1zMiA9IFsuLi50aGlzLnNlY29uZEl0ZW1zMV07XHJcblxyXG4gICAgICAgIHRoaXMucHJvZHVjdFByaWNlMiA9IHRoaXMucHJvZHVjdFByaWNlMTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jaGVja1N0b2NrKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIGFzeW5jIHByaWNlRmlyc3QxKG5ld1ZhbHVlKSB7XHJcbiAgICAgIGlmICh0aGlzLmFtb3VudEV5ZXMgPT09IDIpIHtcclxuICAgICAgICB0aGlzLnByaWNlRmlyc3QyID0gbmV3VmFsdWU7XHJcblxyXG4gICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hTZWNvbmRQcmljZSgyKTtcclxuXHJcbiAgICAgICAgdGhpcy5wcmljZVNlY29uZDIgPSB0aGlzLnByaWNlU2Vjb25kMTtcclxuICAgICAgICB0aGlzLnByb2R1Y3RQcmljZTIgPSB0aGlzLnByb2R1Y3RQcmljZTE7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgcHJpY2VTZWNvbmQxKG5ld1ZhbHVlKSB7XHJcbiAgICAgIGlmICh0aGlzLmFtb3VudEV5ZXMgPT09IDIpIHtcclxuICAgICAgICB0aGlzLnByaWNlU2Vjb25kMiA9IG5ld1ZhbHVlO1xyXG4gICAgICAgIHRoaXMucHJvZHVjdFByaWNlMiA9IHRoaXMucHJvZHVjdFByaWNlMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgYXN5bmMgbW91bnRlZCgpIHtcclxuICAgIHRoaXMucHJvZHVjdElkID0galF1ZXJ5KCdbZGF0YS12YXJpYW50LWlkXScpLmRhdGEoJ3ZhcmlhbnQtaWQnKTtcclxuICAgIGF3YWl0IHRoaXMubG9hZFZhcmlhbnREYXRhKHRoaXMucHJvZHVjdElkKTtcclxuICAgIGpRdWVyeSgnLnByb2R1Y3QtaW50cm8tYmFzZScpLmhpZGUoKTtcclxuICAgIGpRdWVyeSgnLnByb2R1Y3QtaW50cm9fX2ZsZXgtY29udGFpbmVyLS12LWJvdHRvbScpLmhpZGUoKTtcclxuICAgIGlmICh0aGlzLnByb2R1Y3RUeXBlT2ZMZW5zKSB7XHJcbiAgICAgIHRoaXMuYW1vdW50RXllcyA9IDI7XHJcbiAgICAgIHRoaXMuY2hlY2tTdG9jaygpO1xyXG4gICAgICBpZiAodGhpcy5wcm9kdWN0VHlwZU9mTGVucykge1xyXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wYWdlX19icmVhZGNydW1icycpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNvbnRlbnRfX3NpZGViYXInKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICAgICQoJy5wcm9kdWN0LWludHJvX19yb3cnKS5oaWRlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIHNjb3BlZD5cclxuXHJcblxyXG4ub19fd3JhcHBlciB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjNWM1YzU7XHJcbn1cclxuXHJcbi52X193cmFwcGVyIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuXHJcbi5lbF9fbGVmdE5hbWUge1xyXG4gIHdpZHRoOiAyMCU7XHJcbiAgcGFkZGluZzogNXB4O1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcblxyXG4uZWxfX2xlZnQge1xyXG4gIHdpZHRoOiA0MCU7XHJcbiAgcGFkZGluZzogNXB4O1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcblxyXG4uZWxfX3JpZ2h0IHtcclxuICB3aWR0aDogNDAlO1xyXG4gIHBhZGRpbmc6IDEwcHg7XHJcbn1cclxuXHJcbi5lX193cmFwcGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbn1cclxuXHJcbi5lX19leWVzIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG59XHJcblxyXG4uZV9fZXllczpob3ZlciB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4udmFyaWFudHMge1xyXG4gIHBhZGRpbmc6IDJweDtcclxufVxyXG5cclxuLnZhcmlhbnRzICoge1xyXG4gIHBhZGRpbmc6IDNweDtcclxufVxyXG5cclxuLnJlcXVpcmVkLWZpZWxkIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XHJcbn1cclxuXHJcbi5hbGVydCB7XHJcbiAgcGFkZGluZzogMjBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ0MzM2OyAvKiBSZWQgKi9cclxuICBjb2xvcjogd2hpdGU7XHJcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxufVxyXG5cclxuLmFkZGVkX3RvX2NhcnQge1xyXG4gIGJvcmRlcjogMnB4IHNvbGlkICMwMDdlZWY7XHJcbiAgcGFkZGluZzogMTBweDtcclxuICBtYXJnaW46IDEwcHg7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLnNlbGVjdC1zdHlsZSB7XHJcbiAgZm9udC1zaXplOiAxOHB4O1xyXG59XHJcbjwvc3R5bGU+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=*/