valtech-components 4.0.561 → 4.0.563

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -213,6 +213,7 @@ export class ChristianityGameComponent {
213
213
  this.previewTilt = signal(CHRISTIANITY_PREVIEW_NEUTRAL_TILT);
214
214
  this.selectedPreviewAbilityIndex = signal(0);
215
215
  this.previewSlideDirection = signal(0);
216
+ this.previewSwipeStart = null;
216
217
  this.hoveredHandIndex = signal(null);
217
218
  this.draggingCardId = signal(null);
218
219
  this.draggingAttackerInstanceId = signal(null);
@@ -394,7 +395,20 @@ export class ChristianityGameComponent {
394
395
  || !this.isPreviewAbilityPlaceholder(abilities[0])
395
396
  && (abilities[0]?.title ?? '') !== this.t('christianityAbility');
396
397
  });
397
- this.showPreviewAbilities = computed(() => this.selectedPreview()?.source !== 'gallery' && this.previewAbilities().length > 0);
398
+ this.showPreviewAbilities = computed(() => {
399
+ const preview = this.selectedPreview();
400
+ if (!preview)
401
+ return false;
402
+ const hasRealAbility = this.previewAbilities().some(ability => !this.isPreviewAbilityPlaceholder(ability));
403
+ if (!hasRealAbility)
404
+ return false;
405
+ if (preview.source === 'offerings' || preview.source === 'place')
406
+ return true;
407
+ if (preview.source !== 'board')
408
+ return false;
409
+ const card = this.selectedPreviewCard();
410
+ return card?.type === 'character' || card?.type === 'leader';
411
+ });
398
412
  this.canNavigatePreviewAbilities = computed(() => this.previewAbilities().length > 1);
399
413
  this.selectedPreviewAbilityPositionLabel = computed(() => {
400
414
  const abilities = this.previewAbilities();
@@ -1712,6 +1726,39 @@ export class ChristianityGameComponent {
1712
1726
  this.closePreview();
1713
1727
  }
1714
1728
  }
1729
+ startPreviewSwipe(event) {
1730
+ if (!this.canNavigatePreview())
1731
+ return;
1732
+ if (event.pointerType === 'mouse' && event.button !== 0)
1733
+ return;
1734
+ this.previewSwipeStart = { pointerId: event.pointerId, startX: event.clientX, startY: event.clientY };
1735
+ event.currentTarget.setPointerCapture?.(event.pointerId);
1736
+ }
1737
+ finishPreviewSwipe(event) {
1738
+ const swipe = this.previewSwipeStart;
1739
+ if (!swipe || swipe.pointerId !== event.pointerId)
1740
+ return;
1741
+ this.previewSwipeStart = null;
1742
+ const target = event.currentTarget;
1743
+ if (target.hasPointerCapture?.(event.pointerId))
1744
+ target.releasePointerCapture(event.pointerId);
1745
+ const deltaX = event.clientX - swipe.startX;
1746
+ const deltaY = event.clientY - swipe.startY;
1747
+ const absX = Math.abs(deltaX);
1748
+ const absY = Math.abs(deltaY);
1749
+ if (absX < 44 || absX < absY * 1.35)
1750
+ return;
1751
+ this.resetPreviewTilt();
1752
+ this.navigatePreview(deltaX < 0 ? 1 : -1);
1753
+ }
1754
+ cancelPreviewSwipe(event) {
1755
+ if (this.previewSwipeStart?.pointerId !== event.pointerId)
1756
+ return;
1757
+ this.previewSwipeStart = null;
1758
+ const target = event.currentTarget;
1759
+ if (target.hasPointerCapture?.(event.pointerId))
1760
+ target.releasePointerCapture(event.pointerId);
1761
+ }
1715
1762
  navigatePreview(direction) {
1716
1763
  const items = this.previewCarouselItems();
1717
1764
  if (items.length < 2)
@@ -1800,6 +1847,8 @@ export class ChristianityGameComponent {
1800
1847
  this.galleryType.set(event.target.value);
1801
1848
  }
1802
1849
  tiltPreview(event) {
1850
+ if (event.pointerType !== 'mouse')
1851
+ return;
1803
1852
  const bounds = event.currentTarget.getBoundingClientRect();
1804
1853
  const x = (event.clientX - bounds.left) / bounds.width - 0.5;
1805
1854
  const y = (event.clientY - bounds.top) / bounds.height - 0.5;
@@ -2883,16 +2932,16 @@ export class ChristianityGameComponent {
2883
2932
  [style.--preview-rotate-y]="previewTilt().rotateY + 'deg'"
2884
2933
  [style.--preview-shift-x]="previewTilt().shiftX + 'px'"
2885
2934
  [style.--preview-shift-y]="previewTilt().shiftY + 'px'"
2935
+ (pointerdown)="startPreviewSwipe($event)"
2886
2936
  (pointermove)="tiltPreview($event)"
2937
+ (pointerup)="finishPreviewSwipe($event)"
2938
+ (pointercancel)="cancelPreviewSwipe($event)"
2887
2939
  (pointerleave)="resetPreviewTilt()"
2888
2940
  >
2889
2941
  @if (selectedPreviewRenderCard(); as previewCard) {
2890
2942
  <val-christianity-card [card]="previewCard" variant="full"></val-christianity-card>
2891
2943
  }
2892
2944
  </div>
2893
- @if (selectedPreviewRenderCard()?.bibleCredit; as bibleCredit) {
2894
- <p class="christianity-preview-bible-credit">{{ bibleCredit }}</p>
2895
- }
2896
2945
  @if (selectedPreviewNeighborRenderCard(1); as nextCard) {
2897
2946
  <val-christianity-card class="christianity-preview-ghost christianity-preview-ghost--next" [card]="nextCard" variant="full"></val-christianity-card>
2898
2947
  }
@@ -3145,7 +3194,7 @@ export class ChristianityGameComponent {
3145
3194
  </section>
3146
3195
  }
3147
3196
  </main>
3148
- `, isInline: true, styles: [":host{--christianity-theme-ink: var(--val-text-color, #1f2933);--christianity-theme-surface: #ffffff;--christianity-theme-parchment: #eff6ff;--christianity-theme-olive: #1d4ed8;--christianity-theme-gold: #2563eb;--christianity-theme-gold-soft: rgba(37, 99, 235, .16);--christianity-theme-gold-ring: rgba(37, 99, 235, .44);--christianity-theme-glow: rgba(37, 99, 235, .24);--christianity-theme-focus: #2563eb;--christianity-theme-shadow: rgba(37, 99, 235, .15);--christianity-theme-shadow-strong: rgba(37, 99, 235, .26);--christianity-card-aspect: 5 / 7.45;--christianity-card-back: linear-gradient(135deg, rgba(16, 42, 67, .16), rgba(16, 42, 67, .03)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(16, 42, 67, .11), rgba(16, 42, 67, .02)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);display:block;font-size:var(--val-mini-games-font-size, 1rem);max-width:100%;min-width:0;overflow-x:clip;color:var(--christianity-theme-ink)}:host-context(body.font-small){--val-mini-games-font-size: .875rem}:host-context(body.font-large){--val-mini-games-font-size: 1.1875rem}.christianity-shell{box-sizing:border-box;display:grid;gap:.65rem;width:100%;max-width:100%;min-width:0;padding:clamp(.65rem,1.8vw,1.15rem);overflow-x:clip;overflow-y:visible}.christianity-shell.has-modal-open{max-height:100dvh;overflow:hidden;overscroll-behavior:contain}.christianity-shell.has-modal-open .christianity-hand-shelf:not(.christianity-hand-shelf--opponent){opacity:0;pointer-events:none;transform:translateY(1.5rem)}.christianity-shell.is-preparing{padding-bottom:clamp(.75rem,1.8vw,1.15rem)}.christianity-shell.is-preparing .christianity-match-strip,.christianity-shell.is-preparing .christianity-turn-banner,.christianity-shell.is-preparing .christianity-hand-shelf,.christianity-shell.is-preparing .christianity-actions,.christianity-shell.is-preparing .christianity-end-turn,.christianity-shell.is-preparing .christianity-impact-layer,.christianity-shell.is-preparing .christianity-player-side,.christianity-shell.is-preparing .christianity-shared-zone{display:none}.christianity-shell.is-preparing .christianity-table{min-height:min(34rem,calc(100dvh - 2rem))}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.christianity-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;min-width:0}.christianity-gallery-open{min-height:2.2rem;padding:0 .75rem;border:1px solid var(--christianity-theme-gold-ring);border-radius:999px;background:linear-gradient(180deg,#eff6fffa,#fffffffa),radial-gradient(circle at 20% 0%,var(--christianity-theme-gold-soft),transparent 42%);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800;box-shadow:0 .55rem 1.2rem #2563eb1a}.christianity-splash{min-height:min(34rem,calc(100dvh - 8rem));border:1px solid rgba(37,99,235,.18);border-radius:.9rem;background:radial-gradient(circle at 50% 18%,rgba(37,99,235,.16),transparent 22rem),linear-gradient(180deg,#eff6ffed,#fffffff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #2563eb1f}.christianity-splash{display:grid;place-items:center;align-content:center;gap:1.2rem;padding:2.5rem 1.25rem;text-align:center}.christianity-splash__mark{position:relative;display:grid;grid-template-columns:repeat(3,.74rem);place-content:center;gap:.55rem;width:5.8rem;height:5.8rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(37,99,235,.12),transparent 55%),#ffffff9e;box-shadow:inset 0 0 0 .55rem #fff6,0 1rem 2rem #2563eb1f}.christianity-splash__mark:before,.christianity-splash__mark:after{content:\"\";position:absolute;inset:.42rem;border:1px solid rgba(37,99,235,.16);border-radius:inherit;animation:christianity-loader-ring 1.8s ease-out infinite}.christianity-splash__mark:after{animation-delay:.48s}.christianity-splash__mark span{width:.74rem;height:.74rem;border-radius:999px;background:var(--christianity-theme-focus);box-shadow:0 .35rem .85rem #2563eb38;animation:christianity-loader-dot .96s ease-in-out infinite}.christianity-splash__mark span:nth-child(2){animation-delay:.14s}.christianity-splash__mark span:nth-child(3){animation-delay:.28s}@keyframes christianity-loader-dot{0%,to{opacity:.38;transform:translateY(0) scale(.82)}45%{opacity:1;transform:translateY(-.22rem) scale(1)}}@keyframes christianity-loader-ring{0%{opacity:.48;transform:scale(.72)}to{opacity:0;transform:scale(1.2)}}.christianity-splash span,.christianity-start__copy span{color:var(--christianity-theme-olive);font-size:.76rem;font-weight:900;text-transform:uppercase}.christianity-splash h2,.christianity-start h2,.christianity-start p{margin:0}.christianity-splash h2{margin-top:.2rem;font-size:clamp(1.65rem,7vw,2.7rem);line-height:1}.christianity-splash p{max-width:26rem;margin:.55rem auto 0;color:#1f2933ad;font-size:.96rem}.christianity-start{display:grid;align-content:center;gap:1rem;min-height:min(34rem,calc(100dvh - 8rem));padding:clamp(.15rem,1.2vw,.55rem)}.christianity-start__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,18rem);gap:1rem;align-items:center}.christianity-start__copy{display:grid;gap:.45rem;max-width:36rem}.christianity-start h2{font-size:clamp(1.6rem,6vw,2.5rem);line-height:1.02}.christianity-start__copy p,.christianity-start__cards p,.christianity-start__modes p{color:#1f2933ad;line-height:1.42}.christianity-start__fan{position:relative;display:grid;place-items:center;min-height:13rem;overflow:visible}.christianity-start__fan val-christianity-card{position:absolute;width:clamp(5.7rem,12vw,7.2rem);transform-origin:50% 92%;filter:drop-shadow(0 1rem 1.5rem rgba(82,64,28,.18))}.christianity-start__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.christianity-start__cards article,.christianity-start__modes article{display:grid;gap:.65rem;align-content:start;padding:.95rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#ffffffd1;box-shadow:0 .75rem 1.7rem #52401c14}.christianity-start__cards article{min-height:11rem}.christianity-start__cards strong{font-size:1.05rem}.christianity-start__status{display:flex;flex-wrap:wrap;gap:.45rem}.christianity-start__status span,.christianity-start__modes article>span{display:inline-flex;align-items:center;width:fit-content;min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(37,99,235,.22);border-radius:999px;background:#eff6ffe0;color:#1f2933b8;font-size:.75rem;font-weight:850}.christianity-start__modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.christianity-start__modes article{min-height:8.5rem;background:#f8fafcb8;box-shadow:none;opacity:.82}.christianity-start__modes strong{font-size:.92rem}.christianity-start__modes p{margin:0;font-size:.8rem}.christianity-primary-action,.christianity-secondary-action{justify-self:start;min-height:2.5rem;padding:0 .9rem;border-radius:999px;font:inherit;font-weight:900}.christianity-primary-action{border:1px solid rgba(16,42,67,.16);background:#102a43;color:#fff}.christianity-secondary-action{border:1px solid var(--christianity-theme-gold-ring);background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink)}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-turn-banner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.58rem .72rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:linear-gradient(135deg,#fffffff0,#eff6ffd1),#fffc;box-shadow:0 .65rem 1.25rem #102a4314}.christianity-turn-banner.is-own-turn{border-color:#2563eb47;box-shadow:0 .75rem 1.45rem #2563eb1f,inset 0 0 0 1px #2563eb14}.christianity-turn-banner.is-rival-turn{border-color:#b453093d}.christianity-turn-banner.is-finished{border-color:#16a34a4d}.christianity-turn-banner span{display:block;color:#1f29338f;font-size:.68rem;font-weight:900;text-transform:uppercase}.christianity-turn-banner strong{display:block;color:var(--christianity-theme-ink);font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.05}.christianity-turn-banner p{margin:.12rem 0 0;color:#1f2933ad;font-size:.78rem;line-height:1.25}.christianity-turn-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem}.christianity-options-button,.christianity-options-menu button{min-height:2.15rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffeb;color:var(--christianity-theme-ink);font:inherit;font-size:.78rem;font-weight:900}.christianity-options-button{padding:0 .78rem}.christianity-options-menu{position:absolute;right:.55rem;top:calc(100% + .35rem);z-index:18;display:grid;gap:.35rem;min-width:9.5rem;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#fffffffa;box-shadow:0 1rem 2rem #102a432e}.christianity-options-menu button{border-radius:.55rem;text-align:left}.christianity-options-menu button:disabled{opacity:.45}.christianity-table{box-sizing:border-box;position:relative;display:grid;gap:clamp(.55rem,1.4vw,.9rem);width:100%;max-width:100%;min-width:0;padding:clamp(.65rem,1.5vw,1.05rem);border-radius:.95rem;background:radial-gradient(circle at 50% 44%,rgba(255,255,255,.2),transparent 44%),linear-gradient(180deg,#c8ddf7,#b9d4f1);box-shadow:inset 0 0 0 1px #ffffff57,inset 0 1.4rem 3rem #ffffff29;overflow-x:clip;overflow-y:visible}.christianity-setup-panel,.christianity-result-panel{position:absolute;inset:.8rem;z-index:14;display:grid;align-content:center;justify-items:center;gap:.85rem;padding:1rem;border:1px solid rgba(37,99,235,.16);border-radius:.9rem;background:linear-gradient(180deg,#f8fafcf5,#eff6fff0),#fffffff0;box-shadow:0 1.25rem 2.4rem #102a432e;text-align:center}.christianity-setup-panel>div:not(.christianity-setup-coin),.christianity-result-panel>div:not(:last-child){display:grid;justify-items:center;max-width:min(100%,34rem)}.christianity-setup-panel .christianity-primary-action,.christianity-result-panel .christianity-primary-action{justify-self:center}.christianity-setup-panel--coin{gap:clamp(.85rem,3vh,1.35rem)}.christianity-setup-panel--leader-pick{align-content:center;gap:clamp(.7rem,2vh,1rem)}.christianity-setup-coin{position:relative;display:grid;place-items:center;width:clamp(4.6rem,18vw,6.2rem);aspect-ratio:1;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9),transparent 22%),linear-gradient(135deg,#fff6a3,#ffd21a 42%,#b88404);box-shadow:0 1.05rem 1.9rem #102a432e,inset 0 0 0 .32rem #ffffff80,inset -.6rem -.7rem 1rem #62460733;transform-style:preserve-3d;animation:christianity-coin-spin 1.8s cubic-bezier(.45,0,.2,1) infinite}.christianity-setup-coin:before{content:\"\";position:absolute;inset:-.65rem;z-index:-1;border-radius:inherit;background:radial-gradient(circle,rgba(250,204,21,.32),transparent 62%);filter:blur(.15rem)}.christianity-setup-coin:after{content:\"\";position:absolute;inset:.34rem;border:.16rem solid rgba(120,78,0,.24);border-radius:inherit;transform:translateZ(.06rem)}.christianity-setup-coin span{position:absolute;display:grid;place-items:center;width:52%;aspect-ratio:1;border-radius:999px;color:#102a43d6;font-size:clamp(1.65rem,6vw,2.25rem);font-weight:1000;line-height:1;text-transform:none;transform-style:preserve-3d;backface-visibility:hidden}.christianity-setup-coin span:first-child:before{content:\"J\"}.christianity-setup-coin span:last-child{transform:rotateY(180deg)}.christianity-setup-coin span:last-child:before{content:\"R\"}.christianity-setup-coin.is-rival-won{animation-delay:-.9s}@keyframes christianity-coin-spin{0%{transform:rotateY(0) translateY(0)}38%{transform:rotateY(540deg) translateY(-.35rem)}62%{transform:rotateY(720deg) translateY(0)}to{transform:rotateY(1080deg) translateY(0)}}.christianity-setup-panel>div:not(.christianity-setup-coin)>span,.christianity-result-panel>span{color:#2563ebc2;font-size:.72rem;font-weight:1000;text-transform:uppercase}.christianity-setup-panel h2,.christianity-result-panel h2{margin:.18rem 0 0;color:var(--christianity-theme-ink);font-size:clamp(1.45rem,3vw,2.35rem);line-height:1}.christianity-setup-panel p,.christianity-result-panel p{max-width:31rem;margin:.35rem auto 0;color:#1f2933ad;font-size:.95rem;line-height:1.35}.christianity-result-panel>div:last-child{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem}.christianity-leader-choice-meter{display:grid;gap:.38rem;width:min(100%,28rem);color:#1f2933ad;font-size:.78rem;font-weight:900}.christianity-leader-choice-meter i{display:block;height:.34rem;border-radius:999px;background:var(--christianity-theme-focus);transform-origin:left center;transition:transform .24s ease}.christianity-leader-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,9.6rem));gap:clamp(.6rem,2vw,.9rem);justify-content:center;align-items:stretch;width:min(100%,21rem)}.christianity-leader-choice-option{position:relative;display:grid;grid-template-rows:auto 1fr;gap:.5rem;align-content:start;min-width:0;padding:.48rem;border:1px solid rgba(36,48,68,.1);border-radius:.86rem;background:linear-gradient(180deg,#ffffffdb,#f8fafcb8),#ffffffc7;box-shadow:0 .75rem 1.5rem #102a4314;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.christianity-leader-choice-option.is-selected{border-color:#2563eb7a;background:linear-gradient(180deg,#eff6fff0,#ffffffdb),#ffffffd1;box-shadow:0 .95rem 1.75rem #2563eb24,inset 0 0 0 1px #2563eb24}.christianity-leader-choice-card{display:block;justify-self:center;width:min(100%,8.25rem);border:0;background:transparent;color:inherit;font:inherit}.christianity-leader-choice-card val-christianity-card{display:block;width:100%;transition:filter .18s ease,transform .18s ease}.christianity-leader-choice-option>div{display:grid;gap:.42rem;align-content:end;justify-items:center;min-width:0}.christianity-leader-choice-option span{display:inline-grid;place-items:center;min-height:1.8rem;max-width:100%;padding:.18rem .46rem;border-radius:999px;background:#eff6ffbd;color:#1f2933ad;font-size:clamp(.62rem,2.3vw,.72rem);font-weight:900;line-height:1.05;text-align:center;text-transform:uppercase}.christianity-leader-choice-detail{width:100%;min-height:2rem;padding:0 .55rem;border:1px solid rgba(37,99,235,.22);border-radius:999px;background:#eff6ffeb;color:var(--christianity-theme-ink);font:inherit;font-size:.76rem;font-weight:900}.christianity-leader-choice-card:hover val-christianity-card,.christianity-leader-choice-card:focus-visible val-christianity-card{transform:translateY(-.12rem);filter:drop-shadow(0 .75rem 1.25rem rgba(37,99,235,.22))}.christianity-impact-layer{position:absolute;inset:0;z-index:30;pointer-events:none}.christianity-combat-trail{position:absolute;inset:0;z-index:2;--christianity-combat-trail-x: 50%;--christianity-combat-trail-y: 72%;--christianity-combat-trail-mid-x: 50%;--christianity-combat-trail-mid-y: 50%;--christianity-combat-trail-length: 34%;--christianity-combat-trail-angle: -90deg;--christianity-combat-trail-color: rgba(255, 255, 255, .96);--christianity-combat-trail-glow: rgba(96, 165, 250, .56);--christianity-combat-trail-hit: rgba(220, 38, 38, .42)}.christianity-combat-trail.is-leader-target{--christianity-combat-trail-color: rgba(255, 255, 255, .98);--christianity-combat-trail-glow: rgba(250, 204, 21, .52);--christianity-combat-trail-hit: rgba(250, 204, 21, .38)}.christianity-combat-trail.is-character-target{--christianity-combat-trail-color: rgba(219, 234, 254, .98);--christianity-combat-trail-glow: rgba(96, 165, 250, .58);--christianity-combat-trail-hit: rgba(220, 38, 38, .38)}.christianity-combat-trail:before{position:absolute;left:var(--christianity-combat-trail-mid-x);top:var(--christianity-combat-trail-mid-y);width:clamp(2.8rem,9vw,5.4rem);height:clamp(2.8rem,9vw,5.4rem);border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.72),transparent 28%),radial-gradient(circle,var(--christianity-combat-trail-hit),transparent 62%);content:\"\";opacity:0;transform:translate(-50%,-50%) scale(.58);animation:christianity-combat-burst .88s ease-out both}.christianity-combat-trail>span{position:absolute;left:var(--christianity-combat-trail-x);top:var(--christianity-combat-trail-y);width:var(--christianity-combat-trail-length);height:.36rem;border-radius:999px;background:linear-gradient(90deg,transparent 0 5%,rgba(255,255,255,.92) 42%,var(--christianity-combat-trail-color) 72%,rgba(96,165,250,.72)),repeating-linear-gradient(90deg,transparent 0 .7rem,rgba(255,255,255,.66) .7rem .92rem);box-shadow:0 0 .72rem var(--christianity-combat-trail-glow),0 0 1.45rem var(--christianity-combat-trail-glow);transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0);transform-origin:0 50%;animation:christianity-combat-arrow-trail .84s ease-out both}.christianity-combat-trail>span:after{position:absolute;top:50%;right:-.18rem;width:.95rem;height:.95rem;border-top:.28rem solid var(--christianity-combat-trail-color);border-right:.28rem solid var(--christianity-combat-trail-color);content:\"\";filter:drop-shadow(0 0 .45rem var(--christianity-combat-trail-glow));transform:translateY(-50%) rotate(45deg)}@keyframes christianity-combat-arrow-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0)}24%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(.52)}66%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1)}to{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1.04)}}@keyframes christianity-combat-burst{0%,42%{opacity:0;transform:translate(-50%,-50%) scale(.58) rotate(0)}58%{opacity:1;transform:translate(-50%,-50%) scale(.98) rotate(4deg)}to{opacity:0;transform:translate(-50%,-50%) scale(1.42) rotate(12deg)}}@media (prefers-reduced-motion: reduce){.christianity-combat-trail,.christianity-combat-trail:before,.christianity-combat-trail>span,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card,.christianity-floating-card-shell.is-sliding-next .christianity-floating-card,.christianity-setup-coin,.christianity-splash__mark:before,.christianity-splash__mark:after,.christianity-splash__mark span{animation:none!important}}.christianity-player-side{box-sizing:border-box;display:grid;gap:.35rem;width:100%;max-width:100%;min-width:0;padding:.35rem .3rem;border-radius:.7rem;background:linear-gradient(180deg,#ffffff47,#ffffff24),#4a7ab414;grid-template-rows:minmax(7rem,1fr) auto;min-height:13.75rem}.christianity-player-side--opponent{grid-template-rows:auto minmax(7rem,1fr)}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{--christianity-battle-card-width: clamp(5.7rem, 10.5vw, 7.9rem);box-sizing:border-box;display:grid;grid-template-columns:repeat(4,var(--christianity-battle-card-width));gap:.5rem;align-items:center;justify-content:center;width:100%;max-width:100%;min-width:0;overflow:hidden;min-height:clamp(10rem,19vw,12.4rem);padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff6b,#ffffff3d),#1f4f8914;transition:background .16s ease,box-shadow .16s ease}.christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#fffaf0f5,#ffffffd6),#ffffffc2;box-shadow:inset 0 0 0 .14rem var(--christianity-theme-gold-soft),0 .8rem 1.7rem #5f6f2a1f}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff57,#fff3),#1f4f8914}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .18rem var(--christianity-theme-gold-soft),0 .85rem 1.4rem var(--christianity-theme-shadow)}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{display:grid;place-items:center;justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff2e;color:inherit;font:inherit;opacity:.62}.christianity-slot--play-target{position:relative;opacity:1;border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0eb,#f8fafcd1),#ffffffb3;color:#5d4305;font-weight:800;overflow:hidden;box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-slot--play-target:before{content:\"\";position:absolute;inset:.35rem;border:1px solid rgba(214,162,29,.22);border-radius:.4rem;background:linear-gradient(135deg,rgba(214,162,29,.1),transparent 46%),radial-gradient(circle at 50% 42%,var(--christianity-theme-glow),transparent 58%)}.christianity-slot--play-target span{position:relative;z-index:2;padding:.16rem .44rem;border-radius:999px;background:#ffffffc7;font-size:.78rem}@keyframes christianity-target-pulse{0%,to{box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow)}50%{box-shadow:inset 0 0 0 .16rem #d6a21d57,0 .9rem 1.65rem var(--christianity-theme-shadow-strong)}}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{padding:.75rem;border-radius:.75rem;background:#ffffffeb}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn:not(:disabled){background:#102a43;color:#fff}.christianity-actions button{pointer-events:auto;border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-actions button:disabled{display:none}.christianity-end-turn{border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-end-turn:disabled{color:#1f293375;background:#ffffffb8;box-shadow:none}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:10.8rem;padding:.25rem .25rem 2.1rem;isolation:isolate;overflow:visible}.christianity-hand-shelf{position:relative;display:grid;z-index:12;min-height:12rem;margin-top:-1.15rem;padding:1.45rem .25rem 1rem;overflow:visible}.christianity-hand-shelf--opponent{z-index:8;min-height:6.85rem;margin-top:0;margin-bottom:0;padding:.45rem .25rem .85rem}.christianity-hand-fan--opponent{min-height:5.9rem;padding-bottom:.75rem;align-items:start}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.7rem,12vw,4.9rem);aspect-ratio:var(--christianity-card-aspect);margin-inline:-.9rem;transform-origin:50% 120%}.christianity-hand-fan--opponent .christianity-hidden-card-button:first-child{margin-left:0}.christianity-hand-fan--opponent .christianity-hidden-card-button:last-child{margin-right:0}.christianity-card-preview-card,.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-render-card-button{display:block;padding:0;overflow:visible;border:0;background:transparent;box-shadow:none}.christianity-render-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-gallery-card-button{display:block;width:min(100%,6.8rem);min-width:0;aspect-ratio:var(--christianity-card-aspect);padding:0;overflow:visible;border:0;background:transparent;color:inherit;font:inherit;text-align:left;box-shadow:none}.christianity-gallery-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-card-preview-card--hand.christianity-render-card-button,.christianity-card-preview-card--battle.christianity-render-card-button,.christianity-leader-card.christianity-render-card-button{aspect-ratio:var(--christianity-card-aspect)}.christianity-card-preview-card--hand.christianity-render-card-button:hover val-christianity-card,.christianity-card-preview-card--hand.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-target val-christianity-card{filter:drop-shadow(0 0 .45rem rgba(37,99,235,.45)) drop-shadow(0 .55rem 1rem rgba(37,99,235,.22))}.christianity-card-preview-card--battle.christianity-render-card-button.is-ready-attacker val-christianity-card{filter:drop-shadow(0 0 .24rem rgba(22,163,74,.32)) drop-shadow(0 .45rem .8rem rgba(22,163,74,.16))}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected{transform:translateY(-.28rem)}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card{filter:drop-shadow(0 0 .4rem rgba(250,204,21,.52)) drop-shadow(0 .65rem 1rem rgba(37,99,235,.24))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker{z-index:8;pointer-events:none}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card{animation:christianity-combat-lunge .98s cubic-bezier(.2,.78,.2,1) both;filter:drop-shadow(0 0 .5rem rgba(250,204,21,.72)) drop-shadow(0 1rem 1.4rem rgba(16,42,67,.28))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card{animation:christianity-combat-impact .98s ease-out both;filter:drop-shadow(0 0 .5rem rgba(220,38,38,.48)) drop-shadow(0 .75rem 1.1rem rgba(220,38,38,.18))}@keyframes christianity-combat-lunge{0%{transform:translateZ(0) rotate(0) scale(1)}24%{transform:translate3d(0,-1.4rem,0) rotate(-4deg) scale(1.08)}52%{transform:translate3d(0,-4.9rem,0) rotate(7deg) scale(1.12)}68%{transform:translate3d(0,-3.6rem,0) rotate(-3deg) scale(1.04)}to{transform:translateZ(0) rotate(0) scale(1)}}@keyframes christianity-combat-impact{0%,42%{transform:translateZ(0) scale(1)}54%{transform:translate3d(.16rem,-.12rem,0) rotate(2deg) scale(1.04)}64%{transform:translate3d(-.14rem,.1rem,0) rotate(-2deg) scale(.98)}to{transform:translateZ(0) rotate(0) scale(1)}}.christianity-leader-card.christianity-render-card-button.is-protected-target{opacity:.82}.christianity-leader-card.christianity-render-card-button.is-protected-target val-christianity-card{filter:grayscale(.22) drop-shadow(0 0 .28rem rgba(100,116,139,.26))}.christianity-card-frame{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;overflow:hidden;padding:.48rem;text-align:left;background:linear-gradient(180deg,#fffffffa,#f8fafcfa),radial-gradient(circle at 15% 0%,rgba(214,162,29,.12),transparent 44%);box-shadow:0 .5rem 1.25rem #2430441a,inset 0 0 0 .18rem #ffffff9e}.christianity-card-frame-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.16rem;align-items:start;min-width:0}.christianity-card-frame-header small{grid-column:1;min-width:0;overflow:hidden;color:#1f2933a3;font-size:clamp(.52rem,1.5vw,.68rem);line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-header strong{grid-column:1;justify-self:start;align-self:start;min-width:0;padding:0;overflow:hidden;border-radius:0;background:transparent;font-size:clamp(.82rem,2.5vw,1.05rem);line-height:1.02;text-overflow:ellipsis;white-space:nowrap}.christianity-card-preview-card--hand .christianity-card-frame-header strong,.christianity-card-preview-card--battle .christianity-card-frame-header strong,.christianity-leader-card .christianity-card-frame-header strong{display:-webkit-box;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-preview-card--hand .christianity-card-frame-header small{text-transform:uppercase}.christianity-card-preview-card--hand .christianity-card-frame-art>span{display:-webkit-box;max-width:88%;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-frame-header span{grid-column:2;grid-row:1 / span 2;display:grid;place-items:center;min-width:1.3rem;height:1.3rem;padding:0 .22rem;border-radius:999px;background:#ffd91a;color:#243044;font-size:.8rem;font-weight:900;line-height:1;box-shadow:inset 0 -.08rem #52401c2e}.christianity-card-frame-header span.is-offering-pips,.christianity-full-card-cost.is-offering-pips,.christianity-offering-card span.is-offering-pips{grid-auto-flow:column;gap:.14rem;min-width:auto;padding:0 .28rem}.christianity-card-frame-header span.is-offering-pips i,.christianity-full-card-cost.is-offering-pips i,.christianity-offering-card span.is-offering-pips i,.christianity-full-card-pips i{display:block;width:.72rem;height:.72rem;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9) 0 .12rem,transparent .13rem),#ffd91a;box-shadow:inset 0 -.08rem #52401c2e,0 .12rem .24rem #102a431a}.christianity-card-frame-art{position:relative;display:grid;place-items:center;min-height:0;overflow:hidden;border-radius:.36rem;background:linear-gradient(135deg,#5f6f2a2e,#d6a21d24),radial-gradient(circle at 50% 18%,rgba(255,255,255,.72),transparent 48%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-card-frame-art>span{max-width:78%;overflow:hidden;color:#2430447a;font-size:clamp(.82rem,2.2vw,1.05rem);font-weight:900;line-height:1.02;text-align:center;text-overflow:ellipsis}.christianity-card-frame-art small{position:absolute;right:0;bottom:.28rem;max-width:78%;padding:.1rem .34rem;overflow:hidden;border-radius:999px 0 0 999px;background:#ffffffe6;color:#1f2933a8;font-size:.48rem;font-style:italic;font-weight:900;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-card-frame-effect{display:grid;align-content:center;gap:.1rem;min-height:1.45rem;padding:.24rem;overflow:hidden;border-radius:.34rem;background:radial-gradient(circle at 50% 70%,rgba(36,48,68,.06),transparent 44%),#ffffffdb}.christianity-card-frame-effect strong{justify-self:end;align-self:end;padding:.12rem .32rem;border-radius:999px;background:#edf2f7;font-size:clamp(.66rem,2vw,.82rem);line-height:1.05}.christianity-card-frame-effect p{margin:0;overflow:hidden;color:#1f2933b8;font-size:.58rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-footer{display:flex;justify-content:space-between;gap:.22rem;color:#1f293385;font-size:.46rem;font-weight:800;line-height:1}.christianity-card-frame--battle{gap:.22rem;padding:.42rem}.christianity-card-frame--battle .christianity-card-frame-art{min-height:2.6rem}.christianity-card-frame--leader .christianity-card-frame-art{background:linear-gradient(135deg,#2563eb24,#d6a21d29),radial-gradient(circle at 50% 18%,rgba(255,255,255,.78),transparent 48%),#e7eef8}.christianity-card-frame--list{width:clamp(4.4rem,22vw,5.8rem);padding:.38rem}.christianity-card-frame--list .christianity-card-frame-art{min-height:2.5rem}.christianity-hand-card-wrap{position:relative;display:grid;justify-items:center;flex:0 0 auto;margin-inline:-.42rem;padding-bottom:2rem;transform-origin:50% 115%;transition:transform .16s ease,filter .16s ease}.christianity-hand-card-wrap:hover,.christianity-hand-card-wrap.is-selected,.christianity-hand-card-wrap.is-dragging{z-index:3}.christianity-hand-card-wrap:hover .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-selected .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-dragging .christianity-card-preview-card--hand{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .12rem var(--christianity-theme-gold-soft),0 1rem 2rem var(--christianity-theme-shadow);transform:translateY(-.5rem) scale(1.045)}.christianity-card-preview-card--hand{cursor:grab;touch-action:none}.christianity-card-preview-card--hand:active{cursor:grabbing}.christianity-card-preview-card--hand.cdk-drag-disabled{cursor:not-allowed}.christianity-card-drag-preview,.christianity-card-preview-card.cdk-drag-preview{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;box-shadow:0 0 0 .16rem #fff4c2ad,0 1.5rem 3rem var(--christianity-theme-shadow-strong);transform:rotate(2deg) scale(1.03)}.christianity-card-drag-preview val-christianity-card{display:block;width:100%;height:100%}.christianity-card-drag-placeholder,.christianity-card-preview-card.cdk-drag-placeholder{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;background:#94a3b81f;opacity:.22}.christianity-slot.cdk-drop-list-dragging,.christianity-offering-drop-target.cdk-drop-list-dragging{border-color:var(--christianity-theme-gold-ring)}.christianity-slot.cdk-drop-list-receiving,.christianity-offering-drop-target.cdk-drop-list-receiving{box-shadow:inset 0 0 0 .18rem #d6a21d57,0 1rem 1.9rem var(--christianity-theme-shadow-strong)}.christianity-card-eye{position:absolute;right:50%;bottom:.38rem;width:2.15rem;height:1.55rem;border:1px solid color-mix(in srgb,var(--christianity-theme-focus) 52%,transparent);border-radius:999px;background:#fffffff0;box-shadow:0 .55rem 1.1rem #102a4324;opacity:0;transform:translate(50%,-.2rem) scale(.92);transition:opacity .14s ease,transform .14s ease,border-color .14s ease}.christianity-card-eye:before{content:\"\";position:absolute;top:50%;left:50%;width:1.1rem;height:1.1rem;border:.12rem solid var(--christianity-theme-focus);border-radius:82% 0;background:#fffffff0;transform:translate(-50%,-50%) rotate(45deg)}.christianity-card-eye:after{content:\"\";position:absolute;top:50%;left:50%;width:.42rem;height:.42rem;border:.09rem solid rgba(255,255,255,.95);border-radius:999px;background:radial-gradient(circle at 35% 32%,#ffffff 0 .06rem,transparent .07rem),var(--christianity-theme-focus);transform:translate(-50%,-50%)}.christianity-hand-card-wrap:hover .christianity-card-eye,.christianity-hand-card-wrap.is-selected .christianity-card-eye,.christianity-card-eye:focus-visible{opacity:1;transform:translate(50%) scale(1)}.christianity-offering-drop-target{display:grid;width:min(100%,6.45rem);height:8.05rem;min-height:0;max-height:8.05rem;border:1px solid transparent;border-radius:.64rem;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.christianity-offering-drop-target.is-play-target{border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0f5,#fffffff0),radial-gradient(circle at 82% 14%,rgba(250,204,21,.28) 0 .7rem,transparent .72rem);box-shadow:inset 0 0 0 .12rem #d6a21d3d,0 .8rem 1.55rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-offering-drop-target>.cdk-drag-placeholder{display:none}.christianity-card-frame--back,.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:0;aspect-ratio:var(--christianity-card-aspect);place-items:center;padding:.55rem;overflow:hidden;box-shadow:0 .8rem 1.55rem #24304424;transform-origin:50% -18%;background:var(--christianity-card-back)}.christianity-card-frame--back:before,.christianity-card-preview-card--back:before{content:\"\";position:absolute;inset:.5rem;border:1px solid rgba(16,42,67,.12);border-radius:.38rem;background:linear-gradient(180deg,#ffffff2e,#ffffff0a);box-shadow:inset 0 0 0 .12rem #ffffff1f}.christianity-card-preview-card--battle{justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;min-width:0;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);margin-inline:0}.christianity-card-preview-card>span,.christianity-card-mini>span,.christianity-offering-pile>span,.christianity-offering-card>span,.christianity-leader-card>span,.christianity-zone-card>span,.christianity-zone-pile>span{position:relative;z-index:2;align-self:start;font-weight:700;line-height:1.05}.christianity-card-preview-card>strong,.christianity-card-mini>strong,.christianity-offering-pile>strong,.christianity-offering-card>strong,.christianity-leader-card>strong,.christianity-zone-card>strong,.christianity-zone-pile>strong{position:relative;z-index:3;justify-self:end;align-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{box-sizing:border-box;display:grid;grid-template-columns:minmax(5.3rem,6.9rem) minmax(6.4rem,1fr) minmax(4.9rem,6.5rem);gap:.65rem;align-items:end;justify-items:center;width:100%;max-width:100%;min-width:0}.christianity-player-rack--opponent{align-items:start}.christianity-hand-meter{position:absolute;top:0;right:.35rem;z-index:4;display:inline-grid;grid-auto-flow:column;gap:.25rem;align-items:center;min-height:1.7rem;padding:.18rem .46rem;border:1px solid rgba(36,48,68,.12);border-radius:999px;background:#ffffffe6;box-shadow:0 .35rem .8rem #102a4314}.christianity-hand-meter--opponent{top:.15rem}.christianity-hand-meter span{color:#1f293394;font-size:.68rem}.christianity-hand-meter strong{font-size:.86rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:grid;justify-items:center;justify-self:center;width:min(100%,7.5rem)}.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-frame{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;align-content:stretch}.christianity-offering-pile,.christianity-zone-card,.christianity-zone-pile{grid-template-rows:auto minmax(2.6rem,1fr) auto;align-content:stretch;gap:.32rem}.christianity-card-mini{width:3.5rem}.christianity-offering-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;justify-self:center;width:min(100%,7.35rem);height:9.05rem;max-height:9.05rem;min-height:0;padding:.86rem .82rem .78rem;background:linear-gradient(180deg,#fff,#f8fafc),linear-gradient(135deg,rgba(250,204,21,.18),transparent 42%)}.christianity-zone-card-stack{position:absolute;inset:0;z-index:2;pointer-events:none}.christianity-offering-pile .christianity-zone-card-stack,.christianity-zone-card .christianity-zone-card-stack,.christianity-zone-pile .christianity-zone-card-stack{position:absolute;inset:0}.christianity-zone-card-stack val-christianity-card{position:absolute;top:1.72rem;left:50%;width:clamp(3.75rem,7.3vw,4.85rem);filter:drop-shadow(0 .4rem .75rem rgba(16,42,67,.14))}.christianity-offering-pile .christianity-zone-card-stack val-christianity-card{top:1.82rem;width:clamp(3.25rem,6.2vw,4.1rem)}.christianity-zone-card--place .christianity-zone-card-stack val-christianity-card{top:1.45rem;width:clamp(4.05rem,7.6vw,5.25rem)}.christianity-offering-drop-target .christianity-offering-pile{width:100%;height:100%;max-height:none}.christianity-offering-pile>span:not(.christianity-empty-card-slot):not(.christianity-pile-card-hint):not(.christianity-zone-card-stack){position:absolute;top:.72rem;right:.76rem;left:.76rem;z-index:3;justify-self:stretch;max-width:100%;overflow:hidden;padding:0;color:#1f2933b8;font-size:clamp(.74rem,1.9vw,.86rem);font-weight:900;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-pile>strong{position:absolute;right:.58rem;bottom:.64rem;z-index:5;min-width:1.7rem;padding:.13rem .38rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-offering-pile>small{position:absolute;bottom:.78rem;left:.68rem;z-index:5;max-width:calc(100% - 2.7rem);overflow:hidden;color:#1f293394;font-size:.58rem;font-weight:850;line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-slot>.cdk-drag-placeholder{display:none}.christianity-pile-card-hint{position:absolute;top:2.35rem;left:50%;z-index:1;width:clamp(2.7rem,6.4vw,3.4rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.34rem;background:linear-gradient(180deg,#fffffff5,#f8fafce6),radial-gradient(circle at 50% 18%,rgba(250,204,21,.26),transparent 44%);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .42rem .8rem rgba(16,42,67,.14))}.christianity-pile-card-hint i{position:absolute;top:.38rem;right:.38rem;display:block;width:.72rem;height:.72rem;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9) 0 .12rem,transparent .13rem),#ffd91a;box-shadow:inset 0 -.08rem #52401c2e,0 .12rem .24rem #102a431a}.christianity-offering-pile:before,.christianity-offering-pile:after{display:none}.christianity-leader-card{align-self:center;justify-self:center;width:clamp(6.65rem,10.8vw,8.85rem);min-height:0;aspect-ratio:var(--christianity-card-aspect)}.christianity-attack-drop-target{display:grid;justify-items:center;min-width:0}.christianity-rack-spacer{display:block;min-height:1px}.christianity-battle-zone{grid-template-columns:repeat(4,var(--christianity-battle-card-width))}.christianity-shared-zone{box-sizing:border-box;display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch;gap:clamp(.55rem,1.2vw,.9rem);width:100%;max-width:100%;min-width:0}.christianity-zone-card,.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;min-height:8.4rem;padding:.92rem .82rem .78rem;border-color:#24304414;background:linear-gradient(180deg,#ffffff8a,#f8fafc5c),#ffffff3d}.christianity-zone-card--place{background:linear-gradient(180deg,#ffffffb8,#eff6ff80),radial-gradient(circle at 62% 34%,rgba(37,99,235,.18),transparent 52%),#ffffff3d}.christianity-place-backdrop{position:absolute;inset:0;z-index:0;background-position:center;background-size:cover;opacity:.52;filter:blur(1.3rem) saturate(1.28);transform:scale(1.14)}.christianity-zone-card--place:before{content:\"\";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#ffffffad,#fff3),radial-gradient(circle at 50% 42%,rgba(255,255,255,.24),transparent 54%);backdrop-filter:blur(.42rem)}.christianity-place-token{position:absolute;top:2.18rem;left:50%;z-index:2;display:grid;place-items:center;width:clamp(3.2rem,7.2vw,4.45rem);aspect-ratio:1;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:radial-gradient(circle at 35% 24%,rgba(255,255,255,.92),transparent 38%),linear-gradient(135deg,#ffffffe6,#eff6ffb8);box-shadow:0 .65rem 1.1rem #102a4329,inset 0 0 0 .18rem #ffffff70;transform:translate(-50%)}.christianity-place-token img{width:48%;height:48%;object-fit:contain;filter:drop-shadow(0 .18rem .24rem rgba(16,42,67,.14))}.christianity-zone-pile{box-shadow:inset 0 0 0 999px #ffffff0a,0 .45rem 1rem #102a430f}.christianity-zone-card.is-play-target{border-color:#2563eb61;box-shadow:inset 0 0 0 999px #2563eb14,0 0 0 .18rem #2563eb1f}.christianity-zone-pile--history.has-new-card{animation:christianity-history-pulse .9s ease-out both}@keyframes christianity-history-pulse{0%{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}28%{box-shadow:inset 0 0 0 999px #ffffff29,0 0 0 .25rem #2563eb2e;transform:scale(1.025)}to{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}}.christianity-zone-card>val-christianity-card,.christianity-zone-pile>val-christianity-card{position:absolute;top:1.85rem;left:50%;z-index:2;width:clamp(4.15rem,7.5vw,5.35rem);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .35rem .75rem rgba(16,42,67,.12))}.christianity-zone-card--place>val-christianity-card{top:1.55rem;width:clamp(4.4rem,7.8vw,5.85rem);transform:translate(-50%) rotate(2deg);filter:drop-shadow(0 .65rem 1.1rem rgba(16,42,67,.2))}.christianity-zone-pile--deck>val-christianity-card{transform:translate(-50%) rotate(3deg)}.christianity-zone-pile .christianity-pile-card-hint{top:1.85rem;width:clamp(3.75rem,7.4vw,4.85rem);border-color:#102a4324;transform:translate(-50%) rotate(-2deg)}.christianity-zone-pile--deck .christianity-pile-card-hint{background:var(--christianity-card-back);transform:translate(-50%) rotate(3deg)}.christianity-zone-pile--deck .christianity-pile-card-hint i{display:none}.christianity-zone-pile--history .christianity-pile-card-hint{background:linear-gradient(180deg,#fffffff5,#f8fafce6),radial-gradient(circle at 50% 18%,rgba(37,99,235,.18),transparent 44%)}.christianity-zone-card>span:not(.christianity-empty-card-slot):not(.christianity-place-token):not(.christianity-zone-card-stack),.christianity-zone-pile>span:not(.christianity-empty-card-slot):not(.christianity-pile-card-hint):not(.christianity-zone-card-stack){position:absolute;top:.72rem;left:.82rem;z-index:3;justify-self:start;max-width:calc(100% - 1.55rem);overflow:hidden;color:#1f2933d6;font-size:clamp(.76rem,2.5vw,.92rem);text-overflow:ellipsis;white-space:nowrap}.christianity-zone-card>strong,.christianity-zone-pile>strong{position:absolute;right:.45rem;bottom:.45rem;z-index:4;min-width:1.65rem;padding:.12rem .4rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-zone-card>em{position:relative;z-index:4;justify-self:center;align-self:end;padding:.12rem .38rem;border-radius:999px;background:#2563eb1f;color:var(--christianity-theme-focus);font-size:.68rem;font-style:normal;font-weight:900}.christianity-zone-card--place>strong{right:.45rem;transform:none}.christianity-empty-card-slot{position:absolute;top:1.85rem;left:50%;z-index:1;display:block;width:clamp(4.15rem,7.5vw,5.35rem);aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(16,42,67,.22);border-radius:.35rem;background:#ffffff5c;transform:translate(-50%)}.christianity-zone-pile:before,.christianity-zone-pile:after{content:\"\";position:absolute;top:1.95rem;left:50%;z-index:0;width:clamp(3.5rem,7.2vw,4.45rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.35rem;background:#f8fafcf0;transform:translate(calc(-50% + .22rem)) rotate(4deg)}.christianity-zone-pile:after{background:var(--christianity-card-back);transform:translate(calc(-50% - .22rem)) translateY(.16rem) rotate(-3deg)}.christianity-zone-pile.is-empty-zone:before,.christianity-zone-pile.is-empty-zone:after{display:none}.christianity-floating-card-shell{position:fixed;top:50%;left:50%;z-index:10020;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.55rem;width:min(56rem,calc(100vw - 1.25rem));max-height:calc(100dvh - 4.25rem);overflow:visible;overscroll-behavior:contain;scrollbar-width:none;transform:translate(-50%,-50%)}.christianity-floating-card-shell::-webkit-scrollbar{display:none}.christianity-floating-card-shell.is-history-preview{width:min(56rem,calc(100vw - 1.25rem))}.christianity-preview-topbar{position:relative;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-height:2.05rem}.christianity-preview-position{display:inline-grid;place-items:center;min-height:2rem;min-width:3.15rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933b8;font-size:.76rem;font-weight:900;box-shadow:0 .45rem 1rem #102a431a}.christianity-floating-card{position:relative;z-index:2;display:block;width:min(19.25rem,calc(58dvh - 2.4rem),calc(100vw - 6.2rem));min-height:0;padding:0;border:0;border-radius:.75rem;background:transparent;box-shadow:0 0 2.2rem var(--christianity-theme-glow);touch-action:none;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg));transition:transform .14s ease-out}.christianity-preview-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(13rem,17rem);gap:1rem;align-items:center;min-height:0}.christianity-preview-stage{position:relative;display:grid;place-items:center;justify-self:center;width:min(100%,31rem);min-width:0;min-height:0;padding-inline:4.4rem;perspective:52rem}.christianity-preview-stage:before{content:\"\";position:absolute;inset:10% 2.35rem;z-index:0;border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.26),transparent 58%),linear-gradient(90deg,transparent,rgba(37,99,235,.1),transparent);opacity:.8;pointer-events:none}.christianity-preview-ghost{position:absolute;z-index:1;width:min(13rem,calc(42dvh - 3rem),34vw);opacity:.34;pointer-events:none;filter:blur(.02rem) saturate(.9);transition:transform .36s cubic-bezier(.2,.84,.22,1),opacity .36s ease}.christianity-preview-ghost--previous{transform:translate(-86%) rotateY(22deg) rotate(-4deg) scale(.8)}.christianity-preview-ghost--next{transform:translate(86%) rotateY(-22deg) rotate(4deg) scale(.8)}.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card{animation:christianity-preview-slide-previous .36s cubic-bezier(.2,.84,.22,1) both}.christianity-floating-card-shell.is-sliding-next .christianity-floating-card{animation:christianity-preview-slide-next .36s cubic-bezier(.2,.84,.22,1) both}@keyframes christianity-preview-slide-previous{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) - 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(calc(var(--preview-rotate-y, 0deg) + 10deg)) scale(.92)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg)) scale(1)}}@keyframes christianity-preview-slide-next{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) + 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(calc(var(--preview-rotate-y, 0deg) - 10deg)) scale(.92)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg)) scale(1)}}.christianity-preview-side{display:grid;min-width:0}.christianity-floating-card val-christianity-card{display:block;width:100%;min-height:0}.christianity-floating-card-shell.is-gallery-preview .christianity-floating-card{width:min(20.4rem,calc(62dvh - 2.2rem),calc(100vw - 5.4rem))}.christianity-preview-bible-credit{justify-self:center;max-width:min(20rem,calc(100vw - 4rem));margin:.2rem 0 0;color:#ffffffbd;font-size:.48rem;font-weight:700;line-height:1.2;text-align:center;text-shadow:0 .1rem .25rem rgba(15,23,42,.35)}.christianity-full-card-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.42rem;align-items:center}.christianity-full-card-header strong{min-width:0;display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;text-overflow:clip;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:clamp(1.25rem,5vw,1.85rem);line-height:1.04}.christianity-full-card-type-icon,.christianity-full-card-cost{display:grid;place-items:center;border-radius:999px}.christianity-full-card-type-icon{width:1.6rem;height:1.6rem;background:radial-gradient(circle at 50% 50%,rgba(95,111,42,.72) 0 .22rem,transparent .24rem),#2430441a}.christianity-full-card-type-icon img{width:1rem;height:1rem;object-fit:contain}.christianity-full-card-cost{min-width:2.1rem;height:2.1rem;padding:0 .36rem;background:#ffd91a;color:#243044;font-size:1.1rem;font-weight:900;box-shadow:inset 0 -.12rem #52401c2e}.christianity-full-card-art{position:relative;display:grid;place-items:center;min-height:9rem;overflow:hidden;border-radius:.48rem;background:linear-gradient(135deg,#5f6f2a33,#d6a21d29),radial-gradient(circle at 50% 25%,rgba(255,255,255,.76),transparent 42%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-full-card-art img{width:100%;height:100%;object-fit:cover}.christianity-full-card-art>span{max-width:80%;color:#24304494;font-size:clamp(1.1rem,5vw,1.8rem);font-weight:900;line-height:1.05;text-align:center}.christianity-full-card-art small{position:absolute;right:0;bottom:.55rem;min-width:5rem;padding:.16rem .48rem;border-radius:999px 0 0 999px;background:#ffffffe6;box-shadow:0 .3rem .8rem #102a431f;color:#1f2933bd;font-size:.68rem;font-style:italic;font-weight:900;text-align:center;text-transform:uppercase}.christianity-full-card-verse,.christianity-full-card-effect{display:grid;gap:.32rem}.christianity-full-card-verse p,.christianity-full-card-effect p{margin:0;line-height:1.25}.christianity-full-card-verse{color:#171923;font-family:Georgia,Times New Roman,serif;font-size:clamp(.72rem,2.7vw,.86rem)}.christianity-full-card-verse strong{font-family:inherit;font-size:.78rem;font-weight:900}.christianity-full-card-effect{position:relative;align-content:start;min-height:7rem;padding:.6rem .7rem;overflow:hidden;border-radius:.45rem;background:radial-gradient(circle at 50% 72%,rgba(36,48,68,.07),transparent 34%),#ffffffdb}.christianity-full-card-stats{display:flex;gap:1rem;min-height:1.35rem}.christianity-full-card-stats strong{font-size:1rem;line-height:1}.christianity-full-card-stats .christianity-full-card-pips{display:inline-grid;grid-auto-flow:column;gap:.2rem;justify-self:start;padding:0;background:transparent}.christianity-full-card-effect>div:last-of-type{display:grid;gap:.12rem}.christianity-full-card-effect>div:last-of-type strong{font-size:.82rem}.christianity-full-card-effect p{font-size:clamp(.78rem,2.9vw,.92rem)}.christianity-full-card-rarity{position:absolute;top:.62rem;right:.62rem;width:.46rem;height:.46rem;border-radius:.12rem;transform:rotate(45deg)}.christianity-full-card-rarity.is-normal{background:#3a80e9}.christianity-full-card-rarity.is-good{background:#4ee93a}.christianity-full-card-rarity.is-very-good{background:#e9ce3a}.christianity-full-card-footer{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:.34rem;align-items:center;color:#1f2933ad;font-size:.58rem;line-height:1;text-transform:uppercase}.christianity-full-card-footer span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-floating-card-close{position:relative;z-index:8;min-height:2rem;padding:0 .6rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .45rem 1rem #102a431a}.christianity-preview-nav{position:absolute;top:50%;z-index:7;display:grid;place-items:center;width:2.55rem;height:2.55rem;border:1px solid rgba(37,99,235,.28);border-radius:999px;background:linear-gradient(180deg,#fffffffa,#eff6fff0),radial-gradient(circle at 35% 20%,rgba(37,99,235,.18),transparent 52%);color:var(--christianity-theme-focus);font:inherit;font-size:1.2rem;font-weight:1000;box-shadow:0 .75rem 1.4rem #102a4324,inset 0 0 0 1px #ffffff70;transform:translateY(-50%)}.christianity-preview-nav:hover{border-color:#2563eb6b;box-shadow:0 .95rem 1.65rem #102a432e,0 0 0 .16rem #2563eb14,inset 0 0 0 1px #ffffff9e}.christianity-preview-nav--previous{left:.6rem}.christianity-preview-nav--next{right:.6rem}.christianity-preview-backdrop,.christianity-history-backdrop,.christianity-info-backdrop{position:fixed;inset:0;border:0;border-radius:0;background:#0f172aa3}.christianity-preview-backdrop{z-index:10010;backdrop-filter:blur(.12rem)}.christianity-info-backdrop{z-index:50}.christianity-info-panel{position:fixed;top:50%;left:50%;z-index:51;width:min(31rem,calc(100vw - 1.25rem));max-height:min(34rem,calc(100vh - 2rem));padding-top:2.35rem;transform:translate(-50%,-50%)}.christianity-info-close{position:absolute;top:0;right:.15rem;z-index:2}.christianity-rule-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem;max-height:inherit;padding:1rem;overflow-y:auto;border:1px solid rgba(36,48,68,.14);border-radius:.9rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 38%);box-shadow:0 1.2rem 2.6rem #102a433d,inset 0 0 0 .25rem #ffffff85}.christianity-rule-note-icon{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:999px;background:color-mix(in srgb,var(--christianity-theme-focus) 12%,#ffffff);color:var(--christianity-theme-focus);font-size:1rem;font-weight:900;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent)}.christianity-rule-note small,.christianity-rule-note strong,.christianity-rule-note p,.christianity-rule-note h2{margin:0}.christianity-rule-note small{color:#1f29339e;font-size:.78rem;font-weight:800;text-transform:uppercase}.christianity-rule-note h2{margin-top:.18rem;font-size:clamp(1.5rem,7vw,2.2rem);line-height:1.05}.christianity-rule-note strong{display:inline-flex;width:fit-content;margin-top:.55rem;padding:.22rem .55rem;border-radius:999px;background:#edf2f7;font-size:.92rem}.christianity-rule-note p{margin-top:.75rem;color:#1f2933c7;line-height:1.45}.christianity-rule-note ul{display:grid;gap:.45rem;margin:.8rem 0 0;padding-left:1.05rem;color:#1f2933c7;line-height:1.35}.christianity-floating-card>small,.christianity-floating-card>span{color:#1f2933a3}.christianity-floating-card>strong{font-size:clamp(1.55rem,8vw,2.35rem);line-height:1.05}.christianity-floating-card>p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-preview-rule-note{position:relative;z-index:4;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;max-height:min(18rem,54dvh);padding:.68rem .76rem;overflow-y:auto;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:linear-gradient(180deg,#ffffffe0,#f8fafcd1),radial-gradient(circle at 8% 0%,rgba(37,99,235,.07),transparent 44%);box-shadow:0 .55rem 1.2rem #102a4314}.christianity-preview-abilities{position:relative;z-index:4;display:grid;grid-template-rows:auto auto minmax(4.5rem,1fr) auto;gap:.5rem;max-height:min(15rem,34dvh);min-height:0;padding:.72rem .78rem .78rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:.75rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 44%);box-shadow:0 .75rem 1.6rem #102a431f}.christianity-preview-abilities-header{display:flex;align-items:center;justify-content:space-between;gap:.7rem;min-width:0}.christianity-preview-abilities-header>div{display:grid;gap:.1rem;min-width:0}.christianity-preview-abilities small,.christianity-preview-abilities p,.christianity-preview-abilities-header span,.christianity-preview-ability-card strong{margin:0}.christianity-preview-abilities small{color:#1f293394;font-size:.68rem;font-weight:900;text-transform:uppercase}.christianity-preview-abilities-header span{color:#1f293385;font-size:.72rem;font-weight:900}.christianity-preview-ability-nav{display:flex;flex:0 0 auto;gap:.35rem}.christianity-preview-ability-nav button{display:grid;place-items:center;width:1.85rem;height:1.85rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:#ffffffe0;color:var(--christianity-theme-focus);font:inherit;font-size:1rem;font-weight:950;line-height:1;box-shadow:0 .35rem .85rem #2563eb24}.christianity-preview-ability-tabs{display:flex;gap:.34rem;overflow-x:auto;scrollbar-width:none}.christianity-preview-ability-tabs::-webkit-scrollbar{display:none}.christianity-preview-ability-tabs button{flex:0 0 auto;max-width:100%;min-height:1.85rem;padding:0 .58rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:999px;background:#edf2f7d1;color:#1f2933c2;font:inherit;font-size:.74rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-tabs button.is-selected{border-color:#2563eb52;background:color-mix(in srgb,var(--christianity-theme-focus) 14%,#ffffff);color:var(--christianity-theme-focus)}.christianity-preview-ability-card{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:4.5rem;gap:.34rem;padding:.55rem .62rem;overflow:hidden;border:1px solid rgba(148,163,184,.16);border-radius:.62rem;background:#ffffff94}.christianity-preview-ability-card strong{overflow:hidden;color:#1f2933e6;font-size:.82rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-scroll{min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;padding-right:.25rem}.christianity-preview-abilities p{color:#1f2933bd;font-size:.8rem;line-height:1.32}.christianity-preview-ability-footer{display:flex;justify-content:flex-end;align-self:end}.christianity-preview-use-ability{min-height:2rem;padding:0 .72rem;border:0;border-radius:999px;background:var(--christianity-theme-focus);color:#fff;font:inherit;font-size:.78rem;font-weight:900;box-shadow:0 .55rem 1.1rem #2563eb38}.christianity-preview-use-ability:disabled{background:#94a3b85c;color:#1f293380;box-shadow:none}.christianity-preview-rule-note small,.christianity-preview-rule-note strong,.christianity-preview-rule-note p{margin:0}.christianity-preview-rule-note small{color:#1f293394;font-size:.68rem;font-weight:800;text-transform:uppercase}.christianity-preview-rule-note strong{display:block;margin-top:.08rem;font-size:.92rem;line-height:1.1}.christianity-preview-rule-note p{margin-top:.22rem;color:#1f2933bd;font-size:.82rem;line-height:1.32}@media (min-width: 52rem){.christianity-floating-card-shell{width:min(58rem,calc(100vw - 3rem))}.christianity-floating-card{min-height:0;padding:0;width:min(23.4rem,calc(69dvh - 5.85rem),25rem)}}@media (max-width: 51.99rem){.christianity-floating-card-shell{top:50%;gap:.4rem;width:min(calc(100vw - .9rem),24rem);max-height:calc(100dvh - 1.15rem)}.christianity-preview-content{grid-template-columns:minmax(0,1fr)}.christianity-preview-side{display:none}.christianity-preview-stage{width:100%;padding-inline:3.55rem}.christianity-floating-card{width:min(16.5rem,calc(66dvh - 7.4rem),calc(100vw - 6.35rem));justify-self:center}.christianity-floating-card-shell.is-gallery-preview .christianity-floating-card{width:min(17.25rem,calc(70dvh - 7.2rem),calc(100vw - 5.75rem))}.christianity-preview-bible-credit{max-width:min(17.5rem,calc(100vw - 4.25rem));font-size:.42rem;line-height:1.18}.christianity-preview-ghost{display:block;width:min(7.1rem,calc(30dvh - 4rem),24vw);opacity:.24}.christianity-preview-ghost--previous{transform:translate(-118%) rotateY(24deg) rotate(-5deg) scale(.78)}.christianity-preview-ghost--next{transform:translate(118%) rotateY(-24deg) rotate(5deg) scale(.78)}.christianity-floating-card-close{min-height:1.9rem;padding:0 .58rem;font-size:.72rem}.christianity-preview-nav{width:2.2rem;height:2.2rem}.christianity-preview-nav--previous{left:.35rem}.christianity-preview-nav--next{right:.35rem}.christianity-preview-abilities{grid-template-rows:auto auto minmax(4.7rem,1fr) auto;max-height:min(13.5rem,34dvh);padding:.62rem .7rem}.christianity-preview-ability-tabs{padding-bottom:.02rem}.christianity-preview-ability-card{min-height:4.7rem;padding:.48rem .54rem}.christianity-preview-abilities p{font-size:.78rem;line-height:1.24}.christianity-preview-use-ability{min-height:1.95rem;padding-inline:.68rem}}.christianity-history-backdrop{z-index:40}.christianity-gallery-backdrop{z-index:10000;background:#0f172ab8;backdrop-filter:blur(.14rem)}.christianity-history-drawer{position:fixed;right:auto;bottom:max(.5rem,env(safe-area-inset-bottom));left:50%;z-index:41;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;width:min(calc(100vw - 1rem),44rem);min-height:min(18rem,calc(100dvh - 1rem));max-height:min(32rem,calc(100dvh - 2rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347;transform:translate(-50%)}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-dialog-actions{display:flex;align-items:center;gap:.45rem}.christianity-dialog-close{min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#fff;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .8rem #102a4314}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem .1rem .25rem}.christianity-history-grid::-webkit-scrollbar,.christianity-offering-list::-webkit-scrollbar{width:.65rem}.christianity-history-grid::-webkit-scrollbar-track,.christianity-offering-list::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-history-grid::-webkit-scrollbar-thumb,.christianity-offering-list::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offerings-drawer{grid-template-rows:auto auto minmax(0,1fr);width:min(calc(100vw - 1rem),48rem);min-height:min(20rem,calc(100dvh - 1rem));max-height:min(34rem,calc(100dvh - 2rem))}.christianity-offerings-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;padding:.72rem .8rem;border:1px solid rgba(36,48,68,.12);border-radius:.7rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 8% 0%,rgba(214,162,29,.12),transparent 42%)}.christianity-offerings-note p{margin:0;color:#1f2933c2;font-size:.86rem;line-height:1.35}.christianity-offering-list{display:grid;gap:.6rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem}.christianity-offering-row{display:grid;grid-template-columns:minmax(5.4rem,6.5rem) minmax(0,1fr);gap:.65rem;align-items:center;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.65rem;background:#fff}.christianity-offering-row.is-exhausted{opacity:.68}.christianity-gallery-drawer{position:fixed;grid-template-rows:auto auto auto minmax(0,1fr);inset:0;z-index:10001;box-sizing:border-box;width:100dvw;height:100dvh;max-width:none;min-height:100dvh;max-height:100dvh;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));border:0;border-radius:0;background:linear-gradient(180deg,#f8fafcfc,#eff6fffc),radial-gradient(circle at 16% 0%,rgba(37,99,235,.12),transparent 42%);transform:none}.christianity-gallery-drawer header>div:first-child{display:grid;gap:.15rem;min-width:0}.christianity-gallery-drawer header p{color:#1f293394;font-size:.82rem}.christianity-gallery-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(8.5rem,13rem);gap:.65rem;min-width:0}.christianity-gallery-controls label{display:grid;gap:.25rem;min-width:0;color:#1f29339e;font-size:.74rem;font-weight:800}.christianity-gallery-controls input,.christianity-gallery-controls select{width:100%;min-width:0;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(36,48,68,.16);border-radius:.65rem;background:#fff;color:var(--christianity-theme-ink);font:inherit;font-size:.9rem}.christianity-gallery-edition-strip{display:flex;gap:.45rem;overflow-x:auto;min-width:0;padding-bottom:.2rem}.christianity-gallery-edition-strip button{display:inline-flex;align-items:center;gap:.45rem;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(214,162,29,.38);border-radius:999px;background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800}.christianity-gallery-edition-strip img{width:1.2rem;height:1.2rem;object-fit:contain}.christianity-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.2rem,9.1rem));justify-content:center;align-content:start;gap:.95rem;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.35rem .15rem .65rem}.christianity-gallery-grid .christianity-gallery-card-button{width:100%}.christianity-gallery-grid::-webkit-scrollbar{width:.65rem}.christianity-gallery-grid::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-gallery-grid::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offering-card{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;gap:.26rem;width:100%;min-height:7.7rem;padding:.58rem;overflow:hidden;text-align:left;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 78% 14%,rgba(250,204,21,.78) 0 .42rem,transparent .44rem);box-shadow:0 .45rem 1rem #102a431a}.christianity-offering-card small{min-width:0;overflow:hidden;color:#1f293394;font-size:.62rem;font-weight:800;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-offering-card strong{display:-webkit-box;align-self:start;min-width:0;margin-top:.1rem;overflow:hidden;overflow-wrap:anywhere;font-size:.88rem;line-height:1.05;-webkit-box-orient:vertical;-webkit-line-clamp:3}.christianity-offering-card span{position:absolute;right:.42rem;bottom:.42rem;display:grid;place-items:center;min-width:1.55rem;height:1.55rem;padding:0 .28rem;border-radius:999px;background:#edf2f7;font-size:.82rem;font-weight:900}.christianity-offering-card em{align-self:end;max-width:calc(100% - 1.9rem);overflow:hidden;color:#1f29339e;font-size:.64rem;font-style:normal;font-weight:800;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-card p,.christianity-offering-row p{margin:0}.christianity-offering-card p{align-self:end;color:#1f2933a3;font-size:.72rem;line-height:1.2}.christianity-offering-row>div{display:grid;gap:.35rem;align-content:center;min-width:0}.christianity-offering-row>div p{color:#1f2933b8;font-size:.85rem;line-height:1.3}.christianity-offering-row>div button{justify-self:start;min-height:2.2rem;padding:0 .7rem;border:1px solid rgba(16,42,67,.16);border-radius:.5rem;background:#102a43;color:#fff;font:inherit;font-weight:800}.christianity-offering-row>div button:disabled{background:#e2e8f0;color:#1f293394}.christianity-history-grid .christianity-render-card-button{justify-self:center;width:min(100%,6.4rem)}.christianity-gallery-grid .christianity-render-card-button{justify-self:center;width:min(100%,8.7rem)}.christianity-gallery-grid .christianity-card-frame-header strong{font-size:clamp(.74rem,.85vw,.9rem)}.christianity-gallery-grid .christianity-card-frame-header small,.christianity-gallery-grid .christianity-card-frame-footer{font-size:.44rem}.christianity-offering-card.christianity-render-card-button{width:min(100%,5.8rem);min-height:0;padding:0;border:0;background:transparent;box-shadow:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent);outline-offset:.125rem}:host-context(.dark),:host-context(.ion-palette-dark),:host-context(html.ion-palette-dark),:host-context(body.dark),:host-context([data-theme=\"dark\"]){--christianity-theme-ink: var(--ion-text-color, #e5edf8);--christianity-theme-surface: #111827;--christianity-theme-parchment: #13223a;--christianity-theme-olive: #93c5fd;--christianity-theme-gold: #60a5fa;--christianity-theme-gold-soft: rgba(96, 165, 250, .18);--christianity-theme-gold-ring: rgba(147, 197, 253, .42);--christianity-theme-glow: rgba(96, 165, 250, .24);--christianity-theme-focus: #93c5fd;--christianity-theme-shadow: rgba(0, 0, 0, .34);--christianity-theme-shadow-strong: rgba(0, 0, 0, .48);--christianity-card-back: linear-gradient(135deg, rgba(147, 197, 253, .2), rgba(15, 23, 42, .08)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(147, 197, 253, .15), rgba(15, 23, 42, .06)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);color-scheme:dark}:host-context(.dark) .christianity-gallery-open,:host-context(.ion-palette-dark) .christianity-gallery-open,:host-context(html.ion-palette-dark) .christianity-gallery-open,:host-context(body.dark) .christianity-gallery-open,:host-context([data-theme=\"dark\"]) .christianity-gallery-open,:host-context(.dark) .christianity-secondary-action,:host-context(.ion-palette-dark) .christianity-secondary-action,:host-context(html.ion-palette-dark) .christianity-secondary-action,:host-context(body.dark) .christianity-secondary-action,:host-context([data-theme=\"dark\"]) .christianity-secondary-action,:host-context(.dark) .christianity-gallery-edition-strip button,:host-context(.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(html.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(body.dark) .christianity-gallery-edition-strip button,:host-context([data-theme=\"dark\"]) .christianity-gallery-edition-strip button{border-color:#93c5fd5c;background:linear-gradient(180deg,#1e3a5fd1,#0f172ae0),radial-gradient(circle at 20% 0%,rgba(96,165,250,.16),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.2rem #0000003d}:host-context(.dark) .christianity-splash,:host-context(.ion-palette-dark) .christianity-splash,:host-context(html.ion-palette-dark) .christianity-splash,:host-context(body.dark) .christianity-splash,:host-context([data-theme=\"dark\"]) .christianity-splash{border-color:#93c5fd38;background:radial-gradient(circle at 50% 18%,rgba(96,165,250,.16),transparent 22rem),linear-gradient(180deg,#0f172ae0,#07111ff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #00000047}:host-context(.dark) .christianity-start__cards article,:host-context(.ion-palette-dark) .christianity-start__cards article,:host-context(html.ion-palette-dark) .christianity-start__cards article,:host-context(body.dark) .christianity-start__cards article,:host-context([data-theme=\"dark\"]) .christianity-start__cards article,:host-context(.dark) .christianity-start__modes article,:host-context(.ion-palette-dark) .christianity-start__modes article,:host-context(html.ion-palette-dark) .christianity-start__modes article,:host-context(body.dark) .christianity-start__modes article,:host-context([data-theme=\"dark\"]) .christianity-start__modes article,:host-context(.dark) .christianity-start__status span,:host-context(.ion-palette-dark) .christianity-start__status span,:host-context(html.ion-palette-dark) .christianity-start__status span,:host-context(body.dark) .christianity-start__status span,:host-context([data-theme=\"dark\"]) .christianity-start__status span,:host-context(.dark) .christianity-start__modes article>span,:host-context(.ion-palette-dark) .christianity-start__modes article>span,:host-context(html.ion-palette-dark) .christianity-start__modes article>span,:host-context(body.dark) .christianity-start__modes article>span,:host-context([data-theme=\"dark\"]) .christianity-start__modes article>span{border-color:#94a3b833;background:#0f172aad;box-shadow:0 .75rem 1.7rem #00000038}:host-context(.dark) .christianity-splash p,:host-context(.ion-palette-dark) .christianity-splash p,:host-context(html.ion-palette-dark) .christianity-splash p,:host-context(body.dark) .christianity-splash p,:host-context([data-theme=\"dark\"]) .christianity-splash p,:host-context(.dark) .christianity-start__copy p,:host-context(.ion-palette-dark) .christianity-start__copy p,:host-context(html.ion-palette-dark) .christianity-start__copy p,:host-context(body.dark) .christianity-start__copy p,:host-context([data-theme=\"dark\"]) .christianity-start__copy p,:host-context(.dark) .christianity-start__cards p,:host-context(.ion-palette-dark) .christianity-start__cards p,:host-context(html.ion-palette-dark) .christianity-start__cards p,:host-context(body.dark) .christianity-start__cards p,:host-context([data-theme=\"dark\"]) .christianity-start__cards p,:host-context(.dark) .christianity-start__modes p,:host-context(.ion-palette-dark) .christianity-start__modes p,:host-context(html.ion-palette-dark) .christianity-start__modes p,:host-context(body.dark) .christianity-start__modes p,:host-context([data-theme=\"dark\"]) .christianity-start__modes p,:host-context(.dark) .christianity-header p,:host-context(.ion-palette-dark) .christianity-header p,:host-context(html.ion-palette-dark) .christianity-header p,:host-context(body.dark) .christianity-header p,:host-context([data-theme=\"dark\"]) .christianity-header p,:host-context(.dark) .christianity-match-player small,:host-context(.ion-palette-dark) .christianity-match-player small,:host-context(html.ion-palette-dark) .christianity-match-player small,:host-context(body.dark) .christianity-match-player small,:host-context([data-theme=\"dark\"]) .christianity-match-player small,:host-context(.dark) .christianity-scoreboard span,:host-context(.ion-palette-dark) .christianity-scoreboard span,:host-context(html.ion-palette-dark) .christianity-scoreboard span,:host-context(body.dark) .christianity-scoreboard span,:host-context([data-theme=\"dark\"]) .christianity-scoreboard span{color:#e2e8f0bd}:host-context(.dark) .christianity-turn,:host-context(.ion-palette-dark) .christianity-turn,:host-context(html.ion-palette-dark) .christianity-turn,:host-context(body.dark) .christianity-turn,:host-context([data-theme=\"dark\"]) .christianity-turn,:host-context(.dark) .christianity-leader,:host-context(.ion-palette-dark) .christianity-leader,:host-context(html.ion-palette-dark) .christianity-leader,:host-context(body.dark) .christianity-leader,:host-context([data-theme=\"dark\"]) .christianity-leader,:host-context(.dark) .christianity-offerings,:host-context(.ion-palette-dark) .christianity-offerings,:host-context(html.ion-palette-dark) .christianity-offerings,:host-context(body.dark) .christianity-offerings,:host-context([data-theme=\"dark\"]) .christianity-offerings,:host-context(.dark) .christianity-hidden-hand,:host-context(.ion-palette-dark) .christianity-hidden-hand,:host-context(html.ion-palette-dark) .christianity-hidden-hand,:host-context(body.dark) .christianity-hidden-hand,:host-context([data-theme=\"dark\"]) .christianity-hidden-hand,:host-context(.dark) .christianity-pile,:host-context(.ion-palette-dark) .christianity-pile,:host-context(html.ion-palette-dark) .christianity-pile,:host-context(body.dark) .christianity-pile,:host-context([data-theme=\"dark\"]) .christianity-pile,:host-context(.dark) .christianity-deck,:host-context(.ion-palette-dark) .christianity-deck,:host-context(html.ion-palette-dark) .christianity-deck,:host-context(body.dark) .christianity-deck,:host-context([data-theme=\"dark\"]) .christianity-deck,:host-context(.dark) .christianity-place,:host-context(.ion-palette-dark) .christianity-place,:host-context(html.ion-palette-dark) .christianity-place,:host-context(body.dark) .christianity-place,:host-context([data-theme=\"dark\"]) .christianity-place,:host-context(.dark) .christianity-match-strip,:host-context(.ion-palette-dark) .christianity-match-strip,:host-context(html.ion-palette-dark) .christianity-match-strip,:host-context(body.dark) .christianity-match-strip,:host-context([data-theme=\"dark\"]) .christianity-match-strip,:host-context(.dark) .christianity-actions,:host-context(.ion-palette-dark) .christianity-actions,:host-context(html.ion-palette-dark) .christianity-actions,:host-context(body.dark) .christianity-actions,:host-context([data-theme=\"dark\"]) .christianity-actions,:host-context(.dark) .christianity-history,:host-context(.ion-palette-dark) .christianity-history,:host-context(html.ion-palette-dark) .christianity-history,:host-context(body.dark) .christianity-history,:host-context([data-theme=\"dark\"]) .christianity-history{border-color:#94a3b82e;background:#0f172ad1}:host-context(.dark) .christianity-turn.is-own-turn,:host-context(.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(html.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(body.dark) .christianity-turn.is-own-turn,:host-context([data-theme=\"dark\"]) .christianity-turn.is-own-turn{border-color:#2dd4bf5c;background:#14534c5c}:host-context(.dark) .christianity-table,:host-context(.ion-palette-dark) .christianity-table,:host-context(html.ion-palette-dark) .christianity-table,:host-context(body.dark) .christianity-table,:host-context([data-theme=\"dark\"]) .christianity-table{background:linear-gradient(180deg,#10233d,#0b1728)}:host-context(.dark) .christianity-player-side,:host-context(.ion-palette-dark) .christianity-player-side,:host-context(html.ion-palette-dark) .christianity-player-side,:host-context(body.dark) .christianity-player-side,:host-context([data-theme=\"dark\"]) .christianity-player-side{background:#0f172a57}:host-context(.dark) .christianity-battle-zone,:host-context(.ion-palette-dark) .christianity-battle-zone,:host-context(html.ion-palette-dark) .christianity-battle-zone,:host-context(body.dark) .christianity-battle-zone,:host-context([data-theme=\"dark\"]) .christianity-battle-zone,:host-context(.dark) .christianity-shared-zone,:host-context(.ion-palette-dark) .christianity-shared-zone,:host-context(html.ion-palette-dark) .christianity-shared-zone,:host-context(body.dark) .christianity-shared-zone,:host-context([data-theme=\"dark\"]) .christianity-shared-zone{background:#0f172a94}:host-context(.dark) .christianity-battle-zone.is-placing-card,:host-context(.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(html.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(body.dark) .christianity-battle-zone.is-placing-card,:host-context([data-theme=\"dark\"]) .christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#1e3a5fd1,#0f172ab8),#0f172a94}:host-context(.dark) .christianity-card,:host-context(.ion-palette-dark) .christianity-card,:host-context(html.ion-palette-dark) .christianity-card,:host-context(body.dark) .christianity-card,:host-context([data-theme=\"dark\"]) .christianity-card,:host-context(.dark) .christianity-slot,:host-context(.ion-palette-dark) .christianity-slot,:host-context(html.ion-palette-dark) .christianity-slot,:host-context(body.dark) .christianity-slot,:host-context([data-theme=\"dark\"]) .christianity-slot{border-color:#94a3b83d;background:#0f172a8a}:host-context(.dark) .christianity-slot--play-target,:host-context(.ion-palette-dark) .christianity-slot--play-target,:host-context(html.ion-palette-dark) .christianity-slot--play-target,:host-context(body.dark) .christianity-slot--play-target,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target{color:var(--christianity-theme-ink);background:linear-gradient(180deg,#2563eb3d,#0f172ac7),#0f172abd}:host-context(.dark) .christianity-slot--play-target span,:host-context(.ion-palette-dark) .christianity-slot--play-target span,:host-context(html.ion-palette-dark) .christianity-slot--play-target span,:host-context(body.dark) .christianity-slot--play-target span,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target span,:host-context(.dark) .christianity-card strong,:host-context(.ion-palette-dark) .christianity-card strong,:host-context(html.ion-palette-dark) .christianity-card strong,:host-context(body.dark) .christianity-card strong,:host-context([data-theme=\"dark\"]) .christianity-card strong{background:#1e293beb}:host-context(.dark) .christianity-offering-pile,:host-context(.ion-palette-dark) .christianity-offering-pile,:host-context(html.ion-palette-dark) .christianity-offering-pile,:host-context(body.dark) .christianity-offering-pile,:host-context([data-theme=\"dark\"]) .christianity-offering-pile,:host-context(.dark) .christianity-zone-card,:host-context(.ion-palette-dark) .christianity-zone-card,:host-context(html.ion-palette-dark) .christianity-zone-card,:host-context(body.dark) .christianity-zone-card,:host-context([data-theme=\"dark\"]) .christianity-zone-card,:host-context(.dark) .christianity-zone-pile,:host-context(.ion-palette-dark) .christianity-zone-pile,:host-context(html.ion-palette-dark) .christianity-zone-pile,:host-context(body.dark) .christianity-zone-pile,:host-context([data-theme=\"dark\"]) .christianity-zone-pile{border-color:#94a3b83d;background:linear-gradient(180deg,#111827f5,#0f172af0),radial-gradient(circle at 14% 0%,rgba(96,165,250,.12),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.25rem #00000047,inset 0 0 0 .12rem #ffffff08}:host-context(.dark) .christianity-offering-pile>span,:host-context(.ion-palette-dark) .christianity-offering-pile>span,:host-context(html.ion-palette-dark) .christianity-offering-pile>span,:host-context(body.dark) .christianity-offering-pile>span,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>span,:host-context(.dark) .christianity-zone-card>span,:host-context(.ion-palette-dark) .christianity-zone-card>span,:host-context(html.ion-palette-dark) .christianity-zone-card>span,:host-context(body.dark) .christianity-zone-card>span,:host-context([data-theme=\"dark\"]) .christianity-zone-card>span,:host-context(.dark) .christianity-zone-pile>span,:host-context(.ion-palette-dark) .christianity-zone-pile>span,:host-context(html.ion-palette-dark) .christianity-zone-pile>span,:host-context(body.dark) .christianity-zone-pile>span,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>span,:host-context(.dark) .christianity-player-badge,:host-context(.ion-palette-dark) .christianity-player-badge,:host-context(html.ion-palette-dark) .christianity-player-badge,:host-context(body.dark) .christianity-player-badge,:host-context([data-theme=\"dark\"]) .christianity-player-badge{color:#e2e8f0c7}:host-context(.dark) .christianity-offering-pile>small,:host-context(.ion-palette-dark) .christianity-offering-pile>small,:host-context(html.ion-palette-dark) .christianity-offering-pile>small,:host-context(body.dark) .christianity-offering-pile>small,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>small{color:#e2e8f09e}:host-context(.dark) .christianity-offering-pile>strong,:host-context(.ion-palette-dark) .christianity-offering-pile>strong,:host-context(html.ion-palette-dark) .christianity-offering-pile>strong,:host-context(body.dark) .christianity-offering-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>strong,:host-context(.dark) .christianity-zone-card>strong,:host-context(.ion-palette-dark) .christianity-zone-card>strong,:host-context(html.ion-palette-dark) .christianity-zone-card>strong,:host-context(body.dark) .christianity-zone-card>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-card>strong,:host-context(.dark) .christianity-zone-pile>strong,:host-context(.ion-palette-dark) .christianity-zone-pile>strong,:host-context(html.ion-palette-dark) .christianity-zone-pile>strong,:host-context(body.dark) .christianity-zone-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>strong,:host-context(.dark) .christianity-hand-meter,:host-context(.ion-palette-dark) .christianity-hand-meter,:host-context(html.ion-palette-dark) .christianity-hand-meter,:host-context(body.dark) .christianity-hand-meter,:host-context([data-theme=\"dark\"]) .christianity-hand-meter{border-color:#94a3b833;background:#0f172ae0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #00000047}:host-context(.dark) .christianity-hand-meter span,:host-context(.ion-palette-dark) .christianity-hand-meter span,:host-context(html.ion-palette-dark) .christianity-hand-meter span,:host-context(body.dark) .christianity-hand-meter span,:host-context([data-theme=\"dark\"]) .christianity-hand-meter span{color:#e2e8f0b3}:host-context(.dark) .christianity-offering-pile:before,:host-context(.ion-palette-dark) .christianity-offering-pile:before,:host-context(html.ion-palette-dark) .christianity-offering-pile:before,:host-context(body.dark) .christianity-offering-pile:before,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:before,:host-context(.dark) .christianity-zone-pile:before,:host-context(.ion-palette-dark) .christianity-zone-pile:before,:host-context(html.ion-palette-dark) .christianity-zone-pile:before,:host-context(body.dark) .christianity-zone-pile:before,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:before{border-color:#94a3b833;background:#e2e8f0eb;box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-offering-pile:after,:host-context(.ion-palette-dark) .christianity-offering-pile:after,:host-context(html.ion-palette-dark) .christianity-offering-pile:after,:host-context(body.dark) .christianity-offering-pile:after,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:after,:host-context(.dark) .christianity-zone-pile:after,:host-context(.ion-palette-dark) .christianity-zone-pile:after,:host-context(html.ion-palette-dark) .christianity-zone-pile:after,:host-context(body.dark) .christianity-zone-pile:after,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:after{border-color:#94a3b838;background:var(--christianity-card-back);box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-end-turn:disabled,:host-context(.ion-palette-dark) .christianity-end-turn:disabled,:host-context(html.ion-palette-dark) .christianity-end-turn:disabled,:host-context(body.dark) .christianity-end-turn:disabled,:host-context([data-theme=\"dark\"]) .christianity-end-turn:disabled{border-color:#94a3b829;background:#0f172a75;color:#e2e8f06b;opacity:1}:host-context(.dark) .christianity-history-drawer,:host-context(.ion-palette-dark) .christianity-history-drawer,:host-context(html.ion-palette-dark) .christianity-history-drawer,:host-context(body.dark) .christianity-history-drawer,:host-context([data-theme=\"dark\"]) .christianity-history-drawer,:host-context(.dark) .christianity-rule-note,:host-context(.ion-palette-dark) .christianity-rule-note,:host-context(html.ion-palette-dark) .christianity-rule-note,:host-context(body.dark) .christianity-rule-note,:host-context([data-theme=\"dark\"]) .christianity-rule-note,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note,:host-context(.dark) .christianity-preview-abilities,:host-context(.ion-palette-dark) .christianity-preview-abilities,:host-context(html.ion-palette-dark) .christianity-preview-abilities,:host-context(body.dark) .christianity-preview-abilities,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities{border-color:#94a3b82e;background:linear-gradient(180deg,#0f172af5,#111827f5),radial-gradient(circle at 8% 0%,rgba(96,165,250,.12),transparent 40%);box-shadow:0 1.5rem 4rem #0000006b}:host-context(.dark) .christianity-dialog-close,:host-context(.ion-palette-dark) .christianity-dialog-close,:host-context(html.ion-palette-dark) .christianity-dialog-close,:host-context(body.dark) .christianity-dialog-close,:host-context([data-theme=\"dark\"]) .christianity-dialog-close,:host-context(.dark) .christianity-floating-card-close,:host-context(.ion-palette-dark) .christianity-floating-card-close,:host-context(html.ion-palette-dark) .christianity-floating-card-close,:host-context(body.dark) .christianity-floating-card-close,:host-context([data-theme=\"dark\"]) .christianity-floating-card-close,:host-context(.dark) .christianity-preview-position,:host-context(.ion-palette-dark) .christianity-preview-position,:host-context(html.ion-palette-dark) .christianity-preview-position,:host-context(body.dark) .christianity-preview-position,:host-context([data-theme=\"dark\"]) .christianity-preview-position,:host-context(.dark) .christianity-preview-nav,:host-context(.ion-palette-dark) .christianity-preview-nav,:host-context(html.ion-palette-dark) .christianity-preview-nav,:host-context(body.dark) .christianity-preview-nav,:host-context([data-theme=\"dark\"]) .christianity-preview-nav,:host-context(.dark) .christianity-preview-ability-nav button,:host-context(.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(html.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(body.dark) .christianity-preview-ability-nav button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-nav button,:host-context(.dark) .christianity-preview-ability-tabs button,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(body.dark) .christianity-preview-ability-tabs button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button{border-color:#94a3b838;background:#0f172af0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #0000004d}:host-context(.dark) .christianity-preview-ability-tabs button.is-selected,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(body.dark) .christianity-preview-ability-tabs button.is-selected,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button.is-selected{border-color:#60a5fa61;background:#2563eb38;color:#dbeafef0}:host-context(.dark) .christianity-preview-use-ability:disabled,:host-context(.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(html.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(body.dark) .christianity-preview-use-ability:disabled,:host-context([data-theme=\"dark\"]) .christianity-preview-use-ability:disabled{background:#334155c7;color:#e2e8f07a}:host-context(.dark) .christianity-preview-ability-card,:host-context(.ion-palette-dark) .christianity-preview-ability-card,:host-context(html.ion-palette-dark) .christianity-preview-ability-card,:host-context(body.dark) .christianity-preview-ability-card,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card{border-color:#94a3b829;background:#0f172a6b}:host-context(.dark) .christianity-preview-ability-card strong,:host-context(.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(html.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(body.dark) .christianity-preview-ability-card strong,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card strong,:host-context(.dark) .christianity-preview-abilities-header span,:host-context(.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(html.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(body.dark) .christianity-preview-abilities-header span,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities-header span{color:#e2e8f0d1}:host-context(.dark) .christianity-history-drawer header span,:host-context(.ion-palette-dark) .christianity-history-drawer header span,:host-context(html.ion-palette-dark) .christianity-history-drawer header span,:host-context(body.dark) .christianity-history-drawer header span,:host-context([data-theme=\"dark\"]) .christianity-history-drawer header span,:host-context(.dark) .christianity-rule-note strong,:host-context(.ion-palette-dark) .christianity-rule-note strong,:host-context(html.ion-palette-dark) .christianity-rule-note strong,:host-context(body.dark) .christianity-rule-note strong,:host-context([data-theme=\"dark\"]) .christianity-rule-note strong{background:#1e293beb}:host-context(.dark) .christianity-rule-note small,:host-context(.ion-palette-dark) .christianity-rule-note small,:host-context(html.ion-palette-dark) .christianity-rule-note small,:host-context(body.dark) .christianity-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-rule-note small,:host-context(.dark) .christianity-preview-rule-note small,:host-context(.ion-palette-dark) .christianity-preview-rule-note small,:host-context(html.ion-palette-dark) .christianity-preview-rule-note small,:host-context(body.dark) .christianity-preview-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note small,:host-context(.dark) .christianity-preview-abilities small,:host-context(.ion-palette-dark) .christianity-preview-abilities small,:host-context(html.ion-palette-dark) .christianity-preview-abilities small,:host-context(body.dark) .christianity-preview-abilities small,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities small,:host-context(.dark) .christianity-gallery-drawer header p,:host-context(.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(html.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(body.dark) .christianity-gallery-drawer header p,:host-context([data-theme=\"dark\"]) .christianity-gallery-drawer header p,:host-context(.dark) .christianity-gallery-controls label,:host-context(.ion-palette-dark) .christianity-gallery-controls label,:host-context(html.ion-palette-dark) .christianity-gallery-controls label,:host-context(body.dark) .christianity-gallery-controls label,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls label{color:#e2e8f0ad}:host-context(.dark) .christianity-rule-note p,:host-context(.ion-palette-dark) .christianity-rule-note p,:host-context(html.ion-palette-dark) .christianity-rule-note p,:host-context(body.dark) .christianity-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-rule-note p,:host-context(.dark) .christianity-rule-note ul,:host-context(.ion-palette-dark) .christianity-rule-note ul,:host-context(html.ion-palette-dark) .christianity-rule-note ul,:host-context(body.dark) .christianity-rule-note ul,:host-context([data-theme=\"dark\"]) .christianity-rule-note ul,:host-context(.dark) .christianity-preview-rule-note p,:host-context(.ion-palette-dark) .christianity-preview-rule-note p,:host-context(html.ion-palette-dark) .christianity-preview-rule-note p,:host-context(body.dark) .christianity-preview-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note p,:host-context(.dark) .christianity-preview-abilities p,:host-context(.ion-palette-dark) .christianity-preview-abilities p,:host-context(html.ion-palette-dark) .christianity-preview-abilities p,:host-context(body.dark) .christianity-preview-abilities p,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities p,:host-context(.dark) .christianity-offerings-note p,:host-context(.ion-palette-dark) .christianity-offerings-note p,:host-context(html.ion-palette-dark) .christianity-offerings-note p,:host-context(body.dark) .christianity-offerings-note p,:host-context([data-theme=\"dark\"]) .christianity-offerings-note p{color:#e2e8f0cc}:host-context(.dark) .christianity-gallery-controls input,:host-context(.ion-palette-dark) .christianity-gallery-controls input,:host-context(html.ion-palette-dark) .christianity-gallery-controls input,:host-context(body.dark) .christianity-gallery-controls input,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls input,:host-context(.dark) .christianity-gallery-controls select,:host-context(.ion-palette-dark) .christianity-gallery-controls select,:host-context(html.ion-palette-dark) .christianity-gallery-controls select,:host-context(body.dark) .christianity-gallery-controls select,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls select,:host-context(.dark) .christianity-offering-row,:host-context(.ion-palette-dark) .christianity-offering-row,:host-context(html.ion-palette-dark) .christianity-offering-row,:host-context(body.dark) .christianity-offering-row,:host-context([data-theme=\"dark\"]) .christianity-offering-row,:host-context(.dark) .christianity-offerings-note,:host-context(.ion-palette-dark) .christianity-offerings-note,:host-context(html.ion-palette-dark) .christianity-offerings-note,:host-context(body.dark) .christianity-offerings-note,:host-context([data-theme=\"dark\"]) .christianity-offerings-note{border-color:#94a3b833;background:#0f172ac7;color:var(--christianity-theme-ink)}:host-context(.dark) .christianity-history-grid,:host-context(.ion-palette-dark) .christianity-history-grid,:host-context(html.ion-palette-dark) .christianity-history-grid,:host-context(body.dark) .christianity-history-grid,:host-context([data-theme=\"dark\"]) .christianity-history-grid,:host-context(.dark) .christianity-offering-list,:host-context(.ion-palette-dark) .christianity-offering-list,:host-context(html.ion-palette-dark) .christianity-offering-list,:host-context(body.dark) .christianity-offering-list,:host-context([data-theme=\"dark\"]) .christianity-offering-list,:host-context(.dark) .christianity-gallery-grid,:host-context(.ion-palette-dark) .christianity-gallery-grid,:host-context(html.ion-palette-dark) .christianity-gallery-grid,:host-context(body.dark) .christianity-gallery-grid,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note{scrollbar-color:rgba(148,163,184,.54) rgba(15,23,42,.86)}:host-context(.dark) .christianity-rule-note-icon,:host-context(.ion-palette-dark) .christianity-rule-note-icon,:host-context(html.ion-palette-dark) .christianity-rule-note-icon,:host-context(body.dark) .christianity-rule-note-icon,:host-context([data-theme=\"dark\"]) .christianity-rule-note-icon{background:#60a5fa29;color:#bfdbfe;box-shadow:inset 0 0 0 1px #93c5fd38}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-track{background:#0f172adb}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-thumb{border-color:#0f172adb;background:#94a3b88a}@media (max-width: 720px){:host{overflow-x:hidden}.christianity-shell{padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) 10.45rem max(.75rem,env(safe-area-inset-left))}.christianity-shell.is-preparing{padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left))}.christianity-shell.is-preparing .christianity-table{min-height:calc(100dvh - max(1.5rem,env(safe-area-inset-top) + env(safe-area-inset-bottom)))}.christianity-actions{position:fixed;right:max(.6rem,env(safe-area-inset-right));bottom:calc(max(.75rem,env(safe-area-inset-bottom)) + 7.45rem);z-index:80;display:block;width:auto;padding:0;background:transparent;pointer-events:none}.christianity-actions button{min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-header,.christianity-match-strip,.christianity-player__summary{box-sizing:border-box;width:100%;padding-right:max(.5rem,env(safe-area-inset-right));padding-left:max(.5rem,env(safe-area-inset-left))}.christianity-header,.christianity-player__summary,.christianity-shared-zone{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-turn-banner{grid-template-columns:minmax(0,1fr);gap:.45rem;padding:.55rem}.christianity-turn-actions{justify-content:space-between;width:100%}.christianity-end-turn{min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-options-button{justify-self:start}.christianity-options-menu{right:auto;left:.55rem}.christianity-setup-panel,.christianity-result-panel{inset:.55rem;padding:.7rem}.christianity-leader-choice-grid{grid-template-columns:repeat(2,minmax(0,8.1rem));gap:.5rem;width:min(100%,17rem)}.christianity-leader-choice-option{padding:.38rem;border-radius:.78rem}.christianity-leader-choice-card{width:min(100%,7.1rem)}.christianity-leader-choice-option span{min-height:1.65rem;padding-inline:.34rem}.christianity-leader-choice-detail{min-height:1.9rem;font-size:.7rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-header-actions{align-items:flex-end;flex-direction:column}.christianity-start__cards,.christianity-start__hero{grid-template-columns:minmax(0,1fr)}.christianity-start__fan{min-height:10.5rem}.christianity-start__fan val-christianity-card{width:clamp(5.2rem,22vw,6.4rem)}.christianity-start__modes{grid-template-columns:repeat(2,minmax(0,1fr))}.christianity-splash{min-height:min(30rem,calc(100dvh - 7rem));padding-right:max(.65rem,env(safe-area-inset-right));padding-left:max(.65rem,env(safe-area-inset-left));border-right:0;border-left:0;border-radius:0}.christianity-start{min-height:min(30rem,calc(100dvh - 7rem));padding:.35rem}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem;width:100%;max-width:100%;min-width:0;padding:.45rem;overflow-x:hidden}.christianity-player-side{width:100%;max-width:100%;min-width:0;padding:.3rem .25rem;overflow:hidden}.christianity-battle-zone{--christianity-battle-card-width: min(5.45rem, 100%);grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.25rem,1.5vw,.4rem);justify-content:stretch;min-height:7.45rem;padding-inline:.28rem;overflow-x:hidden}.christianity-battle-zone .christianity-card-preview-card--battle,.christianity-battle-zone .christianity-slot{width:min(100%,5.45rem)}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent){position:fixed;right:0;bottom:0;left:0;z-index:52;box-sizing:border-box;min-height:9.55rem;margin:0;padding:.7rem max(.35rem,env(safe-area-inset-right)) max(.55rem,env(safe-area-inset-bottom)) max(.35rem,env(safe-area-inset-left));background:linear-gradient(180deg,#eff6ff00,#dbeafef5 18%,#dbeafefa),radial-gradient(circle at 50% 0%,rgba(37,99,235,.14),transparent 58%);pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan,.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-card-wrap{pointer-events:auto}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-meter{top:.15rem;right:max(.55rem,env(safe-area-inset-right));pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan{min-height:8.85rem;padding:.25rem .25rem 1.1rem;overflow:visible}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-card-preview-card--hand{width:clamp(4.35rem,20vw,5.65rem)}.christianity-hand-shelf--opponent{min-height:5.55rem;margin-top:0;margin-bottom:0;padding-top:.4rem;padding-bottom:.35rem}.christianity-player-rack{grid-template-columns:minmax(0,5.55rem) minmax(0,1fr) minmax(0,5.45rem);gap:clamp(.35rem,2vw,.5rem)}.christianity-player-rack:not(.christianity-player-rack--opponent) .christianity-offerings-zone{position:fixed;left:max(.65rem,env(safe-area-inset-left));bottom:calc(9.65rem + env(safe-area-inset-bottom));z-index:49;width:min(5.65rem,24vw);min-width:5.15rem;pointer-events:auto;transition:filter .16s ease,transform .16s ease,z-index .16s ease}.christianity-shell.is-offering-drop-active .christianity-player-rack:not(.christianity-player-rack--opponent) .christianity-offerings-zone{z-index:72;filter:drop-shadow(0 .85rem 1.45rem rgba(16,42,67,.24));transform:translateY(-.22rem) scale(1.03)}.christianity-shell.has-modal-open .christianity-player-rack:not(.christianity-player-rack--opponent) .christianity-offerings-zone{opacity:0;pointer-events:none}.christianity-shared-zone{gap:.45rem;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.christianity-zone-card,.christianity-zone-pile{min-height:6.35rem;padding:.68rem .58rem .55rem;gap:.24rem}.christianity-zone-card>val-christianity-card,.christianity-zone-pile>val-christianity-card,.christianity-zone-pile .christianity-pile-card-hint,.christianity-place-token,.christianity-zone-pile:before,.christianity-zone-pile:after,.christianity-empty-card-slot{width:clamp(3rem,16vw,3.75rem)}.christianity-offering-pile{height:7.55rem;max-height:7.55rem;padding:.62rem .54rem .52rem;gap:.24rem}.christianity-offering-drop-target{width:min(100%,6.35rem);height:7.55rem;min-height:0;max-height:7.55rem}.christianity-pile-card-hint{top:2rem;width:clamp(2.25rem,10.5vw,2.8rem)}.christianity-offering-pile .christianity-zone-card-stack val-christianity-card{top:1.72rem;width:clamp(2.85rem,14vw,3.45rem)}.christianity-zone-pile .christianity-pile-card-hint{top:1.78rem;width:clamp(3rem,16vw,3.75rem)}.christianity-place-token{top:2rem;width:clamp(2.85rem,15vw,3.55rem)}.christianity-offering-pile>small{bottom:.64rem;left:.58rem;font-size:.56rem}.christianity-offering-pile>strong{right:.48rem;bottom:.5rem}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);height:auto;min-height:0}.christianity-leader-card{width:clamp(5.15rem,22vw,6.35rem);min-height:0}.christianity-offering-row{grid-template-columns:minmax(5rem,5.8rem) minmax(0,1fr);gap:.5rem}.christianity-gallery-controls{grid-template-columns:minmax(0,1fr);gap:.5rem}.christianity-gallery-drawer{gap:.6rem;padding:max(.72rem,env(safe-area-inset-top)) max(.72rem,env(safe-area-inset-right)) max(.72rem,env(safe-area-inset-bottom)) max(.72rem,env(safe-area-inset-left))}.christianity-gallery-drawer header{align-items:start}.christianity-gallery-drawer h2{font-size:1.2rem;line-height:1.05}.christianity-gallery-controls label{gap:.18rem;font-size:.7rem}.christianity-gallery-controls input,.christianity-gallery-controls select,.christianity-gallery-edition-strip button{min-height:2.05rem}.christianity-gallery-grid{grid-template-columns:repeat(3,minmax(0,clamp(6.35rem,28vw,7.15rem)));justify-content:center;gap:clamp(.55rem,2.2vw,.72rem);scrollbar-gutter:auto;padding:.42rem 0 .8rem}.christianity-gallery-grid .christianity-render-card-button{width:100%}.christianity-offering-card{min-height:7.25rem;padding:.5rem}.christianity-hand-fan--opponent{min-height:4.75rem;padding-bottom:.35rem}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.1rem,14vw,3.9rem);margin-inline:-.65rem}}\n"], dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: LightRippleDirective, selector: "[valLightRipple]" }, { kind: "component", type: ChristianityCardComponent, selector: "val-christianity-card", inputs: ["card", "variant"] }, { kind: "component", type: MiniGameCalloutComponent, selector: "val-mini-game-callout", inputs: ["props"] }, { kind: "component", type: MiniGameScorePopComponent, selector: "val-mini-game-score-pop", inputs: ["props"] }] }); }
3197
+ `, isInline: true, styles: [":host{--christianity-theme-ink: var(--val-text-color, #1f2933);--christianity-theme-surface: #ffffff;--christianity-theme-parchment: #eff6ff;--christianity-theme-olive: #1d4ed8;--christianity-theme-gold: #2563eb;--christianity-theme-gold-soft: rgba(37, 99, 235, .16);--christianity-theme-gold-ring: rgba(37, 99, 235, .44);--christianity-theme-glow: rgba(37, 99, 235, .24);--christianity-theme-focus: #2563eb;--christianity-theme-shadow: rgba(37, 99, 235, .15);--christianity-theme-shadow-strong: rgba(37, 99, 235, .26);--christianity-card-aspect: 5 / 7.45;--christianity-card-back: linear-gradient(135deg, rgba(16, 42, 67, .16), rgba(16, 42, 67, .03)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(16, 42, 67, .11), rgba(16, 42, 67, .02)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);display:block;font-size:var(--val-mini-games-font-size, 1rem);max-width:100%;min-width:0;overflow-x:clip;color:var(--christianity-theme-ink)}:host-context(body.font-small){--val-mini-games-font-size: .875rem}:host-context(body.font-large){--val-mini-games-font-size: 1.1875rem}.christianity-shell{box-sizing:border-box;display:grid;gap:.65rem;width:100%;max-width:100%;min-width:0;padding:clamp(.65rem,1.8vw,1.15rem);overflow-x:clip;overflow-y:visible}.christianity-shell.has-modal-open{max-height:100dvh;overflow:hidden;overscroll-behavior:contain}.christianity-shell.has-modal-open .christianity-hand-shelf:not(.christianity-hand-shelf--opponent){opacity:0;pointer-events:none;transform:translateY(1.5rem)}.christianity-shell.is-preparing{padding-bottom:clamp(.75rem,1.8vw,1.15rem)}.christianity-shell.is-preparing .christianity-match-strip,.christianity-shell.is-preparing .christianity-turn-banner,.christianity-shell.is-preparing .christianity-hand-shelf,.christianity-shell.is-preparing .christianity-actions,.christianity-shell.is-preparing .christianity-end-turn,.christianity-shell.is-preparing .christianity-impact-layer,.christianity-shell.is-preparing .christianity-player-side,.christianity-shell.is-preparing .christianity-shared-zone{display:none}.christianity-shell.is-preparing .christianity-table{min-height:min(34rem,calc(100dvh - 2rem))}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.christianity-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;min-width:0}.christianity-gallery-open{min-height:2.2rem;padding:0 .75rem;border:1px solid var(--christianity-theme-gold-ring);border-radius:999px;background:linear-gradient(180deg,#eff6fffa,#fffffffa),radial-gradient(circle at 20% 0%,var(--christianity-theme-gold-soft),transparent 42%);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800;box-shadow:0 .55rem 1.2rem #2563eb1a}.christianity-splash{min-height:min(34rem,calc(100dvh - 8rem));border:1px solid rgba(37,99,235,.18);border-radius:.9rem;background:radial-gradient(circle at 50% 18%,rgba(37,99,235,.16),transparent 22rem),linear-gradient(180deg,#eff6ffed,#fffffff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #2563eb1f}.christianity-splash{display:grid;place-items:center;align-content:center;gap:1.2rem;padding:2.5rem 1.25rem;text-align:center}.christianity-splash__mark{position:relative;display:grid;grid-template-columns:repeat(3,.74rem);place-content:center;gap:.55rem;width:5.8rem;height:5.8rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(37,99,235,.12),transparent 55%),#ffffff9e;box-shadow:inset 0 0 0 .55rem #fff6,0 1rem 2rem #2563eb1f}.christianity-splash__mark:before,.christianity-splash__mark:after{content:\"\";position:absolute;inset:.42rem;border:1px solid rgba(37,99,235,.16);border-radius:inherit;animation:christianity-loader-ring 1.8s ease-out infinite}.christianity-splash__mark:after{animation-delay:.48s}.christianity-splash__mark span{width:.74rem;height:.74rem;border-radius:999px;background:var(--christianity-theme-focus);box-shadow:0 .35rem .85rem #2563eb38;animation:christianity-loader-dot .96s ease-in-out infinite}.christianity-splash__mark span:nth-child(2){animation-delay:.14s}.christianity-splash__mark span:nth-child(3){animation-delay:.28s}@keyframes christianity-loader-dot{0%,to{opacity:.38;transform:translateY(0) scale(.82)}45%{opacity:1;transform:translateY(-.22rem) scale(1)}}@keyframes christianity-loader-ring{0%{opacity:.48;transform:scale(.72)}to{opacity:0;transform:scale(1.2)}}.christianity-splash span,.christianity-start__copy span{color:var(--christianity-theme-olive);font-size:.76rem;font-weight:900;text-transform:uppercase}.christianity-splash h2,.christianity-start h2,.christianity-start p{margin:0}.christianity-splash h2{margin-top:.2rem;font-size:clamp(1.65rem,7vw,2.7rem);line-height:1}.christianity-splash p{max-width:26rem;margin:.55rem auto 0;color:#1f2933ad;font-size:.96rem}.christianity-start{display:grid;align-content:center;gap:1rem;min-height:min(34rem,calc(100dvh - 8rem));padding:clamp(.15rem,1.2vw,.55rem)}.christianity-start__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,18rem);gap:1rem;align-items:center}.christianity-start__copy{display:grid;gap:.45rem;max-width:36rem}.christianity-start h2{font-size:clamp(1.6rem,6vw,2.5rem);line-height:1.02}.christianity-start__copy p,.christianity-start__cards p,.christianity-start__modes p{color:#1f2933ad;line-height:1.42}.christianity-start__fan{position:relative;display:grid;place-items:center;min-height:13rem;overflow:visible}.christianity-start__fan val-christianity-card{position:absolute;width:clamp(5.7rem,12vw,7.2rem);transform-origin:50% 92%;filter:drop-shadow(0 1rem 1.5rem rgba(82,64,28,.18))}.christianity-start__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.christianity-start__cards article,.christianity-start__modes article{display:grid;gap:.65rem;align-content:start;padding:.95rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#ffffffd1;box-shadow:0 .75rem 1.7rem #52401c14}.christianity-start__cards article{min-height:11rem}.christianity-start__cards strong{font-size:1.05rem}.christianity-start__status{display:flex;flex-wrap:wrap;gap:.45rem}.christianity-start__status span,.christianity-start__modes article>span{display:inline-flex;align-items:center;width:fit-content;min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(37,99,235,.22);border-radius:999px;background:#eff6ffe0;color:#1f2933b8;font-size:.75rem;font-weight:850}.christianity-start__modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.christianity-start__modes article{min-height:8.5rem;background:#f8fafcb8;box-shadow:none;opacity:.82}.christianity-start__modes strong{font-size:.92rem}.christianity-start__modes p{margin:0;font-size:.8rem}.christianity-primary-action,.christianity-secondary-action{justify-self:start;min-height:2.5rem;padding:0 .9rem;border-radius:999px;font:inherit;font-weight:900}.christianity-primary-action{border:1px solid rgba(16,42,67,.16);background:#102a43;color:#fff}.christianity-secondary-action{border:1px solid var(--christianity-theme-gold-ring);background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink)}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-turn-banner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.58rem .72rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:linear-gradient(135deg,#fffffff0,#eff6ffd1),#fffc;box-shadow:0 .65rem 1.25rem #102a4314}.christianity-turn-banner.is-own-turn{border-color:#2563eb47;box-shadow:0 .75rem 1.45rem #2563eb1f,inset 0 0 0 1px #2563eb14}.christianity-turn-banner.is-rival-turn{border-color:#b453093d}.christianity-turn-banner.is-finished{border-color:#16a34a4d}.christianity-turn-banner span{display:block;color:#1f29338f;font-size:.68rem;font-weight:900;text-transform:uppercase}.christianity-turn-banner strong{display:block;color:var(--christianity-theme-ink);font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.05}.christianity-turn-banner p{margin:.12rem 0 0;color:#1f2933ad;font-size:.78rem;line-height:1.25}.christianity-turn-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem}.christianity-options-button,.christianity-options-menu button{min-height:2.15rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffeb;color:var(--christianity-theme-ink);font:inherit;font-size:.78rem;font-weight:900}.christianity-options-button{padding:0 .78rem}.christianity-options-menu{position:absolute;right:.55rem;top:calc(100% + .35rem);z-index:18;display:grid;gap:.35rem;min-width:9.5rem;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#fffffffa;box-shadow:0 1rem 2rem #102a432e}.christianity-options-menu button{border-radius:.55rem;text-align:left}.christianity-options-menu button:disabled{opacity:.45}.christianity-table{box-sizing:border-box;position:relative;display:grid;gap:clamp(.55rem,1.4vw,.9rem);width:100%;max-width:100%;min-width:0;padding:clamp(.65rem,1.5vw,1.05rem);border-radius:.95rem;background:radial-gradient(circle at 50% 44%,rgba(255,255,255,.2),transparent 44%),linear-gradient(180deg,#c8ddf7,#b9d4f1);box-shadow:inset 0 0 0 1px #ffffff57,inset 0 1.4rem 3rem #ffffff29;overflow-x:clip;overflow-y:visible}.christianity-setup-panel,.christianity-result-panel{position:absolute;inset:.8rem;z-index:14;display:grid;align-content:center;justify-items:center;gap:.85rem;padding:1rem;border:1px solid rgba(37,99,235,.16);border-radius:.9rem;background:linear-gradient(180deg,#f8fafcf5,#eff6fff0),#fffffff0;box-shadow:0 1.25rem 2.4rem #102a432e;text-align:center}.christianity-setup-panel>div:not(.christianity-setup-coin),.christianity-result-panel>div:not(:last-child){display:grid;justify-items:center;max-width:min(100%,34rem)}.christianity-setup-panel .christianity-primary-action,.christianity-result-panel .christianity-primary-action{justify-self:center}.christianity-setup-panel--coin{gap:clamp(.85rem,3vh,1.35rem)}.christianity-setup-panel--leader-pick{align-content:center;gap:clamp(.7rem,2vh,1rem)}.christianity-setup-coin{position:relative;display:grid;place-items:center;width:clamp(4.6rem,18vw,6.2rem);aspect-ratio:1;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9),transparent 22%),linear-gradient(135deg,#fff6a3,#ffd21a 42%,#b88404);box-shadow:0 1.05rem 1.9rem #102a432e,inset 0 0 0 .32rem #ffffff80,inset -.6rem -.7rem 1rem #62460733;transform-style:preserve-3d;animation:christianity-coin-spin 1.8s cubic-bezier(.45,0,.2,1) infinite}.christianity-setup-coin:before{content:\"\";position:absolute;inset:-.65rem;z-index:-1;border-radius:inherit;background:radial-gradient(circle,rgba(250,204,21,.32),transparent 62%);filter:blur(.15rem)}.christianity-setup-coin:after{content:\"\";position:absolute;inset:.34rem;border:.16rem solid rgba(120,78,0,.24);border-radius:inherit;transform:translateZ(.06rem)}.christianity-setup-coin span{position:absolute;display:grid;place-items:center;width:52%;aspect-ratio:1;border-radius:999px;color:#102a43d6;font-size:clamp(1.65rem,6vw,2.25rem);font-weight:1000;line-height:1;text-transform:none;transform-style:preserve-3d;backface-visibility:hidden}.christianity-setup-coin span:first-child:before{content:\"J\"}.christianity-setup-coin span:last-child{transform:rotateY(180deg)}.christianity-setup-coin span:last-child:before{content:\"R\"}.christianity-setup-coin.is-rival-won{animation-delay:-.9s}@keyframes christianity-coin-spin{0%{transform:rotateY(0) translateY(0)}38%{transform:rotateY(540deg) translateY(-.35rem)}62%{transform:rotateY(720deg) translateY(0)}to{transform:rotateY(1080deg) translateY(0)}}.christianity-setup-panel>div:not(.christianity-setup-coin)>span,.christianity-result-panel>span{color:#2563ebc2;font-size:.72rem;font-weight:1000;text-transform:uppercase}.christianity-setup-panel h2,.christianity-result-panel h2{margin:.18rem 0 0;color:var(--christianity-theme-ink);font-size:clamp(1.45rem,3vw,2.35rem);line-height:1}.christianity-setup-panel p,.christianity-result-panel p{max-width:31rem;margin:.35rem auto 0;color:#1f2933ad;font-size:.95rem;line-height:1.35}.christianity-result-panel>div:last-child{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem}.christianity-leader-choice-meter{display:grid;gap:.38rem;width:min(100%,28rem);color:#1f2933ad;font-size:.78rem;font-weight:900}.christianity-leader-choice-meter i{display:block;height:.34rem;border-radius:999px;background:var(--christianity-theme-focus);transform-origin:left center;transition:transform .24s ease}.christianity-leader-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,9.6rem));gap:clamp(.6rem,2vw,.9rem);justify-content:center;align-items:stretch;width:min(100%,21rem)}.christianity-leader-choice-option{position:relative;display:grid;grid-template-rows:auto 1fr;gap:.5rem;align-content:start;min-width:0;padding:.48rem;border:1px solid rgba(36,48,68,.1);border-radius:.86rem;background:linear-gradient(180deg,#ffffffdb,#f8fafcb8),#ffffffc7;box-shadow:0 .75rem 1.5rem #102a4314;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.christianity-leader-choice-option.is-selected{border-color:#2563eb7a;background:linear-gradient(180deg,#eff6fff0,#ffffffdb),#ffffffd1;box-shadow:0 .95rem 1.75rem #2563eb24,inset 0 0 0 1px #2563eb24}.christianity-leader-choice-card{display:block;justify-self:center;width:min(100%,8.25rem);border:0;background:transparent;color:inherit;font:inherit}.christianity-leader-choice-card val-christianity-card{display:block;width:100%;transition:filter .18s ease,transform .18s ease}.christianity-leader-choice-option>div{display:grid;gap:.42rem;align-content:end;justify-items:center;min-width:0}.christianity-leader-choice-option span{display:inline-grid;place-items:center;min-height:1.8rem;max-width:100%;padding:.18rem .46rem;border-radius:999px;background:#eff6ffbd;color:#1f2933ad;font-size:clamp(.62rem,2.3vw,.72rem);font-weight:900;line-height:1.05;text-align:center;text-transform:uppercase}.christianity-leader-choice-detail{width:100%;min-height:2rem;padding:0 .55rem;border:1px solid rgba(37,99,235,.22);border-radius:999px;background:#eff6ffeb;color:var(--christianity-theme-ink);font:inherit;font-size:.76rem;font-weight:900}.christianity-leader-choice-card:hover val-christianity-card,.christianity-leader-choice-card:focus-visible val-christianity-card{transform:translateY(-.12rem);filter:drop-shadow(0 .75rem 1.25rem rgba(37,99,235,.22))}.christianity-impact-layer{position:absolute;inset:0;z-index:30;pointer-events:none}.christianity-combat-trail{position:absolute;inset:0;z-index:2;--christianity-combat-trail-x: 50%;--christianity-combat-trail-y: 72%;--christianity-combat-trail-mid-x: 50%;--christianity-combat-trail-mid-y: 50%;--christianity-combat-trail-length: 34%;--christianity-combat-trail-angle: -90deg;--christianity-combat-trail-color: rgba(255, 255, 255, .96);--christianity-combat-trail-glow: rgba(96, 165, 250, .56);--christianity-combat-trail-hit: rgba(220, 38, 38, .42)}.christianity-combat-trail.is-leader-target{--christianity-combat-trail-color: rgba(255, 255, 255, .98);--christianity-combat-trail-glow: rgba(250, 204, 21, .52);--christianity-combat-trail-hit: rgba(250, 204, 21, .38)}.christianity-combat-trail.is-character-target{--christianity-combat-trail-color: rgba(219, 234, 254, .98);--christianity-combat-trail-glow: rgba(96, 165, 250, .58);--christianity-combat-trail-hit: rgba(220, 38, 38, .38)}.christianity-combat-trail:before{position:absolute;left:var(--christianity-combat-trail-mid-x);top:var(--christianity-combat-trail-mid-y);width:clamp(2.8rem,9vw,5.4rem);height:clamp(2.8rem,9vw,5.4rem);border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.72),transparent 28%),radial-gradient(circle,var(--christianity-combat-trail-hit),transparent 62%);content:\"\";opacity:0;transform:translate(-50%,-50%) scale(.58);animation:christianity-combat-burst .88s ease-out both}.christianity-combat-trail>span{position:absolute;left:var(--christianity-combat-trail-x);top:var(--christianity-combat-trail-y);width:var(--christianity-combat-trail-length);height:.36rem;border-radius:999px;background:linear-gradient(90deg,transparent 0 5%,rgba(255,255,255,.92) 42%,var(--christianity-combat-trail-color) 72%,rgba(96,165,250,.72)),repeating-linear-gradient(90deg,transparent 0 .7rem,rgba(255,255,255,.66) .7rem .92rem);box-shadow:0 0 .72rem var(--christianity-combat-trail-glow),0 0 1.45rem var(--christianity-combat-trail-glow);transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0);transform-origin:0 50%;animation:christianity-combat-arrow-trail .84s ease-out both}.christianity-combat-trail>span:after{position:absolute;top:50%;right:-.18rem;width:.95rem;height:.95rem;border-top:.28rem solid var(--christianity-combat-trail-color);border-right:.28rem solid var(--christianity-combat-trail-color);content:\"\";filter:drop-shadow(0 0 .45rem var(--christianity-combat-trail-glow));transform:translateY(-50%) rotate(45deg)}@keyframes christianity-combat-arrow-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0)}24%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(.52)}66%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1)}to{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1.04)}}@keyframes christianity-combat-burst{0%,42%{opacity:0;transform:translate(-50%,-50%) scale(.58) rotate(0)}58%{opacity:1;transform:translate(-50%,-50%) scale(.98) rotate(4deg)}to{opacity:0;transform:translate(-50%,-50%) scale(1.42) rotate(12deg)}}@media (prefers-reduced-motion: reduce){.christianity-combat-trail,.christianity-combat-trail:before,.christianity-combat-trail>span,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card,.christianity-floating-card-shell.is-sliding-next .christianity-floating-card,.christianity-setup-coin,.christianity-splash__mark:before,.christianity-splash__mark:after,.christianity-splash__mark span{animation:none!important}}.christianity-player-side{box-sizing:border-box;display:grid;gap:.35rem;width:100%;max-width:100%;min-width:0;padding:.35rem .3rem;border-radius:.7rem;background:linear-gradient(180deg,#ffffff47,#ffffff24),#4a7ab414;grid-template-rows:minmax(7rem,1fr) auto;min-height:13.75rem}.christianity-player-side--opponent{grid-template-rows:auto minmax(7rem,1fr)}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{--christianity-battle-card-width: clamp(5.7rem, 10.5vw, 7.9rem);box-sizing:border-box;display:grid;grid-template-columns:repeat(4,var(--christianity-battle-card-width));gap:.5rem;align-items:center;justify-content:center;width:100%;max-width:100%;min-width:0;overflow:hidden;min-height:clamp(10rem,19vw,12.4rem);padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff6b,#ffffff3d),#1f4f8914;transition:background .16s ease,box-shadow .16s ease}.christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#fffaf0f5,#ffffffd6),#ffffffc2;box-shadow:inset 0 0 0 .14rem var(--christianity-theme-gold-soft),0 .8rem 1.7rem #5f6f2a1f}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff57,#fff3),#1f4f8914}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .18rem var(--christianity-theme-gold-soft),0 .85rem 1.4rem var(--christianity-theme-shadow)}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{display:grid;place-items:center;justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff2e;color:inherit;font:inherit;opacity:.62}.christianity-slot--play-target{position:relative;opacity:1;border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0eb,#f8fafcd1),#ffffffb3;color:#5d4305;font-weight:800;overflow:hidden;box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-slot--play-target:before{content:\"\";position:absolute;inset:.35rem;border:1px solid rgba(214,162,29,.22);border-radius:.4rem;background:linear-gradient(135deg,rgba(214,162,29,.1),transparent 46%),radial-gradient(circle at 50% 42%,var(--christianity-theme-glow),transparent 58%)}.christianity-slot--play-target span{position:relative;z-index:2;padding:.16rem .44rem;border-radius:999px;background:#ffffffc7;font-size:.78rem}@keyframes christianity-target-pulse{0%,to{box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow)}50%{box-shadow:inset 0 0 0 .16rem #d6a21d57,0 .9rem 1.65rem var(--christianity-theme-shadow-strong)}}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{padding:.75rem;border-radius:.75rem;background:#ffffffeb}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn:not(:disabled){background:#102a43;color:#fff}.christianity-actions button{pointer-events:auto;border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-actions button:disabled{display:none}.christianity-end-turn{border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-end-turn:disabled{color:#1f293375;background:#ffffffb8;box-shadow:none}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:10.8rem;padding:.25rem .25rem 2.1rem;isolation:isolate;overflow:visible}.christianity-hand-shelf{position:relative;display:grid;z-index:12;min-height:12rem;margin-top:-1.15rem;padding:1.45rem .25rem 1rem;overflow:visible}.christianity-hand-shelf--opponent{z-index:8;min-height:6.85rem;margin-top:0;margin-bottom:0;padding:.45rem .25rem .85rem}.christianity-hand-fan--opponent{min-height:5.9rem;padding-bottom:.75rem;align-items:start}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.7rem,12vw,4.9rem);aspect-ratio:var(--christianity-card-aspect);margin-inline:-.9rem;transform-origin:50% 120%}.christianity-hand-fan--opponent .christianity-hidden-card-button:first-child{margin-left:0}.christianity-hand-fan--opponent .christianity-hidden-card-button:last-child{margin-right:0}.christianity-card-preview-card,.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-render-card-button{display:block;padding:0;overflow:visible;border:0;background:transparent;box-shadow:none}.christianity-render-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-gallery-card-button{display:block;width:min(100%,6.8rem);min-width:0;aspect-ratio:var(--christianity-card-aspect);padding:0;overflow:visible;border:0;background:transparent;color:inherit;font:inherit;text-align:left;box-shadow:none}.christianity-gallery-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-card-preview-card--hand.christianity-render-card-button,.christianity-card-preview-card--battle.christianity-render-card-button,.christianity-leader-card.christianity-render-card-button{aspect-ratio:var(--christianity-card-aspect)}.christianity-card-preview-card--hand.christianity-render-card-button:hover val-christianity-card,.christianity-card-preview-card--hand.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-target val-christianity-card{filter:drop-shadow(0 0 .45rem rgba(37,99,235,.45)) drop-shadow(0 .55rem 1rem rgba(37,99,235,.22))}.christianity-card-preview-card--battle.christianity-render-card-button.is-ready-attacker val-christianity-card{filter:drop-shadow(0 0 .24rem rgba(22,163,74,.32)) drop-shadow(0 .45rem .8rem rgba(22,163,74,.16))}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected{transform:translateY(-.28rem)}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card{filter:drop-shadow(0 0 .4rem rgba(250,204,21,.52)) drop-shadow(0 .65rem 1rem rgba(37,99,235,.24))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker{z-index:8;pointer-events:none}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card{animation:christianity-combat-lunge .98s cubic-bezier(.2,.78,.2,1) both;filter:drop-shadow(0 0 .5rem rgba(250,204,21,.72)) drop-shadow(0 1rem 1.4rem rgba(16,42,67,.28))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card{animation:christianity-combat-impact .98s ease-out both;filter:drop-shadow(0 0 .5rem rgba(220,38,38,.48)) drop-shadow(0 .75rem 1.1rem rgba(220,38,38,.18))}@keyframes christianity-combat-lunge{0%{transform:translateZ(0) rotate(0) scale(1)}24%{transform:translate3d(0,-1.4rem,0) rotate(-4deg) scale(1.08)}52%{transform:translate3d(0,-4.9rem,0) rotate(7deg) scale(1.12)}68%{transform:translate3d(0,-3.6rem,0) rotate(-3deg) scale(1.04)}to{transform:translateZ(0) rotate(0) scale(1)}}@keyframes christianity-combat-impact{0%,42%{transform:translateZ(0) scale(1)}54%{transform:translate3d(.16rem,-.12rem,0) rotate(2deg) scale(1.04)}64%{transform:translate3d(-.14rem,.1rem,0) rotate(-2deg) scale(.98)}to{transform:translateZ(0) rotate(0) scale(1)}}.christianity-leader-card.christianity-render-card-button.is-protected-target{opacity:.82}.christianity-leader-card.christianity-render-card-button.is-protected-target val-christianity-card{filter:grayscale(.22) drop-shadow(0 0 .28rem rgba(100,116,139,.26))}.christianity-card-frame{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;overflow:hidden;padding:.48rem;text-align:left;background:linear-gradient(180deg,#fffffffa,#f8fafcfa),radial-gradient(circle at 15% 0%,rgba(214,162,29,.12),transparent 44%);box-shadow:0 .5rem 1.25rem #2430441a,inset 0 0 0 .18rem #ffffff9e}.christianity-card-frame-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.16rem;align-items:start;min-width:0}.christianity-card-frame-header small{grid-column:1;min-width:0;overflow:hidden;color:#1f2933a3;font-size:clamp(.52rem,1.5vw,.68rem);line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-header strong{grid-column:1;justify-self:start;align-self:start;min-width:0;padding:0;overflow:hidden;border-radius:0;background:transparent;font-size:clamp(.82rem,2.5vw,1.05rem);line-height:1.02;text-overflow:ellipsis;white-space:nowrap}.christianity-card-preview-card--hand .christianity-card-frame-header strong,.christianity-card-preview-card--battle .christianity-card-frame-header strong,.christianity-leader-card .christianity-card-frame-header strong{display:-webkit-box;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-preview-card--hand .christianity-card-frame-header small{text-transform:uppercase}.christianity-card-preview-card--hand .christianity-card-frame-art>span{display:-webkit-box;max-width:88%;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-frame-header span{grid-column:2;grid-row:1 / span 2;display:grid;place-items:center;min-width:1.3rem;height:1.3rem;padding:0 .22rem;border-radius:999px;background:#ffd91a;color:#243044;font-size:.8rem;font-weight:900;line-height:1;box-shadow:inset 0 -.08rem #52401c2e}.christianity-card-frame-header span.is-offering-pips,.christianity-full-card-cost.is-offering-pips,.christianity-offering-card span.is-offering-pips{grid-auto-flow:column;gap:.14rem;min-width:auto;padding:0 .28rem}.christianity-card-frame-header span.is-offering-pips i,.christianity-full-card-cost.is-offering-pips i,.christianity-offering-card span.is-offering-pips i,.christianity-full-card-pips i{display:block;width:.72rem;height:.72rem;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9) 0 .12rem,transparent .13rem),#ffd91a;box-shadow:inset 0 -.08rem #52401c2e,0 .12rem .24rem #102a431a}.christianity-card-frame-art{position:relative;display:grid;place-items:center;min-height:0;overflow:hidden;border-radius:.36rem;background:linear-gradient(135deg,#5f6f2a2e,#d6a21d24),radial-gradient(circle at 50% 18%,rgba(255,255,255,.72),transparent 48%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-card-frame-art>span{max-width:78%;overflow:hidden;color:#2430447a;font-size:clamp(.82rem,2.2vw,1.05rem);font-weight:900;line-height:1.02;text-align:center;text-overflow:ellipsis}.christianity-card-frame-art small{position:absolute;right:0;bottom:.28rem;max-width:78%;padding:.1rem .34rem;overflow:hidden;border-radius:999px 0 0 999px;background:#ffffffe6;color:#1f2933a8;font-size:.48rem;font-style:italic;font-weight:900;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-card-frame-effect{display:grid;align-content:center;gap:.1rem;min-height:1.45rem;padding:.24rem;overflow:hidden;border-radius:.34rem;background:radial-gradient(circle at 50% 70%,rgba(36,48,68,.06),transparent 44%),#ffffffdb}.christianity-card-frame-effect strong{justify-self:end;align-self:end;padding:.12rem .32rem;border-radius:999px;background:#edf2f7;font-size:clamp(.66rem,2vw,.82rem);line-height:1.05}.christianity-card-frame-effect p{margin:0;overflow:hidden;color:#1f2933b8;font-size:.58rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-footer{display:flex;justify-content:space-between;gap:.22rem;color:#1f293385;font-size:.46rem;font-weight:800;line-height:1}.christianity-card-frame--battle{gap:.22rem;padding:.42rem}.christianity-card-frame--battle .christianity-card-frame-art{min-height:2.6rem}.christianity-card-frame--leader .christianity-card-frame-art{background:linear-gradient(135deg,#2563eb24,#d6a21d29),radial-gradient(circle at 50% 18%,rgba(255,255,255,.78),transparent 48%),#e7eef8}.christianity-card-frame--list{width:clamp(4.4rem,22vw,5.8rem);padding:.38rem}.christianity-card-frame--list .christianity-card-frame-art{min-height:2.5rem}.christianity-hand-card-wrap{position:relative;display:grid;justify-items:center;flex:0 0 auto;margin-inline:-.42rem;padding-bottom:2rem;transform-origin:50% 115%;transition:transform .16s ease,filter .16s ease}.christianity-hand-card-wrap:hover,.christianity-hand-card-wrap.is-selected,.christianity-hand-card-wrap.is-dragging{z-index:3}.christianity-hand-card-wrap:hover .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-selected .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-dragging .christianity-card-preview-card--hand{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .12rem var(--christianity-theme-gold-soft),0 1rem 2rem var(--christianity-theme-shadow);transform:translateY(-.5rem) scale(1.045)}.christianity-card-preview-card--hand{cursor:grab;touch-action:pan-y}.christianity-card-preview-card--hand:active{cursor:grabbing}.christianity-card-preview-card--hand.cdk-drag-disabled{cursor:not-allowed}.christianity-card-drag-preview,.christianity-card-preview-card.cdk-drag-preview{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;box-shadow:0 0 0 .16rem #fff4c2ad,0 1.5rem 3rem var(--christianity-theme-shadow-strong);transform:rotate(2deg) scale(1.03)}.christianity-card-drag-preview val-christianity-card{display:block;width:100%;height:100%}.christianity-card-drag-placeholder,.christianity-card-preview-card.cdk-drag-placeholder{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;background:#94a3b81f;opacity:.22}.christianity-slot.cdk-drop-list-dragging,.christianity-offering-drop-target.cdk-drop-list-dragging{border-color:var(--christianity-theme-gold-ring)}.christianity-slot.cdk-drop-list-receiving,.christianity-offering-drop-target.cdk-drop-list-receiving{box-shadow:inset 0 0 0 .18rem #d6a21d57,0 1rem 1.9rem var(--christianity-theme-shadow-strong)}.christianity-card-eye{position:absolute;right:50%;bottom:.38rem;width:2.15rem;height:1.55rem;border:1px solid color-mix(in srgb,var(--christianity-theme-focus) 52%,transparent);border-radius:999px;background:#fffffff0;box-shadow:0 .55rem 1.1rem #102a4324;opacity:0;transform:translate(50%,-.2rem) scale(.92);transition:opacity .14s ease,transform .14s ease,border-color .14s ease}.christianity-card-eye:before{content:\"\";position:absolute;top:50%;left:50%;width:1.1rem;height:1.1rem;border:.12rem solid var(--christianity-theme-focus);border-radius:82% 0;background:#fffffff0;transform:translate(-50%,-50%) rotate(45deg)}.christianity-card-eye:after{content:\"\";position:absolute;top:50%;left:50%;width:.42rem;height:.42rem;border:.09rem solid rgba(255,255,255,.95);border-radius:999px;background:radial-gradient(circle at 35% 32%,#ffffff 0 .06rem,transparent .07rem),var(--christianity-theme-focus);transform:translate(-50%,-50%)}.christianity-hand-card-wrap:hover .christianity-card-eye,.christianity-hand-card-wrap.is-selected .christianity-card-eye,.christianity-card-eye:focus-visible{opacity:1;transform:translate(50%) scale(1)}.christianity-offering-drop-target{display:grid;width:min(100%,6.45rem);height:8.05rem;min-height:0;max-height:8.05rem;border:1px solid transparent;border-radius:.64rem;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.christianity-offering-drop-target.is-play-target{border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0f5,#fffffff0),radial-gradient(circle at 82% 14%,rgba(250,204,21,.28) 0 .7rem,transparent .72rem);box-shadow:inset 0 0 0 .12rem #d6a21d3d,0 .8rem 1.55rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-offering-drop-target>.cdk-drag-placeholder{display:none}.christianity-card-frame--back,.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:0;aspect-ratio:var(--christianity-card-aspect);place-items:center;padding:.55rem;overflow:hidden;box-shadow:0 .8rem 1.55rem #24304424;transform-origin:50% -18%;background:var(--christianity-card-back)}.christianity-card-frame--back:before,.christianity-card-preview-card--back:before{content:\"\";position:absolute;inset:.5rem;border:1px solid rgba(16,42,67,.12);border-radius:.38rem;background:linear-gradient(180deg,#ffffff2e,#ffffff0a);box-shadow:inset 0 0 0 .12rem #ffffff1f}.christianity-card-preview-card--battle{justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;min-width:0;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);margin-inline:0}.christianity-card-preview-card>span,.christianity-card-mini>span,.christianity-offering-pile>span,.christianity-offering-card>span,.christianity-leader-card>span,.christianity-zone-card>span,.christianity-zone-pile>span{position:relative;z-index:2;align-self:start;font-weight:700;line-height:1.05}.christianity-card-preview-card>strong,.christianity-card-mini>strong,.christianity-offering-pile>strong,.christianity-offering-card>strong,.christianity-leader-card>strong,.christianity-zone-card>strong,.christianity-zone-pile>strong{position:relative;z-index:3;justify-self:end;align-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{box-sizing:border-box;display:grid;grid-template-columns:minmax(5.3rem,6.9rem) minmax(6.4rem,1fr) minmax(4.9rem,6.5rem);gap:.65rem;align-items:end;justify-items:center;width:100%;max-width:100%;min-width:0}.christianity-player-rack--opponent{align-items:start}.christianity-hand-meter{position:absolute;top:0;right:.35rem;z-index:4;display:inline-grid;grid-auto-flow:column;gap:.25rem;align-items:center;min-height:1.7rem;padding:.18rem .46rem;border:1px solid rgba(36,48,68,.12);border-radius:999px;background:#ffffffe6;box-shadow:0 .35rem .8rem #102a4314}.christianity-hand-meter--opponent{top:.15rem}.christianity-hand-meter span{color:#1f293394;font-size:.68rem}.christianity-hand-meter strong{font-size:.86rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:grid;justify-items:center;justify-self:center;width:min(100%,7.5rem)}.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-frame{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;align-content:stretch}.christianity-offering-pile,.christianity-zone-card,.christianity-zone-pile{grid-template-rows:auto minmax(2.6rem,1fr) auto;align-content:stretch;gap:.32rem}.christianity-card-mini{width:3.5rem}.christianity-offering-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;justify-self:center;width:min(100%,7.35rem);height:9.05rem;max-height:9.05rem;min-height:0;padding:.86rem .82rem .78rem;background:linear-gradient(180deg,#fff,#f8fafc),linear-gradient(135deg,rgba(250,204,21,.18),transparent 42%)}.christianity-zone-card-stack{position:absolute;inset:0;z-index:2;pointer-events:none}.christianity-offering-pile .christianity-zone-card-stack,.christianity-zone-card .christianity-zone-card-stack,.christianity-zone-pile .christianity-zone-card-stack{position:absolute;inset:0}.christianity-zone-card-stack val-christianity-card{position:absolute;top:1.72rem;left:50%;width:clamp(3.75rem,7.3vw,4.85rem);filter:drop-shadow(0 .4rem .75rem rgba(16,42,67,.14))}.christianity-offering-pile .christianity-zone-card-stack val-christianity-card{top:1.82rem;width:clamp(3.25rem,6.2vw,4.1rem)}.christianity-zone-card--place .christianity-zone-card-stack val-christianity-card{top:1.45rem;width:clamp(4.05rem,7.6vw,5.25rem)}.christianity-offering-drop-target .christianity-offering-pile{width:100%;height:100%;max-height:none}.christianity-offering-pile>span:not(.christianity-empty-card-slot):not(.christianity-pile-card-hint):not(.christianity-zone-card-stack){position:absolute;top:.72rem;right:.76rem;left:.76rem;z-index:3;justify-self:stretch;max-width:100%;overflow:hidden;padding:0;color:#1f2933b8;font-size:clamp(.74rem,1.9vw,.86rem);font-weight:900;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-pile>strong{position:absolute;right:.58rem;bottom:.64rem;z-index:5;min-width:1.7rem;padding:.13rem .38rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-offering-pile>small{position:absolute;bottom:.78rem;left:.68rem;z-index:5;max-width:calc(100% - 2.7rem);overflow:hidden;color:#1f293394;font-size:.58rem;font-weight:850;line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-slot>.cdk-drag-placeholder{display:none}.christianity-pile-card-hint{position:absolute;top:2.35rem;left:50%;z-index:1;width:clamp(2.7rem,6.4vw,3.4rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.34rem;background:linear-gradient(180deg,#fffffff5,#f8fafce6),radial-gradient(circle at 50% 18%,rgba(250,204,21,.26),transparent 44%);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .42rem .8rem rgba(16,42,67,.14))}.christianity-pile-card-hint i{position:absolute;top:.38rem;right:.38rem;display:block;width:.72rem;height:.72rem;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9) 0 .12rem,transparent .13rem),#ffd91a;box-shadow:inset 0 -.08rem #52401c2e,0 .12rem .24rem #102a431a}.christianity-offering-pile:before,.christianity-offering-pile:after{display:none}.christianity-leader-card{align-self:center;justify-self:center;width:clamp(6.65rem,10.8vw,8.85rem);min-height:0;aspect-ratio:var(--christianity-card-aspect)}.christianity-attack-drop-target{display:grid;justify-items:center;min-width:0}.christianity-rack-spacer{display:block;min-height:1px}.christianity-battle-zone{grid-template-columns:repeat(4,var(--christianity-battle-card-width))}.christianity-shared-zone{box-sizing:border-box;display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch;gap:clamp(.55rem,1.2vw,.9rem);width:100%;max-width:100%;min-width:0}.christianity-zone-card,.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;min-height:8.4rem;padding:.92rem .82rem .78rem;border-color:#24304414;background:linear-gradient(180deg,#ffffff8a,#f8fafc5c),#ffffff3d}.christianity-zone-card--place{background:linear-gradient(180deg,#ffffffb8,#eff6ff80),radial-gradient(circle at 62% 34%,rgba(37,99,235,.18),transparent 52%),#ffffff3d}.christianity-place-backdrop{position:absolute;inset:0;z-index:0;background-position:center;background-size:cover;opacity:.52;filter:blur(1.3rem) saturate(1.28);transform:scale(1.14)}.christianity-zone-card--place:before{content:\"\";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#ffffffad,#fff3),radial-gradient(circle at 50% 42%,rgba(255,255,255,.24),transparent 54%);backdrop-filter:blur(.42rem)}.christianity-place-token{position:absolute;top:2.18rem;left:50%;z-index:2;display:grid;place-items:center;width:clamp(3.2rem,7.2vw,4.45rem);aspect-ratio:1;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:radial-gradient(circle at 35% 24%,rgba(255,255,255,.92),transparent 38%),linear-gradient(135deg,#ffffffe6,#eff6ffb8);box-shadow:0 .65rem 1.1rem #102a4329,inset 0 0 0 .18rem #ffffff70;transform:translate(-50%)}.christianity-place-token img{width:48%;height:48%;object-fit:contain;filter:drop-shadow(0 .18rem .24rem rgba(16,42,67,.14))}.christianity-zone-pile{box-shadow:inset 0 0 0 999px #ffffff0a,0 .45rem 1rem #102a430f}.christianity-zone-card.is-play-target{border-color:#2563eb61;box-shadow:inset 0 0 0 999px #2563eb14,0 0 0 .18rem #2563eb1f}.christianity-zone-pile--history.has-new-card{animation:christianity-history-pulse .9s ease-out both}@keyframes christianity-history-pulse{0%{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}28%{box-shadow:inset 0 0 0 999px #ffffff29,0 0 0 .25rem #2563eb2e;transform:scale(1.025)}to{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}}.christianity-zone-card>val-christianity-card,.christianity-zone-pile>val-christianity-card{position:absolute;top:1.85rem;left:50%;z-index:2;width:clamp(4.15rem,7.5vw,5.35rem);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .35rem .75rem rgba(16,42,67,.12))}.christianity-zone-card--place>val-christianity-card{top:1.55rem;width:clamp(4.4rem,7.8vw,5.85rem);transform:translate(-50%) rotate(2deg);filter:drop-shadow(0 .65rem 1.1rem rgba(16,42,67,.2))}.christianity-zone-pile--deck>val-christianity-card{transform:translate(-50%) rotate(3deg)}.christianity-zone-pile .christianity-pile-card-hint{top:1.85rem;width:clamp(3.75rem,7.4vw,4.85rem);border-color:#102a4324;transform:translate(-50%) rotate(-2deg)}.christianity-zone-pile--deck .christianity-pile-card-hint{background:var(--christianity-card-back);transform:translate(-50%) rotate(3deg)}.christianity-zone-pile--deck .christianity-pile-card-hint i{display:none}.christianity-zone-pile--history .christianity-pile-card-hint{background:linear-gradient(180deg,#fffffff5,#f8fafce6),radial-gradient(circle at 50% 18%,rgba(37,99,235,.18),transparent 44%)}.christianity-zone-card>span:not(.christianity-empty-card-slot):not(.christianity-place-token):not(.christianity-zone-card-stack),.christianity-zone-pile>span:not(.christianity-empty-card-slot):not(.christianity-pile-card-hint):not(.christianity-zone-card-stack){position:absolute;top:.72rem;left:.82rem;z-index:3;justify-self:start;max-width:calc(100% - 1.55rem);overflow:hidden;color:#1f2933d6;font-size:clamp(.76rem,2.5vw,.92rem);text-overflow:ellipsis;white-space:nowrap}.christianity-zone-card>strong,.christianity-zone-pile>strong{position:absolute;right:.45rem;bottom:.45rem;z-index:4;min-width:1.65rem;padding:.12rem .4rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-zone-card>em{position:relative;z-index:4;justify-self:center;align-self:end;padding:.12rem .38rem;border-radius:999px;background:#2563eb1f;color:var(--christianity-theme-focus);font-size:.68rem;font-style:normal;font-weight:900}.christianity-zone-card--place>strong{right:.45rem;transform:none}.christianity-empty-card-slot{position:absolute;top:1.85rem;left:50%;z-index:1;display:block;width:clamp(4.15rem,7.5vw,5.35rem);aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(16,42,67,.22);border-radius:.35rem;background:#ffffff5c;transform:translate(-50%)}.christianity-zone-pile:before,.christianity-zone-pile:after{content:\"\";position:absolute;top:1.95rem;left:50%;z-index:0;width:clamp(3.5rem,7.2vw,4.45rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.35rem;background:#f8fafcf0;transform:translate(calc(-50% + .22rem)) rotate(4deg)}.christianity-zone-pile:after{background:var(--christianity-card-back);transform:translate(calc(-50% - .22rem)) translateY(.16rem) rotate(-3deg)}.christianity-zone-pile.is-empty-zone:before,.christianity-zone-pile.is-empty-zone:after{display:none}.christianity-floating-card-shell{position:fixed;top:50%;left:50%;z-index:10020;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.55rem;width:min(56rem,calc(100vw - 1.25rem));max-height:calc(100dvh - 4.25rem);overflow:visible;overscroll-behavior:contain;scrollbar-width:none;transform:translate(-50%,-50%)}.christianity-floating-card-shell::-webkit-scrollbar{display:none}.christianity-floating-card-shell.is-history-preview{width:min(56rem,calc(100vw - 1.25rem))}.christianity-preview-topbar{position:relative;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-height:2.05rem}.christianity-preview-position{display:inline-grid;place-items:center;min-height:2rem;min-width:3.15rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933b8;font-size:.76rem;font-weight:900;box-shadow:0 .45rem 1rem #102a431a}.christianity-floating-card{position:relative;z-index:2;display:block;width:min(19.25rem,calc(58dvh - 2.4rem),calc(100vw - 6.2rem));min-height:0;padding:0;border:0;border-radius:.75rem;background:transparent;box-shadow:0 0 2.2rem var(--christianity-theme-glow);touch-action:none;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg));transition:transform .14s ease-out}.christianity-preview-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(13rem,17rem);gap:1rem;align-items:center;min-height:0}.christianity-preview-stage{position:relative;display:grid;place-items:center;justify-self:center;width:min(100%,31rem);min-width:0;min-height:0;padding-inline:4.4rem;perspective:52rem}.christianity-preview-stage:before{content:\"\";position:absolute;inset:10% 2.35rem;z-index:0;border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.26),transparent 58%),linear-gradient(90deg,transparent,rgba(37,99,235,.1),transparent);opacity:.8;pointer-events:none}.christianity-preview-ghost{position:absolute;z-index:1;width:min(13rem,calc(42dvh - 3rem),34vw);opacity:.34;pointer-events:none;filter:blur(.02rem) saturate(.9);transition:transform .36s cubic-bezier(.2,.84,.22,1),opacity .36s ease}.christianity-preview-ghost--previous{transform:translate(-86%) rotateY(22deg) rotate(-4deg) scale(.8)}.christianity-preview-ghost--next{transform:translate(86%) rotateY(-22deg) rotate(4deg) scale(.8)}.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card{animation:christianity-preview-slide-previous .36s cubic-bezier(.2,.84,.22,1) both}.christianity-floating-card-shell.is-sliding-next .christianity-floating-card{animation:christianity-preview-slide-next .36s cubic-bezier(.2,.84,.22,1) both}@keyframes christianity-preview-slide-previous{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) - 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(calc(var(--preview-rotate-y, 0deg) + 10deg)) scale(.92)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg)) scale(1)}}@keyframes christianity-preview-slide-next{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) + 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(calc(var(--preview-rotate-y, 0deg) - 10deg)) scale(.92)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg)) scale(1)}}.christianity-preview-side{display:grid;min-width:0}.christianity-floating-card val-christianity-card{display:block;width:100%;min-height:0}.christianity-floating-card-shell.is-gallery-preview .christianity-floating-card{width:min(20.4rem,calc(62dvh - 2.2rem),calc(100vw - 5.4rem))}.christianity-full-card-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.42rem;align-items:center}.christianity-full-card-header strong{min-width:0;display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;text-overflow:clip;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:clamp(1.25rem,5vw,1.85rem);line-height:1.04}.christianity-full-card-type-icon,.christianity-full-card-cost{display:grid;place-items:center;border-radius:999px}.christianity-full-card-type-icon{width:1.6rem;height:1.6rem;background:radial-gradient(circle at 50% 50%,rgba(95,111,42,.72) 0 .22rem,transparent .24rem),#2430441a}.christianity-full-card-type-icon img{width:1rem;height:1rem;object-fit:contain}.christianity-full-card-cost{min-width:2.1rem;height:2.1rem;padding:0 .36rem;background:#ffd91a;color:#243044;font-size:1.1rem;font-weight:900;box-shadow:inset 0 -.12rem #52401c2e}.christianity-full-card-art{position:relative;display:grid;place-items:center;min-height:9rem;overflow:hidden;border-radius:.48rem;background:linear-gradient(135deg,#5f6f2a33,#d6a21d29),radial-gradient(circle at 50% 25%,rgba(255,255,255,.76),transparent 42%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-full-card-art img{width:100%;height:100%;object-fit:cover}.christianity-full-card-art>span{max-width:80%;color:#24304494;font-size:clamp(1.1rem,5vw,1.8rem);font-weight:900;line-height:1.05;text-align:center}.christianity-full-card-art small{position:absolute;right:0;bottom:.55rem;min-width:5rem;padding:.16rem .48rem;border-radius:999px 0 0 999px;background:#ffffffe6;box-shadow:0 .3rem .8rem #102a431f;color:#1f2933bd;font-size:.68rem;font-style:italic;font-weight:900;text-align:center;text-transform:uppercase}.christianity-full-card-verse,.christianity-full-card-effect{display:grid;gap:.32rem}.christianity-full-card-verse p,.christianity-full-card-effect p{margin:0;line-height:1.25}.christianity-full-card-verse{color:#171923;font-family:Georgia,Times New Roman,serif;font-size:clamp(.72rem,2.7vw,.86rem)}.christianity-full-card-verse strong{font-family:inherit;font-size:.78rem;font-weight:900}.christianity-full-card-effect{position:relative;align-content:start;min-height:7rem;padding:.6rem .7rem;overflow:hidden;border-radius:.45rem;background:radial-gradient(circle at 50% 72%,rgba(36,48,68,.07),transparent 34%),#ffffffdb}.christianity-full-card-stats{display:flex;gap:1rem;min-height:1.35rem}.christianity-full-card-stats strong{font-size:1rem;line-height:1}.christianity-full-card-stats .christianity-full-card-pips{display:inline-grid;grid-auto-flow:column;gap:.2rem;justify-self:start;padding:0;background:transparent}.christianity-full-card-effect>div:last-of-type{display:grid;gap:.12rem}.christianity-full-card-effect>div:last-of-type strong{font-size:.82rem}.christianity-full-card-effect p{font-size:clamp(.78rem,2.9vw,.92rem)}.christianity-full-card-rarity{position:absolute;top:.62rem;right:.62rem;width:.46rem;height:.46rem;border-radius:.12rem;transform:rotate(45deg)}.christianity-full-card-rarity.is-normal{background:#3a80e9}.christianity-full-card-rarity.is-good{background:#4ee93a}.christianity-full-card-rarity.is-very-good{background:#e9ce3a}.christianity-full-card-footer{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:.34rem;align-items:center;color:#1f2933ad;font-size:.58rem;line-height:1;text-transform:uppercase}.christianity-full-card-footer span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-floating-card-close{position:relative;z-index:8;min-height:2rem;padding:0 .6rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .45rem 1rem #102a431a}.christianity-preview-nav{position:absolute;top:50%;z-index:7;display:grid;place-items:center;width:2.55rem;height:2.55rem;border:1px solid rgba(37,99,235,.28);border-radius:999px;background:linear-gradient(180deg,#fffffffa,#eff6fff0),radial-gradient(circle at 35% 20%,rgba(37,99,235,.18),transparent 52%);color:var(--christianity-theme-focus);font:inherit;font-size:1.2rem;font-weight:1000;box-shadow:0 .75rem 1.4rem #102a4324,inset 0 0 0 1px #ffffff70;transform:translateY(-50%)}.christianity-preview-nav:hover{border-color:#2563eb6b;box-shadow:0 .95rem 1.65rem #102a432e,0 0 0 .16rem #2563eb14,inset 0 0 0 1px #ffffff9e}.christianity-preview-nav--previous{left:.6rem}.christianity-preview-nav--next{right:.6rem}.christianity-preview-backdrop,.christianity-history-backdrop,.christianity-info-backdrop{position:fixed;inset:0;border:0;border-radius:0;background:#0f172aa3}.christianity-preview-backdrop{z-index:10010;backdrop-filter:blur(.12rem)}.christianity-info-backdrop{z-index:50}.christianity-info-panel{position:fixed;top:50%;left:50%;z-index:51;width:min(31rem,calc(100vw - 1.25rem));max-height:min(34rem,calc(100vh - 2rem));padding-top:2.35rem;transform:translate(-50%,-50%)}.christianity-info-close{position:absolute;top:0;right:.15rem;z-index:2}.christianity-rule-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem;max-height:inherit;padding:1rem;overflow-y:auto;border:1px solid rgba(36,48,68,.14);border-radius:.9rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 38%);box-shadow:0 1.2rem 2.6rem #102a433d,inset 0 0 0 .25rem #ffffff85}.christianity-rule-note-icon{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:999px;background:color-mix(in srgb,var(--christianity-theme-focus) 12%,#ffffff);color:var(--christianity-theme-focus);font-size:1rem;font-weight:900;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent)}.christianity-rule-note small,.christianity-rule-note strong,.christianity-rule-note p,.christianity-rule-note h2{margin:0}.christianity-rule-note small{color:#1f29339e;font-size:.78rem;font-weight:800;text-transform:uppercase}.christianity-rule-note h2{margin-top:.18rem;font-size:clamp(1.5rem,7vw,2.2rem);line-height:1.05}.christianity-rule-note strong{display:inline-flex;width:fit-content;margin-top:.55rem;padding:.22rem .55rem;border-radius:999px;background:#edf2f7;font-size:.92rem}.christianity-rule-note p{margin-top:.75rem;color:#1f2933c7;line-height:1.45}.christianity-rule-note ul{display:grid;gap:.45rem;margin:.8rem 0 0;padding-left:1.05rem;color:#1f2933c7;line-height:1.35}.christianity-floating-card>small,.christianity-floating-card>span{color:#1f2933a3}.christianity-floating-card>strong{font-size:clamp(1.55rem,8vw,2.35rem);line-height:1.05}.christianity-floating-card>p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-preview-rule-note{position:relative;z-index:4;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;max-height:min(18rem,54dvh);padding:.68rem .76rem;overflow-y:auto;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:linear-gradient(180deg,#ffffffe0,#f8fafcd1),radial-gradient(circle at 8% 0%,rgba(37,99,235,.07),transparent 44%);box-shadow:0 .55rem 1.2rem #102a4314}.christianity-preview-abilities{position:relative;z-index:4;display:grid;grid-template-rows:auto auto minmax(4.5rem,1fr) auto;gap:.5rem;max-height:min(15rem,34dvh);min-height:0;padding:.72rem .78rem .78rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:.75rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 44%);box-shadow:0 .75rem 1.6rem #102a431f}.christianity-preview-abilities-header{display:flex;align-items:center;justify-content:space-between;gap:.7rem;min-width:0}.christianity-preview-abilities-header>div{display:grid;gap:.1rem;min-width:0}.christianity-preview-abilities small,.christianity-preview-abilities p,.christianity-preview-abilities-header span,.christianity-preview-ability-card strong{margin:0}.christianity-preview-abilities small{color:#1f293394;font-size:.68rem;font-weight:900;text-transform:uppercase}.christianity-preview-abilities-header span{color:#1f293385;font-size:.72rem;font-weight:900}.christianity-preview-ability-nav{display:flex;flex:0 0 auto;gap:.35rem}.christianity-preview-ability-nav button{display:grid;place-items:center;width:1.85rem;height:1.85rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:#ffffffe0;color:var(--christianity-theme-focus);font:inherit;font-size:1rem;font-weight:950;line-height:1;box-shadow:0 .35rem .85rem #2563eb24}.christianity-preview-ability-tabs{display:flex;gap:.34rem;overflow-x:auto;scrollbar-width:none}.christianity-preview-ability-tabs::-webkit-scrollbar{display:none}.christianity-preview-ability-tabs button{flex:0 0 auto;max-width:100%;min-height:1.85rem;padding:0 .58rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:999px;background:#edf2f7d1;color:#1f2933c2;font:inherit;font-size:.74rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-tabs button.is-selected{border-color:#2563eb52;background:color-mix(in srgb,var(--christianity-theme-focus) 14%,#ffffff);color:var(--christianity-theme-focus)}.christianity-preview-ability-card{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:4.5rem;gap:.34rem;padding:.55rem .62rem;overflow:hidden;border:1px solid rgba(148,163,184,.16);border-radius:.62rem;background:#ffffff94}.christianity-preview-ability-card strong{overflow:hidden;color:#1f2933e6;font-size:.82rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-scroll{min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;padding-right:.25rem}.christianity-preview-abilities p{color:#1f2933bd;font-size:.8rem;line-height:1.32}.christianity-preview-ability-footer{display:flex;justify-content:flex-end;align-self:end}.christianity-preview-use-ability{min-height:2rem;padding:0 .72rem;border:0;border-radius:999px;background:var(--christianity-theme-focus);color:#fff;font:inherit;font-size:.78rem;font-weight:900;box-shadow:0 .55rem 1.1rem #2563eb38}.christianity-preview-use-ability:disabled{background:#94a3b85c;color:#1f293380;box-shadow:none}.christianity-preview-rule-note small,.christianity-preview-rule-note strong,.christianity-preview-rule-note p{margin:0}.christianity-preview-rule-note small{color:#1f293394;font-size:.68rem;font-weight:800;text-transform:uppercase}.christianity-preview-rule-note strong{display:block;margin-top:.08rem;font-size:.92rem;line-height:1.1}.christianity-preview-rule-note p{margin-top:.22rem;color:#1f2933bd;font-size:.82rem;line-height:1.32}@media (min-width: 52rem){.christianity-floating-card-shell{width:min(58rem,calc(100vw - 3rem))}.christianity-floating-card{min-height:0;padding:0;width:min(23.4rem,calc(69dvh - 5.85rem),25rem)}}@media (max-width: 51.99rem){.christianity-floating-card-shell{top:50%;gap:.4rem;width:min(calc(100vw - .9rem),24rem);max-height:calc(100dvh - 1.15rem)}.christianity-preview-content{grid-template-columns:minmax(0,1fr)}.christianity-preview-side{display:none}.christianity-preview-stage{width:100%;padding-inline:3.55rem}.christianity-floating-card{width:min(16.5rem,calc(66dvh - 7.4rem),calc(100vw - 6.35rem));justify-self:center}.christianity-floating-card-shell.is-gallery-preview .christianity-floating-card{width:min(17.25rem,calc(70dvh - 7.2rem),calc(100vw - 5.75rem))}.christianity-preview-ghost{display:block;width:min(7.1rem,calc(30dvh - 4rem),24vw);opacity:.24}.christianity-preview-ghost--previous{transform:translate(-118%) rotateY(24deg) rotate(-5deg) scale(.78)}.christianity-preview-ghost--next{transform:translate(118%) rotateY(-24deg) rotate(5deg) scale(.78)}.christianity-floating-card-close{min-height:1.9rem;padding:0 .58rem;font-size:.72rem}.christianity-preview-nav{width:2.2rem;height:2.2rem}.christianity-preview-nav--previous{left:.35rem}.christianity-preview-nav--next{right:.35rem}.christianity-preview-abilities{grid-template-rows:auto auto minmax(4.7rem,1fr) auto;max-height:min(13.5rem,34dvh);padding:.62rem .7rem}.christianity-preview-ability-tabs{padding-bottom:.02rem}.christianity-preview-ability-card{min-height:4.7rem;padding:.48rem .54rem}.christianity-preview-abilities p{font-size:.78rem;line-height:1.24}.christianity-preview-use-ability{min-height:1.95rem;padding-inline:.68rem}}.christianity-history-backdrop{z-index:40}.christianity-gallery-backdrop{z-index:10000;background:#0f172ab8;backdrop-filter:blur(.14rem)}.christianity-history-drawer{position:fixed;right:auto;bottom:max(.5rem,env(safe-area-inset-bottom));left:50%;z-index:41;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;width:min(calc(100vw - 1rem),44rem);min-height:min(18rem,calc(100dvh - 1rem));max-height:min(32rem,calc(100dvh - 2rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347;transform:translate(-50%)}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-dialog-actions{display:flex;align-items:center;gap:.45rem}.christianity-dialog-close{min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#fff;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .8rem #102a4314}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem .1rem .25rem}.christianity-history-grid::-webkit-scrollbar,.christianity-offering-list::-webkit-scrollbar{width:.65rem}.christianity-history-grid::-webkit-scrollbar-track,.christianity-offering-list::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-history-grid::-webkit-scrollbar-thumb,.christianity-offering-list::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offerings-drawer{grid-template-rows:auto auto minmax(0,1fr);width:min(calc(100vw - 1rem),48rem);min-height:min(20rem,calc(100dvh - 1rem));max-height:min(34rem,calc(100dvh - 2rem))}.christianity-offerings-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;padding:.72rem .8rem;border:1px solid rgba(36,48,68,.12);border-radius:.7rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 8% 0%,rgba(214,162,29,.12),transparent 42%)}.christianity-offerings-note p{margin:0;color:#1f2933c2;font-size:.86rem;line-height:1.35}.christianity-offering-list{display:grid;gap:.6rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem}.christianity-offering-row{display:grid;grid-template-columns:minmax(5.4rem,6.5rem) minmax(0,1fr);gap:.65rem;align-items:center;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.65rem;background:#fff}.christianity-offering-row.is-exhausted{opacity:.68}.christianity-gallery-drawer{position:fixed;grid-template-rows:auto auto auto minmax(0,1fr);inset:0;z-index:10001;box-sizing:border-box;width:100dvw;height:100dvh;max-width:none;min-height:100dvh;max-height:100dvh;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));border:0;border-radius:0;background:linear-gradient(180deg,#f8fafcfc,#eff6fffc),radial-gradient(circle at 16% 0%,rgba(37,99,235,.12),transparent 42%);transform:none}.christianity-gallery-drawer header>div:first-child{display:grid;gap:.15rem;min-width:0}.christianity-gallery-drawer header p{color:#1f293394;font-size:.82rem}.christianity-gallery-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(8.5rem,13rem);gap:.65rem;min-width:0}.christianity-gallery-controls label{display:grid;gap:.25rem;min-width:0;color:#1f29339e;font-size:.74rem;font-weight:800}.christianity-gallery-controls input,.christianity-gallery-controls select{width:100%;min-width:0;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(36,48,68,.16);border-radius:.65rem;background:#fff;color:var(--christianity-theme-ink);font:inherit;font-size:.9rem}.christianity-gallery-edition-strip{display:flex;gap:.45rem;overflow-x:auto;min-width:0;padding-bottom:.2rem}.christianity-gallery-edition-strip button{display:inline-flex;align-items:center;gap:.45rem;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(214,162,29,.38);border-radius:999px;background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800}.christianity-gallery-edition-strip img{width:1.2rem;height:1.2rem;object-fit:contain}.christianity-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.2rem,9.1rem));justify-content:center;align-content:start;gap:.95rem;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.35rem .15rem .65rem}.christianity-gallery-grid .christianity-gallery-card-button{width:100%}.christianity-gallery-grid::-webkit-scrollbar{width:.65rem}.christianity-gallery-grid::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-gallery-grid::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offering-card{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;gap:.26rem;width:100%;min-height:7.7rem;padding:.58rem;overflow:hidden;text-align:left;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 78% 14%,rgba(250,204,21,.78) 0 .42rem,transparent .44rem);box-shadow:0 .45rem 1rem #102a431a}.christianity-offering-card small{min-width:0;overflow:hidden;color:#1f293394;font-size:.62rem;font-weight:800;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-offering-card strong{display:-webkit-box;align-self:start;min-width:0;margin-top:.1rem;overflow:hidden;overflow-wrap:anywhere;font-size:.88rem;line-height:1.05;-webkit-box-orient:vertical;-webkit-line-clamp:3}.christianity-offering-card span{position:absolute;right:.42rem;bottom:.42rem;display:grid;place-items:center;min-width:1.55rem;height:1.55rem;padding:0 .28rem;border-radius:999px;background:#edf2f7;font-size:.82rem;font-weight:900}.christianity-offering-card em{align-self:end;max-width:calc(100% - 1.9rem);overflow:hidden;color:#1f29339e;font-size:.64rem;font-style:normal;font-weight:800;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-card p,.christianity-offering-row p{margin:0}.christianity-offering-card p{align-self:end;color:#1f2933a3;font-size:.72rem;line-height:1.2}.christianity-offering-row>div{display:grid;gap:.35rem;align-content:center;min-width:0}.christianity-offering-row>div p{color:#1f2933b8;font-size:.85rem;line-height:1.3}.christianity-offering-row>div button{justify-self:start;min-height:2.2rem;padding:0 .7rem;border:1px solid rgba(16,42,67,.16);border-radius:.5rem;background:#102a43;color:#fff;font:inherit;font-weight:800}.christianity-offering-row>div button:disabled{background:#e2e8f0;color:#1f293394}.christianity-history-grid .christianity-render-card-button{justify-self:center;width:min(100%,6.4rem)}.christianity-gallery-grid .christianity-render-card-button{justify-self:center;width:min(100%,8.7rem)}.christianity-gallery-grid .christianity-card-frame-header strong{font-size:clamp(.74rem,.85vw,.9rem)}.christianity-gallery-grid .christianity-card-frame-header small,.christianity-gallery-grid .christianity-card-frame-footer{font-size:.44rem}.christianity-offering-card.christianity-render-card-button{width:min(100%,5.8rem);min-height:0;padding:0;border:0;background:transparent;box-shadow:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent);outline-offset:.125rem}:host-context(.dark),:host-context(.ion-palette-dark),:host-context(html.ion-palette-dark),:host-context(body.dark),:host-context([data-theme=\"dark\"]){--christianity-theme-ink: var(--ion-text-color, #e5edf8);--christianity-theme-surface: #111827;--christianity-theme-parchment: #13223a;--christianity-theme-olive: #93c5fd;--christianity-theme-gold: #60a5fa;--christianity-theme-gold-soft: rgba(96, 165, 250, .18);--christianity-theme-gold-ring: rgba(147, 197, 253, .42);--christianity-theme-glow: rgba(96, 165, 250, .24);--christianity-theme-focus: #93c5fd;--christianity-theme-shadow: rgba(0, 0, 0, .34);--christianity-theme-shadow-strong: rgba(0, 0, 0, .48);--christianity-card-back: linear-gradient(135deg, rgba(147, 197, 253, .2), rgba(15, 23, 42, .08)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(147, 197, 253, .15), rgba(15, 23, 42, .06)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);color-scheme:dark}:host-context(.dark) .christianity-gallery-open,:host-context(.ion-palette-dark) .christianity-gallery-open,:host-context(html.ion-palette-dark) .christianity-gallery-open,:host-context(body.dark) .christianity-gallery-open,:host-context([data-theme=\"dark\"]) .christianity-gallery-open,:host-context(.dark) .christianity-secondary-action,:host-context(.ion-palette-dark) .christianity-secondary-action,:host-context(html.ion-palette-dark) .christianity-secondary-action,:host-context(body.dark) .christianity-secondary-action,:host-context([data-theme=\"dark\"]) .christianity-secondary-action,:host-context(.dark) .christianity-gallery-edition-strip button,:host-context(.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(html.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(body.dark) .christianity-gallery-edition-strip button,:host-context([data-theme=\"dark\"]) .christianity-gallery-edition-strip button{border-color:#93c5fd5c;background:linear-gradient(180deg,#1e3a5fd1,#0f172ae0),radial-gradient(circle at 20% 0%,rgba(96,165,250,.16),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.2rem #0000003d}:host-context(.dark) .christianity-splash,:host-context(.ion-palette-dark) .christianity-splash,:host-context(html.ion-palette-dark) .christianity-splash,:host-context(body.dark) .christianity-splash,:host-context([data-theme=\"dark\"]) .christianity-splash{border-color:#93c5fd38;background:radial-gradient(circle at 50% 18%,rgba(96,165,250,.16),transparent 22rem),linear-gradient(180deg,#0f172ae0,#07111ff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #00000047}:host-context(.dark) .christianity-start__cards article,:host-context(.ion-palette-dark) .christianity-start__cards article,:host-context(html.ion-palette-dark) .christianity-start__cards article,:host-context(body.dark) .christianity-start__cards article,:host-context([data-theme=\"dark\"]) .christianity-start__cards article,:host-context(.dark) .christianity-start__modes article,:host-context(.ion-palette-dark) .christianity-start__modes article,:host-context(html.ion-palette-dark) .christianity-start__modes article,:host-context(body.dark) .christianity-start__modes article,:host-context([data-theme=\"dark\"]) .christianity-start__modes article,:host-context(.dark) .christianity-start__status span,:host-context(.ion-palette-dark) .christianity-start__status span,:host-context(html.ion-palette-dark) .christianity-start__status span,:host-context(body.dark) .christianity-start__status span,:host-context([data-theme=\"dark\"]) .christianity-start__status span,:host-context(.dark) .christianity-start__modes article>span,:host-context(.ion-palette-dark) .christianity-start__modes article>span,:host-context(html.ion-palette-dark) .christianity-start__modes article>span,:host-context(body.dark) .christianity-start__modes article>span,:host-context([data-theme=\"dark\"]) .christianity-start__modes article>span{border-color:#94a3b833;background:#0f172aad;box-shadow:0 .75rem 1.7rem #00000038}:host-context(.dark) .christianity-splash p,:host-context(.ion-palette-dark) .christianity-splash p,:host-context(html.ion-palette-dark) .christianity-splash p,:host-context(body.dark) .christianity-splash p,:host-context([data-theme=\"dark\"]) .christianity-splash p,:host-context(.dark) .christianity-start__copy p,:host-context(.ion-palette-dark) .christianity-start__copy p,:host-context(html.ion-palette-dark) .christianity-start__copy p,:host-context(body.dark) .christianity-start__copy p,:host-context([data-theme=\"dark\"]) .christianity-start__copy p,:host-context(.dark) .christianity-start__cards p,:host-context(.ion-palette-dark) .christianity-start__cards p,:host-context(html.ion-palette-dark) .christianity-start__cards p,:host-context(body.dark) .christianity-start__cards p,:host-context([data-theme=\"dark\"]) .christianity-start__cards p,:host-context(.dark) .christianity-start__modes p,:host-context(.ion-palette-dark) .christianity-start__modes p,:host-context(html.ion-palette-dark) .christianity-start__modes p,:host-context(body.dark) .christianity-start__modes p,:host-context([data-theme=\"dark\"]) .christianity-start__modes p,:host-context(.dark) .christianity-header p,:host-context(.ion-palette-dark) .christianity-header p,:host-context(html.ion-palette-dark) .christianity-header p,:host-context(body.dark) .christianity-header p,:host-context([data-theme=\"dark\"]) .christianity-header p,:host-context(.dark) .christianity-match-player small,:host-context(.ion-palette-dark) .christianity-match-player small,:host-context(html.ion-palette-dark) .christianity-match-player small,:host-context(body.dark) .christianity-match-player small,:host-context([data-theme=\"dark\"]) .christianity-match-player small,:host-context(.dark) .christianity-scoreboard span,:host-context(.ion-palette-dark) .christianity-scoreboard span,:host-context(html.ion-palette-dark) .christianity-scoreboard span,:host-context(body.dark) .christianity-scoreboard span,:host-context([data-theme=\"dark\"]) .christianity-scoreboard span{color:#e2e8f0bd}:host-context(.dark) .christianity-turn,:host-context(.ion-palette-dark) .christianity-turn,:host-context(html.ion-palette-dark) .christianity-turn,:host-context(body.dark) .christianity-turn,:host-context([data-theme=\"dark\"]) .christianity-turn,:host-context(.dark) .christianity-leader,:host-context(.ion-palette-dark) .christianity-leader,:host-context(html.ion-palette-dark) .christianity-leader,:host-context(body.dark) .christianity-leader,:host-context([data-theme=\"dark\"]) .christianity-leader,:host-context(.dark) .christianity-offerings,:host-context(.ion-palette-dark) .christianity-offerings,:host-context(html.ion-palette-dark) .christianity-offerings,:host-context(body.dark) .christianity-offerings,:host-context([data-theme=\"dark\"]) .christianity-offerings,:host-context(.dark) .christianity-hidden-hand,:host-context(.ion-palette-dark) .christianity-hidden-hand,:host-context(html.ion-palette-dark) .christianity-hidden-hand,:host-context(body.dark) .christianity-hidden-hand,:host-context([data-theme=\"dark\"]) .christianity-hidden-hand,:host-context(.dark) .christianity-pile,:host-context(.ion-palette-dark) .christianity-pile,:host-context(html.ion-palette-dark) .christianity-pile,:host-context(body.dark) .christianity-pile,:host-context([data-theme=\"dark\"]) .christianity-pile,:host-context(.dark) .christianity-deck,:host-context(.ion-palette-dark) .christianity-deck,:host-context(html.ion-palette-dark) .christianity-deck,:host-context(body.dark) .christianity-deck,:host-context([data-theme=\"dark\"]) .christianity-deck,:host-context(.dark) .christianity-place,:host-context(.ion-palette-dark) .christianity-place,:host-context(html.ion-palette-dark) .christianity-place,:host-context(body.dark) .christianity-place,:host-context([data-theme=\"dark\"]) .christianity-place,:host-context(.dark) .christianity-match-strip,:host-context(.ion-palette-dark) .christianity-match-strip,:host-context(html.ion-palette-dark) .christianity-match-strip,:host-context(body.dark) .christianity-match-strip,:host-context([data-theme=\"dark\"]) .christianity-match-strip,:host-context(.dark) .christianity-actions,:host-context(.ion-palette-dark) .christianity-actions,:host-context(html.ion-palette-dark) .christianity-actions,:host-context(body.dark) .christianity-actions,:host-context([data-theme=\"dark\"]) .christianity-actions,:host-context(.dark) .christianity-history,:host-context(.ion-palette-dark) .christianity-history,:host-context(html.ion-palette-dark) .christianity-history,:host-context(body.dark) .christianity-history,:host-context([data-theme=\"dark\"]) .christianity-history{border-color:#94a3b82e;background:#0f172ad1}:host-context(.dark) .christianity-turn.is-own-turn,:host-context(.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(html.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(body.dark) .christianity-turn.is-own-turn,:host-context([data-theme=\"dark\"]) .christianity-turn.is-own-turn{border-color:#2dd4bf5c;background:#14534c5c}:host-context(.dark) .christianity-table,:host-context(.ion-palette-dark) .christianity-table,:host-context(html.ion-palette-dark) .christianity-table,:host-context(body.dark) .christianity-table,:host-context([data-theme=\"dark\"]) .christianity-table{background:linear-gradient(180deg,#10233d,#0b1728)}:host-context(.dark) .christianity-player-side,:host-context(.ion-palette-dark) .christianity-player-side,:host-context(html.ion-palette-dark) .christianity-player-side,:host-context(body.dark) .christianity-player-side,:host-context([data-theme=\"dark\"]) .christianity-player-side{background:#0f172a57}:host-context(.dark) .christianity-battle-zone,:host-context(.ion-palette-dark) .christianity-battle-zone,:host-context(html.ion-palette-dark) .christianity-battle-zone,:host-context(body.dark) .christianity-battle-zone,:host-context([data-theme=\"dark\"]) .christianity-battle-zone,:host-context(.dark) .christianity-shared-zone,:host-context(.ion-palette-dark) .christianity-shared-zone,:host-context(html.ion-palette-dark) .christianity-shared-zone,:host-context(body.dark) .christianity-shared-zone,:host-context([data-theme=\"dark\"]) .christianity-shared-zone{background:#0f172a94}:host-context(.dark) .christianity-battle-zone.is-placing-card,:host-context(.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(html.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(body.dark) .christianity-battle-zone.is-placing-card,:host-context([data-theme=\"dark\"]) .christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#1e3a5fd1,#0f172ab8),#0f172a94}:host-context(.dark) .christianity-card,:host-context(.ion-palette-dark) .christianity-card,:host-context(html.ion-palette-dark) .christianity-card,:host-context(body.dark) .christianity-card,:host-context([data-theme=\"dark\"]) .christianity-card,:host-context(.dark) .christianity-slot,:host-context(.ion-palette-dark) .christianity-slot,:host-context(html.ion-palette-dark) .christianity-slot,:host-context(body.dark) .christianity-slot,:host-context([data-theme=\"dark\"]) .christianity-slot{border-color:#94a3b83d;background:#0f172a8a}:host-context(.dark) .christianity-slot--play-target,:host-context(.ion-palette-dark) .christianity-slot--play-target,:host-context(html.ion-palette-dark) .christianity-slot--play-target,:host-context(body.dark) .christianity-slot--play-target,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target{color:var(--christianity-theme-ink);background:linear-gradient(180deg,#2563eb3d,#0f172ac7),#0f172abd}:host-context(.dark) .christianity-slot--play-target span,:host-context(.ion-palette-dark) .christianity-slot--play-target span,:host-context(html.ion-palette-dark) .christianity-slot--play-target span,:host-context(body.dark) .christianity-slot--play-target span,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target span,:host-context(.dark) .christianity-card strong,:host-context(.ion-palette-dark) .christianity-card strong,:host-context(html.ion-palette-dark) .christianity-card strong,:host-context(body.dark) .christianity-card strong,:host-context([data-theme=\"dark\"]) .christianity-card strong{background:#1e293beb}:host-context(.dark) .christianity-offering-pile,:host-context(.ion-palette-dark) .christianity-offering-pile,:host-context(html.ion-palette-dark) .christianity-offering-pile,:host-context(body.dark) .christianity-offering-pile,:host-context([data-theme=\"dark\"]) .christianity-offering-pile,:host-context(.dark) .christianity-zone-card,:host-context(.ion-palette-dark) .christianity-zone-card,:host-context(html.ion-palette-dark) .christianity-zone-card,:host-context(body.dark) .christianity-zone-card,:host-context([data-theme=\"dark\"]) .christianity-zone-card,:host-context(.dark) .christianity-zone-pile,:host-context(.ion-palette-dark) .christianity-zone-pile,:host-context(html.ion-palette-dark) .christianity-zone-pile,:host-context(body.dark) .christianity-zone-pile,:host-context([data-theme=\"dark\"]) .christianity-zone-pile{border-color:#94a3b83d;background:linear-gradient(180deg,#111827f5,#0f172af0),radial-gradient(circle at 14% 0%,rgba(96,165,250,.12),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.25rem #00000047,inset 0 0 0 .12rem #ffffff08}:host-context(.dark) .christianity-offering-pile>span,:host-context(.ion-palette-dark) .christianity-offering-pile>span,:host-context(html.ion-palette-dark) .christianity-offering-pile>span,:host-context(body.dark) .christianity-offering-pile>span,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>span,:host-context(.dark) .christianity-zone-card>span,:host-context(.ion-palette-dark) .christianity-zone-card>span,:host-context(html.ion-palette-dark) .christianity-zone-card>span,:host-context(body.dark) .christianity-zone-card>span,:host-context([data-theme=\"dark\"]) .christianity-zone-card>span,:host-context(.dark) .christianity-zone-pile>span,:host-context(.ion-palette-dark) .christianity-zone-pile>span,:host-context(html.ion-palette-dark) .christianity-zone-pile>span,:host-context(body.dark) .christianity-zone-pile>span,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>span,:host-context(.dark) .christianity-player-badge,:host-context(.ion-palette-dark) .christianity-player-badge,:host-context(html.ion-palette-dark) .christianity-player-badge,:host-context(body.dark) .christianity-player-badge,:host-context([data-theme=\"dark\"]) .christianity-player-badge{color:#e2e8f0c7}:host-context(.dark) .christianity-offering-pile>small,:host-context(.ion-palette-dark) .christianity-offering-pile>small,:host-context(html.ion-palette-dark) .christianity-offering-pile>small,:host-context(body.dark) .christianity-offering-pile>small,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>small{color:#e2e8f09e}:host-context(.dark) .christianity-offering-pile>strong,:host-context(.ion-palette-dark) .christianity-offering-pile>strong,:host-context(html.ion-palette-dark) .christianity-offering-pile>strong,:host-context(body.dark) .christianity-offering-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>strong,:host-context(.dark) .christianity-zone-card>strong,:host-context(.ion-palette-dark) .christianity-zone-card>strong,:host-context(html.ion-palette-dark) .christianity-zone-card>strong,:host-context(body.dark) .christianity-zone-card>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-card>strong,:host-context(.dark) .christianity-zone-pile>strong,:host-context(.ion-palette-dark) .christianity-zone-pile>strong,:host-context(html.ion-palette-dark) .christianity-zone-pile>strong,:host-context(body.dark) .christianity-zone-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>strong,:host-context(.dark) .christianity-hand-meter,:host-context(.ion-palette-dark) .christianity-hand-meter,:host-context(html.ion-palette-dark) .christianity-hand-meter,:host-context(body.dark) .christianity-hand-meter,:host-context([data-theme=\"dark\"]) .christianity-hand-meter{border-color:#94a3b833;background:#0f172ae0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #00000047}:host-context(.dark) .christianity-hand-meter span,:host-context(.ion-palette-dark) .christianity-hand-meter span,:host-context(html.ion-palette-dark) .christianity-hand-meter span,:host-context(body.dark) .christianity-hand-meter span,:host-context([data-theme=\"dark\"]) .christianity-hand-meter span{color:#e2e8f0b3}:host-context(.dark) .christianity-offering-pile:before,:host-context(.ion-palette-dark) .christianity-offering-pile:before,:host-context(html.ion-palette-dark) .christianity-offering-pile:before,:host-context(body.dark) .christianity-offering-pile:before,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:before,:host-context(.dark) .christianity-zone-pile:before,:host-context(.ion-palette-dark) .christianity-zone-pile:before,:host-context(html.ion-palette-dark) .christianity-zone-pile:before,:host-context(body.dark) .christianity-zone-pile:before,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:before{border-color:#94a3b833;background:#e2e8f0eb;box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-offering-pile:after,:host-context(.ion-palette-dark) .christianity-offering-pile:after,:host-context(html.ion-palette-dark) .christianity-offering-pile:after,:host-context(body.dark) .christianity-offering-pile:after,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:after,:host-context(.dark) .christianity-zone-pile:after,:host-context(.ion-palette-dark) .christianity-zone-pile:after,:host-context(html.ion-palette-dark) .christianity-zone-pile:after,:host-context(body.dark) .christianity-zone-pile:after,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:after{border-color:#94a3b838;background:var(--christianity-card-back);box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-end-turn:disabled,:host-context(.ion-palette-dark) .christianity-end-turn:disabled,:host-context(html.ion-palette-dark) .christianity-end-turn:disabled,:host-context(body.dark) .christianity-end-turn:disabled,:host-context([data-theme=\"dark\"]) .christianity-end-turn:disabled{border-color:#94a3b829;background:#0f172a75;color:#e2e8f06b;opacity:1}:host-context(.dark) .christianity-history-drawer,:host-context(.ion-palette-dark) .christianity-history-drawer,:host-context(html.ion-palette-dark) .christianity-history-drawer,:host-context(body.dark) .christianity-history-drawer,:host-context([data-theme=\"dark\"]) .christianity-history-drawer,:host-context(.dark) .christianity-rule-note,:host-context(.ion-palette-dark) .christianity-rule-note,:host-context(html.ion-palette-dark) .christianity-rule-note,:host-context(body.dark) .christianity-rule-note,:host-context([data-theme=\"dark\"]) .christianity-rule-note,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note,:host-context(.dark) .christianity-preview-abilities,:host-context(.ion-palette-dark) .christianity-preview-abilities,:host-context(html.ion-palette-dark) .christianity-preview-abilities,:host-context(body.dark) .christianity-preview-abilities,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities{border-color:#94a3b82e;background:linear-gradient(180deg,#0f172af5,#111827f5),radial-gradient(circle at 8% 0%,rgba(96,165,250,.12),transparent 40%);box-shadow:0 1.5rem 4rem #0000006b}:host-context(.dark) .christianity-dialog-close,:host-context(.ion-palette-dark) .christianity-dialog-close,:host-context(html.ion-palette-dark) .christianity-dialog-close,:host-context(body.dark) .christianity-dialog-close,:host-context([data-theme=\"dark\"]) .christianity-dialog-close,:host-context(.dark) .christianity-floating-card-close,:host-context(.ion-palette-dark) .christianity-floating-card-close,:host-context(html.ion-palette-dark) .christianity-floating-card-close,:host-context(body.dark) .christianity-floating-card-close,:host-context([data-theme=\"dark\"]) .christianity-floating-card-close,:host-context(.dark) .christianity-preview-position,:host-context(.ion-palette-dark) .christianity-preview-position,:host-context(html.ion-palette-dark) .christianity-preview-position,:host-context(body.dark) .christianity-preview-position,:host-context([data-theme=\"dark\"]) .christianity-preview-position,:host-context(.dark) .christianity-preview-nav,:host-context(.ion-palette-dark) .christianity-preview-nav,:host-context(html.ion-palette-dark) .christianity-preview-nav,:host-context(body.dark) .christianity-preview-nav,:host-context([data-theme=\"dark\"]) .christianity-preview-nav,:host-context(.dark) .christianity-preview-ability-nav button,:host-context(.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(html.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(body.dark) .christianity-preview-ability-nav button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-nav button,:host-context(.dark) .christianity-preview-ability-tabs button,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(body.dark) .christianity-preview-ability-tabs button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button{border-color:#94a3b838;background:#0f172af0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #0000004d}:host-context(.dark) .christianity-preview-ability-tabs button.is-selected,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(body.dark) .christianity-preview-ability-tabs button.is-selected,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button.is-selected{border-color:#60a5fa61;background:#2563eb38;color:#dbeafef0}:host-context(.dark) .christianity-preview-use-ability:disabled,:host-context(.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(html.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(body.dark) .christianity-preview-use-ability:disabled,:host-context([data-theme=\"dark\"]) .christianity-preview-use-ability:disabled{background:#334155c7;color:#e2e8f07a}:host-context(.dark) .christianity-preview-ability-card,:host-context(.ion-palette-dark) .christianity-preview-ability-card,:host-context(html.ion-palette-dark) .christianity-preview-ability-card,:host-context(body.dark) .christianity-preview-ability-card,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card{border-color:#94a3b829;background:#0f172a6b}:host-context(.dark) .christianity-preview-ability-card strong,:host-context(.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(html.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(body.dark) .christianity-preview-ability-card strong,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card strong,:host-context(.dark) .christianity-preview-abilities-header span,:host-context(.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(html.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(body.dark) .christianity-preview-abilities-header span,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities-header span{color:#e2e8f0d1}:host-context(.dark) .christianity-history-drawer header span,:host-context(.ion-palette-dark) .christianity-history-drawer header span,:host-context(html.ion-palette-dark) .christianity-history-drawer header span,:host-context(body.dark) .christianity-history-drawer header span,:host-context([data-theme=\"dark\"]) .christianity-history-drawer header span,:host-context(.dark) .christianity-rule-note strong,:host-context(.ion-palette-dark) .christianity-rule-note strong,:host-context(html.ion-palette-dark) .christianity-rule-note strong,:host-context(body.dark) .christianity-rule-note strong,:host-context([data-theme=\"dark\"]) .christianity-rule-note strong{background:#1e293beb}:host-context(.dark) .christianity-rule-note small,:host-context(.ion-palette-dark) .christianity-rule-note small,:host-context(html.ion-palette-dark) .christianity-rule-note small,:host-context(body.dark) .christianity-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-rule-note small,:host-context(.dark) .christianity-preview-rule-note small,:host-context(.ion-palette-dark) .christianity-preview-rule-note small,:host-context(html.ion-palette-dark) .christianity-preview-rule-note small,:host-context(body.dark) .christianity-preview-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note small,:host-context(.dark) .christianity-preview-abilities small,:host-context(.ion-palette-dark) .christianity-preview-abilities small,:host-context(html.ion-palette-dark) .christianity-preview-abilities small,:host-context(body.dark) .christianity-preview-abilities small,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities small,:host-context(.dark) .christianity-gallery-drawer header p,:host-context(.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(html.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(body.dark) .christianity-gallery-drawer header p,:host-context([data-theme=\"dark\"]) .christianity-gallery-drawer header p,:host-context(.dark) .christianity-gallery-controls label,:host-context(.ion-palette-dark) .christianity-gallery-controls label,:host-context(html.ion-palette-dark) .christianity-gallery-controls label,:host-context(body.dark) .christianity-gallery-controls label,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls label{color:#e2e8f0ad}:host-context(.dark) .christianity-rule-note p,:host-context(.ion-palette-dark) .christianity-rule-note p,:host-context(html.ion-palette-dark) .christianity-rule-note p,:host-context(body.dark) .christianity-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-rule-note p,:host-context(.dark) .christianity-rule-note ul,:host-context(.ion-palette-dark) .christianity-rule-note ul,:host-context(html.ion-palette-dark) .christianity-rule-note ul,:host-context(body.dark) .christianity-rule-note ul,:host-context([data-theme=\"dark\"]) .christianity-rule-note ul,:host-context(.dark) .christianity-preview-rule-note p,:host-context(.ion-palette-dark) .christianity-preview-rule-note p,:host-context(html.ion-palette-dark) .christianity-preview-rule-note p,:host-context(body.dark) .christianity-preview-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note p,:host-context(.dark) .christianity-preview-abilities p,:host-context(.ion-palette-dark) .christianity-preview-abilities p,:host-context(html.ion-palette-dark) .christianity-preview-abilities p,:host-context(body.dark) .christianity-preview-abilities p,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities p,:host-context(.dark) .christianity-offerings-note p,:host-context(.ion-palette-dark) .christianity-offerings-note p,:host-context(html.ion-palette-dark) .christianity-offerings-note p,:host-context(body.dark) .christianity-offerings-note p,:host-context([data-theme=\"dark\"]) .christianity-offerings-note p{color:#e2e8f0cc}:host-context(.dark) .christianity-gallery-controls input,:host-context(.ion-palette-dark) .christianity-gallery-controls input,:host-context(html.ion-palette-dark) .christianity-gallery-controls input,:host-context(body.dark) .christianity-gallery-controls input,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls input,:host-context(.dark) .christianity-gallery-controls select,:host-context(.ion-palette-dark) .christianity-gallery-controls select,:host-context(html.ion-palette-dark) .christianity-gallery-controls select,:host-context(body.dark) .christianity-gallery-controls select,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls select,:host-context(.dark) .christianity-offering-row,:host-context(.ion-palette-dark) .christianity-offering-row,:host-context(html.ion-palette-dark) .christianity-offering-row,:host-context(body.dark) .christianity-offering-row,:host-context([data-theme=\"dark\"]) .christianity-offering-row,:host-context(.dark) .christianity-offerings-note,:host-context(.ion-palette-dark) .christianity-offerings-note,:host-context(html.ion-palette-dark) .christianity-offerings-note,:host-context(body.dark) .christianity-offerings-note,:host-context([data-theme=\"dark\"]) .christianity-offerings-note{border-color:#94a3b833;background:#0f172ac7;color:var(--christianity-theme-ink)}:host-context(.dark) .christianity-history-grid,:host-context(.ion-palette-dark) .christianity-history-grid,:host-context(html.ion-palette-dark) .christianity-history-grid,:host-context(body.dark) .christianity-history-grid,:host-context([data-theme=\"dark\"]) .christianity-history-grid,:host-context(.dark) .christianity-offering-list,:host-context(.ion-palette-dark) .christianity-offering-list,:host-context(html.ion-palette-dark) .christianity-offering-list,:host-context(body.dark) .christianity-offering-list,:host-context([data-theme=\"dark\"]) .christianity-offering-list,:host-context(.dark) .christianity-gallery-grid,:host-context(.ion-palette-dark) .christianity-gallery-grid,:host-context(html.ion-palette-dark) .christianity-gallery-grid,:host-context(body.dark) .christianity-gallery-grid,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note{scrollbar-color:rgba(148,163,184,.54) rgba(15,23,42,.86)}:host-context(.dark) .christianity-rule-note-icon,:host-context(.ion-palette-dark) .christianity-rule-note-icon,:host-context(html.ion-palette-dark) .christianity-rule-note-icon,:host-context(body.dark) .christianity-rule-note-icon,:host-context([data-theme=\"dark\"]) .christianity-rule-note-icon{background:#60a5fa29;color:#bfdbfe;box-shadow:inset 0 0 0 1px #93c5fd38}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-track{background:#0f172adb}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-thumb{border-color:#0f172adb;background:#94a3b88a}@media (max-width: 720px){:host{overflow-x:hidden}.christianity-shell{padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) 10.45rem max(.75rem,env(safe-area-inset-left))}.christianity-shell.is-preparing{padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left))}.christianity-shell.is-preparing .christianity-table{min-height:calc(100dvh - max(1.5rem,env(safe-area-inset-top) + env(safe-area-inset-bottom)))}.christianity-actions{position:fixed;right:max(.6rem,env(safe-area-inset-right));bottom:calc(max(.75rem,env(safe-area-inset-bottom)) + 7.45rem);z-index:80;display:block;width:auto;padding:0;background:transparent;pointer-events:none}.christianity-actions button{min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-header,.christianity-match-strip,.christianity-player__summary{box-sizing:border-box;width:100%;padding-right:max(.5rem,env(safe-area-inset-right));padding-left:max(.5rem,env(safe-area-inset-left))}.christianity-header,.christianity-player__summary,.christianity-shared-zone{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-turn-banner{grid-template-columns:minmax(0,1fr);gap:.45rem;padding:.55rem}.christianity-turn-actions{justify-content:space-between;width:100%}.christianity-end-turn{min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-options-button{justify-self:start}.christianity-options-menu{right:auto;left:.55rem}.christianity-setup-panel,.christianity-result-panel{inset:.55rem;padding:.7rem}.christianity-leader-choice-grid{grid-template-columns:repeat(2,minmax(0,8.1rem));gap:.5rem;width:min(100%,17rem)}.christianity-leader-choice-option{padding:.38rem;border-radius:.78rem}.christianity-leader-choice-card{width:min(100%,7.1rem)}.christianity-leader-choice-option span{min-height:1.65rem;padding-inline:.34rem}.christianity-leader-choice-detail{min-height:1.9rem;font-size:.7rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-header-actions{align-items:flex-end;flex-direction:column}.christianity-start__cards,.christianity-start__hero{grid-template-columns:minmax(0,1fr)}.christianity-start__fan{min-height:10.5rem}.christianity-start__fan val-christianity-card{width:clamp(5.2rem,22vw,6.4rem)}.christianity-start__modes{grid-template-columns:repeat(2,minmax(0,1fr))}.christianity-splash{min-height:min(30rem,calc(100dvh - 7rem));padding-right:max(.65rem,env(safe-area-inset-right));padding-left:max(.65rem,env(safe-area-inset-left));border-right:0;border-left:0;border-radius:0}.christianity-start{min-height:min(30rem,calc(100dvh - 7rem));padding:.35rem}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem;width:100%;max-width:100%;min-width:0;padding:.45rem;overflow-x:hidden}.christianity-player-side{width:100%;max-width:100%;min-width:0;padding:.3rem .25rem;overflow:hidden}.christianity-battle-zone{--christianity-battle-card-width: min(5.45rem, 100%);grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.25rem,1.5vw,.4rem);justify-content:stretch;min-height:7.45rem;padding-inline:.28rem;overflow-x:hidden}.christianity-battle-zone .christianity-card-preview-card--battle,.christianity-battle-zone .christianity-slot{width:min(100%,5.45rem)}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent){position:fixed;right:0;bottom:0;left:0;z-index:52;box-sizing:border-box;min-height:9.55rem;margin:0;padding:.7rem max(.35rem,env(safe-area-inset-right)) max(.55rem,env(safe-area-inset-bottom)) max(.35rem,env(safe-area-inset-left));background:linear-gradient(180deg,#eff6ff00,#dbeafef5 18%,#dbeafefa),radial-gradient(circle at 50% 0%,rgba(37,99,235,.14),transparent 58%);pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan,.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-card-wrap{pointer-events:auto}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-meter{top:.15rem;right:max(.55rem,env(safe-area-inset-right));pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan{min-height:8.85rem;padding:.25rem .25rem 1.1rem;overflow:visible}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-card-preview-card--hand{width:clamp(4.35rem,20vw,5.65rem)}.christianity-hand-shelf--opponent{min-height:5.55rem;margin-top:0;margin-bottom:0;padding-top:.4rem;padding-bottom:.35rem}.christianity-player-rack{grid-template-columns:minmax(0,5.55rem) minmax(0,1fr) minmax(0,5.45rem);gap:clamp(.35rem,2vw,.5rem)}.christianity-player-rack:not(.christianity-player-rack--opponent) .christianity-offerings-zone{position:fixed;left:max(.65rem,env(safe-area-inset-left));bottom:calc(9.65rem + env(safe-area-inset-bottom));z-index:49;width:min(5.65rem,24vw);min-width:5.15rem;pointer-events:auto;transition:filter .16s ease,transform .16s ease,z-index .16s ease}.christianity-shell.is-offering-drop-active .christianity-player-rack:not(.christianity-player-rack--opponent) .christianity-offerings-zone{z-index:72;filter:drop-shadow(0 .85rem 1.45rem rgba(16,42,67,.24));transform:translateY(-.22rem) scale(1.03)}.christianity-shell.has-modal-open .christianity-player-rack:not(.christianity-player-rack--opponent) .christianity-offerings-zone{opacity:0;pointer-events:none}.christianity-shared-zone{gap:.45rem;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.christianity-zone-card,.christianity-zone-pile{min-height:6.35rem;padding:.68rem .58rem .55rem;gap:.24rem}.christianity-zone-card>val-christianity-card,.christianity-zone-pile>val-christianity-card,.christianity-zone-pile .christianity-pile-card-hint,.christianity-place-token,.christianity-zone-pile:before,.christianity-zone-pile:after,.christianity-empty-card-slot{width:clamp(3rem,16vw,3.75rem)}.christianity-offering-pile{height:7.55rem;max-height:7.55rem;padding:.62rem .54rem .52rem;gap:.24rem}.christianity-offering-drop-target{width:min(100%,6.35rem);height:7.55rem;min-height:0;max-height:7.55rem}.christianity-pile-card-hint{top:2rem;width:clamp(2.25rem,10.5vw,2.8rem)}.christianity-offering-pile .christianity-zone-card-stack val-christianity-card{top:1.72rem;width:clamp(2.85rem,14vw,3.45rem)}.christianity-zone-pile .christianity-pile-card-hint{top:1.78rem;width:clamp(3rem,16vw,3.75rem)}.christianity-place-token{top:2rem;width:clamp(2.85rem,15vw,3.55rem)}.christianity-offering-pile>small{bottom:.64rem;left:.58rem;font-size:.56rem}.christianity-offering-pile>strong{right:.48rem;bottom:.5rem}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);height:auto;min-height:0}.christianity-leader-card{width:clamp(5.15rem,22vw,6.35rem);min-height:0}.christianity-offering-row{grid-template-columns:minmax(5rem,5.8rem) minmax(0,1fr);gap:.5rem}.christianity-gallery-controls{grid-template-columns:minmax(0,1fr);gap:.5rem}.christianity-gallery-drawer{gap:.6rem;padding:max(.72rem,env(safe-area-inset-top)) max(.72rem,env(safe-area-inset-right)) max(.72rem,env(safe-area-inset-bottom)) max(.72rem,env(safe-area-inset-left))}.christianity-gallery-drawer header{align-items:start}.christianity-gallery-drawer h2{font-size:1.2rem;line-height:1.05}.christianity-gallery-controls label{gap:.18rem;font-size:.7rem}.christianity-gallery-controls input,.christianity-gallery-controls select,.christianity-gallery-edition-strip button{min-height:2.05rem}.christianity-gallery-grid{grid-template-columns:repeat(3,minmax(0,clamp(6.35rem,28vw,7.15rem)));justify-content:center;gap:clamp(.55rem,2.2vw,.72rem);scrollbar-gutter:auto;padding:.42rem 0 .8rem}.christianity-gallery-grid .christianity-render-card-button{width:100%}.christianity-offering-card{min-height:7.25rem;padding:.5rem}.christianity-hand-fan--opponent{min-height:4.75rem;padding-bottom:.35rem}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.1rem,14vw,3.9rem);margin-inline:-.65rem}}\n"], dependencies: [{ kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: LightRippleDirective, selector: "[valLightRipple]" }, { kind: "component", type: ChristianityCardComponent, selector: "val-christianity-card", inputs: ["card", "variant"] }, { kind: "component", type: MiniGameCalloutComponent, selector: "val-mini-game-callout", inputs: ["props"] }, { kind: "component", type: MiniGameScorePopComponent, selector: "val-mini-game-score-pop", inputs: ["props"] }] }); }
3149
3198
  }
3150
3199
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChristianityGameComponent, decorators: [{
3151
3200
  type: Component,
@@ -3784,16 +3833,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
3784
3833
  [style.--preview-rotate-y]="previewTilt().rotateY + 'deg'"
3785
3834
  [style.--preview-shift-x]="previewTilt().shiftX + 'px'"
3786
3835
  [style.--preview-shift-y]="previewTilt().shiftY + 'px'"
3836
+ (pointerdown)="startPreviewSwipe($event)"
3787
3837
  (pointermove)="tiltPreview($event)"
3838
+ (pointerup)="finishPreviewSwipe($event)"
3839
+ (pointercancel)="cancelPreviewSwipe($event)"
3788
3840
  (pointerleave)="resetPreviewTilt()"
3789
3841
  >
3790
3842
  @if (selectedPreviewRenderCard(); as previewCard) {
3791
3843
  <val-christianity-card [card]="previewCard" variant="full"></val-christianity-card>
3792
3844
  }
3793
3845
  </div>
3794
- @if (selectedPreviewRenderCard()?.bibleCredit; as bibleCredit) {
3795
- <p class="christianity-preview-bible-credit">{{ bibleCredit }}</p>
3796
- }
3797
3846
  @if (selectedPreviewNeighborRenderCard(1); as nextCard) {
3798
3847
  <val-christianity-card class="christianity-preview-ghost christianity-preview-ghost--next" [card]="nextCard" variant="full"></val-christianity-card>
3799
3848
  }
@@ -4046,6 +4095,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4046
4095
  </section>
4047
4096
  }
4048
4097
  </main>
4049
- `, styles: [":host{--christianity-theme-ink: var(--val-text-color, #1f2933);--christianity-theme-surface: #ffffff;--christianity-theme-parchment: #eff6ff;--christianity-theme-olive: #1d4ed8;--christianity-theme-gold: #2563eb;--christianity-theme-gold-soft: rgba(37, 99, 235, .16);--christianity-theme-gold-ring: rgba(37, 99, 235, .44);--christianity-theme-glow: rgba(37, 99, 235, .24);--christianity-theme-focus: #2563eb;--christianity-theme-shadow: rgba(37, 99, 235, .15);--christianity-theme-shadow-strong: rgba(37, 99, 235, .26);--christianity-card-aspect: 5 / 7.45;--christianity-card-back: linear-gradient(135deg, rgba(16, 42, 67, .16), rgba(16, 42, 67, .03)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(16, 42, 67, .11), rgba(16, 42, 67, .02)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);display:block;font-size:var(--val-mini-games-font-size, 1rem);max-width:100%;min-width:0;overflow-x:clip;color:var(--christianity-theme-ink)}:host-context(body.font-small){--val-mini-games-font-size: .875rem}:host-context(body.font-large){--val-mini-games-font-size: 1.1875rem}.christianity-shell{box-sizing:border-box;display:grid;gap:.65rem;width:100%;max-width:100%;min-width:0;padding:clamp(.65rem,1.8vw,1.15rem);overflow-x:clip;overflow-y:visible}.christianity-shell.has-modal-open{max-height:100dvh;overflow:hidden;overscroll-behavior:contain}.christianity-shell.has-modal-open .christianity-hand-shelf:not(.christianity-hand-shelf--opponent){opacity:0;pointer-events:none;transform:translateY(1.5rem)}.christianity-shell.is-preparing{padding-bottom:clamp(.75rem,1.8vw,1.15rem)}.christianity-shell.is-preparing .christianity-match-strip,.christianity-shell.is-preparing .christianity-turn-banner,.christianity-shell.is-preparing .christianity-hand-shelf,.christianity-shell.is-preparing .christianity-actions,.christianity-shell.is-preparing .christianity-end-turn,.christianity-shell.is-preparing .christianity-impact-layer,.christianity-shell.is-preparing .christianity-player-side,.christianity-shell.is-preparing .christianity-shared-zone{display:none}.christianity-shell.is-preparing .christianity-table{min-height:min(34rem,calc(100dvh - 2rem))}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.christianity-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;min-width:0}.christianity-gallery-open{min-height:2.2rem;padding:0 .75rem;border:1px solid var(--christianity-theme-gold-ring);border-radius:999px;background:linear-gradient(180deg,#eff6fffa,#fffffffa),radial-gradient(circle at 20% 0%,var(--christianity-theme-gold-soft),transparent 42%);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800;box-shadow:0 .55rem 1.2rem #2563eb1a}.christianity-splash{min-height:min(34rem,calc(100dvh - 8rem));border:1px solid rgba(37,99,235,.18);border-radius:.9rem;background:radial-gradient(circle at 50% 18%,rgba(37,99,235,.16),transparent 22rem),linear-gradient(180deg,#eff6ffed,#fffffff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #2563eb1f}.christianity-splash{display:grid;place-items:center;align-content:center;gap:1.2rem;padding:2.5rem 1.25rem;text-align:center}.christianity-splash__mark{position:relative;display:grid;grid-template-columns:repeat(3,.74rem);place-content:center;gap:.55rem;width:5.8rem;height:5.8rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(37,99,235,.12),transparent 55%),#ffffff9e;box-shadow:inset 0 0 0 .55rem #fff6,0 1rem 2rem #2563eb1f}.christianity-splash__mark:before,.christianity-splash__mark:after{content:\"\";position:absolute;inset:.42rem;border:1px solid rgba(37,99,235,.16);border-radius:inherit;animation:christianity-loader-ring 1.8s ease-out infinite}.christianity-splash__mark:after{animation-delay:.48s}.christianity-splash__mark span{width:.74rem;height:.74rem;border-radius:999px;background:var(--christianity-theme-focus);box-shadow:0 .35rem .85rem #2563eb38;animation:christianity-loader-dot .96s ease-in-out infinite}.christianity-splash__mark span:nth-child(2){animation-delay:.14s}.christianity-splash__mark span:nth-child(3){animation-delay:.28s}@keyframes christianity-loader-dot{0%,to{opacity:.38;transform:translateY(0) scale(.82)}45%{opacity:1;transform:translateY(-.22rem) scale(1)}}@keyframes christianity-loader-ring{0%{opacity:.48;transform:scale(.72)}to{opacity:0;transform:scale(1.2)}}.christianity-splash span,.christianity-start__copy span{color:var(--christianity-theme-olive);font-size:.76rem;font-weight:900;text-transform:uppercase}.christianity-splash h2,.christianity-start h2,.christianity-start p{margin:0}.christianity-splash h2{margin-top:.2rem;font-size:clamp(1.65rem,7vw,2.7rem);line-height:1}.christianity-splash p{max-width:26rem;margin:.55rem auto 0;color:#1f2933ad;font-size:.96rem}.christianity-start{display:grid;align-content:center;gap:1rem;min-height:min(34rem,calc(100dvh - 8rem));padding:clamp(.15rem,1.2vw,.55rem)}.christianity-start__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,18rem);gap:1rem;align-items:center}.christianity-start__copy{display:grid;gap:.45rem;max-width:36rem}.christianity-start h2{font-size:clamp(1.6rem,6vw,2.5rem);line-height:1.02}.christianity-start__copy p,.christianity-start__cards p,.christianity-start__modes p{color:#1f2933ad;line-height:1.42}.christianity-start__fan{position:relative;display:grid;place-items:center;min-height:13rem;overflow:visible}.christianity-start__fan val-christianity-card{position:absolute;width:clamp(5.7rem,12vw,7.2rem);transform-origin:50% 92%;filter:drop-shadow(0 1rem 1.5rem rgba(82,64,28,.18))}.christianity-start__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.christianity-start__cards article,.christianity-start__modes article{display:grid;gap:.65rem;align-content:start;padding:.95rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#ffffffd1;box-shadow:0 .75rem 1.7rem #52401c14}.christianity-start__cards article{min-height:11rem}.christianity-start__cards strong{font-size:1.05rem}.christianity-start__status{display:flex;flex-wrap:wrap;gap:.45rem}.christianity-start__status span,.christianity-start__modes article>span{display:inline-flex;align-items:center;width:fit-content;min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(37,99,235,.22);border-radius:999px;background:#eff6ffe0;color:#1f2933b8;font-size:.75rem;font-weight:850}.christianity-start__modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.christianity-start__modes article{min-height:8.5rem;background:#f8fafcb8;box-shadow:none;opacity:.82}.christianity-start__modes strong{font-size:.92rem}.christianity-start__modes p{margin:0;font-size:.8rem}.christianity-primary-action,.christianity-secondary-action{justify-self:start;min-height:2.5rem;padding:0 .9rem;border-radius:999px;font:inherit;font-weight:900}.christianity-primary-action{border:1px solid rgba(16,42,67,.16);background:#102a43;color:#fff}.christianity-secondary-action{border:1px solid var(--christianity-theme-gold-ring);background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink)}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-turn-banner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.58rem .72rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:linear-gradient(135deg,#fffffff0,#eff6ffd1),#fffc;box-shadow:0 .65rem 1.25rem #102a4314}.christianity-turn-banner.is-own-turn{border-color:#2563eb47;box-shadow:0 .75rem 1.45rem #2563eb1f,inset 0 0 0 1px #2563eb14}.christianity-turn-banner.is-rival-turn{border-color:#b453093d}.christianity-turn-banner.is-finished{border-color:#16a34a4d}.christianity-turn-banner span{display:block;color:#1f29338f;font-size:.68rem;font-weight:900;text-transform:uppercase}.christianity-turn-banner strong{display:block;color:var(--christianity-theme-ink);font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.05}.christianity-turn-banner p{margin:.12rem 0 0;color:#1f2933ad;font-size:.78rem;line-height:1.25}.christianity-turn-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem}.christianity-options-button,.christianity-options-menu button{min-height:2.15rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffeb;color:var(--christianity-theme-ink);font:inherit;font-size:.78rem;font-weight:900}.christianity-options-button{padding:0 .78rem}.christianity-options-menu{position:absolute;right:.55rem;top:calc(100% + .35rem);z-index:18;display:grid;gap:.35rem;min-width:9.5rem;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#fffffffa;box-shadow:0 1rem 2rem #102a432e}.christianity-options-menu button{border-radius:.55rem;text-align:left}.christianity-options-menu button:disabled{opacity:.45}.christianity-table{box-sizing:border-box;position:relative;display:grid;gap:clamp(.55rem,1.4vw,.9rem);width:100%;max-width:100%;min-width:0;padding:clamp(.65rem,1.5vw,1.05rem);border-radius:.95rem;background:radial-gradient(circle at 50% 44%,rgba(255,255,255,.2),transparent 44%),linear-gradient(180deg,#c8ddf7,#b9d4f1);box-shadow:inset 0 0 0 1px #ffffff57,inset 0 1.4rem 3rem #ffffff29;overflow-x:clip;overflow-y:visible}.christianity-setup-panel,.christianity-result-panel{position:absolute;inset:.8rem;z-index:14;display:grid;align-content:center;justify-items:center;gap:.85rem;padding:1rem;border:1px solid rgba(37,99,235,.16);border-radius:.9rem;background:linear-gradient(180deg,#f8fafcf5,#eff6fff0),#fffffff0;box-shadow:0 1.25rem 2.4rem #102a432e;text-align:center}.christianity-setup-panel>div:not(.christianity-setup-coin),.christianity-result-panel>div:not(:last-child){display:grid;justify-items:center;max-width:min(100%,34rem)}.christianity-setup-panel .christianity-primary-action,.christianity-result-panel .christianity-primary-action{justify-self:center}.christianity-setup-panel--coin{gap:clamp(.85rem,3vh,1.35rem)}.christianity-setup-panel--leader-pick{align-content:center;gap:clamp(.7rem,2vh,1rem)}.christianity-setup-coin{position:relative;display:grid;place-items:center;width:clamp(4.6rem,18vw,6.2rem);aspect-ratio:1;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9),transparent 22%),linear-gradient(135deg,#fff6a3,#ffd21a 42%,#b88404);box-shadow:0 1.05rem 1.9rem #102a432e,inset 0 0 0 .32rem #ffffff80,inset -.6rem -.7rem 1rem #62460733;transform-style:preserve-3d;animation:christianity-coin-spin 1.8s cubic-bezier(.45,0,.2,1) infinite}.christianity-setup-coin:before{content:\"\";position:absolute;inset:-.65rem;z-index:-1;border-radius:inherit;background:radial-gradient(circle,rgba(250,204,21,.32),transparent 62%);filter:blur(.15rem)}.christianity-setup-coin:after{content:\"\";position:absolute;inset:.34rem;border:.16rem solid rgba(120,78,0,.24);border-radius:inherit;transform:translateZ(.06rem)}.christianity-setup-coin span{position:absolute;display:grid;place-items:center;width:52%;aspect-ratio:1;border-radius:999px;color:#102a43d6;font-size:clamp(1.65rem,6vw,2.25rem);font-weight:1000;line-height:1;text-transform:none;transform-style:preserve-3d;backface-visibility:hidden}.christianity-setup-coin span:first-child:before{content:\"J\"}.christianity-setup-coin span:last-child{transform:rotateY(180deg)}.christianity-setup-coin span:last-child:before{content:\"R\"}.christianity-setup-coin.is-rival-won{animation-delay:-.9s}@keyframes christianity-coin-spin{0%{transform:rotateY(0) translateY(0)}38%{transform:rotateY(540deg) translateY(-.35rem)}62%{transform:rotateY(720deg) translateY(0)}to{transform:rotateY(1080deg) translateY(0)}}.christianity-setup-panel>div:not(.christianity-setup-coin)>span,.christianity-result-panel>span{color:#2563ebc2;font-size:.72rem;font-weight:1000;text-transform:uppercase}.christianity-setup-panel h2,.christianity-result-panel h2{margin:.18rem 0 0;color:var(--christianity-theme-ink);font-size:clamp(1.45rem,3vw,2.35rem);line-height:1}.christianity-setup-panel p,.christianity-result-panel p{max-width:31rem;margin:.35rem auto 0;color:#1f2933ad;font-size:.95rem;line-height:1.35}.christianity-result-panel>div:last-child{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem}.christianity-leader-choice-meter{display:grid;gap:.38rem;width:min(100%,28rem);color:#1f2933ad;font-size:.78rem;font-weight:900}.christianity-leader-choice-meter i{display:block;height:.34rem;border-radius:999px;background:var(--christianity-theme-focus);transform-origin:left center;transition:transform .24s ease}.christianity-leader-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,9.6rem));gap:clamp(.6rem,2vw,.9rem);justify-content:center;align-items:stretch;width:min(100%,21rem)}.christianity-leader-choice-option{position:relative;display:grid;grid-template-rows:auto 1fr;gap:.5rem;align-content:start;min-width:0;padding:.48rem;border:1px solid rgba(36,48,68,.1);border-radius:.86rem;background:linear-gradient(180deg,#ffffffdb,#f8fafcb8),#ffffffc7;box-shadow:0 .75rem 1.5rem #102a4314;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.christianity-leader-choice-option.is-selected{border-color:#2563eb7a;background:linear-gradient(180deg,#eff6fff0,#ffffffdb),#ffffffd1;box-shadow:0 .95rem 1.75rem #2563eb24,inset 0 0 0 1px #2563eb24}.christianity-leader-choice-card{display:block;justify-self:center;width:min(100%,8.25rem);border:0;background:transparent;color:inherit;font:inherit}.christianity-leader-choice-card val-christianity-card{display:block;width:100%;transition:filter .18s ease,transform .18s ease}.christianity-leader-choice-option>div{display:grid;gap:.42rem;align-content:end;justify-items:center;min-width:0}.christianity-leader-choice-option span{display:inline-grid;place-items:center;min-height:1.8rem;max-width:100%;padding:.18rem .46rem;border-radius:999px;background:#eff6ffbd;color:#1f2933ad;font-size:clamp(.62rem,2.3vw,.72rem);font-weight:900;line-height:1.05;text-align:center;text-transform:uppercase}.christianity-leader-choice-detail{width:100%;min-height:2rem;padding:0 .55rem;border:1px solid rgba(37,99,235,.22);border-radius:999px;background:#eff6ffeb;color:var(--christianity-theme-ink);font:inherit;font-size:.76rem;font-weight:900}.christianity-leader-choice-card:hover val-christianity-card,.christianity-leader-choice-card:focus-visible val-christianity-card{transform:translateY(-.12rem);filter:drop-shadow(0 .75rem 1.25rem rgba(37,99,235,.22))}.christianity-impact-layer{position:absolute;inset:0;z-index:30;pointer-events:none}.christianity-combat-trail{position:absolute;inset:0;z-index:2;--christianity-combat-trail-x: 50%;--christianity-combat-trail-y: 72%;--christianity-combat-trail-mid-x: 50%;--christianity-combat-trail-mid-y: 50%;--christianity-combat-trail-length: 34%;--christianity-combat-trail-angle: -90deg;--christianity-combat-trail-color: rgba(255, 255, 255, .96);--christianity-combat-trail-glow: rgba(96, 165, 250, .56);--christianity-combat-trail-hit: rgba(220, 38, 38, .42)}.christianity-combat-trail.is-leader-target{--christianity-combat-trail-color: rgba(255, 255, 255, .98);--christianity-combat-trail-glow: rgba(250, 204, 21, .52);--christianity-combat-trail-hit: rgba(250, 204, 21, .38)}.christianity-combat-trail.is-character-target{--christianity-combat-trail-color: rgba(219, 234, 254, .98);--christianity-combat-trail-glow: rgba(96, 165, 250, .58);--christianity-combat-trail-hit: rgba(220, 38, 38, .38)}.christianity-combat-trail:before{position:absolute;left:var(--christianity-combat-trail-mid-x);top:var(--christianity-combat-trail-mid-y);width:clamp(2.8rem,9vw,5.4rem);height:clamp(2.8rem,9vw,5.4rem);border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.72),transparent 28%),radial-gradient(circle,var(--christianity-combat-trail-hit),transparent 62%);content:\"\";opacity:0;transform:translate(-50%,-50%) scale(.58);animation:christianity-combat-burst .88s ease-out both}.christianity-combat-trail>span{position:absolute;left:var(--christianity-combat-trail-x);top:var(--christianity-combat-trail-y);width:var(--christianity-combat-trail-length);height:.36rem;border-radius:999px;background:linear-gradient(90deg,transparent 0 5%,rgba(255,255,255,.92) 42%,var(--christianity-combat-trail-color) 72%,rgba(96,165,250,.72)),repeating-linear-gradient(90deg,transparent 0 .7rem,rgba(255,255,255,.66) .7rem .92rem);box-shadow:0 0 .72rem var(--christianity-combat-trail-glow),0 0 1.45rem var(--christianity-combat-trail-glow);transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0);transform-origin:0 50%;animation:christianity-combat-arrow-trail .84s ease-out both}.christianity-combat-trail>span:after{position:absolute;top:50%;right:-.18rem;width:.95rem;height:.95rem;border-top:.28rem solid var(--christianity-combat-trail-color);border-right:.28rem solid var(--christianity-combat-trail-color);content:\"\";filter:drop-shadow(0 0 .45rem var(--christianity-combat-trail-glow));transform:translateY(-50%) rotate(45deg)}@keyframes christianity-combat-arrow-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0)}24%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(.52)}66%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1)}to{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1.04)}}@keyframes christianity-combat-burst{0%,42%{opacity:0;transform:translate(-50%,-50%) scale(.58) rotate(0)}58%{opacity:1;transform:translate(-50%,-50%) scale(.98) rotate(4deg)}to{opacity:0;transform:translate(-50%,-50%) scale(1.42) rotate(12deg)}}@media (prefers-reduced-motion: reduce){.christianity-combat-trail,.christianity-combat-trail:before,.christianity-combat-trail>span,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card,.christianity-floating-card-shell.is-sliding-next .christianity-floating-card,.christianity-setup-coin,.christianity-splash__mark:before,.christianity-splash__mark:after,.christianity-splash__mark span{animation:none!important}}.christianity-player-side{box-sizing:border-box;display:grid;gap:.35rem;width:100%;max-width:100%;min-width:0;padding:.35rem .3rem;border-radius:.7rem;background:linear-gradient(180deg,#ffffff47,#ffffff24),#4a7ab414;grid-template-rows:minmax(7rem,1fr) auto;min-height:13.75rem}.christianity-player-side--opponent{grid-template-rows:auto minmax(7rem,1fr)}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{--christianity-battle-card-width: clamp(5.7rem, 10.5vw, 7.9rem);box-sizing:border-box;display:grid;grid-template-columns:repeat(4,var(--christianity-battle-card-width));gap:.5rem;align-items:center;justify-content:center;width:100%;max-width:100%;min-width:0;overflow:hidden;min-height:clamp(10rem,19vw,12.4rem);padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff6b,#ffffff3d),#1f4f8914;transition:background .16s ease,box-shadow .16s ease}.christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#fffaf0f5,#ffffffd6),#ffffffc2;box-shadow:inset 0 0 0 .14rem var(--christianity-theme-gold-soft),0 .8rem 1.7rem #5f6f2a1f}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff57,#fff3),#1f4f8914}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .18rem var(--christianity-theme-gold-soft),0 .85rem 1.4rem var(--christianity-theme-shadow)}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{display:grid;place-items:center;justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff2e;color:inherit;font:inherit;opacity:.62}.christianity-slot--play-target{position:relative;opacity:1;border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0eb,#f8fafcd1),#ffffffb3;color:#5d4305;font-weight:800;overflow:hidden;box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-slot--play-target:before{content:\"\";position:absolute;inset:.35rem;border:1px solid rgba(214,162,29,.22);border-radius:.4rem;background:linear-gradient(135deg,rgba(214,162,29,.1),transparent 46%),radial-gradient(circle at 50% 42%,var(--christianity-theme-glow),transparent 58%)}.christianity-slot--play-target span{position:relative;z-index:2;padding:.16rem .44rem;border-radius:999px;background:#ffffffc7;font-size:.78rem}@keyframes christianity-target-pulse{0%,to{box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow)}50%{box-shadow:inset 0 0 0 .16rem #d6a21d57,0 .9rem 1.65rem var(--christianity-theme-shadow-strong)}}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{padding:.75rem;border-radius:.75rem;background:#ffffffeb}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn:not(:disabled){background:#102a43;color:#fff}.christianity-actions button{pointer-events:auto;border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-actions button:disabled{display:none}.christianity-end-turn{border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-end-turn:disabled{color:#1f293375;background:#ffffffb8;box-shadow:none}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:10.8rem;padding:.25rem .25rem 2.1rem;isolation:isolate;overflow:visible}.christianity-hand-shelf{position:relative;display:grid;z-index:12;min-height:12rem;margin-top:-1.15rem;padding:1.45rem .25rem 1rem;overflow:visible}.christianity-hand-shelf--opponent{z-index:8;min-height:6.85rem;margin-top:0;margin-bottom:0;padding:.45rem .25rem .85rem}.christianity-hand-fan--opponent{min-height:5.9rem;padding-bottom:.75rem;align-items:start}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.7rem,12vw,4.9rem);aspect-ratio:var(--christianity-card-aspect);margin-inline:-.9rem;transform-origin:50% 120%}.christianity-hand-fan--opponent .christianity-hidden-card-button:first-child{margin-left:0}.christianity-hand-fan--opponent .christianity-hidden-card-button:last-child{margin-right:0}.christianity-card-preview-card,.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-render-card-button{display:block;padding:0;overflow:visible;border:0;background:transparent;box-shadow:none}.christianity-render-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-gallery-card-button{display:block;width:min(100%,6.8rem);min-width:0;aspect-ratio:var(--christianity-card-aspect);padding:0;overflow:visible;border:0;background:transparent;color:inherit;font:inherit;text-align:left;box-shadow:none}.christianity-gallery-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-card-preview-card--hand.christianity-render-card-button,.christianity-card-preview-card--battle.christianity-render-card-button,.christianity-leader-card.christianity-render-card-button{aspect-ratio:var(--christianity-card-aspect)}.christianity-card-preview-card--hand.christianity-render-card-button:hover val-christianity-card,.christianity-card-preview-card--hand.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-target val-christianity-card{filter:drop-shadow(0 0 .45rem rgba(37,99,235,.45)) drop-shadow(0 .55rem 1rem rgba(37,99,235,.22))}.christianity-card-preview-card--battle.christianity-render-card-button.is-ready-attacker val-christianity-card{filter:drop-shadow(0 0 .24rem rgba(22,163,74,.32)) drop-shadow(0 .45rem .8rem rgba(22,163,74,.16))}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected{transform:translateY(-.28rem)}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card{filter:drop-shadow(0 0 .4rem rgba(250,204,21,.52)) drop-shadow(0 .65rem 1rem rgba(37,99,235,.24))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker{z-index:8;pointer-events:none}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card{animation:christianity-combat-lunge .98s cubic-bezier(.2,.78,.2,1) both;filter:drop-shadow(0 0 .5rem rgba(250,204,21,.72)) drop-shadow(0 1rem 1.4rem rgba(16,42,67,.28))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card{animation:christianity-combat-impact .98s ease-out both;filter:drop-shadow(0 0 .5rem rgba(220,38,38,.48)) drop-shadow(0 .75rem 1.1rem rgba(220,38,38,.18))}@keyframes christianity-combat-lunge{0%{transform:translateZ(0) rotate(0) scale(1)}24%{transform:translate3d(0,-1.4rem,0) rotate(-4deg) scale(1.08)}52%{transform:translate3d(0,-4.9rem,0) rotate(7deg) scale(1.12)}68%{transform:translate3d(0,-3.6rem,0) rotate(-3deg) scale(1.04)}to{transform:translateZ(0) rotate(0) scale(1)}}@keyframes christianity-combat-impact{0%,42%{transform:translateZ(0) scale(1)}54%{transform:translate3d(.16rem,-.12rem,0) rotate(2deg) scale(1.04)}64%{transform:translate3d(-.14rem,.1rem,0) rotate(-2deg) scale(.98)}to{transform:translateZ(0) rotate(0) scale(1)}}.christianity-leader-card.christianity-render-card-button.is-protected-target{opacity:.82}.christianity-leader-card.christianity-render-card-button.is-protected-target val-christianity-card{filter:grayscale(.22) drop-shadow(0 0 .28rem rgba(100,116,139,.26))}.christianity-card-frame{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;overflow:hidden;padding:.48rem;text-align:left;background:linear-gradient(180deg,#fffffffa,#f8fafcfa),radial-gradient(circle at 15% 0%,rgba(214,162,29,.12),transparent 44%);box-shadow:0 .5rem 1.25rem #2430441a,inset 0 0 0 .18rem #ffffff9e}.christianity-card-frame-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.16rem;align-items:start;min-width:0}.christianity-card-frame-header small{grid-column:1;min-width:0;overflow:hidden;color:#1f2933a3;font-size:clamp(.52rem,1.5vw,.68rem);line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-header strong{grid-column:1;justify-self:start;align-self:start;min-width:0;padding:0;overflow:hidden;border-radius:0;background:transparent;font-size:clamp(.82rem,2.5vw,1.05rem);line-height:1.02;text-overflow:ellipsis;white-space:nowrap}.christianity-card-preview-card--hand .christianity-card-frame-header strong,.christianity-card-preview-card--battle .christianity-card-frame-header strong,.christianity-leader-card .christianity-card-frame-header strong{display:-webkit-box;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-preview-card--hand .christianity-card-frame-header small{text-transform:uppercase}.christianity-card-preview-card--hand .christianity-card-frame-art>span{display:-webkit-box;max-width:88%;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-frame-header span{grid-column:2;grid-row:1 / span 2;display:grid;place-items:center;min-width:1.3rem;height:1.3rem;padding:0 .22rem;border-radius:999px;background:#ffd91a;color:#243044;font-size:.8rem;font-weight:900;line-height:1;box-shadow:inset 0 -.08rem #52401c2e}.christianity-card-frame-header span.is-offering-pips,.christianity-full-card-cost.is-offering-pips,.christianity-offering-card span.is-offering-pips{grid-auto-flow:column;gap:.14rem;min-width:auto;padding:0 .28rem}.christianity-card-frame-header span.is-offering-pips i,.christianity-full-card-cost.is-offering-pips i,.christianity-offering-card span.is-offering-pips i,.christianity-full-card-pips i{display:block;width:.72rem;height:.72rem;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9) 0 .12rem,transparent .13rem),#ffd91a;box-shadow:inset 0 -.08rem #52401c2e,0 .12rem .24rem #102a431a}.christianity-card-frame-art{position:relative;display:grid;place-items:center;min-height:0;overflow:hidden;border-radius:.36rem;background:linear-gradient(135deg,#5f6f2a2e,#d6a21d24),radial-gradient(circle at 50% 18%,rgba(255,255,255,.72),transparent 48%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-card-frame-art>span{max-width:78%;overflow:hidden;color:#2430447a;font-size:clamp(.82rem,2.2vw,1.05rem);font-weight:900;line-height:1.02;text-align:center;text-overflow:ellipsis}.christianity-card-frame-art small{position:absolute;right:0;bottom:.28rem;max-width:78%;padding:.1rem .34rem;overflow:hidden;border-radius:999px 0 0 999px;background:#ffffffe6;color:#1f2933a8;font-size:.48rem;font-style:italic;font-weight:900;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-card-frame-effect{display:grid;align-content:center;gap:.1rem;min-height:1.45rem;padding:.24rem;overflow:hidden;border-radius:.34rem;background:radial-gradient(circle at 50% 70%,rgba(36,48,68,.06),transparent 44%),#ffffffdb}.christianity-card-frame-effect strong{justify-self:end;align-self:end;padding:.12rem .32rem;border-radius:999px;background:#edf2f7;font-size:clamp(.66rem,2vw,.82rem);line-height:1.05}.christianity-card-frame-effect p{margin:0;overflow:hidden;color:#1f2933b8;font-size:.58rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-footer{display:flex;justify-content:space-between;gap:.22rem;color:#1f293385;font-size:.46rem;font-weight:800;line-height:1}.christianity-card-frame--battle{gap:.22rem;padding:.42rem}.christianity-card-frame--battle .christianity-card-frame-art{min-height:2.6rem}.christianity-card-frame--leader .christianity-card-frame-art{background:linear-gradient(135deg,#2563eb24,#d6a21d29),radial-gradient(circle at 50% 18%,rgba(255,255,255,.78),transparent 48%),#e7eef8}.christianity-card-frame--list{width:clamp(4.4rem,22vw,5.8rem);padding:.38rem}.christianity-card-frame--list .christianity-card-frame-art{min-height:2.5rem}.christianity-hand-card-wrap{position:relative;display:grid;justify-items:center;flex:0 0 auto;margin-inline:-.42rem;padding-bottom:2rem;transform-origin:50% 115%;transition:transform .16s ease,filter .16s ease}.christianity-hand-card-wrap:hover,.christianity-hand-card-wrap.is-selected,.christianity-hand-card-wrap.is-dragging{z-index:3}.christianity-hand-card-wrap:hover .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-selected .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-dragging .christianity-card-preview-card--hand{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .12rem var(--christianity-theme-gold-soft),0 1rem 2rem var(--christianity-theme-shadow);transform:translateY(-.5rem) scale(1.045)}.christianity-card-preview-card--hand{cursor:grab;touch-action:none}.christianity-card-preview-card--hand:active{cursor:grabbing}.christianity-card-preview-card--hand.cdk-drag-disabled{cursor:not-allowed}.christianity-card-drag-preview,.christianity-card-preview-card.cdk-drag-preview{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;box-shadow:0 0 0 .16rem #fff4c2ad,0 1.5rem 3rem var(--christianity-theme-shadow-strong);transform:rotate(2deg) scale(1.03)}.christianity-card-drag-preview val-christianity-card{display:block;width:100%;height:100%}.christianity-card-drag-placeholder,.christianity-card-preview-card.cdk-drag-placeholder{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;background:#94a3b81f;opacity:.22}.christianity-slot.cdk-drop-list-dragging,.christianity-offering-drop-target.cdk-drop-list-dragging{border-color:var(--christianity-theme-gold-ring)}.christianity-slot.cdk-drop-list-receiving,.christianity-offering-drop-target.cdk-drop-list-receiving{box-shadow:inset 0 0 0 .18rem #d6a21d57,0 1rem 1.9rem var(--christianity-theme-shadow-strong)}.christianity-card-eye{position:absolute;right:50%;bottom:.38rem;width:2.15rem;height:1.55rem;border:1px solid color-mix(in srgb,var(--christianity-theme-focus) 52%,transparent);border-radius:999px;background:#fffffff0;box-shadow:0 .55rem 1.1rem #102a4324;opacity:0;transform:translate(50%,-.2rem) scale(.92);transition:opacity .14s ease,transform .14s ease,border-color .14s ease}.christianity-card-eye:before{content:\"\";position:absolute;top:50%;left:50%;width:1.1rem;height:1.1rem;border:.12rem solid var(--christianity-theme-focus);border-radius:82% 0;background:#fffffff0;transform:translate(-50%,-50%) rotate(45deg)}.christianity-card-eye:after{content:\"\";position:absolute;top:50%;left:50%;width:.42rem;height:.42rem;border:.09rem solid rgba(255,255,255,.95);border-radius:999px;background:radial-gradient(circle at 35% 32%,#ffffff 0 .06rem,transparent .07rem),var(--christianity-theme-focus);transform:translate(-50%,-50%)}.christianity-hand-card-wrap:hover .christianity-card-eye,.christianity-hand-card-wrap.is-selected .christianity-card-eye,.christianity-card-eye:focus-visible{opacity:1;transform:translate(50%) scale(1)}.christianity-offering-drop-target{display:grid;width:min(100%,6.45rem);height:8.05rem;min-height:0;max-height:8.05rem;border:1px solid transparent;border-radius:.64rem;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.christianity-offering-drop-target.is-play-target{border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0f5,#fffffff0),radial-gradient(circle at 82% 14%,rgba(250,204,21,.28) 0 .7rem,transparent .72rem);box-shadow:inset 0 0 0 .12rem #d6a21d3d,0 .8rem 1.55rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-offering-drop-target>.cdk-drag-placeholder{display:none}.christianity-card-frame--back,.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:0;aspect-ratio:var(--christianity-card-aspect);place-items:center;padding:.55rem;overflow:hidden;box-shadow:0 .8rem 1.55rem #24304424;transform-origin:50% -18%;background:var(--christianity-card-back)}.christianity-card-frame--back:before,.christianity-card-preview-card--back:before{content:\"\";position:absolute;inset:.5rem;border:1px solid rgba(16,42,67,.12);border-radius:.38rem;background:linear-gradient(180deg,#ffffff2e,#ffffff0a);box-shadow:inset 0 0 0 .12rem #ffffff1f}.christianity-card-preview-card--battle{justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;min-width:0;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);margin-inline:0}.christianity-card-preview-card>span,.christianity-card-mini>span,.christianity-offering-pile>span,.christianity-offering-card>span,.christianity-leader-card>span,.christianity-zone-card>span,.christianity-zone-pile>span{position:relative;z-index:2;align-self:start;font-weight:700;line-height:1.05}.christianity-card-preview-card>strong,.christianity-card-mini>strong,.christianity-offering-pile>strong,.christianity-offering-card>strong,.christianity-leader-card>strong,.christianity-zone-card>strong,.christianity-zone-pile>strong{position:relative;z-index:3;justify-self:end;align-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{box-sizing:border-box;display:grid;grid-template-columns:minmax(5.3rem,6.9rem) minmax(6.4rem,1fr) minmax(4.9rem,6.5rem);gap:.65rem;align-items:end;justify-items:center;width:100%;max-width:100%;min-width:0}.christianity-player-rack--opponent{align-items:start}.christianity-hand-meter{position:absolute;top:0;right:.35rem;z-index:4;display:inline-grid;grid-auto-flow:column;gap:.25rem;align-items:center;min-height:1.7rem;padding:.18rem .46rem;border:1px solid rgba(36,48,68,.12);border-radius:999px;background:#ffffffe6;box-shadow:0 .35rem .8rem #102a4314}.christianity-hand-meter--opponent{top:.15rem}.christianity-hand-meter span{color:#1f293394;font-size:.68rem}.christianity-hand-meter strong{font-size:.86rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:grid;justify-items:center;justify-self:center;width:min(100%,7.5rem)}.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-frame{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;align-content:stretch}.christianity-offering-pile,.christianity-zone-card,.christianity-zone-pile{grid-template-rows:auto minmax(2.6rem,1fr) auto;align-content:stretch;gap:.32rem}.christianity-card-mini{width:3.5rem}.christianity-offering-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;justify-self:center;width:min(100%,7.35rem);height:9.05rem;max-height:9.05rem;min-height:0;padding:.86rem .82rem .78rem;background:linear-gradient(180deg,#fff,#f8fafc),linear-gradient(135deg,rgba(250,204,21,.18),transparent 42%)}.christianity-zone-card-stack{position:absolute;inset:0;z-index:2;pointer-events:none}.christianity-offering-pile .christianity-zone-card-stack,.christianity-zone-card .christianity-zone-card-stack,.christianity-zone-pile .christianity-zone-card-stack{position:absolute;inset:0}.christianity-zone-card-stack val-christianity-card{position:absolute;top:1.72rem;left:50%;width:clamp(3.75rem,7.3vw,4.85rem);filter:drop-shadow(0 .4rem .75rem rgba(16,42,67,.14))}.christianity-offering-pile .christianity-zone-card-stack val-christianity-card{top:1.82rem;width:clamp(3.25rem,6.2vw,4.1rem)}.christianity-zone-card--place .christianity-zone-card-stack val-christianity-card{top:1.45rem;width:clamp(4.05rem,7.6vw,5.25rem)}.christianity-offering-drop-target .christianity-offering-pile{width:100%;height:100%;max-height:none}.christianity-offering-pile>span:not(.christianity-empty-card-slot):not(.christianity-pile-card-hint):not(.christianity-zone-card-stack){position:absolute;top:.72rem;right:.76rem;left:.76rem;z-index:3;justify-self:stretch;max-width:100%;overflow:hidden;padding:0;color:#1f2933b8;font-size:clamp(.74rem,1.9vw,.86rem);font-weight:900;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-pile>strong{position:absolute;right:.58rem;bottom:.64rem;z-index:5;min-width:1.7rem;padding:.13rem .38rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-offering-pile>small{position:absolute;bottom:.78rem;left:.68rem;z-index:5;max-width:calc(100% - 2.7rem);overflow:hidden;color:#1f293394;font-size:.58rem;font-weight:850;line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-slot>.cdk-drag-placeholder{display:none}.christianity-pile-card-hint{position:absolute;top:2.35rem;left:50%;z-index:1;width:clamp(2.7rem,6.4vw,3.4rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.34rem;background:linear-gradient(180deg,#fffffff5,#f8fafce6),radial-gradient(circle at 50% 18%,rgba(250,204,21,.26),transparent 44%);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .42rem .8rem rgba(16,42,67,.14))}.christianity-pile-card-hint i{position:absolute;top:.38rem;right:.38rem;display:block;width:.72rem;height:.72rem;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9) 0 .12rem,transparent .13rem),#ffd91a;box-shadow:inset 0 -.08rem #52401c2e,0 .12rem .24rem #102a431a}.christianity-offering-pile:before,.christianity-offering-pile:after{display:none}.christianity-leader-card{align-self:center;justify-self:center;width:clamp(6.65rem,10.8vw,8.85rem);min-height:0;aspect-ratio:var(--christianity-card-aspect)}.christianity-attack-drop-target{display:grid;justify-items:center;min-width:0}.christianity-rack-spacer{display:block;min-height:1px}.christianity-battle-zone{grid-template-columns:repeat(4,var(--christianity-battle-card-width))}.christianity-shared-zone{box-sizing:border-box;display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch;gap:clamp(.55rem,1.2vw,.9rem);width:100%;max-width:100%;min-width:0}.christianity-zone-card,.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;min-height:8.4rem;padding:.92rem .82rem .78rem;border-color:#24304414;background:linear-gradient(180deg,#ffffff8a,#f8fafc5c),#ffffff3d}.christianity-zone-card--place{background:linear-gradient(180deg,#ffffffb8,#eff6ff80),radial-gradient(circle at 62% 34%,rgba(37,99,235,.18),transparent 52%),#ffffff3d}.christianity-place-backdrop{position:absolute;inset:0;z-index:0;background-position:center;background-size:cover;opacity:.52;filter:blur(1.3rem) saturate(1.28);transform:scale(1.14)}.christianity-zone-card--place:before{content:\"\";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#ffffffad,#fff3),radial-gradient(circle at 50% 42%,rgba(255,255,255,.24),transparent 54%);backdrop-filter:blur(.42rem)}.christianity-place-token{position:absolute;top:2.18rem;left:50%;z-index:2;display:grid;place-items:center;width:clamp(3.2rem,7.2vw,4.45rem);aspect-ratio:1;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:radial-gradient(circle at 35% 24%,rgba(255,255,255,.92),transparent 38%),linear-gradient(135deg,#ffffffe6,#eff6ffb8);box-shadow:0 .65rem 1.1rem #102a4329,inset 0 0 0 .18rem #ffffff70;transform:translate(-50%)}.christianity-place-token img{width:48%;height:48%;object-fit:contain;filter:drop-shadow(0 .18rem .24rem rgba(16,42,67,.14))}.christianity-zone-pile{box-shadow:inset 0 0 0 999px #ffffff0a,0 .45rem 1rem #102a430f}.christianity-zone-card.is-play-target{border-color:#2563eb61;box-shadow:inset 0 0 0 999px #2563eb14,0 0 0 .18rem #2563eb1f}.christianity-zone-pile--history.has-new-card{animation:christianity-history-pulse .9s ease-out both}@keyframes christianity-history-pulse{0%{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}28%{box-shadow:inset 0 0 0 999px #ffffff29,0 0 0 .25rem #2563eb2e;transform:scale(1.025)}to{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}}.christianity-zone-card>val-christianity-card,.christianity-zone-pile>val-christianity-card{position:absolute;top:1.85rem;left:50%;z-index:2;width:clamp(4.15rem,7.5vw,5.35rem);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .35rem .75rem rgba(16,42,67,.12))}.christianity-zone-card--place>val-christianity-card{top:1.55rem;width:clamp(4.4rem,7.8vw,5.85rem);transform:translate(-50%) rotate(2deg);filter:drop-shadow(0 .65rem 1.1rem rgba(16,42,67,.2))}.christianity-zone-pile--deck>val-christianity-card{transform:translate(-50%) rotate(3deg)}.christianity-zone-pile .christianity-pile-card-hint{top:1.85rem;width:clamp(3.75rem,7.4vw,4.85rem);border-color:#102a4324;transform:translate(-50%) rotate(-2deg)}.christianity-zone-pile--deck .christianity-pile-card-hint{background:var(--christianity-card-back);transform:translate(-50%) rotate(3deg)}.christianity-zone-pile--deck .christianity-pile-card-hint i{display:none}.christianity-zone-pile--history .christianity-pile-card-hint{background:linear-gradient(180deg,#fffffff5,#f8fafce6),radial-gradient(circle at 50% 18%,rgba(37,99,235,.18),transparent 44%)}.christianity-zone-card>span:not(.christianity-empty-card-slot):not(.christianity-place-token):not(.christianity-zone-card-stack),.christianity-zone-pile>span:not(.christianity-empty-card-slot):not(.christianity-pile-card-hint):not(.christianity-zone-card-stack){position:absolute;top:.72rem;left:.82rem;z-index:3;justify-self:start;max-width:calc(100% - 1.55rem);overflow:hidden;color:#1f2933d6;font-size:clamp(.76rem,2.5vw,.92rem);text-overflow:ellipsis;white-space:nowrap}.christianity-zone-card>strong,.christianity-zone-pile>strong{position:absolute;right:.45rem;bottom:.45rem;z-index:4;min-width:1.65rem;padding:.12rem .4rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-zone-card>em{position:relative;z-index:4;justify-self:center;align-self:end;padding:.12rem .38rem;border-radius:999px;background:#2563eb1f;color:var(--christianity-theme-focus);font-size:.68rem;font-style:normal;font-weight:900}.christianity-zone-card--place>strong{right:.45rem;transform:none}.christianity-empty-card-slot{position:absolute;top:1.85rem;left:50%;z-index:1;display:block;width:clamp(4.15rem,7.5vw,5.35rem);aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(16,42,67,.22);border-radius:.35rem;background:#ffffff5c;transform:translate(-50%)}.christianity-zone-pile:before,.christianity-zone-pile:after{content:\"\";position:absolute;top:1.95rem;left:50%;z-index:0;width:clamp(3.5rem,7.2vw,4.45rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.35rem;background:#f8fafcf0;transform:translate(calc(-50% + .22rem)) rotate(4deg)}.christianity-zone-pile:after{background:var(--christianity-card-back);transform:translate(calc(-50% - .22rem)) translateY(.16rem) rotate(-3deg)}.christianity-zone-pile.is-empty-zone:before,.christianity-zone-pile.is-empty-zone:after{display:none}.christianity-floating-card-shell{position:fixed;top:50%;left:50%;z-index:10020;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.55rem;width:min(56rem,calc(100vw - 1.25rem));max-height:calc(100dvh - 4.25rem);overflow:visible;overscroll-behavior:contain;scrollbar-width:none;transform:translate(-50%,-50%)}.christianity-floating-card-shell::-webkit-scrollbar{display:none}.christianity-floating-card-shell.is-history-preview{width:min(56rem,calc(100vw - 1.25rem))}.christianity-preview-topbar{position:relative;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-height:2.05rem}.christianity-preview-position{display:inline-grid;place-items:center;min-height:2rem;min-width:3.15rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933b8;font-size:.76rem;font-weight:900;box-shadow:0 .45rem 1rem #102a431a}.christianity-floating-card{position:relative;z-index:2;display:block;width:min(19.25rem,calc(58dvh - 2.4rem),calc(100vw - 6.2rem));min-height:0;padding:0;border:0;border-radius:.75rem;background:transparent;box-shadow:0 0 2.2rem var(--christianity-theme-glow);touch-action:none;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg));transition:transform .14s ease-out}.christianity-preview-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(13rem,17rem);gap:1rem;align-items:center;min-height:0}.christianity-preview-stage{position:relative;display:grid;place-items:center;justify-self:center;width:min(100%,31rem);min-width:0;min-height:0;padding-inline:4.4rem;perspective:52rem}.christianity-preview-stage:before{content:\"\";position:absolute;inset:10% 2.35rem;z-index:0;border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.26),transparent 58%),linear-gradient(90deg,transparent,rgba(37,99,235,.1),transparent);opacity:.8;pointer-events:none}.christianity-preview-ghost{position:absolute;z-index:1;width:min(13rem,calc(42dvh - 3rem),34vw);opacity:.34;pointer-events:none;filter:blur(.02rem) saturate(.9);transition:transform .36s cubic-bezier(.2,.84,.22,1),opacity .36s ease}.christianity-preview-ghost--previous{transform:translate(-86%) rotateY(22deg) rotate(-4deg) scale(.8)}.christianity-preview-ghost--next{transform:translate(86%) rotateY(-22deg) rotate(4deg) scale(.8)}.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card{animation:christianity-preview-slide-previous .36s cubic-bezier(.2,.84,.22,1) both}.christianity-floating-card-shell.is-sliding-next .christianity-floating-card{animation:christianity-preview-slide-next .36s cubic-bezier(.2,.84,.22,1) both}@keyframes christianity-preview-slide-previous{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) - 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(calc(var(--preview-rotate-y, 0deg) + 10deg)) scale(.92)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg)) scale(1)}}@keyframes christianity-preview-slide-next{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) + 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(calc(var(--preview-rotate-y, 0deg) - 10deg)) scale(.92)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg)) scale(1)}}.christianity-preview-side{display:grid;min-width:0}.christianity-floating-card val-christianity-card{display:block;width:100%;min-height:0}.christianity-floating-card-shell.is-gallery-preview .christianity-floating-card{width:min(20.4rem,calc(62dvh - 2.2rem),calc(100vw - 5.4rem))}.christianity-preview-bible-credit{justify-self:center;max-width:min(20rem,calc(100vw - 4rem));margin:.2rem 0 0;color:#ffffffbd;font-size:.48rem;font-weight:700;line-height:1.2;text-align:center;text-shadow:0 .1rem .25rem rgba(15,23,42,.35)}.christianity-full-card-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.42rem;align-items:center}.christianity-full-card-header strong{min-width:0;display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;text-overflow:clip;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:clamp(1.25rem,5vw,1.85rem);line-height:1.04}.christianity-full-card-type-icon,.christianity-full-card-cost{display:grid;place-items:center;border-radius:999px}.christianity-full-card-type-icon{width:1.6rem;height:1.6rem;background:radial-gradient(circle at 50% 50%,rgba(95,111,42,.72) 0 .22rem,transparent .24rem),#2430441a}.christianity-full-card-type-icon img{width:1rem;height:1rem;object-fit:contain}.christianity-full-card-cost{min-width:2.1rem;height:2.1rem;padding:0 .36rem;background:#ffd91a;color:#243044;font-size:1.1rem;font-weight:900;box-shadow:inset 0 -.12rem #52401c2e}.christianity-full-card-art{position:relative;display:grid;place-items:center;min-height:9rem;overflow:hidden;border-radius:.48rem;background:linear-gradient(135deg,#5f6f2a33,#d6a21d29),radial-gradient(circle at 50% 25%,rgba(255,255,255,.76),transparent 42%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-full-card-art img{width:100%;height:100%;object-fit:cover}.christianity-full-card-art>span{max-width:80%;color:#24304494;font-size:clamp(1.1rem,5vw,1.8rem);font-weight:900;line-height:1.05;text-align:center}.christianity-full-card-art small{position:absolute;right:0;bottom:.55rem;min-width:5rem;padding:.16rem .48rem;border-radius:999px 0 0 999px;background:#ffffffe6;box-shadow:0 .3rem .8rem #102a431f;color:#1f2933bd;font-size:.68rem;font-style:italic;font-weight:900;text-align:center;text-transform:uppercase}.christianity-full-card-verse,.christianity-full-card-effect{display:grid;gap:.32rem}.christianity-full-card-verse p,.christianity-full-card-effect p{margin:0;line-height:1.25}.christianity-full-card-verse{color:#171923;font-family:Georgia,Times New Roman,serif;font-size:clamp(.72rem,2.7vw,.86rem)}.christianity-full-card-verse strong{font-family:inherit;font-size:.78rem;font-weight:900}.christianity-full-card-effect{position:relative;align-content:start;min-height:7rem;padding:.6rem .7rem;overflow:hidden;border-radius:.45rem;background:radial-gradient(circle at 50% 72%,rgba(36,48,68,.07),transparent 34%),#ffffffdb}.christianity-full-card-stats{display:flex;gap:1rem;min-height:1.35rem}.christianity-full-card-stats strong{font-size:1rem;line-height:1}.christianity-full-card-stats .christianity-full-card-pips{display:inline-grid;grid-auto-flow:column;gap:.2rem;justify-self:start;padding:0;background:transparent}.christianity-full-card-effect>div:last-of-type{display:grid;gap:.12rem}.christianity-full-card-effect>div:last-of-type strong{font-size:.82rem}.christianity-full-card-effect p{font-size:clamp(.78rem,2.9vw,.92rem)}.christianity-full-card-rarity{position:absolute;top:.62rem;right:.62rem;width:.46rem;height:.46rem;border-radius:.12rem;transform:rotate(45deg)}.christianity-full-card-rarity.is-normal{background:#3a80e9}.christianity-full-card-rarity.is-good{background:#4ee93a}.christianity-full-card-rarity.is-very-good{background:#e9ce3a}.christianity-full-card-footer{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:.34rem;align-items:center;color:#1f2933ad;font-size:.58rem;line-height:1;text-transform:uppercase}.christianity-full-card-footer span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-floating-card-close{position:relative;z-index:8;min-height:2rem;padding:0 .6rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .45rem 1rem #102a431a}.christianity-preview-nav{position:absolute;top:50%;z-index:7;display:grid;place-items:center;width:2.55rem;height:2.55rem;border:1px solid rgba(37,99,235,.28);border-radius:999px;background:linear-gradient(180deg,#fffffffa,#eff6fff0),radial-gradient(circle at 35% 20%,rgba(37,99,235,.18),transparent 52%);color:var(--christianity-theme-focus);font:inherit;font-size:1.2rem;font-weight:1000;box-shadow:0 .75rem 1.4rem #102a4324,inset 0 0 0 1px #ffffff70;transform:translateY(-50%)}.christianity-preview-nav:hover{border-color:#2563eb6b;box-shadow:0 .95rem 1.65rem #102a432e,0 0 0 .16rem #2563eb14,inset 0 0 0 1px #ffffff9e}.christianity-preview-nav--previous{left:.6rem}.christianity-preview-nav--next{right:.6rem}.christianity-preview-backdrop,.christianity-history-backdrop,.christianity-info-backdrop{position:fixed;inset:0;border:0;border-radius:0;background:#0f172aa3}.christianity-preview-backdrop{z-index:10010;backdrop-filter:blur(.12rem)}.christianity-info-backdrop{z-index:50}.christianity-info-panel{position:fixed;top:50%;left:50%;z-index:51;width:min(31rem,calc(100vw - 1.25rem));max-height:min(34rem,calc(100vh - 2rem));padding-top:2.35rem;transform:translate(-50%,-50%)}.christianity-info-close{position:absolute;top:0;right:.15rem;z-index:2}.christianity-rule-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem;max-height:inherit;padding:1rem;overflow-y:auto;border:1px solid rgba(36,48,68,.14);border-radius:.9rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 38%);box-shadow:0 1.2rem 2.6rem #102a433d,inset 0 0 0 .25rem #ffffff85}.christianity-rule-note-icon{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:999px;background:color-mix(in srgb,var(--christianity-theme-focus) 12%,#ffffff);color:var(--christianity-theme-focus);font-size:1rem;font-weight:900;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent)}.christianity-rule-note small,.christianity-rule-note strong,.christianity-rule-note p,.christianity-rule-note h2{margin:0}.christianity-rule-note small{color:#1f29339e;font-size:.78rem;font-weight:800;text-transform:uppercase}.christianity-rule-note h2{margin-top:.18rem;font-size:clamp(1.5rem,7vw,2.2rem);line-height:1.05}.christianity-rule-note strong{display:inline-flex;width:fit-content;margin-top:.55rem;padding:.22rem .55rem;border-radius:999px;background:#edf2f7;font-size:.92rem}.christianity-rule-note p{margin-top:.75rem;color:#1f2933c7;line-height:1.45}.christianity-rule-note ul{display:grid;gap:.45rem;margin:.8rem 0 0;padding-left:1.05rem;color:#1f2933c7;line-height:1.35}.christianity-floating-card>small,.christianity-floating-card>span{color:#1f2933a3}.christianity-floating-card>strong{font-size:clamp(1.55rem,8vw,2.35rem);line-height:1.05}.christianity-floating-card>p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-preview-rule-note{position:relative;z-index:4;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;max-height:min(18rem,54dvh);padding:.68rem .76rem;overflow-y:auto;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:linear-gradient(180deg,#ffffffe0,#f8fafcd1),radial-gradient(circle at 8% 0%,rgba(37,99,235,.07),transparent 44%);box-shadow:0 .55rem 1.2rem #102a4314}.christianity-preview-abilities{position:relative;z-index:4;display:grid;grid-template-rows:auto auto minmax(4.5rem,1fr) auto;gap:.5rem;max-height:min(15rem,34dvh);min-height:0;padding:.72rem .78rem .78rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:.75rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 44%);box-shadow:0 .75rem 1.6rem #102a431f}.christianity-preview-abilities-header{display:flex;align-items:center;justify-content:space-between;gap:.7rem;min-width:0}.christianity-preview-abilities-header>div{display:grid;gap:.1rem;min-width:0}.christianity-preview-abilities small,.christianity-preview-abilities p,.christianity-preview-abilities-header span,.christianity-preview-ability-card strong{margin:0}.christianity-preview-abilities small{color:#1f293394;font-size:.68rem;font-weight:900;text-transform:uppercase}.christianity-preview-abilities-header span{color:#1f293385;font-size:.72rem;font-weight:900}.christianity-preview-ability-nav{display:flex;flex:0 0 auto;gap:.35rem}.christianity-preview-ability-nav button{display:grid;place-items:center;width:1.85rem;height:1.85rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:#ffffffe0;color:var(--christianity-theme-focus);font:inherit;font-size:1rem;font-weight:950;line-height:1;box-shadow:0 .35rem .85rem #2563eb24}.christianity-preview-ability-tabs{display:flex;gap:.34rem;overflow-x:auto;scrollbar-width:none}.christianity-preview-ability-tabs::-webkit-scrollbar{display:none}.christianity-preview-ability-tabs button{flex:0 0 auto;max-width:100%;min-height:1.85rem;padding:0 .58rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:999px;background:#edf2f7d1;color:#1f2933c2;font:inherit;font-size:.74rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-tabs button.is-selected{border-color:#2563eb52;background:color-mix(in srgb,var(--christianity-theme-focus) 14%,#ffffff);color:var(--christianity-theme-focus)}.christianity-preview-ability-card{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:4.5rem;gap:.34rem;padding:.55rem .62rem;overflow:hidden;border:1px solid rgba(148,163,184,.16);border-radius:.62rem;background:#ffffff94}.christianity-preview-ability-card strong{overflow:hidden;color:#1f2933e6;font-size:.82rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-scroll{min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;padding-right:.25rem}.christianity-preview-abilities p{color:#1f2933bd;font-size:.8rem;line-height:1.32}.christianity-preview-ability-footer{display:flex;justify-content:flex-end;align-self:end}.christianity-preview-use-ability{min-height:2rem;padding:0 .72rem;border:0;border-radius:999px;background:var(--christianity-theme-focus);color:#fff;font:inherit;font-size:.78rem;font-weight:900;box-shadow:0 .55rem 1.1rem #2563eb38}.christianity-preview-use-ability:disabled{background:#94a3b85c;color:#1f293380;box-shadow:none}.christianity-preview-rule-note small,.christianity-preview-rule-note strong,.christianity-preview-rule-note p{margin:0}.christianity-preview-rule-note small{color:#1f293394;font-size:.68rem;font-weight:800;text-transform:uppercase}.christianity-preview-rule-note strong{display:block;margin-top:.08rem;font-size:.92rem;line-height:1.1}.christianity-preview-rule-note p{margin-top:.22rem;color:#1f2933bd;font-size:.82rem;line-height:1.32}@media (min-width: 52rem){.christianity-floating-card-shell{width:min(58rem,calc(100vw - 3rem))}.christianity-floating-card{min-height:0;padding:0;width:min(23.4rem,calc(69dvh - 5.85rem),25rem)}}@media (max-width: 51.99rem){.christianity-floating-card-shell{top:50%;gap:.4rem;width:min(calc(100vw - .9rem),24rem);max-height:calc(100dvh - 1.15rem)}.christianity-preview-content{grid-template-columns:minmax(0,1fr)}.christianity-preview-side{display:none}.christianity-preview-stage{width:100%;padding-inline:3.55rem}.christianity-floating-card{width:min(16.5rem,calc(66dvh - 7.4rem),calc(100vw - 6.35rem));justify-self:center}.christianity-floating-card-shell.is-gallery-preview .christianity-floating-card{width:min(17.25rem,calc(70dvh - 7.2rem),calc(100vw - 5.75rem))}.christianity-preview-bible-credit{max-width:min(17.5rem,calc(100vw - 4.25rem));font-size:.42rem;line-height:1.18}.christianity-preview-ghost{display:block;width:min(7.1rem,calc(30dvh - 4rem),24vw);opacity:.24}.christianity-preview-ghost--previous{transform:translate(-118%) rotateY(24deg) rotate(-5deg) scale(.78)}.christianity-preview-ghost--next{transform:translate(118%) rotateY(-24deg) rotate(5deg) scale(.78)}.christianity-floating-card-close{min-height:1.9rem;padding:0 .58rem;font-size:.72rem}.christianity-preview-nav{width:2.2rem;height:2.2rem}.christianity-preview-nav--previous{left:.35rem}.christianity-preview-nav--next{right:.35rem}.christianity-preview-abilities{grid-template-rows:auto auto minmax(4.7rem,1fr) auto;max-height:min(13.5rem,34dvh);padding:.62rem .7rem}.christianity-preview-ability-tabs{padding-bottom:.02rem}.christianity-preview-ability-card{min-height:4.7rem;padding:.48rem .54rem}.christianity-preview-abilities p{font-size:.78rem;line-height:1.24}.christianity-preview-use-ability{min-height:1.95rem;padding-inline:.68rem}}.christianity-history-backdrop{z-index:40}.christianity-gallery-backdrop{z-index:10000;background:#0f172ab8;backdrop-filter:blur(.14rem)}.christianity-history-drawer{position:fixed;right:auto;bottom:max(.5rem,env(safe-area-inset-bottom));left:50%;z-index:41;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;width:min(calc(100vw - 1rem),44rem);min-height:min(18rem,calc(100dvh - 1rem));max-height:min(32rem,calc(100dvh - 2rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347;transform:translate(-50%)}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-dialog-actions{display:flex;align-items:center;gap:.45rem}.christianity-dialog-close{min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#fff;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .8rem #102a4314}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem .1rem .25rem}.christianity-history-grid::-webkit-scrollbar,.christianity-offering-list::-webkit-scrollbar{width:.65rem}.christianity-history-grid::-webkit-scrollbar-track,.christianity-offering-list::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-history-grid::-webkit-scrollbar-thumb,.christianity-offering-list::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offerings-drawer{grid-template-rows:auto auto minmax(0,1fr);width:min(calc(100vw - 1rem),48rem);min-height:min(20rem,calc(100dvh - 1rem));max-height:min(34rem,calc(100dvh - 2rem))}.christianity-offerings-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;padding:.72rem .8rem;border:1px solid rgba(36,48,68,.12);border-radius:.7rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 8% 0%,rgba(214,162,29,.12),transparent 42%)}.christianity-offerings-note p{margin:0;color:#1f2933c2;font-size:.86rem;line-height:1.35}.christianity-offering-list{display:grid;gap:.6rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem}.christianity-offering-row{display:grid;grid-template-columns:minmax(5.4rem,6.5rem) minmax(0,1fr);gap:.65rem;align-items:center;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.65rem;background:#fff}.christianity-offering-row.is-exhausted{opacity:.68}.christianity-gallery-drawer{position:fixed;grid-template-rows:auto auto auto minmax(0,1fr);inset:0;z-index:10001;box-sizing:border-box;width:100dvw;height:100dvh;max-width:none;min-height:100dvh;max-height:100dvh;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));border:0;border-radius:0;background:linear-gradient(180deg,#f8fafcfc,#eff6fffc),radial-gradient(circle at 16% 0%,rgba(37,99,235,.12),transparent 42%);transform:none}.christianity-gallery-drawer header>div:first-child{display:grid;gap:.15rem;min-width:0}.christianity-gallery-drawer header p{color:#1f293394;font-size:.82rem}.christianity-gallery-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(8.5rem,13rem);gap:.65rem;min-width:0}.christianity-gallery-controls label{display:grid;gap:.25rem;min-width:0;color:#1f29339e;font-size:.74rem;font-weight:800}.christianity-gallery-controls input,.christianity-gallery-controls select{width:100%;min-width:0;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(36,48,68,.16);border-radius:.65rem;background:#fff;color:var(--christianity-theme-ink);font:inherit;font-size:.9rem}.christianity-gallery-edition-strip{display:flex;gap:.45rem;overflow-x:auto;min-width:0;padding-bottom:.2rem}.christianity-gallery-edition-strip button{display:inline-flex;align-items:center;gap:.45rem;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(214,162,29,.38);border-radius:999px;background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800}.christianity-gallery-edition-strip img{width:1.2rem;height:1.2rem;object-fit:contain}.christianity-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.2rem,9.1rem));justify-content:center;align-content:start;gap:.95rem;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.35rem .15rem .65rem}.christianity-gallery-grid .christianity-gallery-card-button{width:100%}.christianity-gallery-grid::-webkit-scrollbar{width:.65rem}.christianity-gallery-grid::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-gallery-grid::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offering-card{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;gap:.26rem;width:100%;min-height:7.7rem;padding:.58rem;overflow:hidden;text-align:left;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 78% 14%,rgba(250,204,21,.78) 0 .42rem,transparent .44rem);box-shadow:0 .45rem 1rem #102a431a}.christianity-offering-card small{min-width:0;overflow:hidden;color:#1f293394;font-size:.62rem;font-weight:800;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-offering-card strong{display:-webkit-box;align-self:start;min-width:0;margin-top:.1rem;overflow:hidden;overflow-wrap:anywhere;font-size:.88rem;line-height:1.05;-webkit-box-orient:vertical;-webkit-line-clamp:3}.christianity-offering-card span{position:absolute;right:.42rem;bottom:.42rem;display:grid;place-items:center;min-width:1.55rem;height:1.55rem;padding:0 .28rem;border-radius:999px;background:#edf2f7;font-size:.82rem;font-weight:900}.christianity-offering-card em{align-self:end;max-width:calc(100% - 1.9rem);overflow:hidden;color:#1f29339e;font-size:.64rem;font-style:normal;font-weight:800;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-card p,.christianity-offering-row p{margin:0}.christianity-offering-card p{align-self:end;color:#1f2933a3;font-size:.72rem;line-height:1.2}.christianity-offering-row>div{display:grid;gap:.35rem;align-content:center;min-width:0}.christianity-offering-row>div p{color:#1f2933b8;font-size:.85rem;line-height:1.3}.christianity-offering-row>div button{justify-self:start;min-height:2.2rem;padding:0 .7rem;border:1px solid rgba(16,42,67,.16);border-radius:.5rem;background:#102a43;color:#fff;font:inherit;font-weight:800}.christianity-offering-row>div button:disabled{background:#e2e8f0;color:#1f293394}.christianity-history-grid .christianity-render-card-button{justify-self:center;width:min(100%,6.4rem)}.christianity-gallery-grid .christianity-render-card-button{justify-self:center;width:min(100%,8.7rem)}.christianity-gallery-grid .christianity-card-frame-header strong{font-size:clamp(.74rem,.85vw,.9rem)}.christianity-gallery-grid .christianity-card-frame-header small,.christianity-gallery-grid .christianity-card-frame-footer{font-size:.44rem}.christianity-offering-card.christianity-render-card-button{width:min(100%,5.8rem);min-height:0;padding:0;border:0;background:transparent;box-shadow:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent);outline-offset:.125rem}:host-context(.dark),:host-context(.ion-palette-dark),:host-context(html.ion-palette-dark),:host-context(body.dark),:host-context([data-theme=\"dark\"]){--christianity-theme-ink: var(--ion-text-color, #e5edf8);--christianity-theme-surface: #111827;--christianity-theme-parchment: #13223a;--christianity-theme-olive: #93c5fd;--christianity-theme-gold: #60a5fa;--christianity-theme-gold-soft: rgba(96, 165, 250, .18);--christianity-theme-gold-ring: rgba(147, 197, 253, .42);--christianity-theme-glow: rgba(96, 165, 250, .24);--christianity-theme-focus: #93c5fd;--christianity-theme-shadow: rgba(0, 0, 0, .34);--christianity-theme-shadow-strong: rgba(0, 0, 0, .48);--christianity-card-back: linear-gradient(135deg, rgba(147, 197, 253, .2), rgba(15, 23, 42, .08)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(147, 197, 253, .15), rgba(15, 23, 42, .06)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);color-scheme:dark}:host-context(.dark) .christianity-gallery-open,:host-context(.ion-palette-dark) .christianity-gallery-open,:host-context(html.ion-palette-dark) .christianity-gallery-open,:host-context(body.dark) .christianity-gallery-open,:host-context([data-theme=\"dark\"]) .christianity-gallery-open,:host-context(.dark) .christianity-secondary-action,:host-context(.ion-palette-dark) .christianity-secondary-action,:host-context(html.ion-palette-dark) .christianity-secondary-action,:host-context(body.dark) .christianity-secondary-action,:host-context([data-theme=\"dark\"]) .christianity-secondary-action,:host-context(.dark) .christianity-gallery-edition-strip button,:host-context(.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(html.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(body.dark) .christianity-gallery-edition-strip button,:host-context([data-theme=\"dark\"]) .christianity-gallery-edition-strip button{border-color:#93c5fd5c;background:linear-gradient(180deg,#1e3a5fd1,#0f172ae0),radial-gradient(circle at 20% 0%,rgba(96,165,250,.16),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.2rem #0000003d}:host-context(.dark) .christianity-splash,:host-context(.ion-palette-dark) .christianity-splash,:host-context(html.ion-palette-dark) .christianity-splash,:host-context(body.dark) .christianity-splash,:host-context([data-theme=\"dark\"]) .christianity-splash{border-color:#93c5fd38;background:radial-gradient(circle at 50% 18%,rgba(96,165,250,.16),transparent 22rem),linear-gradient(180deg,#0f172ae0,#07111ff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #00000047}:host-context(.dark) .christianity-start__cards article,:host-context(.ion-palette-dark) .christianity-start__cards article,:host-context(html.ion-palette-dark) .christianity-start__cards article,:host-context(body.dark) .christianity-start__cards article,:host-context([data-theme=\"dark\"]) .christianity-start__cards article,:host-context(.dark) .christianity-start__modes article,:host-context(.ion-palette-dark) .christianity-start__modes article,:host-context(html.ion-palette-dark) .christianity-start__modes article,:host-context(body.dark) .christianity-start__modes article,:host-context([data-theme=\"dark\"]) .christianity-start__modes article,:host-context(.dark) .christianity-start__status span,:host-context(.ion-palette-dark) .christianity-start__status span,:host-context(html.ion-palette-dark) .christianity-start__status span,:host-context(body.dark) .christianity-start__status span,:host-context([data-theme=\"dark\"]) .christianity-start__status span,:host-context(.dark) .christianity-start__modes article>span,:host-context(.ion-palette-dark) .christianity-start__modes article>span,:host-context(html.ion-palette-dark) .christianity-start__modes article>span,:host-context(body.dark) .christianity-start__modes article>span,:host-context([data-theme=\"dark\"]) .christianity-start__modes article>span{border-color:#94a3b833;background:#0f172aad;box-shadow:0 .75rem 1.7rem #00000038}:host-context(.dark) .christianity-splash p,:host-context(.ion-palette-dark) .christianity-splash p,:host-context(html.ion-palette-dark) .christianity-splash p,:host-context(body.dark) .christianity-splash p,:host-context([data-theme=\"dark\"]) .christianity-splash p,:host-context(.dark) .christianity-start__copy p,:host-context(.ion-palette-dark) .christianity-start__copy p,:host-context(html.ion-palette-dark) .christianity-start__copy p,:host-context(body.dark) .christianity-start__copy p,:host-context([data-theme=\"dark\"]) .christianity-start__copy p,:host-context(.dark) .christianity-start__cards p,:host-context(.ion-palette-dark) .christianity-start__cards p,:host-context(html.ion-palette-dark) .christianity-start__cards p,:host-context(body.dark) .christianity-start__cards p,:host-context([data-theme=\"dark\"]) .christianity-start__cards p,:host-context(.dark) .christianity-start__modes p,:host-context(.ion-palette-dark) .christianity-start__modes p,:host-context(html.ion-palette-dark) .christianity-start__modes p,:host-context(body.dark) .christianity-start__modes p,:host-context([data-theme=\"dark\"]) .christianity-start__modes p,:host-context(.dark) .christianity-header p,:host-context(.ion-palette-dark) .christianity-header p,:host-context(html.ion-palette-dark) .christianity-header p,:host-context(body.dark) .christianity-header p,:host-context([data-theme=\"dark\"]) .christianity-header p,:host-context(.dark) .christianity-match-player small,:host-context(.ion-palette-dark) .christianity-match-player small,:host-context(html.ion-palette-dark) .christianity-match-player small,:host-context(body.dark) .christianity-match-player small,:host-context([data-theme=\"dark\"]) .christianity-match-player small,:host-context(.dark) .christianity-scoreboard span,:host-context(.ion-palette-dark) .christianity-scoreboard span,:host-context(html.ion-palette-dark) .christianity-scoreboard span,:host-context(body.dark) .christianity-scoreboard span,:host-context([data-theme=\"dark\"]) .christianity-scoreboard span{color:#e2e8f0bd}:host-context(.dark) .christianity-turn,:host-context(.ion-palette-dark) .christianity-turn,:host-context(html.ion-palette-dark) .christianity-turn,:host-context(body.dark) .christianity-turn,:host-context([data-theme=\"dark\"]) .christianity-turn,:host-context(.dark) .christianity-leader,:host-context(.ion-palette-dark) .christianity-leader,:host-context(html.ion-palette-dark) .christianity-leader,:host-context(body.dark) .christianity-leader,:host-context([data-theme=\"dark\"]) .christianity-leader,:host-context(.dark) .christianity-offerings,:host-context(.ion-palette-dark) .christianity-offerings,:host-context(html.ion-palette-dark) .christianity-offerings,:host-context(body.dark) .christianity-offerings,:host-context([data-theme=\"dark\"]) .christianity-offerings,:host-context(.dark) .christianity-hidden-hand,:host-context(.ion-palette-dark) .christianity-hidden-hand,:host-context(html.ion-palette-dark) .christianity-hidden-hand,:host-context(body.dark) .christianity-hidden-hand,:host-context([data-theme=\"dark\"]) .christianity-hidden-hand,:host-context(.dark) .christianity-pile,:host-context(.ion-palette-dark) .christianity-pile,:host-context(html.ion-palette-dark) .christianity-pile,:host-context(body.dark) .christianity-pile,:host-context([data-theme=\"dark\"]) .christianity-pile,:host-context(.dark) .christianity-deck,:host-context(.ion-palette-dark) .christianity-deck,:host-context(html.ion-palette-dark) .christianity-deck,:host-context(body.dark) .christianity-deck,:host-context([data-theme=\"dark\"]) .christianity-deck,:host-context(.dark) .christianity-place,:host-context(.ion-palette-dark) .christianity-place,:host-context(html.ion-palette-dark) .christianity-place,:host-context(body.dark) .christianity-place,:host-context([data-theme=\"dark\"]) .christianity-place,:host-context(.dark) .christianity-match-strip,:host-context(.ion-palette-dark) .christianity-match-strip,:host-context(html.ion-palette-dark) .christianity-match-strip,:host-context(body.dark) .christianity-match-strip,:host-context([data-theme=\"dark\"]) .christianity-match-strip,:host-context(.dark) .christianity-actions,:host-context(.ion-palette-dark) .christianity-actions,:host-context(html.ion-palette-dark) .christianity-actions,:host-context(body.dark) .christianity-actions,:host-context([data-theme=\"dark\"]) .christianity-actions,:host-context(.dark) .christianity-history,:host-context(.ion-palette-dark) .christianity-history,:host-context(html.ion-palette-dark) .christianity-history,:host-context(body.dark) .christianity-history,:host-context([data-theme=\"dark\"]) .christianity-history{border-color:#94a3b82e;background:#0f172ad1}:host-context(.dark) .christianity-turn.is-own-turn,:host-context(.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(html.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(body.dark) .christianity-turn.is-own-turn,:host-context([data-theme=\"dark\"]) .christianity-turn.is-own-turn{border-color:#2dd4bf5c;background:#14534c5c}:host-context(.dark) .christianity-table,:host-context(.ion-palette-dark) .christianity-table,:host-context(html.ion-palette-dark) .christianity-table,:host-context(body.dark) .christianity-table,:host-context([data-theme=\"dark\"]) .christianity-table{background:linear-gradient(180deg,#10233d,#0b1728)}:host-context(.dark) .christianity-player-side,:host-context(.ion-palette-dark) .christianity-player-side,:host-context(html.ion-palette-dark) .christianity-player-side,:host-context(body.dark) .christianity-player-side,:host-context([data-theme=\"dark\"]) .christianity-player-side{background:#0f172a57}:host-context(.dark) .christianity-battle-zone,:host-context(.ion-palette-dark) .christianity-battle-zone,:host-context(html.ion-palette-dark) .christianity-battle-zone,:host-context(body.dark) .christianity-battle-zone,:host-context([data-theme=\"dark\"]) .christianity-battle-zone,:host-context(.dark) .christianity-shared-zone,:host-context(.ion-palette-dark) .christianity-shared-zone,:host-context(html.ion-palette-dark) .christianity-shared-zone,:host-context(body.dark) .christianity-shared-zone,:host-context([data-theme=\"dark\"]) .christianity-shared-zone{background:#0f172a94}:host-context(.dark) .christianity-battle-zone.is-placing-card,:host-context(.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(html.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(body.dark) .christianity-battle-zone.is-placing-card,:host-context([data-theme=\"dark\"]) .christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#1e3a5fd1,#0f172ab8),#0f172a94}:host-context(.dark) .christianity-card,:host-context(.ion-palette-dark) .christianity-card,:host-context(html.ion-palette-dark) .christianity-card,:host-context(body.dark) .christianity-card,:host-context([data-theme=\"dark\"]) .christianity-card,:host-context(.dark) .christianity-slot,:host-context(.ion-palette-dark) .christianity-slot,:host-context(html.ion-palette-dark) .christianity-slot,:host-context(body.dark) .christianity-slot,:host-context([data-theme=\"dark\"]) .christianity-slot{border-color:#94a3b83d;background:#0f172a8a}:host-context(.dark) .christianity-slot--play-target,:host-context(.ion-palette-dark) .christianity-slot--play-target,:host-context(html.ion-palette-dark) .christianity-slot--play-target,:host-context(body.dark) .christianity-slot--play-target,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target{color:var(--christianity-theme-ink);background:linear-gradient(180deg,#2563eb3d,#0f172ac7),#0f172abd}:host-context(.dark) .christianity-slot--play-target span,:host-context(.ion-palette-dark) .christianity-slot--play-target span,:host-context(html.ion-palette-dark) .christianity-slot--play-target span,:host-context(body.dark) .christianity-slot--play-target span,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target span,:host-context(.dark) .christianity-card strong,:host-context(.ion-palette-dark) .christianity-card strong,:host-context(html.ion-palette-dark) .christianity-card strong,:host-context(body.dark) .christianity-card strong,:host-context([data-theme=\"dark\"]) .christianity-card strong{background:#1e293beb}:host-context(.dark) .christianity-offering-pile,:host-context(.ion-palette-dark) .christianity-offering-pile,:host-context(html.ion-palette-dark) .christianity-offering-pile,:host-context(body.dark) .christianity-offering-pile,:host-context([data-theme=\"dark\"]) .christianity-offering-pile,:host-context(.dark) .christianity-zone-card,:host-context(.ion-palette-dark) .christianity-zone-card,:host-context(html.ion-palette-dark) .christianity-zone-card,:host-context(body.dark) .christianity-zone-card,:host-context([data-theme=\"dark\"]) .christianity-zone-card,:host-context(.dark) .christianity-zone-pile,:host-context(.ion-palette-dark) .christianity-zone-pile,:host-context(html.ion-palette-dark) .christianity-zone-pile,:host-context(body.dark) .christianity-zone-pile,:host-context([data-theme=\"dark\"]) .christianity-zone-pile{border-color:#94a3b83d;background:linear-gradient(180deg,#111827f5,#0f172af0),radial-gradient(circle at 14% 0%,rgba(96,165,250,.12),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.25rem #00000047,inset 0 0 0 .12rem #ffffff08}:host-context(.dark) .christianity-offering-pile>span,:host-context(.ion-palette-dark) .christianity-offering-pile>span,:host-context(html.ion-palette-dark) .christianity-offering-pile>span,:host-context(body.dark) .christianity-offering-pile>span,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>span,:host-context(.dark) .christianity-zone-card>span,:host-context(.ion-palette-dark) .christianity-zone-card>span,:host-context(html.ion-palette-dark) .christianity-zone-card>span,:host-context(body.dark) .christianity-zone-card>span,:host-context([data-theme=\"dark\"]) .christianity-zone-card>span,:host-context(.dark) .christianity-zone-pile>span,:host-context(.ion-palette-dark) .christianity-zone-pile>span,:host-context(html.ion-palette-dark) .christianity-zone-pile>span,:host-context(body.dark) .christianity-zone-pile>span,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>span,:host-context(.dark) .christianity-player-badge,:host-context(.ion-palette-dark) .christianity-player-badge,:host-context(html.ion-palette-dark) .christianity-player-badge,:host-context(body.dark) .christianity-player-badge,:host-context([data-theme=\"dark\"]) .christianity-player-badge{color:#e2e8f0c7}:host-context(.dark) .christianity-offering-pile>small,:host-context(.ion-palette-dark) .christianity-offering-pile>small,:host-context(html.ion-palette-dark) .christianity-offering-pile>small,:host-context(body.dark) .christianity-offering-pile>small,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>small{color:#e2e8f09e}:host-context(.dark) .christianity-offering-pile>strong,:host-context(.ion-palette-dark) .christianity-offering-pile>strong,:host-context(html.ion-palette-dark) .christianity-offering-pile>strong,:host-context(body.dark) .christianity-offering-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>strong,:host-context(.dark) .christianity-zone-card>strong,:host-context(.ion-palette-dark) .christianity-zone-card>strong,:host-context(html.ion-palette-dark) .christianity-zone-card>strong,:host-context(body.dark) .christianity-zone-card>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-card>strong,:host-context(.dark) .christianity-zone-pile>strong,:host-context(.ion-palette-dark) .christianity-zone-pile>strong,:host-context(html.ion-palette-dark) .christianity-zone-pile>strong,:host-context(body.dark) .christianity-zone-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>strong,:host-context(.dark) .christianity-hand-meter,:host-context(.ion-palette-dark) .christianity-hand-meter,:host-context(html.ion-palette-dark) .christianity-hand-meter,:host-context(body.dark) .christianity-hand-meter,:host-context([data-theme=\"dark\"]) .christianity-hand-meter{border-color:#94a3b833;background:#0f172ae0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #00000047}:host-context(.dark) .christianity-hand-meter span,:host-context(.ion-palette-dark) .christianity-hand-meter span,:host-context(html.ion-palette-dark) .christianity-hand-meter span,:host-context(body.dark) .christianity-hand-meter span,:host-context([data-theme=\"dark\"]) .christianity-hand-meter span{color:#e2e8f0b3}:host-context(.dark) .christianity-offering-pile:before,:host-context(.ion-palette-dark) .christianity-offering-pile:before,:host-context(html.ion-palette-dark) .christianity-offering-pile:before,:host-context(body.dark) .christianity-offering-pile:before,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:before,:host-context(.dark) .christianity-zone-pile:before,:host-context(.ion-palette-dark) .christianity-zone-pile:before,:host-context(html.ion-palette-dark) .christianity-zone-pile:before,:host-context(body.dark) .christianity-zone-pile:before,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:before{border-color:#94a3b833;background:#e2e8f0eb;box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-offering-pile:after,:host-context(.ion-palette-dark) .christianity-offering-pile:after,:host-context(html.ion-palette-dark) .christianity-offering-pile:after,:host-context(body.dark) .christianity-offering-pile:after,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:after,:host-context(.dark) .christianity-zone-pile:after,:host-context(.ion-palette-dark) .christianity-zone-pile:after,:host-context(html.ion-palette-dark) .christianity-zone-pile:after,:host-context(body.dark) .christianity-zone-pile:after,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:after{border-color:#94a3b838;background:var(--christianity-card-back);box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-end-turn:disabled,:host-context(.ion-palette-dark) .christianity-end-turn:disabled,:host-context(html.ion-palette-dark) .christianity-end-turn:disabled,:host-context(body.dark) .christianity-end-turn:disabled,:host-context([data-theme=\"dark\"]) .christianity-end-turn:disabled{border-color:#94a3b829;background:#0f172a75;color:#e2e8f06b;opacity:1}:host-context(.dark) .christianity-history-drawer,:host-context(.ion-palette-dark) .christianity-history-drawer,:host-context(html.ion-palette-dark) .christianity-history-drawer,:host-context(body.dark) .christianity-history-drawer,:host-context([data-theme=\"dark\"]) .christianity-history-drawer,:host-context(.dark) .christianity-rule-note,:host-context(.ion-palette-dark) .christianity-rule-note,:host-context(html.ion-palette-dark) .christianity-rule-note,:host-context(body.dark) .christianity-rule-note,:host-context([data-theme=\"dark\"]) .christianity-rule-note,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note,:host-context(.dark) .christianity-preview-abilities,:host-context(.ion-palette-dark) .christianity-preview-abilities,:host-context(html.ion-palette-dark) .christianity-preview-abilities,:host-context(body.dark) .christianity-preview-abilities,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities{border-color:#94a3b82e;background:linear-gradient(180deg,#0f172af5,#111827f5),radial-gradient(circle at 8% 0%,rgba(96,165,250,.12),transparent 40%);box-shadow:0 1.5rem 4rem #0000006b}:host-context(.dark) .christianity-dialog-close,:host-context(.ion-palette-dark) .christianity-dialog-close,:host-context(html.ion-palette-dark) .christianity-dialog-close,:host-context(body.dark) .christianity-dialog-close,:host-context([data-theme=\"dark\"]) .christianity-dialog-close,:host-context(.dark) .christianity-floating-card-close,:host-context(.ion-palette-dark) .christianity-floating-card-close,:host-context(html.ion-palette-dark) .christianity-floating-card-close,:host-context(body.dark) .christianity-floating-card-close,:host-context([data-theme=\"dark\"]) .christianity-floating-card-close,:host-context(.dark) .christianity-preview-position,:host-context(.ion-palette-dark) .christianity-preview-position,:host-context(html.ion-palette-dark) .christianity-preview-position,:host-context(body.dark) .christianity-preview-position,:host-context([data-theme=\"dark\"]) .christianity-preview-position,:host-context(.dark) .christianity-preview-nav,:host-context(.ion-palette-dark) .christianity-preview-nav,:host-context(html.ion-palette-dark) .christianity-preview-nav,:host-context(body.dark) .christianity-preview-nav,:host-context([data-theme=\"dark\"]) .christianity-preview-nav,:host-context(.dark) .christianity-preview-ability-nav button,:host-context(.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(html.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(body.dark) .christianity-preview-ability-nav button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-nav button,:host-context(.dark) .christianity-preview-ability-tabs button,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(body.dark) .christianity-preview-ability-tabs button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button{border-color:#94a3b838;background:#0f172af0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #0000004d}:host-context(.dark) .christianity-preview-ability-tabs button.is-selected,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(body.dark) .christianity-preview-ability-tabs button.is-selected,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button.is-selected{border-color:#60a5fa61;background:#2563eb38;color:#dbeafef0}:host-context(.dark) .christianity-preview-use-ability:disabled,:host-context(.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(html.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(body.dark) .christianity-preview-use-ability:disabled,:host-context([data-theme=\"dark\"]) .christianity-preview-use-ability:disabled{background:#334155c7;color:#e2e8f07a}:host-context(.dark) .christianity-preview-ability-card,:host-context(.ion-palette-dark) .christianity-preview-ability-card,:host-context(html.ion-palette-dark) .christianity-preview-ability-card,:host-context(body.dark) .christianity-preview-ability-card,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card{border-color:#94a3b829;background:#0f172a6b}:host-context(.dark) .christianity-preview-ability-card strong,:host-context(.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(html.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(body.dark) .christianity-preview-ability-card strong,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card strong,:host-context(.dark) .christianity-preview-abilities-header span,:host-context(.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(html.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(body.dark) .christianity-preview-abilities-header span,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities-header span{color:#e2e8f0d1}:host-context(.dark) .christianity-history-drawer header span,:host-context(.ion-palette-dark) .christianity-history-drawer header span,:host-context(html.ion-palette-dark) .christianity-history-drawer header span,:host-context(body.dark) .christianity-history-drawer header span,:host-context([data-theme=\"dark\"]) .christianity-history-drawer header span,:host-context(.dark) .christianity-rule-note strong,:host-context(.ion-palette-dark) .christianity-rule-note strong,:host-context(html.ion-palette-dark) .christianity-rule-note strong,:host-context(body.dark) .christianity-rule-note strong,:host-context([data-theme=\"dark\"]) .christianity-rule-note strong{background:#1e293beb}:host-context(.dark) .christianity-rule-note small,:host-context(.ion-palette-dark) .christianity-rule-note small,:host-context(html.ion-palette-dark) .christianity-rule-note small,:host-context(body.dark) .christianity-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-rule-note small,:host-context(.dark) .christianity-preview-rule-note small,:host-context(.ion-palette-dark) .christianity-preview-rule-note small,:host-context(html.ion-palette-dark) .christianity-preview-rule-note small,:host-context(body.dark) .christianity-preview-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note small,:host-context(.dark) .christianity-preview-abilities small,:host-context(.ion-palette-dark) .christianity-preview-abilities small,:host-context(html.ion-palette-dark) .christianity-preview-abilities small,:host-context(body.dark) .christianity-preview-abilities small,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities small,:host-context(.dark) .christianity-gallery-drawer header p,:host-context(.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(html.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(body.dark) .christianity-gallery-drawer header p,:host-context([data-theme=\"dark\"]) .christianity-gallery-drawer header p,:host-context(.dark) .christianity-gallery-controls label,:host-context(.ion-palette-dark) .christianity-gallery-controls label,:host-context(html.ion-palette-dark) .christianity-gallery-controls label,:host-context(body.dark) .christianity-gallery-controls label,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls label{color:#e2e8f0ad}:host-context(.dark) .christianity-rule-note p,:host-context(.ion-palette-dark) .christianity-rule-note p,:host-context(html.ion-palette-dark) .christianity-rule-note p,:host-context(body.dark) .christianity-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-rule-note p,:host-context(.dark) .christianity-rule-note ul,:host-context(.ion-palette-dark) .christianity-rule-note ul,:host-context(html.ion-palette-dark) .christianity-rule-note ul,:host-context(body.dark) .christianity-rule-note ul,:host-context([data-theme=\"dark\"]) .christianity-rule-note ul,:host-context(.dark) .christianity-preview-rule-note p,:host-context(.ion-palette-dark) .christianity-preview-rule-note p,:host-context(html.ion-palette-dark) .christianity-preview-rule-note p,:host-context(body.dark) .christianity-preview-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note p,:host-context(.dark) .christianity-preview-abilities p,:host-context(.ion-palette-dark) .christianity-preview-abilities p,:host-context(html.ion-palette-dark) .christianity-preview-abilities p,:host-context(body.dark) .christianity-preview-abilities p,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities p,:host-context(.dark) .christianity-offerings-note p,:host-context(.ion-palette-dark) .christianity-offerings-note p,:host-context(html.ion-palette-dark) .christianity-offerings-note p,:host-context(body.dark) .christianity-offerings-note p,:host-context([data-theme=\"dark\"]) .christianity-offerings-note p{color:#e2e8f0cc}:host-context(.dark) .christianity-gallery-controls input,:host-context(.ion-palette-dark) .christianity-gallery-controls input,:host-context(html.ion-palette-dark) .christianity-gallery-controls input,:host-context(body.dark) .christianity-gallery-controls input,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls input,:host-context(.dark) .christianity-gallery-controls select,:host-context(.ion-palette-dark) .christianity-gallery-controls select,:host-context(html.ion-palette-dark) .christianity-gallery-controls select,:host-context(body.dark) .christianity-gallery-controls select,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls select,:host-context(.dark) .christianity-offering-row,:host-context(.ion-palette-dark) .christianity-offering-row,:host-context(html.ion-palette-dark) .christianity-offering-row,:host-context(body.dark) .christianity-offering-row,:host-context([data-theme=\"dark\"]) .christianity-offering-row,:host-context(.dark) .christianity-offerings-note,:host-context(.ion-palette-dark) .christianity-offerings-note,:host-context(html.ion-palette-dark) .christianity-offerings-note,:host-context(body.dark) .christianity-offerings-note,:host-context([data-theme=\"dark\"]) .christianity-offerings-note{border-color:#94a3b833;background:#0f172ac7;color:var(--christianity-theme-ink)}:host-context(.dark) .christianity-history-grid,:host-context(.ion-palette-dark) .christianity-history-grid,:host-context(html.ion-palette-dark) .christianity-history-grid,:host-context(body.dark) .christianity-history-grid,:host-context([data-theme=\"dark\"]) .christianity-history-grid,:host-context(.dark) .christianity-offering-list,:host-context(.ion-palette-dark) .christianity-offering-list,:host-context(html.ion-palette-dark) .christianity-offering-list,:host-context(body.dark) .christianity-offering-list,:host-context([data-theme=\"dark\"]) .christianity-offering-list,:host-context(.dark) .christianity-gallery-grid,:host-context(.ion-palette-dark) .christianity-gallery-grid,:host-context(html.ion-palette-dark) .christianity-gallery-grid,:host-context(body.dark) .christianity-gallery-grid,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note{scrollbar-color:rgba(148,163,184,.54) rgba(15,23,42,.86)}:host-context(.dark) .christianity-rule-note-icon,:host-context(.ion-palette-dark) .christianity-rule-note-icon,:host-context(html.ion-palette-dark) .christianity-rule-note-icon,:host-context(body.dark) .christianity-rule-note-icon,:host-context([data-theme=\"dark\"]) .christianity-rule-note-icon{background:#60a5fa29;color:#bfdbfe;box-shadow:inset 0 0 0 1px #93c5fd38}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-track{background:#0f172adb}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-thumb{border-color:#0f172adb;background:#94a3b88a}@media (max-width: 720px){:host{overflow-x:hidden}.christianity-shell{padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) 10.45rem max(.75rem,env(safe-area-inset-left))}.christianity-shell.is-preparing{padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left))}.christianity-shell.is-preparing .christianity-table{min-height:calc(100dvh - max(1.5rem,env(safe-area-inset-top) + env(safe-area-inset-bottom)))}.christianity-actions{position:fixed;right:max(.6rem,env(safe-area-inset-right));bottom:calc(max(.75rem,env(safe-area-inset-bottom)) + 7.45rem);z-index:80;display:block;width:auto;padding:0;background:transparent;pointer-events:none}.christianity-actions button{min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-header,.christianity-match-strip,.christianity-player__summary{box-sizing:border-box;width:100%;padding-right:max(.5rem,env(safe-area-inset-right));padding-left:max(.5rem,env(safe-area-inset-left))}.christianity-header,.christianity-player__summary,.christianity-shared-zone{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-turn-banner{grid-template-columns:minmax(0,1fr);gap:.45rem;padding:.55rem}.christianity-turn-actions{justify-content:space-between;width:100%}.christianity-end-turn{min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-options-button{justify-self:start}.christianity-options-menu{right:auto;left:.55rem}.christianity-setup-panel,.christianity-result-panel{inset:.55rem;padding:.7rem}.christianity-leader-choice-grid{grid-template-columns:repeat(2,minmax(0,8.1rem));gap:.5rem;width:min(100%,17rem)}.christianity-leader-choice-option{padding:.38rem;border-radius:.78rem}.christianity-leader-choice-card{width:min(100%,7.1rem)}.christianity-leader-choice-option span{min-height:1.65rem;padding-inline:.34rem}.christianity-leader-choice-detail{min-height:1.9rem;font-size:.7rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-header-actions{align-items:flex-end;flex-direction:column}.christianity-start__cards,.christianity-start__hero{grid-template-columns:minmax(0,1fr)}.christianity-start__fan{min-height:10.5rem}.christianity-start__fan val-christianity-card{width:clamp(5.2rem,22vw,6.4rem)}.christianity-start__modes{grid-template-columns:repeat(2,minmax(0,1fr))}.christianity-splash{min-height:min(30rem,calc(100dvh - 7rem));padding-right:max(.65rem,env(safe-area-inset-right));padding-left:max(.65rem,env(safe-area-inset-left));border-right:0;border-left:0;border-radius:0}.christianity-start{min-height:min(30rem,calc(100dvh - 7rem));padding:.35rem}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem;width:100%;max-width:100%;min-width:0;padding:.45rem;overflow-x:hidden}.christianity-player-side{width:100%;max-width:100%;min-width:0;padding:.3rem .25rem;overflow:hidden}.christianity-battle-zone{--christianity-battle-card-width: min(5.45rem, 100%);grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.25rem,1.5vw,.4rem);justify-content:stretch;min-height:7.45rem;padding-inline:.28rem;overflow-x:hidden}.christianity-battle-zone .christianity-card-preview-card--battle,.christianity-battle-zone .christianity-slot{width:min(100%,5.45rem)}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent){position:fixed;right:0;bottom:0;left:0;z-index:52;box-sizing:border-box;min-height:9.55rem;margin:0;padding:.7rem max(.35rem,env(safe-area-inset-right)) max(.55rem,env(safe-area-inset-bottom)) max(.35rem,env(safe-area-inset-left));background:linear-gradient(180deg,#eff6ff00,#dbeafef5 18%,#dbeafefa),radial-gradient(circle at 50% 0%,rgba(37,99,235,.14),transparent 58%);pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan,.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-card-wrap{pointer-events:auto}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-meter{top:.15rem;right:max(.55rem,env(safe-area-inset-right));pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan{min-height:8.85rem;padding:.25rem .25rem 1.1rem;overflow:visible}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-card-preview-card--hand{width:clamp(4.35rem,20vw,5.65rem)}.christianity-hand-shelf--opponent{min-height:5.55rem;margin-top:0;margin-bottom:0;padding-top:.4rem;padding-bottom:.35rem}.christianity-player-rack{grid-template-columns:minmax(0,5.55rem) minmax(0,1fr) minmax(0,5.45rem);gap:clamp(.35rem,2vw,.5rem)}.christianity-player-rack:not(.christianity-player-rack--opponent) .christianity-offerings-zone{position:fixed;left:max(.65rem,env(safe-area-inset-left));bottom:calc(9.65rem + env(safe-area-inset-bottom));z-index:49;width:min(5.65rem,24vw);min-width:5.15rem;pointer-events:auto;transition:filter .16s ease,transform .16s ease,z-index .16s ease}.christianity-shell.is-offering-drop-active .christianity-player-rack:not(.christianity-player-rack--opponent) .christianity-offerings-zone{z-index:72;filter:drop-shadow(0 .85rem 1.45rem rgba(16,42,67,.24));transform:translateY(-.22rem) scale(1.03)}.christianity-shell.has-modal-open .christianity-player-rack:not(.christianity-player-rack--opponent) .christianity-offerings-zone{opacity:0;pointer-events:none}.christianity-shared-zone{gap:.45rem;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.christianity-zone-card,.christianity-zone-pile{min-height:6.35rem;padding:.68rem .58rem .55rem;gap:.24rem}.christianity-zone-card>val-christianity-card,.christianity-zone-pile>val-christianity-card,.christianity-zone-pile .christianity-pile-card-hint,.christianity-place-token,.christianity-zone-pile:before,.christianity-zone-pile:after,.christianity-empty-card-slot{width:clamp(3rem,16vw,3.75rem)}.christianity-offering-pile{height:7.55rem;max-height:7.55rem;padding:.62rem .54rem .52rem;gap:.24rem}.christianity-offering-drop-target{width:min(100%,6.35rem);height:7.55rem;min-height:0;max-height:7.55rem}.christianity-pile-card-hint{top:2rem;width:clamp(2.25rem,10.5vw,2.8rem)}.christianity-offering-pile .christianity-zone-card-stack val-christianity-card{top:1.72rem;width:clamp(2.85rem,14vw,3.45rem)}.christianity-zone-pile .christianity-pile-card-hint{top:1.78rem;width:clamp(3rem,16vw,3.75rem)}.christianity-place-token{top:2rem;width:clamp(2.85rem,15vw,3.55rem)}.christianity-offering-pile>small{bottom:.64rem;left:.58rem;font-size:.56rem}.christianity-offering-pile>strong{right:.48rem;bottom:.5rem}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);height:auto;min-height:0}.christianity-leader-card{width:clamp(5.15rem,22vw,6.35rem);min-height:0}.christianity-offering-row{grid-template-columns:minmax(5rem,5.8rem) minmax(0,1fr);gap:.5rem}.christianity-gallery-controls{grid-template-columns:minmax(0,1fr);gap:.5rem}.christianity-gallery-drawer{gap:.6rem;padding:max(.72rem,env(safe-area-inset-top)) max(.72rem,env(safe-area-inset-right)) max(.72rem,env(safe-area-inset-bottom)) max(.72rem,env(safe-area-inset-left))}.christianity-gallery-drawer header{align-items:start}.christianity-gallery-drawer h2{font-size:1.2rem;line-height:1.05}.christianity-gallery-controls label{gap:.18rem;font-size:.7rem}.christianity-gallery-controls input,.christianity-gallery-controls select,.christianity-gallery-edition-strip button{min-height:2.05rem}.christianity-gallery-grid{grid-template-columns:repeat(3,minmax(0,clamp(6.35rem,28vw,7.15rem)));justify-content:center;gap:clamp(.55rem,2.2vw,.72rem);scrollbar-gutter:auto;padding:.42rem 0 .8rem}.christianity-gallery-grid .christianity-render-card-button{width:100%}.christianity-offering-card{min-height:7.25rem;padding:.5rem}.christianity-hand-fan--opponent{min-height:4.75rem;padding-bottom:.35rem}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.1rem,14vw,3.9rem);margin-inline:-.65rem}}\n"] }]
4098
+ `, styles: [":host{--christianity-theme-ink: var(--val-text-color, #1f2933);--christianity-theme-surface: #ffffff;--christianity-theme-parchment: #eff6ff;--christianity-theme-olive: #1d4ed8;--christianity-theme-gold: #2563eb;--christianity-theme-gold-soft: rgba(37, 99, 235, .16);--christianity-theme-gold-ring: rgba(37, 99, 235, .44);--christianity-theme-glow: rgba(37, 99, 235, .24);--christianity-theme-focus: #2563eb;--christianity-theme-shadow: rgba(37, 99, 235, .15);--christianity-theme-shadow-strong: rgba(37, 99, 235, .26);--christianity-card-aspect: 5 / 7.45;--christianity-card-back: linear-gradient(135deg, rgba(16, 42, 67, .16), rgba(16, 42, 67, .03)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(16, 42, 67, .11), rgba(16, 42, 67, .02)), repeating-linear-gradient(45deg, #dbeafe 0 .33rem, #ffffff .33rem .66rem);display:block;font-size:var(--val-mini-games-font-size, 1rem);max-width:100%;min-width:0;overflow-x:clip;color:var(--christianity-theme-ink)}:host-context(body.font-small){--val-mini-games-font-size: .875rem}:host-context(body.font-large){--val-mini-games-font-size: 1.1875rem}.christianity-shell{box-sizing:border-box;display:grid;gap:.65rem;width:100%;max-width:100%;min-width:0;padding:clamp(.65rem,1.8vw,1.15rem);overflow-x:clip;overflow-y:visible}.christianity-shell.has-modal-open{max-height:100dvh;overflow:hidden;overscroll-behavior:contain}.christianity-shell.has-modal-open .christianity-hand-shelf:not(.christianity-hand-shelf--opponent){opacity:0;pointer-events:none;transform:translateY(1.5rem)}.christianity-shell.is-preparing{padding-bottom:clamp(.75rem,1.8vw,1.15rem)}.christianity-shell.is-preparing .christianity-match-strip,.christianity-shell.is-preparing .christianity-turn-banner,.christianity-shell.is-preparing .christianity-hand-shelf,.christianity-shell.is-preparing .christianity-actions,.christianity-shell.is-preparing .christianity-end-turn,.christianity-shell.is-preparing .christianity-impact-layer,.christianity-shell.is-preparing .christianity-player-side,.christianity-shell.is-preparing .christianity-shared-zone{display:none}.christianity-shell.is-preparing .christianity-table{min-height:min(34rem,calc(100dvh - 2rem))}.christianity-header,.christianity-match-strip,.christianity-player__summary,.christianity-shared-zone,.christianity-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-header h1,.christianity-header p,.christianity-match-player strong,.christianity-match-player small,.christianity-scoreboard span,.christianity-history h2,.christianity-actions p{margin:0}.christianity-header h1{font-size:1.35rem;line-height:1.1}.christianity-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.christianity-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;min-width:0}.christianity-gallery-open{min-height:2.2rem;padding:0 .75rem;border:1px solid var(--christianity-theme-gold-ring);border-radius:999px;background:linear-gradient(180deg,#eff6fffa,#fffffffa),radial-gradient(circle at 20% 0%,var(--christianity-theme-gold-soft),transparent 42%);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800;box-shadow:0 .55rem 1.2rem #2563eb1a}.christianity-splash{min-height:min(34rem,calc(100dvh - 8rem));border:1px solid rgba(37,99,235,.18);border-radius:.9rem;background:radial-gradient(circle at 50% 18%,rgba(37,99,235,.16),transparent 22rem),linear-gradient(180deg,#eff6ffed,#fffffff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #2563eb1f}.christianity-splash{display:grid;place-items:center;align-content:center;gap:1.2rem;padding:2.5rem 1.25rem;text-align:center}.christianity-splash__mark{position:relative;display:grid;grid-template-columns:repeat(3,.74rem);place-content:center;gap:.55rem;width:5.8rem;height:5.8rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(37,99,235,.12),transparent 55%),#ffffff9e;box-shadow:inset 0 0 0 .55rem #fff6,0 1rem 2rem #2563eb1f}.christianity-splash__mark:before,.christianity-splash__mark:after{content:\"\";position:absolute;inset:.42rem;border:1px solid rgba(37,99,235,.16);border-radius:inherit;animation:christianity-loader-ring 1.8s ease-out infinite}.christianity-splash__mark:after{animation-delay:.48s}.christianity-splash__mark span{width:.74rem;height:.74rem;border-radius:999px;background:var(--christianity-theme-focus);box-shadow:0 .35rem .85rem #2563eb38;animation:christianity-loader-dot .96s ease-in-out infinite}.christianity-splash__mark span:nth-child(2){animation-delay:.14s}.christianity-splash__mark span:nth-child(3){animation-delay:.28s}@keyframes christianity-loader-dot{0%,to{opacity:.38;transform:translateY(0) scale(.82)}45%{opacity:1;transform:translateY(-.22rem) scale(1)}}@keyframes christianity-loader-ring{0%{opacity:.48;transform:scale(.72)}to{opacity:0;transform:scale(1.2)}}.christianity-splash span,.christianity-start__copy span{color:var(--christianity-theme-olive);font-size:.76rem;font-weight:900;text-transform:uppercase}.christianity-splash h2,.christianity-start h2,.christianity-start p{margin:0}.christianity-splash h2{margin-top:.2rem;font-size:clamp(1.65rem,7vw,2.7rem);line-height:1}.christianity-splash p{max-width:26rem;margin:.55rem auto 0;color:#1f2933ad;font-size:.96rem}.christianity-start{display:grid;align-content:center;gap:1rem;min-height:min(34rem,calc(100dvh - 8rem));padding:clamp(.15rem,1.2vw,.55rem)}.christianity-start__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,18rem);gap:1rem;align-items:center}.christianity-start__copy{display:grid;gap:.45rem;max-width:36rem}.christianity-start h2{font-size:clamp(1.6rem,6vw,2.5rem);line-height:1.02}.christianity-start__copy p,.christianity-start__cards p,.christianity-start__modes p{color:#1f2933ad;line-height:1.42}.christianity-start__fan{position:relative;display:grid;place-items:center;min-height:13rem;overflow:visible}.christianity-start__fan val-christianity-card{position:absolute;width:clamp(5.7rem,12vw,7.2rem);transform-origin:50% 92%;filter:drop-shadow(0 1rem 1.5rem rgba(82,64,28,.18))}.christianity-start__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.christianity-start__cards article,.christianity-start__modes article{display:grid;gap:.65rem;align-content:start;padding:.95rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#ffffffd1;box-shadow:0 .75rem 1.7rem #52401c14}.christianity-start__cards article{min-height:11rem}.christianity-start__cards strong{font-size:1.05rem}.christianity-start__status{display:flex;flex-wrap:wrap;gap:.45rem}.christianity-start__status span,.christianity-start__modes article>span{display:inline-flex;align-items:center;width:fit-content;min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(37,99,235,.22);border-radius:999px;background:#eff6ffe0;color:#1f2933b8;font-size:.75rem;font-weight:850}.christianity-start__modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.christianity-start__modes article{min-height:8.5rem;background:#f8fafcb8;box-shadow:none;opacity:.82}.christianity-start__modes strong{font-size:.92rem}.christianity-start__modes p{margin:0;font-size:.8rem}.christianity-primary-action,.christianity-secondary-action{justify-self:start;min-height:2.5rem;padding:0 .9rem;border-radius:999px;font:inherit;font-weight:900}.christianity-primary-action{border:1px solid rgba(16,42,67,.16);background:#102a43;color:#fff}.christianity-secondary-action{border:1px solid var(--christianity-theme-gold-ring);background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink)}.christianity-header p,.christianity-turn span,.christianity-offerings span,.christianity-hidden-hand span,.christianity-deck span,.christianity-place span,.christianity-pile span,.christianity-leader span{color:#1f2933a3;font-size:.75rem}.christianity-turn,.christianity-leader,.christianity-offerings,.christianity-hidden-hand,.christianity-pile,.christianity-deck,.christianity-place{display:grid;gap:.15rem;min-width:5.25rem;padding:.55rem .65rem;border:1px solid rgba(36,48,68,.12);border-radius:.5rem;background:#fff}.christianity-turn.is-own-turn{border-color:#12806c59;background:#ecfdf5}.christianity-match-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);padding:.45rem;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:#fff}.christianity-match-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:center;min-width:0}.christianity-match-player--opponent{direction:rtl}.christianity-match-player--opponent div{direction:ltr;text-align:right}.christianity-match-player div{display:grid;min-width:0}.christianity-match-player strong,.christianity-match-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-match-player small,.christianity-scoreboard span{color:#1f293394;font-size:.72rem}.christianity-scoreboard{display:grid;justify-items:center;min-width:4.2rem;padding:0 .55rem;border-right:1px solid rgba(36,48,68,.1);border-left:1px solid rgba(36,48,68,.1)}.christianity-scoreboard strong{font-size:1.2rem;line-height:1}.christianity-turn-banner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.58rem .72rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:linear-gradient(135deg,#fffffff0,#eff6ffd1),#fffc;box-shadow:0 .65rem 1.25rem #102a4314}.christianity-turn-banner.is-own-turn{border-color:#2563eb47;box-shadow:0 .75rem 1.45rem #2563eb1f,inset 0 0 0 1px #2563eb14}.christianity-turn-banner.is-rival-turn{border-color:#b453093d}.christianity-turn-banner.is-finished{border-color:#16a34a4d}.christianity-turn-banner span{display:block;color:#1f29338f;font-size:.68rem;font-weight:900;text-transform:uppercase}.christianity-turn-banner strong{display:block;color:var(--christianity-theme-ink);font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.05}.christianity-turn-banner p{margin:.12rem 0 0;color:#1f2933ad;font-size:.78rem;line-height:1.25}.christianity-turn-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem}.christianity-options-button,.christianity-options-menu button{min-height:2.15rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffeb;color:var(--christianity-theme-ink);font:inherit;font-size:.78rem;font-weight:900}.christianity-options-button{padding:0 .78rem}.christianity-options-menu{position:absolute;right:.55rem;top:calc(100% + .35rem);z-index:18;display:grid;gap:.35rem;min-width:9.5rem;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.75rem;background:#fffffffa;box-shadow:0 1rem 2rem #102a432e}.christianity-options-menu button{border-radius:.55rem;text-align:left}.christianity-options-menu button:disabled{opacity:.45}.christianity-table{box-sizing:border-box;position:relative;display:grid;gap:clamp(.55rem,1.4vw,.9rem);width:100%;max-width:100%;min-width:0;padding:clamp(.65rem,1.5vw,1.05rem);border-radius:.95rem;background:radial-gradient(circle at 50% 44%,rgba(255,255,255,.2),transparent 44%),linear-gradient(180deg,#c8ddf7,#b9d4f1);box-shadow:inset 0 0 0 1px #ffffff57,inset 0 1.4rem 3rem #ffffff29;overflow-x:clip;overflow-y:visible}.christianity-setup-panel,.christianity-result-panel{position:absolute;inset:.8rem;z-index:14;display:grid;align-content:center;justify-items:center;gap:.85rem;padding:1rem;border:1px solid rgba(37,99,235,.16);border-radius:.9rem;background:linear-gradient(180deg,#f8fafcf5,#eff6fff0),#fffffff0;box-shadow:0 1.25rem 2.4rem #102a432e;text-align:center}.christianity-setup-panel>div:not(.christianity-setup-coin),.christianity-result-panel>div:not(:last-child){display:grid;justify-items:center;max-width:min(100%,34rem)}.christianity-setup-panel .christianity-primary-action,.christianity-result-panel .christianity-primary-action{justify-self:center}.christianity-setup-panel--coin{gap:clamp(.85rem,3vh,1.35rem)}.christianity-setup-panel--leader-pick{align-content:center;gap:clamp(.7rem,2vh,1rem)}.christianity-setup-coin{position:relative;display:grid;place-items:center;width:clamp(4.6rem,18vw,6.2rem);aspect-ratio:1;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9),transparent 22%),linear-gradient(135deg,#fff6a3,#ffd21a 42%,#b88404);box-shadow:0 1.05rem 1.9rem #102a432e,inset 0 0 0 .32rem #ffffff80,inset -.6rem -.7rem 1rem #62460733;transform-style:preserve-3d;animation:christianity-coin-spin 1.8s cubic-bezier(.45,0,.2,1) infinite}.christianity-setup-coin:before{content:\"\";position:absolute;inset:-.65rem;z-index:-1;border-radius:inherit;background:radial-gradient(circle,rgba(250,204,21,.32),transparent 62%);filter:blur(.15rem)}.christianity-setup-coin:after{content:\"\";position:absolute;inset:.34rem;border:.16rem solid rgba(120,78,0,.24);border-radius:inherit;transform:translateZ(.06rem)}.christianity-setup-coin span{position:absolute;display:grid;place-items:center;width:52%;aspect-ratio:1;border-radius:999px;color:#102a43d6;font-size:clamp(1.65rem,6vw,2.25rem);font-weight:1000;line-height:1;text-transform:none;transform-style:preserve-3d;backface-visibility:hidden}.christianity-setup-coin span:first-child:before{content:\"J\"}.christianity-setup-coin span:last-child{transform:rotateY(180deg)}.christianity-setup-coin span:last-child:before{content:\"R\"}.christianity-setup-coin.is-rival-won{animation-delay:-.9s}@keyframes christianity-coin-spin{0%{transform:rotateY(0) translateY(0)}38%{transform:rotateY(540deg) translateY(-.35rem)}62%{transform:rotateY(720deg) translateY(0)}to{transform:rotateY(1080deg) translateY(0)}}.christianity-setup-panel>div:not(.christianity-setup-coin)>span,.christianity-result-panel>span{color:#2563ebc2;font-size:.72rem;font-weight:1000;text-transform:uppercase}.christianity-setup-panel h2,.christianity-result-panel h2{margin:.18rem 0 0;color:var(--christianity-theme-ink);font-size:clamp(1.45rem,3vw,2.35rem);line-height:1}.christianity-setup-panel p,.christianity-result-panel p{max-width:31rem;margin:.35rem auto 0;color:#1f2933ad;font-size:.95rem;line-height:1.35}.christianity-result-panel>div:last-child{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem}.christianity-leader-choice-meter{display:grid;gap:.38rem;width:min(100%,28rem);color:#1f2933ad;font-size:.78rem;font-weight:900}.christianity-leader-choice-meter i{display:block;height:.34rem;border-radius:999px;background:var(--christianity-theme-focus);transform-origin:left center;transition:transform .24s ease}.christianity-leader-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,9.6rem));gap:clamp(.6rem,2vw,.9rem);justify-content:center;align-items:stretch;width:min(100%,21rem)}.christianity-leader-choice-option{position:relative;display:grid;grid-template-rows:auto 1fr;gap:.5rem;align-content:start;min-width:0;padding:.48rem;border:1px solid rgba(36,48,68,.1);border-radius:.86rem;background:linear-gradient(180deg,#ffffffdb,#f8fafcb8),#ffffffc7;box-shadow:0 .75rem 1.5rem #102a4314;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.christianity-leader-choice-option.is-selected{border-color:#2563eb7a;background:linear-gradient(180deg,#eff6fff0,#ffffffdb),#ffffffd1;box-shadow:0 .95rem 1.75rem #2563eb24,inset 0 0 0 1px #2563eb24}.christianity-leader-choice-card{display:block;justify-self:center;width:min(100%,8.25rem);border:0;background:transparent;color:inherit;font:inherit}.christianity-leader-choice-card val-christianity-card{display:block;width:100%;transition:filter .18s ease,transform .18s ease}.christianity-leader-choice-option>div{display:grid;gap:.42rem;align-content:end;justify-items:center;min-width:0}.christianity-leader-choice-option span{display:inline-grid;place-items:center;min-height:1.8rem;max-width:100%;padding:.18rem .46rem;border-radius:999px;background:#eff6ffbd;color:#1f2933ad;font-size:clamp(.62rem,2.3vw,.72rem);font-weight:900;line-height:1.05;text-align:center;text-transform:uppercase}.christianity-leader-choice-detail{width:100%;min-height:2rem;padding:0 .55rem;border:1px solid rgba(37,99,235,.22);border-radius:999px;background:#eff6ffeb;color:var(--christianity-theme-ink);font:inherit;font-size:.76rem;font-weight:900}.christianity-leader-choice-card:hover val-christianity-card,.christianity-leader-choice-card:focus-visible val-christianity-card{transform:translateY(-.12rem);filter:drop-shadow(0 .75rem 1.25rem rgba(37,99,235,.22))}.christianity-impact-layer{position:absolute;inset:0;z-index:30;pointer-events:none}.christianity-combat-trail{position:absolute;inset:0;z-index:2;--christianity-combat-trail-x: 50%;--christianity-combat-trail-y: 72%;--christianity-combat-trail-mid-x: 50%;--christianity-combat-trail-mid-y: 50%;--christianity-combat-trail-length: 34%;--christianity-combat-trail-angle: -90deg;--christianity-combat-trail-color: rgba(255, 255, 255, .96);--christianity-combat-trail-glow: rgba(96, 165, 250, .56);--christianity-combat-trail-hit: rgba(220, 38, 38, .42)}.christianity-combat-trail.is-leader-target{--christianity-combat-trail-color: rgba(255, 255, 255, .98);--christianity-combat-trail-glow: rgba(250, 204, 21, .52);--christianity-combat-trail-hit: rgba(250, 204, 21, .38)}.christianity-combat-trail.is-character-target{--christianity-combat-trail-color: rgba(219, 234, 254, .98);--christianity-combat-trail-glow: rgba(96, 165, 250, .58);--christianity-combat-trail-hit: rgba(220, 38, 38, .38)}.christianity-combat-trail:before{position:absolute;left:var(--christianity-combat-trail-mid-x);top:var(--christianity-combat-trail-mid-y);width:clamp(2.8rem,9vw,5.4rem);height:clamp(2.8rem,9vw,5.4rem);border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.72),transparent 28%),radial-gradient(circle,var(--christianity-combat-trail-hit),transparent 62%);content:\"\";opacity:0;transform:translate(-50%,-50%) scale(.58);animation:christianity-combat-burst .88s ease-out both}.christianity-combat-trail>span{position:absolute;left:var(--christianity-combat-trail-x);top:var(--christianity-combat-trail-y);width:var(--christianity-combat-trail-length);height:.36rem;border-radius:999px;background:linear-gradient(90deg,transparent 0 5%,rgba(255,255,255,.92) 42%,var(--christianity-combat-trail-color) 72%,rgba(96,165,250,.72)),repeating-linear-gradient(90deg,transparent 0 .7rem,rgba(255,255,255,.66) .7rem .92rem);box-shadow:0 0 .72rem var(--christianity-combat-trail-glow),0 0 1.45rem var(--christianity-combat-trail-glow);transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0);transform-origin:0 50%;animation:christianity-combat-arrow-trail .84s ease-out both}.christianity-combat-trail>span:after{position:absolute;top:50%;right:-.18rem;width:.95rem;height:.95rem;border-top:.28rem solid var(--christianity-combat-trail-color);border-right:.28rem solid var(--christianity-combat-trail-color);content:\"\";filter:drop-shadow(0 0 .45rem var(--christianity-combat-trail-glow));transform:translateY(-50%) rotate(45deg)}@keyframes christianity-combat-arrow-trail{0%{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(0)}24%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(.52)}66%{opacity:1;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1)}to{opacity:0;transform:translateY(-50%) rotate(var(--christianity-combat-trail-angle)) scaleX(1.04)}}@keyframes christianity-combat-burst{0%,42%{opacity:0;transform:translate(-50%,-50%) scale(.58) rotate(0)}58%{opacity:1;transform:translate(-50%,-50%) scale(.98) rotate(4deg)}to{opacity:0;transform:translate(-50%,-50%) scale(1.42) rotate(12deg)}}@media (prefers-reduced-motion: reduce){.christianity-combat-trail,.christianity-combat-trail:before,.christianity-combat-trail>span,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card,.christianity-floating-card-shell.is-sliding-next .christianity-floating-card,.christianity-setup-coin,.christianity-splash__mark:before,.christianity-splash__mark:after,.christianity-splash__mark span{animation:none!important}}.christianity-player-side{box-sizing:border-box;display:grid;gap:.35rem;width:100%;max-width:100%;min-width:0;padding:.35rem .3rem;border-radius:.7rem;background:linear-gradient(180deg,#ffffff47,#ffffff24),#4a7ab414;grid-template-rows:minmax(7rem,1fr) auto;min-height:13.75rem}.christianity-player-side--opponent{grid-template-rows:auto minmax(7rem,1fr)}.christianity-player{display:grid;gap:.65rem}.christianity-battle-zone{--christianity-battle-card-width: clamp(5.7rem, 10.5vw, 7.9rem);box-sizing:border-box;display:grid;grid-template-columns:repeat(4,var(--christianity-battle-card-width));gap:.5rem;align-items:center;justify-content:center;width:100%;max-width:100%;min-width:0;overflow:hidden;min-height:clamp(10rem,19vw,12.4rem);padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff6b,#ffffff3d),#1f4f8914;transition:background .16s ease,box-shadow .16s ease}.christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#fffaf0f5,#ffffffd6),#ffffffc2;box-shadow:inset 0 0 0 .14rem var(--christianity-theme-gold-soft),0 .8rem 1.7rem #5f6f2a1f}.christianity-shared-zone{padding:.55rem .4rem;border-radius:.75rem;background:linear-gradient(180deg,#ffffff57,#fff3),#1f4f8914}.christianity-card,.christianity-end-turn,.christianity-actions button,.christianity-pile,.christianity-leader--target{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card{display:grid;align-content:space-between;min-height:5.8rem;padding:.5rem;text-align:left;box-shadow:0 .5rem 1.25rem #24304414}.christianity-card span{font-weight:700}.christianity-card strong{justify-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-card.is-selected{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .18rem var(--christianity-theme-gold-soft),0 .85rem 1.4rem var(--christianity-theme-shadow)}.christianity-card.is-disabled,.christianity-card.is-exhausted{opacity:.55}.christianity-card.is-target{border-color:#dc2626}.christianity-offering-cards{display:grid;grid-auto-flow:column;grid-auto-columns:.7rem;gap:.16rem;align-items:end;min-height:1.05rem}.christianity-offering-cards i{display:block;width:.65rem;height:.95rem;border:1px solid rgba(16,42,67,.22);border-radius:.18rem;background:#f8fafc}.christianity-offering-cards i.is-used{background:#cbd5e1;transform:rotate(90deg);transform-origin:center}.christianity-slot{display:grid;place-items:center;justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(36,48,68,.22);border-radius:.5rem;background:#ffffff2e;color:inherit;font:inherit;opacity:.62}.christianity-slot--play-target{position:relative;opacity:1;border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0eb,#f8fafcd1),#ffffffb3;color:#5d4305;font-weight:800;overflow:hidden;box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-slot--play-target:before{content:\"\";position:absolute;inset:.35rem;border:1px solid rgba(214,162,29,.22);border-radius:.4rem;background:linear-gradient(135deg,rgba(214,162,29,.1),transparent 46%),radial-gradient(circle at 50% 42%,var(--christianity-theme-glow),transparent 58%)}.christianity-slot--play-target span{position:relative;z-index:2;padding:.16rem .44rem;border-radius:999px;background:#ffffffc7;font-size:.78rem}@keyframes christianity-target-pulse{0%,to{box-shadow:inset 0 0 0 .12rem #d6a21d33,0 .7rem 1.25rem var(--christianity-theme-shadow)}50%{box-shadow:inset 0 0 0 .16rem #d6a21d57,0 .9rem 1.65rem var(--christianity-theme-shadow-strong)}}.christianity-hand{display:grid;grid-auto-columns:minmax(6rem,8rem);grid-auto-flow:column;gap:.55rem;overflow-x:auto;padding-bottom:.25rem}.christianity-actions{padding:.75rem;border-radius:.75rem;background:#ffffffeb}.christianity-actions button,.christianity-end-turn{min-height:2.4rem;padding:0 .75rem;font-weight:700}.christianity-actions button:not(:disabled),.christianity-end-turn:not(:disabled){background:#102a43;color:#fff}.christianity-actions button{pointer-events:auto;border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-actions button:disabled{display:none}.christianity-end-turn{border-radius:999px;box-shadow:0 .8rem 1.75rem #102a4338,inset 0 0 0 1px #fff3}.christianity-end-turn:disabled{color:#1f293375;background:#ffffffb8;box-shadow:none}.christianity-history{padding:.75rem;border-radius:.75rem;background:#fff}.christianity-hand-fan{position:relative;display:flex;justify-content:center;min-height:10.8rem;padding:.25rem .25rem 2.1rem;isolation:isolate;overflow:visible}.christianity-hand-shelf{position:relative;display:grid;z-index:12;min-height:12rem;margin-top:-1.15rem;padding:1.45rem .25rem 1rem;overflow:visible}.christianity-hand-shelf--opponent{z-index:8;min-height:6.85rem;margin-top:0;margin-bottom:0;padding:.45rem .25rem .85rem}.christianity-hand-fan--opponent{min-height:5.9rem;padding-bottom:.75rem;align-items:start}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.7rem,12vw,4.9rem);aspect-ratio:var(--christianity-card-aspect);margin-inline:-.9rem;transform-origin:50% 120%}.christianity-hand-fan--opponent .christianity-hidden-card-button:first-child{margin-left:0}.christianity-hand-fan--opponent .christianity-hidden-card-button:last-child{margin-right:0}.christianity-card-preview-card,.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile,.christianity-end-turn{border:1px solid rgba(36,48,68,.16);border-radius:.5rem;background:#fff;color:inherit;font:inherit}.christianity-card-preview-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);padding:.48rem;text-align:left;transform-origin:50% 115%;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;box-shadow:0 .5rem 1.25rem #2430441a}.christianity-render-card-button{display:block;padding:0;overflow:visible;border:0;background:transparent;box-shadow:none}.christianity-render-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-gallery-card-button{display:block;width:min(100%,6.8rem);min-width:0;aspect-ratio:var(--christianity-card-aspect);padding:0;overflow:visible;border:0;background:transparent;color:inherit;font:inherit;text-align:left;box-shadow:none}.christianity-gallery-card-button>val-christianity-card{display:block;width:100%;height:100%}.christianity-card-preview-card--hand.christianity-render-card-button,.christianity-card-preview-card--battle.christianity-render-card-button,.christianity-leader-card.christianity-render-card-button{aspect-ratio:var(--christianity-card-aspect)}.christianity-card-preview-card--hand.christianity-render-card-button:hover val-christianity-card,.christianity-card-preview-card--hand.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card,.christianity-card-preview-card--battle.christianity-render-card-button.is-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-target val-christianity-card{filter:drop-shadow(0 0 .45rem rgba(37,99,235,.45)) drop-shadow(0 .55rem 1rem rgba(37,99,235,.22))}.christianity-card-preview-card--battle.christianity-render-card-button.is-ready-attacker val-christianity-card{filter:drop-shadow(0 0 .24rem rgba(22,163,74,.32)) drop-shadow(0 .45rem .8rem rgba(22,163,74,.16))}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected{transform:translateY(-.28rem)}.christianity-card-preview-card--battle.christianity-render-card-button.is-selected val-christianity-card{filter:drop-shadow(0 0 .4rem rgba(250,204,21,.52)) drop-shadow(0 .65rem 1rem rgba(37,99,235,.24))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker{z-index:8;pointer-events:none}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-attacker val-christianity-card{animation:christianity-combat-lunge .98s cubic-bezier(.2,.78,.2,1) both;filter:drop-shadow(0 0 .5rem rgba(250,204,21,.72)) drop-shadow(0 1rem 1.4rem rgba(16,42,67,.28))}.christianity-card-preview-card--battle.christianity-render-card-button.is-combat-target val-christianity-card,.christianity-leader-card.christianity-render-card-button.is-combat-target val-christianity-card{animation:christianity-combat-impact .98s ease-out both;filter:drop-shadow(0 0 .5rem rgba(220,38,38,.48)) drop-shadow(0 .75rem 1.1rem rgba(220,38,38,.18))}@keyframes christianity-combat-lunge{0%{transform:translateZ(0) rotate(0) scale(1)}24%{transform:translate3d(0,-1.4rem,0) rotate(-4deg) scale(1.08)}52%{transform:translate3d(0,-4.9rem,0) rotate(7deg) scale(1.12)}68%{transform:translate3d(0,-3.6rem,0) rotate(-3deg) scale(1.04)}to{transform:translateZ(0) rotate(0) scale(1)}}@keyframes christianity-combat-impact{0%,42%{transform:translateZ(0) scale(1)}54%{transform:translate3d(.16rem,-.12rem,0) rotate(2deg) scale(1.04)}64%{transform:translate3d(-.14rem,.1rem,0) rotate(-2deg) scale(.98)}to{transform:translateZ(0) rotate(0) scale(1)}}.christianity-leader-card.christianity-render-card-button.is-protected-target{opacity:.82}.christianity-leader-card.christianity-render-card-button.is-protected-target val-christianity-card{filter:grayscale(.22) drop-shadow(0 0 .28rem rgba(100,116,139,.26))}.christianity-card-frame{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.28rem;align-content:stretch;overflow:hidden;padding:.48rem;text-align:left;background:linear-gradient(180deg,#fffffffa,#f8fafcfa),radial-gradient(circle at 15% 0%,rgba(214,162,29,.12),transparent 44%);box-shadow:0 .5rem 1.25rem #2430441a,inset 0 0 0 .18rem #ffffff9e}.christianity-card-frame-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.16rem;align-items:start;min-width:0}.christianity-card-frame-header small{grid-column:1;min-width:0;overflow:hidden;color:#1f2933a3;font-size:clamp(.52rem,1.5vw,.68rem);line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-header strong{grid-column:1;justify-self:start;align-self:start;min-width:0;padding:0;overflow:hidden;border-radius:0;background:transparent;font-size:clamp(.82rem,2.5vw,1.05rem);line-height:1.02;text-overflow:ellipsis;white-space:nowrap}.christianity-card-preview-card--hand .christianity-card-frame-header strong,.christianity-card-preview-card--battle .christianity-card-frame-header strong,.christianity-leader-card .christianity-card-frame-header strong{display:-webkit-box;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-preview-card--hand .christianity-card-frame-header small{text-transform:uppercase}.christianity-card-preview-card--hand .christianity-card-frame-art>span{display:-webkit-box;max-width:88%;overflow-wrap:anywhere;text-overflow:clip;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.christianity-card-frame-header span{grid-column:2;grid-row:1 / span 2;display:grid;place-items:center;min-width:1.3rem;height:1.3rem;padding:0 .22rem;border-radius:999px;background:#ffd91a;color:#243044;font-size:.8rem;font-weight:900;line-height:1;box-shadow:inset 0 -.08rem #52401c2e}.christianity-card-frame-header span.is-offering-pips,.christianity-full-card-cost.is-offering-pips,.christianity-offering-card span.is-offering-pips{grid-auto-flow:column;gap:.14rem;min-width:auto;padding:0 .28rem}.christianity-card-frame-header span.is-offering-pips i,.christianity-full-card-cost.is-offering-pips i,.christianity-offering-card span.is-offering-pips i,.christianity-full-card-pips i{display:block;width:.72rem;height:.72rem;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9) 0 .12rem,transparent .13rem),#ffd91a;box-shadow:inset 0 -.08rem #52401c2e,0 .12rem .24rem #102a431a}.christianity-card-frame-art{position:relative;display:grid;place-items:center;min-height:0;overflow:hidden;border-radius:.36rem;background:linear-gradient(135deg,#5f6f2a2e,#d6a21d24),radial-gradient(circle at 50% 18%,rgba(255,255,255,.72),transparent 48%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-card-frame-art>span{max-width:78%;overflow:hidden;color:#2430447a;font-size:clamp(.82rem,2.2vw,1.05rem);font-weight:900;line-height:1.02;text-align:center;text-overflow:ellipsis}.christianity-card-frame-art small{position:absolute;right:0;bottom:.28rem;max-width:78%;padding:.1rem .34rem;overflow:hidden;border-radius:999px 0 0 999px;background:#ffffffe6;color:#1f2933a8;font-size:.48rem;font-style:italic;font-weight:900;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-card-frame-effect{display:grid;align-content:center;gap:.1rem;min-height:1.45rem;padding:.24rem;overflow:hidden;border-radius:.34rem;background:radial-gradient(circle at 50% 70%,rgba(36,48,68,.06),transparent 44%),#ffffffdb}.christianity-card-frame-effect strong{justify-self:end;align-self:end;padding:.12rem .32rem;border-radius:999px;background:#edf2f7;font-size:clamp(.66rem,2vw,.82rem);line-height:1.05}.christianity-card-frame-effect p{margin:0;overflow:hidden;color:#1f2933b8;font-size:.58rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.christianity-card-frame-footer{display:flex;justify-content:space-between;gap:.22rem;color:#1f293385;font-size:.46rem;font-weight:800;line-height:1}.christianity-card-frame--battle{gap:.22rem;padding:.42rem}.christianity-card-frame--battle .christianity-card-frame-art{min-height:2.6rem}.christianity-card-frame--leader .christianity-card-frame-art{background:linear-gradient(135deg,#2563eb24,#d6a21d29),radial-gradient(circle at 50% 18%,rgba(255,255,255,.78),transparent 48%),#e7eef8}.christianity-card-frame--list{width:clamp(4.4rem,22vw,5.8rem);padding:.38rem}.christianity-card-frame--list .christianity-card-frame-art{min-height:2.5rem}.christianity-hand-card-wrap{position:relative;display:grid;justify-items:center;flex:0 0 auto;margin-inline:-.42rem;padding-bottom:2rem;transform-origin:50% 115%;transition:transform .16s ease,filter .16s ease}.christianity-hand-card-wrap:hover,.christianity-hand-card-wrap.is-selected,.christianity-hand-card-wrap.is-dragging{z-index:3}.christianity-hand-card-wrap:hover .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-selected .christianity-card-preview-card--hand,.christianity-hand-card-wrap.is-dragging .christianity-card-preview-card--hand{border-color:var(--christianity-theme-gold);box-shadow:0 0 0 .12rem var(--christianity-theme-gold-soft),0 1rem 2rem var(--christianity-theme-shadow);transform:translateY(-.5rem) scale(1.045)}.christianity-card-preview-card--hand{cursor:grab;touch-action:pan-y}.christianity-card-preview-card--hand:active{cursor:grabbing}.christianity-card-preview-card--hand.cdk-drag-disabled{cursor:not-allowed}.christianity-card-drag-preview,.christianity-card-preview-card.cdk-drag-preview{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;box-shadow:0 0 0 .16rem #fff4c2ad,0 1.5rem 3rem var(--christianity-theme-shadow-strong);transform:rotate(2deg) scale(1.03)}.christianity-card-drag-preview val-christianity-card{display:block;width:100%;height:100%}.christianity-card-drag-placeholder,.christianity-card-preview-card.cdk-drag-placeholder{width:clamp(4.9rem,17vw,7.1rem);height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);border-radius:.5rem;background:#94a3b81f;opacity:.22}.christianity-slot.cdk-drop-list-dragging,.christianity-offering-drop-target.cdk-drop-list-dragging{border-color:var(--christianity-theme-gold-ring)}.christianity-slot.cdk-drop-list-receiving,.christianity-offering-drop-target.cdk-drop-list-receiving{box-shadow:inset 0 0 0 .18rem #d6a21d57,0 1rem 1.9rem var(--christianity-theme-shadow-strong)}.christianity-card-eye{position:absolute;right:50%;bottom:.38rem;width:2.15rem;height:1.55rem;border:1px solid color-mix(in srgb,var(--christianity-theme-focus) 52%,transparent);border-radius:999px;background:#fffffff0;box-shadow:0 .55rem 1.1rem #102a4324;opacity:0;transform:translate(50%,-.2rem) scale(.92);transition:opacity .14s ease,transform .14s ease,border-color .14s ease}.christianity-card-eye:before{content:\"\";position:absolute;top:50%;left:50%;width:1.1rem;height:1.1rem;border:.12rem solid var(--christianity-theme-focus);border-radius:82% 0;background:#fffffff0;transform:translate(-50%,-50%) rotate(45deg)}.christianity-card-eye:after{content:\"\";position:absolute;top:50%;left:50%;width:.42rem;height:.42rem;border:.09rem solid rgba(255,255,255,.95);border-radius:999px;background:radial-gradient(circle at 35% 32%,#ffffff 0 .06rem,transparent .07rem),var(--christianity-theme-focus);transform:translate(-50%,-50%)}.christianity-hand-card-wrap:hover .christianity-card-eye,.christianity-hand-card-wrap.is-selected .christianity-card-eye,.christianity-card-eye:focus-visible{opacity:1;transform:translate(50%) scale(1)}.christianity-offering-drop-target{display:grid;width:min(100%,6.45rem);height:8.05rem;min-height:0;max-height:8.05rem;border:1px solid transparent;border-radius:.64rem;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.christianity-offering-drop-target.is-play-target{border-color:var(--christianity-theme-gold-ring);background:linear-gradient(180deg,#fffaf0f5,#fffffff0),radial-gradient(circle at 82% 14%,rgba(250,204,21,.28) 0 .7rem,transparent .72rem);box-shadow:inset 0 0 0 .12rem #d6a21d3d,0 .8rem 1.55rem var(--christianity-theme-shadow);animation:christianity-target-pulse 1.45s ease-in-out infinite}.christianity-offering-drop-target>.cdk-drag-placeholder{display:none}.christianity-card-frame--back,.christianity-card-preview-card--back{width:clamp(4rem,14vw,5.7rem);min-height:0;aspect-ratio:var(--christianity-card-aspect);place-items:center;padding:.55rem;overflow:hidden;box-shadow:0 .8rem 1.55rem #24304424;transform-origin:50% -18%;background:var(--christianity-card-back)}.christianity-card-frame--back:before,.christianity-card-preview-card--back:before{content:\"\";position:absolute;inset:.5rem;border:1px solid rgba(16,42,67,.12);border-radius:.38rem;background:linear-gradient(180deg,#ffffff2e,#ffffff0a);box-shadow:inset 0 0 0 .12rem #ffffff1f}.christianity-card-preview-card--battle{justify-self:center;width:min(100%,var(--christianity-battle-card-width));max-width:100%;min-width:0;height:auto;min-height:0;aspect-ratio:var(--christianity-card-aspect);margin-inline:0}.christianity-card-preview-card>span,.christianity-card-mini>span,.christianity-offering-pile>span,.christianity-offering-card>span,.christianity-leader-card>span,.christianity-zone-card>span,.christianity-zone-pile>span{position:relative;z-index:2;align-self:start;font-weight:700;line-height:1.05}.christianity-card-preview-card>strong,.christianity-card-mini>strong,.christianity-offering-pile>strong,.christianity-offering-card>strong,.christianity-leader-card>strong,.christianity-zone-card>strong,.christianity-zone-pile>strong{position:relative;z-index:3;justify-self:end;align-self:end;padding:.15rem .35rem;border-radius:999px;background:#edf2f7;font-size:.8rem}.christianity-player-rack{box-sizing:border-box;display:grid;grid-template-columns:minmax(5.3rem,6.9rem) minmax(6.4rem,1fr) minmax(4.9rem,6.5rem);gap:.65rem;align-items:end;justify-items:center;width:100%;max-width:100%;min-width:0}.christianity-player-rack--opponent{align-items:start}.christianity-hand-meter{position:absolute;top:0;right:.35rem;z-index:4;display:inline-grid;grid-auto-flow:column;gap:.25rem;align-items:center;min-height:1.7rem;padding:.18rem .46rem;border:1px solid rgba(36,48,68,.12);border-radius:999px;background:#ffffffe6;box-shadow:0 .35rem .8rem #102a4314}.christianity-hand-meter--opponent{top:.15rem}.christianity-hand-meter span{color:#1f293394;font-size:.68rem}.christianity-hand-meter strong{font-size:.86rem}.christianity-player-badge,.christianity-player-command{display:grid;gap:.35rem;justify-items:center;min-width:0}.christianity-player-badge{align-content:start;color:#1f2933c2;font-size:.74rem}.christianity-player-badge--opponent{justify-self:center;grid-auto-flow:column;align-items:center;justify-content:center}.christianity-player-badge strong{max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-avatar{display:grid;place-items:center;width:1.85rem;height:1.85rem;border-radius:999px;color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .9rem #102a4329}.christianity-offerings-zone{display:grid;justify-items:center;justify-self:center;width:min(100%,7.5rem)}.christianity-card-mini,.christianity-offering-pile,.christianity-offering-card,.christianity-leader-card,.christianity-zone-card,.christianity-zone-pile{display:grid;align-content:space-between;min-height:4.9rem;padding:.48rem;text-align:left}.christianity-card-frame{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;align-content:stretch}.christianity-offering-pile,.christianity-zone-card,.christianity-zone-pile{grid-template-rows:auto minmax(2.6rem,1fr) auto;align-content:stretch;gap:.32rem}.christianity-card-mini{width:3.5rem}.christianity-offering-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;justify-self:center;width:min(100%,7.35rem);height:9.05rem;max-height:9.05rem;min-height:0;padding:.86rem .82rem .78rem;background:linear-gradient(180deg,#fff,#f8fafc),linear-gradient(135deg,rgba(250,204,21,.18),transparent 42%)}.christianity-zone-card-stack{position:absolute;inset:0;z-index:2;pointer-events:none}.christianity-offering-pile .christianity-zone-card-stack,.christianity-zone-card .christianity-zone-card-stack,.christianity-zone-pile .christianity-zone-card-stack{position:absolute;inset:0}.christianity-zone-card-stack val-christianity-card{position:absolute;top:1.72rem;left:50%;width:clamp(3.75rem,7.3vw,4.85rem);filter:drop-shadow(0 .4rem .75rem rgba(16,42,67,.14))}.christianity-offering-pile .christianity-zone-card-stack val-christianity-card{top:1.82rem;width:clamp(3.25rem,6.2vw,4.1rem)}.christianity-zone-card--place .christianity-zone-card-stack val-christianity-card{top:1.45rem;width:clamp(4.05rem,7.6vw,5.25rem)}.christianity-offering-drop-target .christianity-offering-pile{width:100%;height:100%;max-height:none}.christianity-offering-pile>span:not(.christianity-empty-card-slot):not(.christianity-pile-card-hint):not(.christianity-zone-card-stack){position:absolute;top:.72rem;right:.76rem;left:.76rem;z-index:3;justify-self:stretch;max-width:100%;overflow:hidden;padding:0;color:#1f2933b8;font-size:clamp(.74rem,1.9vw,.86rem);font-weight:900;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-pile>strong{position:absolute;right:.58rem;bottom:.64rem;z-index:5;min-width:1.7rem;padding:.13rem .38rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-offering-pile>small{position:absolute;bottom:.78rem;left:.68rem;z-index:5;max-width:calc(100% - 2.7rem);overflow:hidden;color:#1f293394;font-size:.58rem;font-weight:850;line-height:1;text-overflow:ellipsis;white-space:nowrap}.christianity-slot>.cdk-drag-placeholder{display:none}.christianity-pile-card-hint{position:absolute;top:2.35rem;left:50%;z-index:1;width:clamp(2.7rem,6.4vw,3.4rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.34rem;background:linear-gradient(180deg,#fffffff5,#f8fafce6),radial-gradient(circle at 50% 18%,rgba(250,204,21,.26),transparent 44%);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .42rem .8rem rgba(16,42,67,.14))}.christianity-pile-card-hint i{position:absolute;top:.38rem;right:.38rem;display:block;width:.72rem;height:.72rem;border-radius:999px;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.9) 0 .12rem,transparent .13rem),#ffd91a;box-shadow:inset 0 -.08rem #52401c2e,0 .12rem .24rem #102a431a}.christianity-offering-pile:before,.christianity-offering-pile:after{display:none}.christianity-leader-card{align-self:center;justify-self:center;width:clamp(6.65rem,10.8vw,8.85rem);min-height:0;aspect-ratio:var(--christianity-card-aspect)}.christianity-attack-drop-target{display:grid;justify-items:center;min-width:0}.christianity-rack-spacer{display:block;min-height:1px}.christianity-battle-zone{grid-template-columns:repeat(4,var(--christianity-battle-card-width))}.christianity-shared-zone{box-sizing:border-box;display:grid;grid-template-columns:repeat(3,minmax(4.3rem,1fr));align-items:stretch;gap:clamp(.55rem,1.2vw,.9rem);width:100%;max-width:100%;min-width:0}.christianity-zone-card,.christianity-zone-pile{position:relative;isolation:isolate;overflow:hidden;justify-items:center;min-height:8.4rem;padding:.92rem .82rem .78rem;border-color:#24304414;background:linear-gradient(180deg,#ffffff8a,#f8fafc5c),#ffffff3d}.christianity-zone-card--place{background:linear-gradient(180deg,#ffffffb8,#eff6ff80),radial-gradient(circle at 62% 34%,rgba(37,99,235,.18),transparent 52%),#ffffff3d}.christianity-place-backdrop{position:absolute;inset:0;z-index:0;background-position:center;background-size:cover;opacity:.52;filter:blur(1.3rem) saturate(1.28);transform:scale(1.14)}.christianity-zone-card--place:before{content:\"\";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#ffffffad,#fff3),radial-gradient(circle at 50% 42%,rgba(255,255,255,.24),transparent 54%);backdrop-filter:blur(.42rem)}.christianity-place-token{position:absolute;top:2.18rem;left:50%;z-index:2;display:grid;place-items:center;width:clamp(3.2rem,7.2vw,4.45rem);aspect-ratio:1;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:radial-gradient(circle at 35% 24%,rgba(255,255,255,.92),transparent 38%),linear-gradient(135deg,#ffffffe6,#eff6ffb8);box-shadow:0 .65rem 1.1rem #102a4329,inset 0 0 0 .18rem #ffffff70;transform:translate(-50%)}.christianity-place-token img{width:48%;height:48%;object-fit:contain;filter:drop-shadow(0 .18rem .24rem rgba(16,42,67,.14))}.christianity-zone-pile{box-shadow:inset 0 0 0 999px #ffffff0a,0 .45rem 1rem #102a430f}.christianity-zone-card.is-play-target{border-color:#2563eb61;box-shadow:inset 0 0 0 999px #2563eb14,0 0 0 .18rem #2563eb1f}.christianity-zone-pile--history.has-new-card{animation:christianity-history-pulse .9s ease-out both}@keyframes christianity-history-pulse{0%{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}28%{box-shadow:inset 0 0 0 999px #ffffff29,0 0 0 .25rem #2563eb2e;transform:scale(1.025)}to{box-shadow:inset 0 0 0 999px #ffffff1f,0 0 #2563eb00;transform:scale(1)}}.christianity-zone-card>val-christianity-card,.christianity-zone-pile>val-christianity-card{position:absolute;top:1.85rem;left:50%;z-index:2;width:clamp(4.15rem,7.5vw,5.35rem);transform:translate(-50%) rotate(-2deg);filter:drop-shadow(0 .35rem .75rem rgba(16,42,67,.12))}.christianity-zone-card--place>val-christianity-card{top:1.55rem;width:clamp(4.4rem,7.8vw,5.85rem);transform:translate(-50%) rotate(2deg);filter:drop-shadow(0 .65rem 1.1rem rgba(16,42,67,.2))}.christianity-zone-pile--deck>val-christianity-card{transform:translate(-50%) rotate(3deg)}.christianity-zone-pile .christianity-pile-card-hint{top:1.85rem;width:clamp(3.75rem,7.4vw,4.85rem);border-color:#102a4324;transform:translate(-50%) rotate(-2deg)}.christianity-zone-pile--deck .christianity-pile-card-hint{background:var(--christianity-card-back);transform:translate(-50%) rotate(3deg)}.christianity-zone-pile--deck .christianity-pile-card-hint i{display:none}.christianity-zone-pile--history .christianity-pile-card-hint{background:linear-gradient(180deg,#fffffff5,#f8fafce6),radial-gradient(circle at 50% 18%,rgba(37,99,235,.18),transparent 44%)}.christianity-zone-card>span:not(.christianity-empty-card-slot):not(.christianity-place-token):not(.christianity-zone-card-stack),.christianity-zone-pile>span:not(.christianity-empty-card-slot):not(.christianity-pile-card-hint):not(.christianity-zone-card-stack){position:absolute;top:.72rem;left:.82rem;z-index:3;justify-self:start;max-width:calc(100% - 1.55rem);overflow:hidden;color:#1f2933d6;font-size:clamp(.76rem,2.5vw,.92rem);text-overflow:ellipsis;white-space:nowrap}.christianity-zone-card>strong,.christianity-zone-pile>strong{position:absolute;right:.45rem;bottom:.45rem;z-index:4;min-width:1.65rem;padding:.12rem .4rem;border:1px solid rgba(255,255,255,.64);border-radius:999px;background:#edf2f7eb;text-align:center;font-size:.78rem;font-weight:950;box-shadow:0 .35rem .75rem #102a431f}.christianity-zone-card>em{position:relative;z-index:4;justify-self:center;align-self:end;padding:.12rem .38rem;border-radius:999px;background:#2563eb1f;color:var(--christianity-theme-focus);font-size:.68rem;font-style:normal;font-weight:900}.christianity-zone-card--place>strong{right:.45rem;transform:none}.christianity-empty-card-slot{position:absolute;top:1.85rem;left:50%;z-index:1;display:block;width:clamp(4.15rem,7.5vw,5.35rem);aspect-ratio:var(--christianity-card-aspect);border:1px dashed rgba(16,42,67,.22);border-radius:.35rem;background:#ffffff5c;transform:translate(-50%)}.christianity-zone-pile:before,.christianity-zone-pile:after{content:\"\";position:absolute;top:1.95rem;left:50%;z-index:0;width:clamp(3.5rem,7.2vw,4.45rem);aspect-ratio:var(--christianity-card-aspect);border:1px solid rgba(16,42,67,.16);border-radius:.35rem;background:#f8fafcf0;transform:translate(calc(-50% + .22rem)) rotate(4deg)}.christianity-zone-pile:after{background:var(--christianity-card-back);transform:translate(calc(-50% - .22rem)) translateY(.16rem) rotate(-3deg)}.christianity-zone-pile.is-empty-zone:before,.christianity-zone-pile.is-empty-zone:after{display:none}.christianity-floating-card-shell{position:fixed;top:50%;left:50%;z-index:10020;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.55rem;width:min(56rem,calc(100vw - 1.25rem));max-height:calc(100dvh - 4.25rem);overflow:visible;overscroll-behavior:contain;scrollbar-width:none;transform:translate(-50%,-50%)}.christianity-floating-card-shell::-webkit-scrollbar{display:none}.christianity-floating-card-shell.is-history-preview{width:min(56rem,calc(100vw - 1.25rem))}.christianity-preview-topbar{position:relative;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-height:2.05rem}.christianity-preview-position{display:inline-grid;place-items:center;min-height:2rem;min-width:3.15rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933b8;font-size:.76rem;font-weight:900;box-shadow:0 .45rem 1rem #102a431a}.christianity-floating-card{position:relative;z-index:2;display:block;width:min(19.25rem,calc(58dvh - 2.4rem),calc(100vw - 6.2rem));min-height:0;padding:0;border:0;border-radius:.75rem;background:transparent;box-shadow:0 0 2.2rem var(--christianity-theme-glow);touch-action:none;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg));transition:transform .14s ease-out}.christianity-preview-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(13rem,17rem);gap:1rem;align-items:center;min-height:0}.christianity-preview-stage{position:relative;display:grid;place-items:center;justify-self:center;width:min(100%,31rem);min-width:0;min-height:0;padding-inline:4.4rem;perspective:52rem}.christianity-preview-stage:before{content:\"\";position:absolute;inset:10% 2.35rem;z-index:0;border-radius:999px;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.26),transparent 58%),linear-gradient(90deg,transparent,rgba(37,99,235,.1),transparent);opacity:.8;pointer-events:none}.christianity-preview-ghost{position:absolute;z-index:1;width:min(13rem,calc(42dvh - 3rem),34vw);opacity:.34;pointer-events:none;filter:blur(.02rem) saturate(.9);transition:transform .36s cubic-bezier(.2,.84,.22,1),opacity .36s ease}.christianity-preview-ghost--previous{transform:translate(-86%) rotateY(22deg) rotate(-4deg) scale(.8)}.christianity-preview-ghost--next{transform:translate(86%) rotateY(-22deg) rotate(4deg) scale(.8)}.christianity-floating-card-shell.is-sliding-previous .christianity-floating-card{animation:christianity-preview-slide-previous .36s cubic-bezier(.2,.84,.22,1) both}.christianity-floating-card-shell.is-sliding-next .christianity-floating-card{animation:christianity-preview-slide-next .36s cubic-bezier(.2,.84,.22,1) both}@keyframes christianity-preview-slide-previous{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) - 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(calc(var(--preview-rotate-y, 0deg) + 10deg)) scale(.92)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg)) scale(1)}}@keyframes christianity-preview-slide-next{0%{opacity:0;transform:translate(calc(var(--preview-shift-x, 0px) + 4.2rem),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(calc(var(--preview-rotate-y, 0deg) - 10deg)) scale(.92)}58%{opacity:1}to{opacity:1;transform:translate(var(--preview-shift-x, 0px),var(--preview-shift-y, 0px)) perspective(48rem) rotateX(var(--preview-rotate-x, 0deg)) rotateY(var(--preview-rotate-y, 0deg)) scale(1)}}.christianity-preview-side{display:grid;min-width:0}.christianity-floating-card val-christianity-card{display:block;width:100%;min-height:0}.christianity-floating-card-shell.is-gallery-preview .christianity-floating-card{width:min(20.4rem,calc(62dvh - 2.2rem),calc(100vw - 5.4rem))}.christianity-full-card-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.42rem;align-items:center}.christianity-full-card-header strong{min-width:0;display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;text-overflow:clip;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:clamp(1.25rem,5vw,1.85rem);line-height:1.04}.christianity-full-card-type-icon,.christianity-full-card-cost{display:grid;place-items:center;border-radius:999px}.christianity-full-card-type-icon{width:1.6rem;height:1.6rem;background:radial-gradient(circle at 50% 50%,rgba(95,111,42,.72) 0 .22rem,transparent .24rem),#2430441a}.christianity-full-card-type-icon img{width:1rem;height:1rem;object-fit:contain}.christianity-full-card-cost{min-width:2.1rem;height:2.1rem;padding:0 .36rem;background:#ffd91a;color:#243044;font-size:1.1rem;font-weight:900;box-shadow:inset 0 -.12rem #52401c2e}.christianity-full-card-art{position:relative;display:grid;place-items:center;min-height:9rem;overflow:hidden;border-radius:.48rem;background:linear-gradient(135deg,#5f6f2a33,#d6a21d29),radial-gradient(circle at 50% 25%,rgba(255,255,255,.76),transparent 42%),#dbe7ef;box-shadow:inset 0 0 0 1px #24304414}.christianity-full-card-art img{width:100%;height:100%;object-fit:cover}.christianity-full-card-art>span{max-width:80%;color:#24304494;font-size:clamp(1.1rem,5vw,1.8rem);font-weight:900;line-height:1.05;text-align:center}.christianity-full-card-art small{position:absolute;right:0;bottom:.55rem;min-width:5rem;padding:.16rem .48rem;border-radius:999px 0 0 999px;background:#ffffffe6;box-shadow:0 .3rem .8rem #102a431f;color:#1f2933bd;font-size:.68rem;font-style:italic;font-weight:900;text-align:center;text-transform:uppercase}.christianity-full-card-verse,.christianity-full-card-effect{display:grid;gap:.32rem}.christianity-full-card-verse p,.christianity-full-card-effect p{margin:0;line-height:1.25}.christianity-full-card-verse{color:#171923;font-family:Georgia,Times New Roman,serif;font-size:clamp(.72rem,2.7vw,.86rem)}.christianity-full-card-verse strong{font-family:inherit;font-size:.78rem;font-weight:900}.christianity-full-card-effect{position:relative;align-content:start;min-height:7rem;padding:.6rem .7rem;overflow:hidden;border-radius:.45rem;background:radial-gradient(circle at 50% 72%,rgba(36,48,68,.07),transparent 34%),#ffffffdb}.christianity-full-card-stats{display:flex;gap:1rem;min-height:1.35rem}.christianity-full-card-stats strong{font-size:1rem;line-height:1}.christianity-full-card-stats .christianity-full-card-pips{display:inline-grid;grid-auto-flow:column;gap:.2rem;justify-self:start;padding:0;background:transparent}.christianity-full-card-effect>div:last-of-type{display:grid;gap:.12rem}.christianity-full-card-effect>div:last-of-type strong{font-size:.82rem}.christianity-full-card-effect p{font-size:clamp(.78rem,2.9vw,.92rem)}.christianity-full-card-rarity{position:absolute;top:.62rem;right:.62rem;width:.46rem;height:.46rem;border-radius:.12rem;transform:rotate(45deg)}.christianity-full-card-rarity.is-normal{background:#3a80e9}.christianity-full-card-rarity.is-good{background:#4ee93a}.christianity-full-card-rarity.is-very-good{background:#e9ce3a}.christianity-full-card-footer{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:.34rem;align-items:center;color:#1f2933ad;font-size:.58rem;line-height:1;text-transform:uppercase}.christianity-full-card-footer span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.christianity-floating-card-close{position:relative;z-index:8;min-height:2rem;padding:0 .6rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#ffffffe6;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .45rem 1rem #102a431a}.christianity-preview-nav{position:absolute;top:50%;z-index:7;display:grid;place-items:center;width:2.55rem;height:2.55rem;border:1px solid rgba(37,99,235,.28);border-radius:999px;background:linear-gradient(180deg,#fffffffa,#eff6fff0),radial-gradient(circle at 35% 20%,rgba(37,99,235,.18),transparent 52%);color:var(--christianity-theme-focus);font:inherit;font-size:1.2rem;font-weight:1000;box-shadow:0 .75rem 1.4rem #102a4324,inset 0 0 0 1px #ffffff70;transform:translateY(-50%)}.christianity-preview-nav:hover{border-color:#2563eb6b;box-shadow:0 .95rem 1.65rem #102a432e,0 0 0 .16rem #2563eb14,inset 0 0 0 1px #ffffff9e}.christianity-preview-nav--previous{left:.6rem}.christianity-preview-nav--next{right:.6rem}.christianity-preview-backdrop,.christianity-history-backdrop,.christianity-info-backdrop{position:fixed;inset:0;border:0;border-radius:0;background:#0f172aa3}.christianity-preview-backdrop{z-index:10010;backdrop-filter:blur(.12rem)}.christianity-info-backdrop{z-index:50}.christianity-info-panel{position:fixed;top:50%;left:50%;z-index:51;width:min(31rem,calc(100vw - 1.25rem));max-height:min(34rem,calc(100vh - 2rem));padding-top:2.35rem;transform:translate(-50%,-50%)}.christianity-info-close{position:absolute;top:0;right:.15rem;z-index:2}.christianity-rule-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.85rem;max-height:inherit;padding:1rem;overflow-y:auto;border:1px solid rgba(36,48,68,.14);border-radius:.9rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 38%);box-shadow:0 1.2rem 2.6rem #102a433d,inset 0 0 0 .25rem #ffffff85}.christianity-rule-note-icon{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:999px;background:color-mix(in srgb,var(--christianity-theme-focus) 12%,#ffffff);color:var(--christianity-theme-focus);font-size:1rem;font-weight:900;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent)}.christianity-rule-note small,.christianity-rule-note strong,.christianity-rule-note p,.christianity-rule-note h2{margin:0}.christianity-rule-note small{color:#1f29339e;font-size:.78rem;font-weight:800;text-transform:uppercase}.christianity-rule-note h2{margin-top:.18rem;font-size:clamp(1.5rem,7vw,2.2rem);line-height:1.05}.christianity-rule-note strong{display:inline-flex;width:fit-content;margin-top:.55rem;padding:.22rem .55rem;border-radius:999px;background:#edf2f7;font-size:.92rem}.christianity-rule-note p{margin-top:.75rem;color:#1f2933c7;line-height:1.45}.christianity-rule-note ul{display:grid;gap:.45rem;margin:.8rem 0 0;padding-left:1.05rem;color:#1f2933c7;line-height:1.35}.christianity-floating-card>small,.christianity-floating-card>span{color:#1f2933a3}.christianity-floating-card>strong{font-size:clamp(1.55rem,8vw,2.35rem);line-height:1.05}.christianity-floating-card>p{margin:0;align-self:end;font-size:.95rem;line-height:1.35}.christianity-preview-rule-note{position:relative;z-index:4;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;max-height:min(18rem,54dvh);padding:.68rem .76rem;overflow-y:auto;border:1px solid rgba(36,48,68,.1);border-radius:.75rem;background:linear-gradient(180deg,#ffffffe0,#f8fafcd1),radial-gradient(circle at 8% 0%,rgba(37,99,235,.07),transparent 44%);box-shadow:0 .55rem 1.2rem #102a4314}.christianity-preview-abilities{position:relative;z-index:4;display:grid;grid-template-rows:auto auto minmax(4.5rem,1fr) auto;gap:.5rem;max-height:min(15rem,34dvh);min-height:0;padding:.72rem .78rem .78rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:.75rem;background:linear-gradient(180deg,#fffffff7,#f8fafcf7),radial-gradient(circle at 8% 0%,rgba(37,99,235,.1),transparent 44%);box-shadow:0 .75rem 1.6rem #102a431f}.christianity-preview-abilities-header{display:flex;align-items:center;justify-content:space-between;gap:.7rem;min-width:0}.christianity-preview-abilities-header>div{display:grid;gap:.1rem;min-width:0}.christianity-preview-abilities small,.christianity-preview-abilities p,.christianity-preview-abilities-header span,.christianity-preview-ability-card strong{margin:0}.christianity-preview-abilities small{color:#1f293394;font-size:.68rem;font-weight:900;text-transform:uppercase}.christianity-preview-abilities-header span{color:#1f293385;font-size:.72rem;font-weight:900}.christianity-preview-ability-nav{display:flex;flex:0 0 auto;gap:.35rem}.christianity-preview-ability-nav button{display:grid;place-items:center;width:1.85rem;height:1.85rem;border:1px solid rgba(37,99,235,.18);border-radius:999px;background:#ffffffe0;color:var(--christianity-theme-focus);font:inherit;font-size:1rem;font-weight:950;line-height:1;box-shadow:0 .35rem .85rem #2563eb24}.christianity-preview-ability-tabs{display:flex;gap:.34rem;overflow-x:auto;scrollbar-width:none}.christianity-preview-ability-tabs::-webkit-scrollbar{display:none}.christianity-preview-ability-tabs button{flex:0 0 auto;max-width:100%;min-height:1.85rem;padding:0 .58rem;overflow:hidden;border:1px solid rgba(37,99,235,.16);border-radius:999px;background:#edf2f7d1;color:#1f2933c2;font:inherit;font-size:.74rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-tabs button.is-selected{border-color:#2563eb52;background:color-mix(in srgb,var(--christianity-theme-focus) 14%,#ffffff);color:var(--christianity-theme-focus)}.christianity-preview-ability-card{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:4.5rem;gap:.34rem;padding:.55rem .62rem;overflow:hidden;border:1px solid rgba(148,163,184,.16);border-radius:.62rem;background:#ffffff94}.christianity-preview-ability-card strong{overflow:hidden;color:#1f2933e6;font-size:.82rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.christianity-preview-ability-scroll{min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;padding-right:.25rem}.christianity-preview-abilities p{color:#1f2933bd;font-size:.8rem;line-height:1.32}.christianity-preview-ability-footer{display:flex;justify-content:flex-end;align-self:end}.christianity-preview-use-ability{min-height:2rem;padding:0 .72rem;border:0;border-radius:999px;background:var(--christianity-theme-focus);color:#fff;font:inherit;font-size:.78rem;font-weight:900;box-shadow:0 .55rem 1.1rem #2563eb38}.christianity-preview-use-ability:disabled{background:#94a3b85c;color:#1f293380;box-shadow:none}.christianity-preview-rule-note small,.christianity-preview-rule-note strong,.christianity-preview-rule-note p{margin:0}.christianity-preview-rule-note small{color:#1f293394;font-size:.68rem;font-weight:800;text-transform:uppercase}.christianity-preview-rule-note strong{display:block;margin-top:.08rem;font-size:.92rem;line-height:1.1}.christianity-preview-rule-note p{margin-top:.22rem;color:#1f2933bd;font-size:.82rem;line-height:1.32}@media (min-width: 52rem){.christianity-floating-card-shell{width:min(58rem,calc(100vw - 3rem))}.christianity-floating-card{min-height:0;padding:0;width:min(23.4rem,calc(69dvh - 5.85rem),25rem)}}@media (max-width: 51.99rem){.christianity-floating-card-shell{top:50%;gap:.4rem;width:min(calc(100vw - .9rem),24rem);max-height:calc(100dvh - 1.15rem)}.christianity-preview-content{grid-template-columns:minmax(0,1fr)}.christianity-preview-side{display:none}.christianity-preview-stage{width:100%;padding-inline:3.55rem}.christianity-floating-card{width:min(16.5rem,calc(66dvh - 7.4rem),calc(100vw - 6.35rem));justify-self:center}.christianity-floating-card-shell.is-gallery-preview .christianity-floating-card{width:min(17.25rem,calc(70dvh - 7.2rem),calc(100vw - 5.75rem))}.christianity-preview-ghost{display:block;width:min(7.1rem,calc(30dvh - 4rem),24vw);opacity:.24}.christianity-preview-ghost--previous{transform:translate(-118%) rotateY(24deg) rotate(-5deg) scale(.78)}.christianity-preview-ghost--next{transform:translate(118%) rotateY(-24deg) rotate(5deg) scale(.78)}.christianity-floating-card-close{min-height:1.9rem;padding:0 .58rem;font-size:.72rem}.christianity-preview-nav{width:2.2rem;height:2.2rem}.christianity-preview-nav--previous{left:.35rem}.christianity-preview-nav--next{right:.35rem}.christianity-preview-abilities{grid-template-rows:auto auto minmax(4.7rem,1fr) auto;max-height:min(13.5rem,34dvh);padding:.62rem .7rem}.christianity-preview-ability-tabs{padding-bottom:.02rem}.christianity-preview-ability-card{min-height:4.7rem;padding:.48rem .54rem}.christianity-preview-abilities p{font-size:.78rem;line-height:1.24}.christianity-preview-use-ability{min-height:1.95rem;padding-inline:.68rem}}.christianity-history-backdrop{z-index:40}.christianity-gallery-backdrop{z-index:10000;background:#0f172ab8;backdrop-filter:blur(.14rem)}.christianity-history-drawer{position:fixed;right:auto;bottom:max(.5rem,env(safe-area-inset-bottom));left:50%;z-index:41;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;width:min(calc(100vw - 1rem),44rem);min-height:min(18rem,calc(100dvh - 1rem));max-height:min(32rem,calc(100dvh - 2rem));padding:.8rem;border:1px solid rgba(36,48,68,.16);border-radius:.75rem;background:#fffffffa;box-shadow:0 1.5rem 4rem #102a4347;transform:translate(-50%)}.christianity-history-drawer header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.christianity-history-drawer h2,.christianity-history-drawer p{margin:0}.christianity-history-drawer header span{display:grid;place-items:center;min-width:1.85rem;height:1.85rem;border-radius:999px;background:#edf2f7;font-weight:800}.christianity-dialog-actions{display:flex;align-items:center;gap:.45rem}.christianity-dialog-close{min-height:1.85rem;padding:0 .62rem;border:1px solid rgba(36,48,68,.14);border-radius:999px;background:#fff;color:#1f2933c7;font:inherit;font-size:.76rem;font-weight:800;box-shadow:0 .35rem .8rem #102a4314}.christianity-history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:.55rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem .1rem .25rem}.christianity-history-grid::-webkit-scrollbar,.christianity-offering-list::-webkit-scrollbar{width:.65rem}.christianity-history-grid::-webkit-scrollbar-track,.christianity-offering-list::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-history-grid::-webkit-scrollbar-thumb,.christianity-offering-list::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offerings-drawer{grid-template-rows:auto auto minmax(0,1fr);width:min(calc(100vw - 1rem),48rem);min-height:min(20rem,calc(100dvh - 1rem));max-height:min(34rem,calc(100dvh - 2rem))}.christianity-offerings-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;padding:.72rem .8rem;border:1px solid rgba(36,48,68,.12);border-radius:.7rem;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 8% 0%,rgba(214,162,29,.12),transparent 42%)}.christianity-offerings-note p{margin:0;color:#1f2933c2;font-size:.86rem;line-height:1.35}.christianity-offering-list{display:grid;gap:.6rem;min-height:0;overflow-y:scroll;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.1rem}.christianity-offering-row{display:grid;grid-template-columns:minmax(5.4rem,6.5rem) minmax(0,1fr);gap:.65rem;align-items:center;padding:.45rem;border:1px solid rgba(36,48,68,.12);border-radius:.65rem;background:#fff}.christianity-offering-row.is-exhausted{opacity:.68}.christianity-gallery-drawer{position:fixed;grid-template-rows:auto auto auto minmax(0,1fr);inset:0;z-index:10001;box-sizing:border-box;width:100dvw;height:100dvh;max-width:none;min-height:100dvh;max-height:100dvh;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));border:0;border-radius:0;background:linear-gradient(180deg,#f8fafcfc,#eff6fffc),radial-gradient(circle at 16% 0%,rgba(37,99,235,.12),transparent 42%);transform:none}.christianity-gallery-drawer header>div:first-child{display:grid;gap:.15rem;min-width:0}.christianity-gallery-drawer header p{color:#1f293394;font-size:.82rem}.christianity-gallery-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(8.5rem,13rem);gap:.65rem;min-width:0}.christianity-gallery-controls label{display:grid;gap:.25rem;min-width:0;color:#1f29339e;font-size:.74rem;font-weight:800}.christianity-gallery-controls input,.christianity-gallery-controls select{width:100%;min-width:0;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(36,48,68,.16);border-radius:.65rem;background:#fff;color:var(--christianity-theme-ink);font:inherit;font-size:.9rem}.christianity-gallery-edition-strip{display:flex;gap:.45rem;overflow-x:auto;min-width:0;padding-bottom:.2rem}.christianity-gallery-edition-strip button{display:inline-flex;align-items:center;gap:.45rem;min-height:2.35rem;padding:0 .75rem;border:1px solid rgba(214,162,29,.38);border-radius:999px;background:var(--christianity-theme-parchment);color:var(--christianity-theme-ink);font:inherit;font-size:.82rem;font-weight:800}.christianity-gallery-edition-strip img{width:1.2rem;height:1.2rem;object-fit:contain}.christianity-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.2rem,9.1rem));justify-content:center;align-content:start;gap:.95rem;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-color:rgba(36,48,68,.32) rgba(226,232,240,.72);scrollbar-gutter:stable;padding:.35rem .15rem .65rem}.christianity-gallery-grid .christianity-gallery-card-button{width:100%}.christianity-gallery-grid::-webkit-scrollbar{width:.65rem}.christianity-gallery-grid::-webkit-scrollbar-track{border-radius:999px;background:#e2e8f0b8}.christianity-gallery-grid::-webkit-scrollbar-thumb{border:.14rem solid rgba(226,232,240,.72);border-radius:999px;background:#24304452}.christianity-offering-card{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;gap:.26rem;width:100%;min-height:7.7rem;padding:.58rem;overflow:hidden;text-align:left;background:linear-gradient(180deg,#fffffff5,#f8fafcf5),radial-gradient(circle at 78% 14%,rgba(250,204,21,.78) 0 .42rem,transparent .44rem);box-shadow:0 .45rem 1rem #102a431a}.christianity-offering-card small{min-width:0;overflow:hidden;color:#1f293394;font-size:.62rem;font-weight:800;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.christianity-offering-card strong{display:-webkit-box;align-self:start;min-width:0;margin-top:.1rem;overflow:hidden;overflow-wrap:anywhere;font-size:.88rem;line-height:1.05;-webkit-box-orient:vertical;-webkit-line-clamp:3}.christianity-offering-card span{position:absolute;right:.42rem;bottom:.42rem;display:grid;place-items:center;min-width:1.55rem;height:1.55rem;padding:0 .28rem;border-radius:999px;background:#edf2f7;font-size:.82rem;font-weight:900}.christianity-offering-card em{align-self:end;max-width:calc(100% - 1.9rem);overflow:hidden;color:#1f29339e;font-size:.64rem;font-style:normal;font-weight:800;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.christianity-offering-card p,.christianity-offering-row p{margin:0}.christianity-offering-card p{align-self:end;color:#1f2933a3;font-size:.72rem;line-height:1.2}.christianity-offering-row>div{display:grid;gap:.35rem;align-content:center;min-width:0}.christianity-offering-row>div p{color:#1f2933b8;font-size:.85rem;line-height:1.3}.christianity-offering-row>div button{justify-self:start;min-height:2.2rem;padding:0 .7rem;border:1px solid rgba(16,42,67,.16);border-radius:.5rem;background:#102a43;color:#fff;font:inherit;font-weight:800}.christianity-offering-row>div button:disabled{background:#e2e8f0;color:#1f293394}.christianity-history-grid .christianity-render-card-button{justify-self:center;width:min(100%,6.4rem)}.christianity-gallery-grid .christianity-render-card-button{justify-self:center;width:min(100%,8.7rem)}.christianity-gallery-grid .christianity-card-frame-header strong{font-size:clamp(.74rem,.85vw,.9rem)}.christianity-gallery-grid .christianity-card-frame-header small,.christianity-gallery-grid .christianity-card-frame-footer{font-size:.44rem}.christianity-offering-card.christianity-render-card-button{width:min(100%,5.8rem);min-height:0;padding:0;border:0;background:transparent;box-shadow:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible{outline:.1875rem solid color-mix(in srgb,var(--christianity-theme-focus) 24%,transparent);outline-offset:.125rem}:host-context(.dark),:host-context(.ion-palette-dark),:host-context(html.ion-palette-dark),:host-context(body.dark),:host-context([data-theme=\"dark\"]){--christianity-theme-ink: var(--ion-text-color, #e5edf8);--christianity-theme-surface: #111827;--christianity-theme-parchment: #13223a;--christianity-theme-olive: #93c5fd;--christianity-theme-gold: #60a5fa;--christianity-theme-gold-soft: rgba(96, 165, 250, .18);--christianity-theme-gold-ring: rgba(147, 197, 253, .42);--christianity-theme-glow: rgba(96, 165, 250, .24);--christianity-theme-focus: #93c5fd;--christianity-theme-shadow: rgba(0, 0, 0, .34);--christianity-theme-shadow-strong: rgba(0, 0, 0, .48);--christianity-card-back: linear-gradient(135deg, rgba(147, 197, 253, .2), rgba(15, 23, 42, .08)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);--christianity-card-back-soft: linear-gradient(135deg, rgba(147, 197, 253, .15), rgba(15, 23, 42, .06)), repeating-linear-gradient(45deg, #1e3a5f 0 .33rem, #0f172a .33rem .66rem);color-scheme:dark}:host-context(.dark) .christianity-gallery-open,:host-context(.ion-palette-dark) .christianity-gallery-open,:host-context(html.ion-palette-dark) .christianity-gallery-open,:host-context(body.dark) .christianity-gallery-open,:host-context([data-theme=\"dark\"]) .christianity-gallery-open,:host-context(.dark) .christianity-secondary-action,:host-context(.ion-palette-dark) .christianity-secondary-action,:host-context(html.ion-palette-dark) .christianity-secondary-action,:host-context(body.dark) .christianity-secondary-action,:host-context([data-theme=\"dark\"]) .christianity-secondary-action,:host-context(.dark) .christianity-gallery-edition-strip button,:host-context(.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(html.ion-palette-dark) .christianity-gallery-edition-strip button,:host-context(body.dark) .christianity-gallery-edition-strip button,:host-context([data-theme=\"dark\"]) .christianity-gallery-edition-strip button{border-color:#93c5fd5c;background:linear-gradient(180deg,#1e3a5fd1,#0f172ae0),radial-gradient(circle at 20% 0%,rgba(96,165,250,.16),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.2rem #0000003d}:host-context(.dark) .christianity-splash,:host-context(.ion-palette-dark) .christianity-splash,:host-context(html.ion-palette-dark) .christianity-splash,:host-context(body.dark) .christianity-splash,:host-context([data-theme=\"dark\"]) .christianity-splash{border-color:#93c5fd38;background:radial-gradient(circle at 50% 18%,rgba(96,165,250,.16),transparent 22rem),linear-gradient(180deg,#0f172ae0,#07111ff7),var(--christianity-card-back-soft);box-shadow:0 1.2rem 3.2rem #00000047}:host-context(.dark) .christianity-start__cards article,:host-context(.ion-palette-dark) .christianity-start__cards article,:host-context(html.ion-palette-dark) .christianity-start__cards article,:host-context(body.dark) .christianity-start__cards article,:host-context([data-theme=\"dark\"]) .christianity-start__cards article,:host-context(.dark) .christianity-start__modes article,:host-context(.ion-palette-dark) .christianity-start__modes article,:host-context(html.ion-palette-dark) .christianity-start__modes article,:host-context(body.dark) .christianity-start__modes article,:host-context([data-theme=\"dark\"]) .christianity-start__modes article,:host-context(.dark) .christianity-start__status span,:host-context(.ion-palette-dark) .christianity-start__status span,:host-context(html.ion-palette-dark) .christianity-start__status span,:host-context(body.dark) .christianity-start__status span,:host-context([data-theme=\"dark\"]) .christianity-start__status span,:host-context(.dark) .christianity-start__modes article>span,:host-context(.ion-palette-dark) .christianity-start__modes article>span,:host-context(html.ion-palette-dark) .christianity-start__modes article>span,:host-context(body.dark) .christianity-start__modes article>span,:host-context([data-theme=\"dark\"]) .christianity-start__modes article>span{border-color:#94a3b833;background:#0f172aad;box-shadow:0 .75rem 1.7rem #00000038}:host-context(.dark) .christianity-splash p,:host-context(.ion-palette-dark) .christianity-splash p,:host-context(html.ion-palette-dark) .christianity-splash p,:host-context(body.dark) .christianity-splash p,:host-context([data-theme=\"dark\"]) .christianity-splash p,:host-context(.dark) .christianity-start__copy p,:host-context(.ion-palette-dark) .christianity-start__copy p,:host-context(html.ion-palette-dark) .christianity-start__copy p,:host-context(body.dark) .christianity-start__copy p,:host-context([data-theme=\"dark\"]) .christianity-start__copy p,:host-context(.dark) .christianity-start__cards p,:host-context(.ion-palette-dark) .christianity-start__cards p,:host-context(html.ion-palette-dark) .christianity-start__cards p,:host-context(body.dark) .christianity-start__cards p,:host-context([data-theme=\"dark\"]) .christianity-start__cards p,:host-context(.dark) .christianity-start__modes p,:host-context(.ion-palette-dark) .christianity-start__modes p,:host-context(html.ion-palette-dark) .christianity-start__modes p,:host-context(body.dark) .christianity-start__modes p,:host-context([data-theme=\"dark\"]) .christianity-start__modes p,:host-context(.dark) .christianity-header p,:host-context(.ion-palette-dark) .christianity-header p,:host-context(html.ion-palette-dark) .christianity-header p,:host-context(body.dark) .christianity-header p,:host-context([data-theme=\"dark\"]) .christianity-header p,:host-context(.dark) .christianity-match-player small,:host-context(.ion-palette-dark) .christianity-match-player small,:host-context(html.ion-palette-dark) .christianity-match-player small,:host-context(body.dark) .christianity-match-player small,:host-context([data-theme=\"dark\"]) .christianity-match-player small,:host-context(.dark) .christianity-scoreboard span,:host-context(.ion-palette-dark) .christianity-scoreboard span,:host-context(html.ion-palette-dark) .christianity-scoreboard span,:host-context(body.dark) .christianity-scoreboard span,:host-context([data-theme=\"dark\"]) .christianity-scoreboard span{color:#e2e8f0bd}:host-context(.dark) .christianity-turn,:host-context(.ion-palette-dark) .christianity-turn,:host-context(html.ion-palette-dark) .christianity-turn,:host-context(body.dark) .christianity-turn,:host-context([data-theme=\"dark\"]) .christianity-turn,:host-context(.dark) .christianity-leader,:host-context(.ion-palette-dark) .christianity-leader,:host-context(html.ion-palette-dark) .christianity-leader,:host-context(body.dark) .christianity-leader,:host-context([data-theme=\"dark\"]) .christianity-leader,:host-context(.dark) .christianity-offerings,:host-context(.ion-palette-dark) .christianity-offerings,:host-context(html.ion-palette-dark) .christianity-offerings,:host-context(body.dark) .christianity-offerings,:host-context([data-theme=\"dark\"]) .christianity-offerings,:host-context(.dark) .christianity-hidden-hand,:host-context(.ion-palette-dark) .christianity-hidden-hand,:host-context(html.ion-palette-dark) .christianity-hidden-hand,:host-context(body.dark) .christianity-hidden-hand,:host-context([data-theme=\"dark\"]) .christianity-hidden-hand,:host-context(.dark) .christianity-pile,:host-context(.ion-palette-dark) .christianity-pile,:host-context(html.ion-palette-dark) .christianity-pile,:host-context(body.dark) .christianity-pile,:host-context([data-theme=\"dark\"]) .christianity-pile,:host-context(.dark) .christianity-deck,:host-context(.ion-palette-dark) .christianity-deck,:host-context(html.ion-palette-dark) .christianity-deck,:host-context(body.dark) .christianity-deck,:host-context([data-theme=\"dark\"]) .christianity-deck,:host-context(.dark) .christianity-place,:host-context(.ion-palette-dark) .christianity-place,:host-context(html.ion-palette-dark) .christianity-place,:host-context(body.dark) .christianity-place,:host-context([data-theme=\"dark\"]) .christianity-place,:host-context(.dark) .christianity-match-strip,:host-context(.ion-palette-dark) .christianity-match-strip,:host-context(html.ion-palette-dark) .christianity-match-strip,:host-context(body.dark) .christianity-match-strip,:host-context([data-theme=\"dark\"]) .christianity-match-strip,:host-context(.dark) .christianity-actions,:host-context(.ion-palette-dark) .christianity-actions,:host-context(html.ion-palette-dark) .christianity-actions,:host-context(body.dark) .christianity-actions,:host-context([data-theme=\"dark\"]) .christianity-actions,:host-context(.dark) .christianity-history,:host-context(.ion-palette-dark) .christianity-history,:host-context(html.ion-palette-dark) .christianity-history,:host-context(body.dark) .christianity-history,:host-context([data-theme=\"dark\"]) .christianity-history{border-color:#94a3b82e;background:#0f172ad1}:host-context(.dark) .christianity-turn.is-own-turn,:host-context(.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(html.ion-palette-dark) .christianity-turn.is-own-turn,:host-context(body.dark) .christianity-turn.is-own-turn,:host-context([data-theme=\"dark\"]) .christianity-turn.is-own-turn{border-color:#2dd4bf5c;background:#14534c5c}:host-context(.dark) .christianity-table,:host-context(.ion-palette-dark) .christianity-table,:host-context(html.ion-palette-dark) .christianity-table,:host-context(body.dark) .christianity-table,:host-context([data-theme=\"dark\"]) .christianity-table{background:linear-gradient(180deg,#10233d,#0b1728)}:host-context(.dark) .christianity-player-side,:host-context(.ion-palette-dark) .christianity-player-side,:host-context(html.ion-palette-dark) .christianity-player-side,:host-context(body.dark) .christianity-player-side,:host-context([data-theme=\"dark\"]) .christianity-player-side{background:#0f172a57}:host-context(.dark) .christianity-battle-zone,:host-context(.ion-palette-dark) .christianity-battle-zone,:host-context(html.ion-palette-dark) .christianity-battle-zone,:host-context(body.dark) .christianity-battle-zone,:host-context([data-theme=\"dark\"]) .christianity-battle-zone,:host-context(.dark) .christianity-shared-zone,:host-context(.ion-palette-dark) .christianity-shared-zone,:host-context(html.ion-palette-dark) .christianity-shared-zone,:host-context(body.dark) .christianity-shared-zone,:host-context([data-theme=\"dark\"]) .christianity-shared-zone{background:#0f172a94}:host-context(.dark) .christianity-battle-zone.is-placing-card,:host-context(.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(html.ion-palette-dark) .christianity-battle-zone.is-placing-card,:host-context(body.dark) .christianity-battle-zone.is-placing-card,:host-context([data-theme=\"dark\"]) .christianity-battle-zone.is-placing-card{background:linear-gradient(180deg,#1e3a5fd1,#0f172ab8),#0f172a94}:host-context(.dark) .christianity-card,:host-context(.ion-palette-dark) .christianity-card,:host-context(html.ion-palette-dark) .christianity-card,:host-context(body.dark) .christianity-card,:host-context([data-theme=\"dark\"]) .christianity-card,:host-context(.dark) .christianity-slot,:host-context(.ion-palette-dark) .christianity-slot,:host-context(html.ion-palette-dark) .christianity-slot,:host-context(body.dark) .christianity-slot,:host-context([data-theme=\"dark\"]) .christianity-slot{border-color:#94a3b83d;background:#0f172a8a}:host-context(.dark) .christianity-slot--play-target,:host-context(.ion-palette-dark) .christianity-slot--play-target,:host-context(html.ion-palette-dark) .christianity-slot--play-target,:host-context(body.dark) .christianity-slot--play-target,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target{color:var(--christianity-theme-ink);background:linear-gradient(180deg,#2563eb3d,#0f172ac7),#0f172abd}:host-context(.dark) .christianity-slot--play-target span,:host-context(.ion-palette-dark) .christianity-slot--play-target span,:host-context(html.ion-palette-dark) .christianity-slot--play-target span,:host-context(body.dark) .christianity-slot--play-target span,:host-context([data-theme=\"dark\"]) .christianity-slot--play-target span,:host-context(.dark) .christianity-card strong,:host-context(.ion-palette-dark) .christianity-card strong,:host-context(html.ion-palette-dark) .christianity-card strong,:host-context(body.dark) .christianity-card strong,:host-context([data-theme=\"dark\"]) .christianity-card strong{background:#1e293beb}:host-context(.dark) .christianity-offering-pile,:host-context(.ion-palette-dark) .christianity-offering-pile,:host-context(html.ion-palette-dark) .christianity-offering-pile,:host-context(body.dark) .christianity-offering-pile,:host-context([data-theme=\"dark\"]) .christianity-offering-pile,:host-context(.dark) .christianity-zone-card,:host-context(.ion-palette-dark) .christianity-zone-card,:host-context(html.ion-palette-dark) .christianity-zone-card,:host-context(body.dark) .christianity-zone-card,:host-context([data-theme=\"dark\"]) .christianity-zone-card,:host-context(.dark) .christianity-zone-pile,:host-context(.ion-palette-dark) .christianity-zone-pile,:host-context(html.ion-palette-dark) .christianity-zone-pile,:host-context(body.dark) .christianity-zone-pile,:host-context([data-theme=\"dark\"]) .christianity-zone-pile{border-color:#94a3b83d;background:linear-gradient(180deg,#111827f5,#0f172af0),radial-gradient(circle at 14% 0%,rgba(96,165,250,.12),transparent 42%);color:var(--christianity-theme-ink);box-shadow:0 .55rem 1.25rem #00000047,inset 0 0 0 .12rem #ffffff08}:host-context(.dark) .christianity-offering-pile>span,:host-context(.ion-palette-dark) .christianity-offering-pile>span,:host-context(html.ion-palette-dark) .christianity-offering-pile>span,:host-context(body.dark) .christianity-offering-pile>span,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>span,:host-context(.dark) .christianity-zone-card>span,:host-context(.ion-palette-dark) .christianity-zone-card>span,:host-context(html.ion-palette-dark) .christianity-zone-card>span,:host-context(body.dark) .christianity-zone-card>span,:host-context([data-theme=\"dark\"]) .christianity-zone-card>span,:host-context(.dark) .christianity-zone-pile>span,:host-context(.ion-palette-dark) .christianity-zone-pile>span,:host-context(html.ion-palette-dark) .christianity-zone-pile>span,:host-context(body.dark) .christianity-zone-pile>span,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>span,:host-context(.dark) .christianity-player-badge,:host-context(.ion-palette-dark) .christianity-player-badge,:host-context(html.ion-palette-dark) .christianity-player-badge,:host-context(body.dark) .christianity-player-badge,:host-context([data-theme=\"dark\"]) .christianity-player-badge{color:#e2e8f0c7}:host-context(.dark) .christianity-offering-pile>small,:host-context(.ion-palette-dark) .christianity-offering-pile>small,:host-context(html.ion-palette-dark) .christianity-offering-pile>small,:host-context(body.dark) .christianity-offering-pile>small,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>small{color:#e2e8f09e}:host-context(.dark) .christianity-offering-pile>strong,:host-context(.ion-palette-dark) .christianity-offering-pile>strong,:host-context(html.ion-palette-dark) .christianity-offering-pile>strong,:host-context(body.dark) .christianity-offering-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-offering-pile>strong,:host-context(.dark) .christianity-zone-card>strong,:host-context(.ion-palette-dark) .christianity-zone-card>strong,:host-context(html.ion-palette-dark) .christianity-zone-card>strong,:host-context(body.dark) .christianity-zone-card>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-card>strong,:host-context(.dark) .christianity-zone-pile>strong,:host-context(.ion-palette-dark) .christianity-zone-pile>strong,:host-context(html.ion-palette-dark) .christianity-zone-pile>strong,:host-context(body.dark) .christianity-zone-pile>strong,:host-context([data-theme=\"dark\"]) .christianity-zone-pile>strong,:host-context(.dark) .christianity-hand-meter,:host-context(.ion-palette-dark) .christianity-hand-meter,:host-context(html.ion-palette-dark) .christianity-hand-meter,:host-context(body.dark) .christianity-hand-meter,:host-context([data-theme=\"dark\"]) .christianity-hand-meter{border-color:#94a3b833;background:#0f172ae0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #00000047}:host-context(.dark) .christianity-hand-meter span,:host-context(.ion-palette-dark) .christianity-hand-meter span,:host-context(html.ion-palette-dark) .christianity-hand-meter span,:host-context(body.dark) .christianity-hand-meter span,:host-context([data-theme=\"dark\"]) .christianity-hand-meter span{color:#e2e8f0b3}:host-context(.dark) .christianity-offering-pile:before,:host-context(.ion-palette-dark) .christianity-offering-pile:before,:host-context(html.ion-palette-dark) .christianity-offering-pile:before,:host-context(body.dark) .christianity-offering-pile:before,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:before,:host-context(.dark) .christianity-zone-pile:before,:host-context(.ion-palette-dark) .christianity-zone-pile:before,:host-context(html.ion-palette-dark) .christianity-zone-pile:before,:host-context(body.dark) .christianity-zone-pile:before,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:before{border-color:#94a3b833;background:#e2e8f0eb;box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-offering-pile:after,:host-context(.ion-palette-dark) .christianity-offering-pile:after,:host-context(html.ion-palette-dark) .christianity-offering-pile:after,:host-context(body.dark) .christianity-offering-pile:after,:host-context([data-theme=\"dark\"]) .christianity-offering-pile:after,:host-context(.dark) .christianity-zone-pile:after,:host-context(.ion-palette-dark) .christianity-zone-pile:after,:host-context(html.ion-palette-dark) .christianity-zone-pile:after,:host-context(body.dark) .christianity-zone-pile:after,:host-context([data-theme=\"dark\"]) .christianity-zone-pile:after{border-color:#94a3b838;background:var(--christianity-card-back);box-shadow:0 .35rem .85rem #00000042}:host-context(.dark) .christianity-end-turn:disabled,:host-context(.ion-palette-dark) .christianity-end-turn:disabled,:host-context(html.ion-palette-dark) .christianity-end-turn:disabled,:host-context(body.dark) .christianity-end-turn:disabled,:host-context([data-theme=\"dark\"]) .christianity-end-turn:disabled{border-color:#94a3b829;background:#0f172a75;color:#e2e8f06b;opacity:1}:host-context(.dark) .christianity-history-drawer,:host-context(.ion-palette-dark) .christianity-history-drawer,:host-context(html.ion-palette-dark) .christianity-history-drawer,:host-context(body.dark) .christianity-history-drawer,:host-context([data-theme=\"dark\"]) .christianity-history-drawer,:host-context(.dark) .christianity-rule-note,:host-context(.ion-palette-dark) .christianity-rule-note,:host-context(html.ion-palette-dark) .christianity-rule-note,:host-context(body.dark) .christianity-rule-note,:host-context([data-theme=\"dark\"]) .christianity-rule-note,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note,:host-context(.dark) .christianity-preview-abilities,:host-context(.ion-palette-dark) .christianity-preview-abilities,:host-context(html.ion-palette-dark) .christianity-preview-abilities,:host-context(body.dark) .christianity-preview-abilities,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities{border-color:#94a3b82e;background:linear-gradient(180deg,#0f172af5,#111827f5),radial-gradient(circle at 8% 0%,rgba(96,165,250,.12),transparent 40%);box-shadow:0 1.5rem 4rem #0000006b}:host-context(.dark) .christianity-dialog-close,:host-context(.ion-palette-dark) .christianity-dialog-close,:host-context(html.ion-palette-dark) .christianity-dialog-close,:host-context(body.dark) .christianity-dialog-close,:host-context([data-theme=\"dark\"]) .christianity-dialog-close,:host-context(.dark) .christianity-floating-card-close,:host-context(.ion-palette-dark) .christianity-floating-card-close,:host-context(html.ion-palette-dark) .christianity-floating-card-close,:host-context(body.dark) .christianity-floating-card-close,:host-context([data-theme=\"dark\"]) .christianity-floating-card-close,:host-context(.dark) .christianity-preview-position,:host-context(.ion-palette-dark) .christianity-preview-position,:host-context(html.ion-palette-dark) .christianity-preview-position,:host-context(body.dark) .christianity-preview-position,:host-context([data-theme=\"dark\"]) .christianity-preview-position,:host-context(.dark) .christianity-preview-nav,:host-context(.ion-palette-dark) .christianity-preview-nav,:host-context(html.ion-palette-dark) .christianity-preview-nav,:host-context(body.dark) .christianity-preview-nav,:host-context([data-theme=\"dark\"]) .christianity-preview-nav,:host-context(.dark) .christianity-preview-ability-nav button,:host-context(.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(html.ion-palette-dark) .christianity-preview-ability-nav button,:host-context(body.dark) .christianity-preview-ability-nav button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-nav button,:host-context(.dark) .christianity-preview-ability-tabs button,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button,:host-context(body.dark) .christianity-preview-ability-tabs button,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button{border-color:#94a3b838;background:#0f172af0;color:var(--christianity-theme-ink);box-shadow:0 .35rem .8rem #0000004d}:host-context(.dark) .christianity-preview-ability-tabs button.is-selected,:host-context(.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(html.ion-palette-dark) .christianity-preview-ability-tabs button.is-selected,:host-context(body.dark) .christianity-preview-ability-tabs button.is-selected,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-tabs button.is-selected{border-color:#60a5fa61;background:#2563eb38;color:#dbeafef0}:host-context(.dark) .christianity-preview-use-ability:disabled,:host-context(.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(html.ion-palette-dark) .christianity-preview-use-ability:disabled,:host-context(body.dark) .christianity-preview-use-ability:disabled,:host-context([data-theme=\"dark\"]) .christianity-preview-use-ability:disabled{background:#334155c7;color:#e2e8f07a}:host-context(.dark) .christianity-preview-ability-card,:host-context(.ion-palette-dark) .christianity-preview-ability-card,:host-context(html.ion-palette-dark) .christianity-preview-ability-card,:host-context(body.dark) .christianity-preview-ability-card,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card{border-color:#94a3b829;background:#0f172a6b}:host-context(.dark) .christianity-preview-ability-card strong,:host-context(.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(html.ion-palette-dark) .christianity-preview-ability-card strong,:host-context(body.dark) .christianity-preview-ability-card strong,:host-context([data-theme=\"dark\"]) .christianity-preview-ability-card strong,:host-context(.dark) .christianity-preview-abilities-header span,:host-context(.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(html.ion-palette-dark) .christianity-preview-abilities-header span,:host-context(body.dark) .christianity-preview-abilities-header span,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities-header span{color:#e2e8f0d1}:host-context(.dark) .christianity-history-drawer header span,:host-context(.ion-palette-dark) .christianity-history-drawer header span,:host-context(html.ion-palette-dark) .christianity-history-drawer header span,:host-context(body.dark) .christianity-history-drawer header span,:host-context([data-theme=\"dark\"]) .christianity-history-drawer header span,:host-context(.dark) .christianity-rule-note strong,:host-context(.ion-palette-dark) .christianity-rule-note strong,:host-context(html.ion-palette-dark) .christianity-rule-note strong,:host-context(body.dark) .christianity-rule-note strong,:host-context([data-theme=\"dark\"]) .christianity-rule-note strong{background:#1e293beb}:host-context(.dark) .christianity-rule-note small,:host-context(.ion-palette-dark) .christianity-rule-note small,:host-context(html.ion-palette-dark) .christianity-rule-note small,:host-context(body.dark) .christianity-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-rule-note small,:host-context(.dark) .christianity-preview-rule-note small,:host-context(.ion-palette-dark) .christianity-preview-rule-note small,:host-context(html.ion-palette-dark) .christianity-preview-rule-note small,:host-context(body.dark) .christianity-preview-rule-note small,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note small,:host-context(.dark) .christianity-preview-abilities small,:host-context(.ion-palette-dark) .christianity-preview-abilities small,:host-context(html.ion-palette-dark) .christianity-preview-abilities small,:host-context(body.dark) .christianity-preview-abilities small,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities small,:host-context(.dark) .christianity-gallery-drawer header p,:host-context(.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(html.ion-palette-dark) .christianity-gallery-drawer header p,:host-context(body.dark) .christianity-gallery-drawer header p,:host-context([data-theme=\"dark\"]) .christianity-gallery-drawer header p,:host-context(.dark) .christianity-gallery-controls label,:host-context(.ion-palette-dark) .christianity-gallery-controls label,:host-context(html.ion-palette-dark) .christianity-gallery-controls label,:host-context(body.dark) .christianity-gallery-controls label,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls label{color:#e2e8f0ad}:host-context(.dark) .christianity-rule-note p,:host-context(.ion-palette-dark) .christianity-rule-note p,:host-context(html.ion-palette-dark) .christianity-rule-note p,:host-context(body.dark) .christianity-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-rule-note p,:host-context(.dark) .christianity-rule-note ul,:host-context(.ion-palette-dark) .christianity-rule-note ul,:host-context(html.ion-palette-dark) .christianity-rule-note ul,:host-context(body.dark) .christianity-rule-note ul,:host-context([data-theme=\"dark\"]) .christianity-rule-note ul,:host-context(.dark) .christianity-preview-rule-note p,:host-context(.ion-palette-dark) .christianity-preview-rule-note p,:host-context(html.ion-palette-dark) .christianity-preview-rule-note p,:host-context(body.dark) .christianity-preview-rule-note p,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note p,:host-context(.dark) .christianity-preview-abilities p,:host-context(.ion-palette-dark) .christianity-preview-abilities p,:host-context(html.ion-palette-dark) .christianity-preview-abilities p,:host-context(body.dark) .christianity-preview-abilities p,:host-context([data-theme=\"dark\"]) .christianity-preview-abilities p,:host-context(.dark) .christianity-offerings-note p,:host-context(.ion-palette-dark) .christianity-offerings-note p,:host-context(html.ion-palette-dark) .christianity-offerings-note p,:host-context(body.dark) .christianity-offerings-note p,:host-context([data-theme=\"dark\"]) .christianity-offerings-note p{color:#e2e8f0cc}:host-context(.dark) .christianity-gallery-controls input,:host-context(.ion-palette-dark) .christianity-gallery-controls input,:host-context(html.ion-palette-dark) .christianity-gallery-controls input,:host-context(body.dark) .christianity-gallery-controls input,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls input,:host-context(.dark) .christianity-gallery-controls select,:host-context(.ion-palette-dark) .christianity-gallery-controls select,:host-context(html.ion-palette-dark) .christianity-gallery-controls select,:host-context(body.dark) .christianity-gallery-controls select,:host-context([data-theme=\"dark\"]) .christianity-gallery-controls select,:host-context(.dark) .christianity-offering-row,:host-context(.ion-palette-dark) .christianity-offering-row,:host-context(html.ion-palette-dark) .christianity-offering-row,:host-context(body.dark) .christianity-offering-row,:host-context([data-theme=\"dark\"]) .christianity-offering-row,:host-context(.dark) .christianity-offerings-note,:host-context(.ion-palette-dark) .christianity-offerings-note,:host-context(html.ion-palette-dark) .christianity-offerings-note,:host-context(body.dark) .christianity-offerings-note,:host-context([data-theme=\"dark\"]) .christianity-offerings-note{border-color:#94a3b833;background:#0f172ac7;color:var(--christianity-theme-ink)}:host-context(.dark) .christianity-history-grid,:host-context(.ion-palette-dark) .christianity-history-grid,:host-context(html.ion-palette-dark) .christianity-history-grid,:host-context(body.dark) .christianity-history-grid,:host-context([data-theme=\"dark\"]) .christianity-history-grid,:host-context(.dark) .christianity-offering-list,:host-context(.ion-palette-dark) .christianity-offering-list,:host-context(html.ion-palette-dark) .christianity-offering-list,:host-context(body.dark) .christianity-offering-list,:host-context([data-theme=\"dark\"]) .christianity-offering-list,:host-context(.dark) .christianity-gallery-grid,:host-context(.ion-palette-dark) .christianity-gallery-grid,:host-context(html.ion-palette-dark) .christianity-gallery-grid,:host-context(body.dark) .christianity-gallery-grid,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid,:host-context(.dark) .christianity-preview-rule-note,:host-context(.ion-palette-dark) .christianity-preview-rule-note,:host-context(html.ion-palette-dark) .christianity-preview-rule-note,:host-context(body.dark) .christianity-preview-rule-note,:host-context([data-theme=\"dark\"]) .christianity-preview-rule-note{scrollbar-color:rgba(148,163,184,.54) rgba(15,23,42,.86)}:host-context(.dark) .christianity-rule-note-icon,:host-context(.ion-palette-dark) .christianity-rule-note-icon,:host-context(html.ion-palette-dark) .christianity-rule-note-icon,:host-context(body.dark) .christianity-rule-note-icon,:host-context([data-theme=\"dark\"]) .christianity-rule-note-icon{background:#60a5fa29;color:#bfdbfe;box-shadow:inset 0 0 0 1px #93c5fd38}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-track,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-track,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-track,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-track{background:#0f172adb}:host-context(.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-history-grid::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-offering-list::-webkit-scrollbar-thumb,:host-context(.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(html.ion-palette-dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context(body.dark) .christianity-gallery-grid::-webkit-scrollbar-thumb,:host-context([data-theme=\"dark\"]) .christianity-gallery-grid::-webkit-scrollbar-thumb{border-color:#0f172adb;background:#94a3b88a}@media (max-width: 720px){:host{overflow-x:hidden}.christianity-shell{padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) 10.45rem max(.75rem,env(safe-area-inset-left))}.christianity-shell.is-preparing{padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left))}.christianity-shell.is-preparing .christianity-table{min-height:calc(100dvh - max(1.5rem,env(safe-area-inset-top) + env(safe-area-inset-bottom)))}.christianity-actions{position:fixed;right:max(.6rem,env(safe-area-inset-right));bottom:calc(max(.75rem,env(safe-area-inset-bottom)) + 7.45rem);z-index:80;display:block;width:auto;padding:0;background:transparent;pointer-events:none}.christianity-actions button{min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-header,.christianity-match-strip,.christianity-player__summary{box-sizing:border-box;width:100%;padding-right:max(.5rem,env(safe-area-inset-right));padding-left:max(.5rem,env(safe-area-inset-left))}.christianity-header,.christianity-player__summary,.christianity-shared-zone{align-items:stretch;flex-direction:column}.christianity-match-strip{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem;padding:.35rem}.christianity-turn-banner{grid-template-columns:minmax(0,1fr);gap:.45rem;padding:.55rem}.christianity-turn-actions{justify-content:space-between;width:100%}.christianity-end-turn{min-height:2.15rem;padding-inline:.7rem;font-size:.8rem}.christianity-options-button{justify-self:start}.christianity-options-menu{right:auto;left:.55rem}.christianity-setup-panel,.christianity-result-panel{inset:.55rem;padding:.7rem}.christianity-leader-choice-grid{grid-template-columns:repeat(2,minmax(0,8.1rem));gap:.5rem;width:min(100%,17rem)}.christianity-leader-choice-option{padding:.38rem;border-radius:.78rem}.christianity-leader-choice-card{width:min(100%,7.1rem)}.christianity-leader-choice-option span{min-height:1.65rem;padding-inline:.34rem}.christianity-leader-choice-detail{min-height:1.9rem;font-size:.7rem}.christianity-match-player{gap:.35rem}.christianity-match-player small{display:none}.christianity-header-actions{align-items:flex-end;flex-direction:column}.christianity-start__cards,.christianity-start__hero{grid-template-columns:minmax(0,1fr)}.christianity-start__fan{min-height:10.5rem}.christianity-start__fan val-christianity-card{width:clamp(5.2rem,22vw,6.4rem)}.christianity-start__modes{grid-template-columns:repeat(2,minmax(0,1fr))}.christianity-splash{min-height:min(30rem,calc(100dvh - 7rem));padding-right:max(.65rem,env(safe-area-inset-right));padding-left:max(.65rem,env(safe-area-inset-left));border-right:0;border-left:0;border-radius:0}.christianity-start{min-height:min(30rem,calc(100dvh - 7rem));padding:.35rem}.christianity-scoreboard{min-width:3.65rem;padding:0 .35rem}.christianity-scoreboard strong{font-size:1.05rem}.christianity-table{gap:.35rem;width:100%;max-width:100%;min-width:0;padding:.45rem;overflow-x:hidden}.christianity-player-side{width:100%;max-width:100%;min-width:0;padding:.3rem .25rem;overflow:hidden}.christianity-battle-zone{--christianity-battle-card-width: min(5.45rem, 100%);grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.25rem,1.5vw,.4rem);justify-content:stretch;min-height:7.45rem;padding-inline:.28rem;overflow-x:hidden}.christianity-battle-zone .christianity-card-preview-card--battle,.christianity-battle-zone .christianity-slot{width:min(100%,5.45rem)}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent){position:fixed;right:0;bottom:0;left:0;z-index:52;box-sizing:border-box;min-height:9.55rem;margin:0;padding:.7rem max(.35rem,env(safe-area-inset-right)) max(.55rem,env(safe-area-inset-bottom)) max(.35rem,env(safe-area-inset-left));background:linear-gradient(180deg,#eff6ff00,#dbeafef5 18%,#dbeafefa),radial-gradient(circle at 50% 0%,rgba(37,99,235,.14),transparent 58%);pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan,.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-card-wrap{pointer-events:auto}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-meter{top:.15rem;right:max(.55rem,env(safe-area-inset-right));pointer-events:none}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-hand-fan{min-height:8.85rem;padding:.25rem .25rem 1.1rem;overflow:visible}.christianity-hand-shelf:not(.christianity-hand-shelf--opponent) .christianity-card-preview-card--hand{width:clamp(4.35rem,20vw,5.65rem)}.christianity-hand-shelf--opponent{min-height:5.55rem;margin-top:0;margin-bottom:0;padding-top:.4rem;padding-bottom:.35rem}.christianity-player-rack{grid-template-columns:minmax(0,5.55rem) minmax(0,1fr) minmax(0,5.45rem);gap:clamp(.35rem,2vw,.5rem)}.christianity-player-rack:not(.christianity-player-rack--opponent) .christianity-offerings-zone{position:fixed;left:max(.65rem,env(safe-area-inset-left));bottom:calc(9.65rem + env(safe-area-inset-bottom));z-index:49;width:min(5.65rem,24vw);min-width:5.15rem;pointer-events:auto;transition:filter .16s ease,transform .16s ease,z-index .16s ease}.christianity-shell.is-offering-drop-active .christianity-player-rack:not(.christianity-player-rack--opponent) .christianity-offerings-zone{z-index:72;filter:drop-shadow(0 .85rem 1.45rem rgba(16,42,67,.24));transform:translateY(-.22rem) scale(1.03)}.christianity-shell.has-modal-open .christianity-player-rack:not(.christianity-player-rack--opponent) .christianity-offerings-zone{opacity:0;pointer-events:none}.christianity-shared-zone{gap:.45rem;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.christianity-zone-card,.christianity-zone-pile{min-height:6.35rem;padding:.68rem .58rem .55rem;gap:.24rem}.christianity-zone-card>val-christianity-card,.christianity-zone-pile>val-christianity-card,.christianity-zone-pile .christianity-pile-card-hint,.christianity-place-token,.christianity-zone-pile:before,.christianity-zone-pile:after,.christianity-empty-card-slot{width:clamp(3rem,16vw,3.75rem)}.christianity-offering-pile{height:7.55rem;max-height:7.55rem;padding:.62rem .54rem .52rem;gap:.24rem}.christianity-offering-drop-target{width:min(100%,6.35rem);height:7.55rem;min-height:0;max-height:7.55rem}.christianity-pile-card-hint{top:2rem;width:clamp(2.25rem,10.5vw,2.8rem)}.christianity-offering-pile .christianity-zone-card-stack val-christianity-card{top:1.72rem;width:clamp(2.85rem,14vw,3.45rem)}.christianity-zone-pile .christianity-pile-card-hint{top:1.78rem;width:clamp(3rem,16vw,3.75rem)}.christianity-place-token{top:2rem;width:clamp(2.85rem,15vw,3.55rem)}.christianity-offering-pile>small{bottom:.64rem;left:.58rem;font-size:.56rem}.christianity-offering-pile>strong{right:.48rem;bottom:.5rem}.christianity-card-preview-card{width:clamp(4.2rem,20vw,5.7rem);height:auto;min-height:0}.christianity-leader-card{width:clamp(5.15rem,22vw,6.35rem);min-height:0}.christianity-offering-row{grid-template-columns:minmax(5rem,5.8rem) minmax(0,1fr);gap:.5rem}.christianity-gallery-controls{grid-template-columns:minmax(0,1fr);gap:.5rem}.christianity-gallery-drawer{gap:.6rem;padding:max(.72rem,env(safe-area-inset-top)) max(.72rem,env(safe-area-inset-right)) max(.72rem,env(safe-area-inset-bottom)) max(.72rem,env(safe-area-inset-left))}.christianity-gallery-drawer header{align-items:start}.christianity-gallery-drawer h2{font-size:1.2rem;line-height:1.05}.christianity-gallery-controls label{gap:.18rem;font-size:.7rem}.christianity-gallery-controls input,.christianity-gallery-controls select,.christianity-gallery-edition-strip button{min-height:2.05rem}.christianity-gallery-grid{grid-template-columns:repeat(3,minmax(0,clamp(6.35rem,28vw,7.15rem)));justify-content:center;gap:clamp(.55rem,2.2vw,.72rem);scrollbar-gutter:auto;padding:.42rem 0 .8rem}.christianity-gallery-grid .christianity-render-card-button{width:100%}.christianity-offering-card{min-height:7.25rem;padding:.5rem}.christianity-hand-fan--opponent{min-height:4.75rem;padding-bottom:.35rem}.christianity-hand-fan--opponent .christianity-hidden-card-button{width:clamp(3.1rem,14vw,3.9rem);margin-inline:-.65rem}}\n"] }]
4050
4099
  }], ctorParameters: () => [] });
4051
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyaXN0aWFuaXR5LWdhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9taW5pLWdhbWVzL2NocmlzdGlhbml0eS1nYW1lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxPQUFPLEVBQWUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRS9HLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUseUJBQXlCLEVBQTJELE1BQU0sK0JBQStCLENBQUM7QUFDbkksT0FBTyxFQUFFLHdCQUF3QixFQUEyQixNQUFNLCtCQUErQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSx5QkFBeUIsRUFBNEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RyxPQUFPLEVBRUwsV0FBVyxFQUNYLHFCQUFxQixJQUFJLGlDQUFpQyxFQUMxRCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixnQkFBZ0IsSUFBSSw0QkFBNEIsRUFDaEQsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLGNBQWMsR0FDZixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFnSHBELE1BQU0sbUJBQW1CLEdBQUcsc0RBQXNELENBQUM7QUFD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Q0FBQzsrR0FqckVVLHlCQUF5QjttR0FBekIseUJBQXlCLGlGQTVzTDFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3M0JULDJwbEhBajRCQyxPQUFPLHdjQUNQLGtCQUFrQiw4RkFDbEIsY0FBYyx1R0FDZCxXQUFXLDhmQUNYLG9CQUFvQiw2REFDcEIseUJBQXlCLCtGQUN6Qix3QkFBd0IscUZBQ3hCLHlCQUF5Qjs7NEZBOHNMaEIseUJBQXlCO2tCQXp0THJDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIseUJBQXlCO3dCQUN6Qix3QkFBd0I7d0JBQ3hCLHlCQUF5QjtxQkFDMUIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdzNCVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENka0RyYWcsIENka0RyYWdEcm9wLCBDZGtEcmFnUGxhY2Vob2xkZXIsIENka0RyYWdQcmV2aWV3LCBDZGtEcm9wTGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuXG5pbXBvcnQgeyBMaWdodFJpcHBsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGlnaHQtcmlwcGxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgQ2hyaXN0aWFuaXR5Q2FyZENvbXBvbmVudCwgQ2hyaXN0aWFuaXR5Q2FyZFJlbmRlck1vZGVsLCBDaHJpc3RpYW5pdHlDYXJkUmVuZGVyVHlwZSB9IGZyb20gJy4vY2hyaXN0aWFuaXR5LWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IE1pbmlHYW1lQ2FsbG91dENvbXBvbmVudCwgTWluaUdhbWVDYWxsb3V0TWV0YWRhdGEgfSBmcm9tICcuL21pbmktZ2FtZS1jYWxsb3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNaW5pR2FtZVNjb3JlUG9wQ29tcG9uZW50LCBNaW5pR2FtZVNjb3JlUG9wTWV0YWRhdGEgfSBmcm9tICcuL21pbmktZ2FtZS1zY29yZS1wb3AuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIENocmlzdGlhbml0eVJ1bGVNZXNzYWdlcyxcbiAgYWR2YW5jZVR1cm4sXG4gIGNhblVzZU9mZmVyaW5nQWJpbGl0eSBhcyBjYW5Vc2VDaHJpc3RpYW5pdHlPZmZlcmluZ0FiaWxpdHksXG4gIGNhblBsYXlDYXJkLFxuICBjbGVhbnVwRGVzdHJveWVkLFxuICBldmFsdWF0ZVZpY3RvcnksXG4gIHBsYXlDYXJkRnJvbUhhbmQgYXMgcGxheUNocmlzdGlhbml0eUNhcmRGcm9tSGFuZCxcbiAgcmVhZHlPZmZlcmluZ3MsXG4gIHJlc29sdmVBdHRhY2tDaGFyYWN0ZXIsXG4gIHJlc29sdmVBdHRhY2tMZWFkZXIsXG4gIHJlc29sdmVPZmZlcmluZ0FiaWxpdHksXG4gIHRvdGFsT2ZmZXJpbmdzLFxufSBmcm9tICcuL2NocmlzdGlhbml0eS1ydWxlcyc7XG5pbXBvcnQgeyBNSU5JX0dBTUVTX0kxOE4gfSBmcm9tICcuL21pbmktZ2FtZXMuaTE4bic7XG5pbXBvcnQge1xuICBDaHJpc3RpYW5pdHlDYXJkQmlibGVSZWZlcmVuY2UsXG4gIENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uLFxuICBDaHJpc3RpYW5pdHlDYXJkVHJhbnNsYXRpb24sXG4gIENocmlzdGlhbml0eUNhcmRUeXBlLFxuICBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSxcbiAgQ2hyaXN0aWFuaXR5R2FtZVN0YXRlLFxuICBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlLFxuICBDaHJpc3RpYW5pdHlQbGF5ZXJTdGF0ZSxcbiAgQ2hyaXN0aWFuaXR5U2VhdCxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlDYXJkUHJldmlldyB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGV5ZWJyb3c6IHN0cmluZztcbiAgbWV0YTogc3RyaW5nO1xuICBib2R5OiBzdHJpbmc7XG4gIGNhcmRJZD86IHN0cmluZztcbiAgc291cmNlPzogJ2hhbmQnIHwgJ2JvYXJkJyB8ICdwaWxlJyB8ICdoaXN0b3J5JyB8ICdvZmZlcmluZ3MnIHwgJ3BsYWNlJyB8ICdnYWxsZXJ5JyB8ICdsZWFkZXItY2hvaWNlJztcbiAgc2VhdD86IENocmlzdGlhbml0eVNlYXQ7XG4gIG9mZmVyaW5nSW5zdGFuY2VJZD86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eUluZm9QYW5lbCB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGV5ZWJyb3c6IHN0cmluZztcbiAgbWV0YTogc3RyaW5nO1xuICBib2R5OiBzdHJpbmc7XG4gIGZhY3RzOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eVByZXZpZXdSdWxlIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgYm9keTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQ2hyaXN0aWFuaXR5UHJldmlld0FiaWxpdHkge1xuICBpbmRleDogbnVtYmVyO1xuICB0aXRsZTogc3RyaW5nO1xuICBib2R5OiBzdHJpbmc7XG4gIGNhblVzZTogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eVByZXZpZXdUaWx0IHtcbiAgcm90YXRlWDogbnVtYmVyO1xuICByb3RhdGVZOiBudW1iZXI7XG4gIHNoaWZ0WDogbnVtYmVyO1xuICBzaGlmdFk6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eUltcGFjdEV2ZW50IHtcbiAgaWQ6IG51bWJlcjtcbiAgdGV4dDogc3RyaW5nO1xuICB0b25lOiAnZGFtYWdlJyB8ICdoZWFsJyB8ICdyZXNvdXJjZSc7XG4gIHNlYXQ6IENocmlzdGlhbml0eVNlYXQ7XG4gIHRhcmdldDogJ2xlYWRlcicgfCAnYmF0dGxlJyB8ICdvZmZlcmluZ3MnO1xufVxuXG5pbnRlcmZhY2UgQ2hyaXN0aWFuaXR5Q29tYmF0VHJhaWwge1xuICBmcm9tWDogc3RyaW5nO1xuICBmcm9tWTogc3RyaW5nO1xuICBtaWRYOiBzdHJpbmc7XG4gIG1pZFk6IHN0cmluZztcbiAgbGVuZ3RoOiBzdHJpbmc7XG4gIGFuZ2xlOiBzdHJpbmc7XG4gIHRvbmU6ICdhdHRhY2snIHwgJ2xlYWRlcicgfCAnY2hhcmFjdGVyJztcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eUNvbWJhdEFuaW1hdGlvbiB7XG4gIGF0dGFja2VySW5zdGFuY2VJZDogc3RyaW5nO1xuICBhdHRhY2tlclNlYXQ6IENocmlzdGlhbml0eVNlYXQ7XG4gIHRhcmdldEluc3RhbmNlSWQ/OiBzdHJpbmc7XG4gIHRhcmdldFNlYXQ6IENocmlzdGlhbml0eVNlYXQ7XG4gIHRhcmdldDogJ2xlYWRlcicgfCAnY2hhcmFjdGVyJztcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eVJlc29sdmVkQ2FyZFRleHQge1xuICBuYW1lOiBzdHJpbmc7XG4gIGZ1bGxOYW1lPzogc3RyaW5nO1xuICB2ZXJzZVRleHQ/OiBzdHJpbmc7XG4gIHNjcmlwdHVyZT86IHN0cmluZztcbiAgYWJpbGl0eU5hbWU/OiBzdHJpbmc7XG4gIGFiaWxpdHlUZXh0Pzogc3RyaW5nO1xuICBhYmlsaXRpZXM/OiBDaHJpc3RpYW5pdHlDYXJkVHJhbnNsYXRpb25bJ2FiaWxpdGllcyddO1xufVxuXG5pbnRlcmZhY2UgQ2hyaXN0aWFuaXR5RWRpdGlvbkNhdGFsb2cge1xuICBlZGl0aW9uPzoge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIG51bWJlcj86IG51bWJlcjtcbiAgICBzbHVnPzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbiAgfTtcbiAgY2FyZHM/OiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbltdO1xufVxuXG50eXBlIENocmlzdGlhbml0eUdhbGxlcnlUeXBlRmlsdGVyID0gJ2FsbCcgfCBDaHJpc3RpYW5pdHlDYXJkVHlwZTtcbnR5cGUgQ2hyaXN0aWFuaXR5U2NyZWVuID0gJ3NwbGFzaCcgfCAnaG9tZScgfCAndGFibGUnO1xudHlwZSBDaHJpc3RpYW5pdHlDYXRhbG9nTG9hZFN0YXRlID0gJ2xvYWRpbmcnIHwgJ3JlYWR5JyB8ICdmYWxsYmFjayc7XG50eXBlIENocmlzdGlhbml0eVR1dG9yaWFsUGhhc2UgPSAnY29pbicgfCAnbGVhZGVyX3BpY2snIHwgJ2luX3Byb2dyZXNzJyB8ICdmaW5pc2hlZCc7XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlUdXRvcmlhbFNldHVwIHtcbiAgY29pbldpbm5lcjogQ2hyaXN0aWFuaXR5U2VhdDtcbiAgbGVhZGVyUGlja2VyOiBDaHJpc3RpYW5pdHlTZWF0O1xuICBmaXJzdFBsYXllcjogQ2hyaXN0aWFuaXR5U2VhdDtcbiAgYXZhaWxhYmxlTGVhZGVyczogc3RyaW5nW107XG4gIHBsYXllckxlYWRlcklkPzogc3RyaW5nO1xuICBvcHBvbmVudExlYWRlcklkPzogc3RyaW5nO1xufVxuXG5jb25zdCBHRU5FU0lTX0NBVEFMT0dfVVJMID0gJ2Fzc2V0cy9nYW1lcy9jaHJpc3RpYW5pdHkvZGF0YS8wMS1nZW5lc2lzLmNhcmRzLmpzb24nO1xuY29uc3QgR0VORVNJU19JQ09OX1VSTCA9ICdhc3NldHMvZ2FtZXMvY2hyaXN0aWFuaXR5L2ljb25zLzEtaWNvbi5wbmcnO1xuY29uc3QgVFVUT1JJQUxfQ0hBUkFDVEVSX0xJTUlUID0gMTI7XG5jb25zdCBUVVRPUklBTF9PRkZFUklOR19MSU1JVCA9IDY7XG5jb25zdCBUVVRPUklBTF9PUEVOSU5HX0hBTkRfU0laRSA9IDU7XG5jb25zdCBUVVRPUklBTF9MRUFERVJfQ0hPSUNFX0NPVU5UID0gMjtcbmNvbnN0IFRVVE9SSUFMX0xFQURFUl9DSE9JQ0VfU0VDT05EUyA9IDE1O1xuY29uc3QgVFVUT1JJQUxfU0VFRCA9IDIwMjYwNzI4O1xuY29uc3QgU1BMQVNIX01JTl9EVVJBVElPTl9NUyA9IDcyMDtcbmNvbnN0IENIUklTVElBTklUWV9QUkVWSUVXX05FVVRSQUxfVElMVDogQ2hyaXN0aWFuaXR5UHJldmlld1RpbHQgPSB7IHJvdGF0ZVg6IDAsIHJvdGF0ZVk6IDAsIHNoaWZ0WDogMCwgc2hpZnRZOiAwIH07XG5cbmNvbnN0IFNUQVJURVJfQ0FSRFM6IFJlY29yZDxzdHJpbmcsIENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uPiA9IHtcbiAgb19zaW1wbGU6IHtcbiAgICBpZDogJ29fc2ltcGxlJyxcbiAgICBuYW1lOiAnT2ZyZW5kYSBzaW1wbGUnLFxuICAgIHR5cGU6ICdvZmZlcmluZycsXG4gICAgY29zdDogMCxcbiAgICBhdHRhY2s6IDAsXG4gICAgbGlmZTogMSxcbiAgICB2ZXJzZVRleHQ6ICdVbmEgb2ZyZW5kYSBzZW5jaWxsYSBxdWVkYSBsaXN0YSBwYXJhIHNvc3RlbmVyIHR1cyBzaWd1aWVudGVzIGp1Z2FkYXMuJyxcbiAgICBzY3JpcHR1cmU6ICdHZW5lc2lzIDQ6NCcsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDAxLzAyMCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAnbm9ybWFsJyxcbiAgfSxcbiAgb19mb3JiaWRkZW46IHtcbiAgICBpZDogJ29fZm9yYmlkZGVuJyxcbiAgICBuYW1lOiAnRWwgZnJ1dG8gcHJvaGliaWRvJyxcbiAgICB0eXBlOiAnb2ZmZXJpbmcnLFxuICAgIGNvc3Q6IDAsXG4gICAgYXR0YWNrOiAwLFxuICAgIGxpZmU6IDIsXG4gICAgYWJpbGl0eU5hbWU6ICdDb25vY2ltaWVudG8gZGVsIGJpZW4geSBkZWwgbWFsJyxcbiAgICBhYmlsaXR5VGV4dDogJ0dlbmVyYSBlbCB2YWxvciBkZSAyIG9mcmVuZGFzLiBBbCB1c2FybGEsIGluZmxpZ2UgMSBwdW50byBkZSBkYcOxbyBhbCBsw61kZXIuJyxcbiAgICBhYmlsaXR5Q29zdDogMCxcbiAgICB2ZXJzZVRleHQ6ICdEaW9zIGVsIFNlw7FvciBwdXNvIGFsIGhvbWJyZSBlbiBlbCBqYXJkw61uIGRlIEVkw6luIHBhcmEgcXVlIGxvIGxhYnJhcmEgeSBsbyBjdWlkYXJhLicsXG4gICAgc2NyaXB0dXJlOiAnR2VuZXNpcyAyOjE3IE5CVicsXG4gICAgZWRpdGlvbjogJ0dFTicsXG4gICAgY29sbGVjdG9yTnVtYmVyOiAnMDEyLzE4MCcsXG4gICAgeWVhcjogJzIwMjYnLFxuICAgIGF1dGhvcjogJ01WUCcsXG4gICAgcmFyaXR5OiAndW5jb21tb24nLFxuICB9LFxuICBwX3Njb3V0OiB7XG4gICAgaWQ6ICdwX3Njb3V0JyxcbiAgICBuYW1lOiAnU2NvdXQnLFxuICAgIHR5cGU6ICdjaGFyYWN0ZXInLFxuICAgIGNvc3Q6IDEsXG4gICAgYXR0YWNrOiAxLFxuICAgIGxpZmU6IDEsXG4gICAgdmVyc2VUZXh0OiAnVW4gZXhwbG9yYWRvciBodW1pbGRlIGFicmUgY2FtaW5vIGFudGVzIGRlIHF1ZSBsbGVndWUgbGEgYmF0YWxsYS4nLFxuICAgIHNjcmlwdHVyZTogJ0dlbmVzaXMgMTM6MTcnLFxuICAgIGVkaXRpb246ICdHRU4nLFxuICAgIGNvbGxlY3Rvck51bWJlcjogJzAwMi8wMjAnLFxuICAgIHllYXI6ICcyMDI2JyxcbiAgICBhdXRob3I6ICdNVlAnLFxuICAgIHJhcml0eTogJ25vcm1hbCcsXG4gIH0sXG4gIHBfZ3VhcmQ6IHsgaWQ6ICdwX2d1YXJkJywgbmFtZTogJ0d1YXJkJywgdHlwZTogJ2NoYXJhY3RlcicsIGNvc3Q6IDIsIGF0dGFjazogMSwgbGlmZTogMywgZWRpdGlvbjogJ0dFTicsIGNvbGxlY3Rvck51bWJlcjogJzAwMy8wMjAnLCB5ZWFyOiAnMjAyNicsIGF1dGhvcjogJ01WUCcsIHJhcml0eTogJ25vcm1hbCcgfSxcbiAgcF93YXJyaW9yOiB7IGlkOiAncF93YXJyaW9yJywgbmFtZTogJ1dhcnJpb3InLCB0eXBlOiAnY2hhcmFjdGVyJywgY29zdDogMiwgYXR0YWNrOiAyLCBsaWZlOiAyLCBlZGl0aW9uOiAnR0VOJywgY29sbGVjdG9yTnVtYmVyOiAnMDA0LzAyMCcsIHllYXI6ICcyMDI2JywgYXV0aG9yOiAnTVZQJywgcmFyaXR5OiAnbm9ybWFsJyB9LFxuICBwX2VsZGVyOiB7IGlkOiAncF9lbGRlcicsIG5hbWU6ICdFbGRlcicsIHR5cGU6ICdjaGFyYWN0ZXInLCBjb3N0OiAzLCBhdHRhY2s6IDIsIGxpZmU6IDQsIGVkaXRpb246ICdHRU4nLCBjb2xsZWN0b3JOdW1iZXI6ICcwMDUvMDIwJywgeWVhcjogJzIwMjYnLCBhdXRob3I6ICdNVlAnLCByYXJpdHk6ICd1bmNvbW1vbicgfSxcbiAgcF9jaGFtcGlvbjogeyBpZDogJ3BfY2hhbXBpb24nLCBuYW1lOiAnQ2hhbXBpb24nLCB0eXBlOiAnY2hhcmFjdGVyJywgY29zdDogNCwgYXR0YWNrOiA0LCBsaWZlOiA0LCBlZGl0aW9uOiAnR0VOJywgY29sbGVjdG9yTnVtYmVyOiAnMDA2LzAyMCcsIHllYXI6ICcyMDI2JywgYXV0aG9yOiAnTVZQJywgcmFyaXR5OiAncmFyZScgfSxcbn07XG5cbmNvbnN0IFNUQVJUSU5HX1NIQVJFRF9ERUNLID0gW1xuICAnb19zaW1wbGUnLFxuICAncF9zY291dCcsXG4gICdvX2ZvcmJpZGRlbicsXG4gICdvX3NpbXBsZScsXG4gICdwX2d1YXJkJyxcbiAgJ3Bfd2FycmlvcicsXG4gICdvX3NpbXBsZScsXG4gICdwX2VsZGVyJyxcbiAgJ3Bfc2NvdXQnLFxuICAnb19zaW1wbGUnLFxuICAncF9jaGFtcGlvbicsXG4gICdwX2d1YXJkJyxcbiAgJ29fc2ltcGxlJyxcbiAgJ3Bfd2FycmlvcicsXG4gICdwX3Njb3V0JyxcbiAgJ29fc2ltcGxlJyxcbiAgJ3BfZWxkZXInLFxuICAncF9ndWFyZCcsXG4gICdvX3NpbXBsZScsXG5dO1xuXG5jb25zdCBTVEFSVElOR19HQU1FOiBDaHJpc3RpYW5pdHlHYW1lU3RhdGUgPSB7XG4gIGdhbWVJZDogJ21vY2stY2hyaXN0aWFuaXR5JyxcbiAgc3RhdHVzOiAnaW5fcHJvZ3Jlc3MnLFxuICBtb2RlOiAnbG9jYWxfcGFzcycsXG4gIHR1cm5Pd25lcjogJ1AxJyxcbiAgcmV2aXNpb246IDAsXG4gIHR1cm5Db3VudDogMSxcbiAgbWF0Y2hTY29yZTogeyBQMTogMCwgUDI6IDAgfSxcbiAgc2hhcmVkRGVjazogU1RBUlRJTkdfU0hBUkVEX0RFQ0ssXG4gIHBsYWNlWm9uZTogW10sXG4gIGhpc3Rvcnlab25lOiBbXSxcbiAgcGxheWVyczoge1xuICAgIFAxOiB7XG4gICAgICBzZWF0OiAnUDEnLFxuICAgICAgZGlzcGxheU5hbWU6ICdKdWdhZG9yJyxcbiAgICAgIGF2YXRhcjogJ0onLFxuICAgICAgYXZhdGFyQ29sb3I6ICcjMjU2M2ViJyxcbiAgICAgIGxlYWRlck5hbWU6ICdBZGFtJyxcbiAgICAgIGxlYWRlckhwOiAxNSxcbiAgICAgIGxlYWRlck1heEhwOiAxNSxcbiAgICAgIG9mZmVyaW5nczogW1xuICAgICAgICB7IGluc3RhbmNlSWQ6ICdwMV9vZmZlcmluZ18wMDEnLCBjYXJkSWQ6ICdvX3NpbXBsZScsIG5hbWU6ICdPZnJlbmRhIHNpbXBsZScsIG93bmVyOiAnUDEnLCByZWFkeTogdHJ1ZSwgdmFsdWU6IDEgfSxcbiAgICAgICAge1xuICAgICAgICAgIGluc3RhbmNlSWQ6ICdwMV9vZmZlcmluZ18wMDInLFxuICAgICAgICAgIGNhcmRJZDogJ29fZm9yYmlkZGVuJyxcbiAgICAgICAgICBuYW1lOiAnRWwgZnJ1dG8gcHJvaGliaWRvJyxcbiAgICAgICAgICBvd25lcjogJ1AxJyxcbiAgICAgICAgICByZWFkeTogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogMixcbiAgICAgICAgICBhYmlsaXR5TmFtZTogJ0Nvbm9jaW1pZW50byBkZWwgYmllbiB5IGRlbCBtYWwnLFxuICAgICAgICAgIGFiaWxpdHlUZXh0OiAnR2VuZXJhIGVsIHZhbG9yIGRlIDIgb2ZyZW5kYXMuIEFsIHVzYXJsYSwgaW5mbGlnZSAxIHB1bnRvIGRlIGRhw7FvIGFsIGxpZGVyLicsXG4gICAgICAgICAgYWJpbGl0eUNvc3Q6IDAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgb2ZmZXJpbmdQbGF5ZWRUaGlzVHVybjogZmFsc2UsXG4gICAgICBoYW5kOiBbJ29fc2ltcGxlJywgJ3Bfc2NvdXQnLCAncF93YXJyaW9yJywgJ3BfZ3VhcmQnXSxcbiAgICAgIGJhdHRsZVpvbmU6IFtdLFxuICAgIH0sXG4gICAgUDI6IHtcbiAgICAgIHNlYXQ6ICdQMicsXG4gICAgICBkaXNwbGF5TmFtZTogJ1JpdmFsJyxcbiAgICAgIGF2YXRhcjogJ1InLFxuICAgICAgYXZhdGFyQ29sb3I6ICcjYjQ1MzA5JyxcbiAgICAgIGxlYWRlck5hbWU6ICdOb2FoJyxcbiAgICAgIGxlYWRlckhwOiAxNSxcbiAgICAgIGxlYWRlck1heEhwOiAxNSxcbiAgICAgIG9mZmVyaW5nczogW3sgaW5zdGFuY2VJZDogJ3AyX29mZmVyaW5nXzAwMScsIGNhcmRJZDogJ29fc2ltcGxlJywgbmFtZTogJ09mcmVuZGEgc2ltcGxlJywgb3duZXI6ICdQMicsIHJlYWR5OiB0cnVlLCB2YWx1ZTogMSB9XSxcbiAgICAgIG9mZmVyaW5nUGxheWVkVGhpc1R1cm46IGZhbHNlLFxuICAgICAgaGFuZENvdW50OiA0LFxuICAgICAgYmF0dGxlWm9uZTogW1xuICAgICAgICB7XG4gICAgICAgICAgaW5zdGFuY2VJZDogJ29wcF8wMDEnLFxuICAgICAgICAgIGNhcmRJZDogJ3Bfc2NvdXQnLFxuICAgICAgICAgIG5hbWU6ICdTY291dCcsXG4gICAgICAgICAgb3duZXI6ICdQMicsXG4gICAgICAgICAgY29udHJvbGxlcjogJ1AyJyxcbiAgICAgICAgICBzbG90OiAwLFxuICAgICAgICAgIGF0dGFjazogMSxcbiAgICAgICAgICBjdXJyZW50SHA6IDEsXG4gICAgICAgICAgbWF4SHA6IDEsXG4gICAgICAgICAgY2FuQXR0YWNrOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAgbG9nOiBbJ1BhcnRpZGEgaW5pY2lhZGEuJ10sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY2hyaXN0aWFuaXR5LWdhbWUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ2RrRHJhZyxcbiAgICBDZGtEcmFnUGxhY2Vob2xkZXIsXG4gICAgQ2RrRHJhZ1ByZXZpZXcsXG4gICAgQ2RrRHJvcExpc3QsXG4gICAgTGlnaHRSaXBwbGVEaXJlY3RpdmUsXG4gICAgQ2hyaXN0aWFuaXR5Q2FyZENvbXBvbmVudCxcbiAgICBNaW5pR2FtZUNhbGxvdXRDb21wb25lbnQsXG4gICAgTWluaUdhbWVTY29yZVBvcENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bWFpblxuICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktc2hlbGxcIlxuICAgICAgW2NsYXNzLmhhcy1tb2RhbC1vcGVuXT1cImhhc01vZGFsT3ZlcmxheSgpXCJcbiAgICAgIFtjbGFzcy5pcy1wcmVwYXJpbmddPVwic2NyZWVuKCkgPT09ICd0YWJsZScgJiYgdHV0b3JpYWxQaGFzZSgpICE9PSAnaW5fcHJvZ3Jlc3MnICYmIHR1dG9yaWFsUGhhc2UoKSAhPT0gJ2ZpbmlzaGVkJ1wiXG4gICAgICBbY2xhc3MuaXMtb2ZmZXJpbmctZHJvcC1hY3RpdmVdPVwiY2FuUGxhY2VTZWxlY3RlZE9mZmVyaW5nKCkgfHwgaXNEcmFnZ2luZ09mZmVyaW5nKClcIlxuICAgID5cbiAgICAgIEBpZiAoc2NyZWVuKCkgPT09ICdzcGxhc2gnKSB7XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNwbGFzaFwiIHJvbGU9XCJzdGF0dXNcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNwbGFzaF9fbWFya1wiPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlTcGxhc2hFeWVicm93JykgfX08L3NwYW4+XG4gICAgICAgICAgICA8aDI+e3sgdCgnY2hyaXN0aWFuaXR5U3BsYXNoVGl0bGUnKSB9fTwvaDI+XG4gICAgICAgICAgICA8cD57eyBzcGxhc2hTdGF0dXNUZXh0KCkgfX08L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH0gQGVsc2UgaWYgKHNjcmVlbigpID09PSAnaG9tZScpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktc3RhcnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXN0YXJ0X19oZXJvXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXN0YXJ0X19jb3B5XCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eUdlbmVzaXNFZGl0aW9uJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxoMj57eyB0KCdjaHJpc3RpYW5pdHlTdGFydFRpdGxlJykgfX08L2gyPlxuICAgICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlTdGFydEJvZHknKSB9fTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1zdGFydF9fZmFuXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIEBmb3IgKGNhcmQgb2Ygc3RhcnRGZWF0dXJlZENhcmRzKCk7IHRyYWNrIGNhcmQuaWQpIHtcbiAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkXG4gICAgICAgICAgICAgICAgICBbY2FyZF09XCJkZWZpbml0aW9uVG9SZW5kZXJDYXJkKGNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJiYWJ5XCJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwic3RhcnRGZWF0dXJlZENhcmRUcmFuc2Zvcm0oJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkc1wiPlxuICAgICAgICAgICAgPGFydGljbGU+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgdCgnY2hyaXN0aWFuaXR5VHV0b3JpYWxNb2RlJykgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPHA+e3sgdCgnY2hyaXN0aWFuaXR5VHV0b3JpYWxNb2RlQm9keScpIH19PC9wPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmltYXJ5LWFjdGlvblwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJzdGFydFR1dG9yaWFsKClcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlTdGFydFR1dG9yaWFsJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgICA8YXJ0aWNsZT5cbiAgICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjaHJpc3RpYW5pdHlHYWxsZXJ5JykgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPHA+e3sgdCgnY2hyaXN0aWFuaXR5R2FsbGVyeU1vZGVCb2R5JykgfX08L3A+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb25cIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwib3BlbkdhbGxlcnkoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2NocmlzdGlhbml0eU9wZW5HYWxsZXJ5JykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgICA8YXJ0aWNsZT5cbiAgICAgICAgICAgICAgPHN0cm9uZz57eyB0KCdjaHJpc3RpYW5pdHlIb3dUb1BsYXknKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlIb3dUb1BsYXlCb2R5JykgfX08L3A+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb25cIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwiaW5zcGVjdEhvd1RvUGxheSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnbGVhcm5Nb3JlJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1zdGFydF9fc3RhdHVzXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlFZGl0aW9uU3RhdHVzJylcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IGdhbGxlcnlFZGl0aW9uTGFiZWwoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eVR1dG9yaWFsQWN0aXZlJykgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyBjYXRhbG9nU3RhdHVzTGFiZWwoKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1zdGFydF9fbW9kZXNcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUZ1dHVyZU1vZGVzJylcIj5cbiAgICAgICAgICAgIEBmb3IgKG1vZGUgb2YgZnV0dXJlTW9kZXMoKTsgdHJhY2sgbW9kZS50aXRsZSkge1xuICAgICAgICAgICAgICA8YXJ0aWNsZT5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IG1vZGUudGl0bGUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8cD57eyBtb2RlLmJvZHkgfX08L3A+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnc29vblRpdGxlJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXBcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1tYXRjaC1zdHJpcFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5TWF0Y2hTY29yZScpXCI+XG4gICAgICAgIDxhcnRpY2xlIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWF2YXRhclwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cInBsYXllcigpLmF2YXRhckNvbG9yXCI+e3sgcGxheWVyKCkuYXZhdGFyIH19PC9zcGFuPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IHBsYXllcigpLmRpc3BsYXlOYW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8c21hbGw+e3sgcGxheWVyTGVhZGVyRGlzcGxheU5hbWUocGxheWVyKCkpIH19IMK3IHt7IHBsYXllcigpLmxlYWRlckhwIH19L3t7IHBsYXllcigpLmxlYWRlck1heEhwIH19PC9zbWFsbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNjb3JlYm9hcmRcIj5cbiAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlNYXRjaCcpIH19PC9zcGFuPlxuICAgICAgICAgIDxzdHJvbmc+e3sgZ2FtZSgpLm1hdGNoU2NvcmUuUDEgfX0te3sgZ2FtZSgpLm1hdGNoU2NvcmUuUDIgfX08L3N0cm9uZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxhcnRpY2xlIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBjaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyLS1vcHBvbmVudFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWF2YXRhclwiIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIm9wcG9uZW50KCkuYXZhdGFyQ29sb3JcIj57eyBvcHBvbmVudCgpLmF2YXRhciB9fTwvc3Bhbj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHN0cm9uZz57eyBvcHBvbmVudCgpLmRpc3BsYXlOYW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgICA8c21hbGw+e3sgcGxheWVyTGVhZGVyRGlzcGxheU5hbWUob3Bwb25lbnQoKSkgfX0gwrcge3sgb3Bwb25lbnQoKS5sZWFkZXJIcCB9fS97eyBvcHBvbmVudCgpLmxlYWRlck1heEhwIH19PC9zbWFsbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICA8c2VjdGlvblxuICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS10dXJuLWJhbm5lclwiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LXR1cm4tYmFubmVyXCJcbiAgICAgICAgW2NsYXNzLmlzLW93bi10dXJuXT1cImlzT3duVHVybigpXCJcbiAgICAgICAgW2NsYXNzLmlzLXJpdmFsLXR1cm5dPVwiIWlzT3duVHVybigpICYmIGdhbWUoKS5zdGF0dXMgPT09ICdpbl9wcm9ncmVzcydcIlxuICAgICAgICBbY2xhc3MuaXMtZmluaXNoZWRdPVwiZ2FtZSgpLnN0YXR1cyA9PT0gJ2ZpbmlzaGVkJ1wiXG4gICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICA+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5VHVybicpIH19IHt7IGdhbWUoKS50dXJuQ291bnQgfX08L3NwYW4+XG4gICAgICAgICAgPHN0cm9uZz57eyB0dXJuQmFubmVyVGl0bGUoKSB9fTwvc3Ryb25nPlxuICAgICAgICAgIDxwPnt7IHR1cm5CYW5uZXJCb2R5KCkgfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXR1cm4tYWN0aW9uc1wiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktZW5kLXR1cm5cIlxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktZW5kLXR1cm5cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc093blR1cm4oKSB8fCB0dXRvcmlhbFBoYXNlKCkgIT09ICdpbl9wcm9ncmVzcycgfHwgISFjb21iYXRBbmltYXRpb24oKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZW5kVHVybigpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlFbmRUdXJuJykgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1vcHRpb25zLWJ1dHRvblwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LW9wdGlvbnMtYnV0dG9uXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cInRvZ2dsZU9wdGlvbnMoKVwiPlxuICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5T3B0aW9ucycpIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKHNob3dPcHRpb25zKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9wdGlvbnMtbWVudVwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LW9wdGlvbnMtbWVudVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlc3RhcnRUdXRvcmlhbCgpXCI+e3sgdCgnY2hyaXN0aWFuaXR5UmVzdGFydCcpIH19PC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwiZ2FtZSgpLnN0YXR1cyA9PT0gJ2ZpbmlzaGVkJ1wiIChjbGljayk9XCJyZXNpZ25UdXRvcmlhbCgpXCI+e3sgdCgnY2hyaXN0aWFuaXR5UmVzaWduJykgfX08L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJyZXR1cm5Ub0NocmlzdGlhbml0eUhvbWUoKVwiPnt7IHQoJ2NocmlzdGlhbml0eUJhY2tUb01lbnUnKSB9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYgY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGFuZC1tZXRlciBjaHJpc3RpYW5pdHktaGFuZC1tZXRlci0tb3Bwb25lbnRcIj5cbiAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlIYW5kJykgfX08L3NwYW4+XG4gICAgICAgICAgPHN0cm9uZz57eyBvcHBvbmVudEhhbmRDb3VudCgpIH19PC9zdHJvbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oYW5kLWZhbiBjaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50XCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktb3Bwb25lbnQtaGFuZFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5T3Bwb25lbnRIYW5kJylcIj5cbiAgICAgICAgICBAZm9yIChfIG9mIGhpZGRlbkhhbmRDYXJkcyhvcHBvbmVudEhhbmRDb3VudCgpKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1oaWRkZW4tY2FyZC1idXR0b24gY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvblwiXG4gICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwiZmFuVHJhbnNmb3JtKCRpbmRleCwgb3Bwb25lbnRIYW5kQ291bnQoKSwgdHJ1ZSlcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUhpZGRlbkNhcmQnKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiaGlkZGVuQ2FyZFJlbmRlckNhcmQoKVwiIHZhcmlhbnQ9XCJiYWNrXCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktdGFibGVcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS10YWJsZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5VGFibGUnKVwiPlxuICAgICAgICBAaWYgKHR1dG9yaWFsUGhhc2UoKSAhPT0gJ2luX3Byb2dyZXNzJyAmJiB0dXRvcmlhbFBoYXNlKCkgIT09ICdmaW5pc2hlZCcpIHtcbiAgICAgICAgICA8c2VjdGlvblxuICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktc2V0dXAtcGFuZWxcIlxuICAgICAgICAgICAgW2NsYXNzLmNocmlzdGlhbml0eS1zZXR1cC1wYW5lbC0tY29pbl09XCJ0dXRvcmlhbFBoYXNlKCkgPT09ICdjb2luJ1wiXG4gICAgICAgICAgICBbY2xhc3MuY2hyaXN0aWFuaXR5LXNldHVwLXBhbmVsLS1sZWFkZXItcGlja109XCJ0dXRvcmlhbFBoYXNlKCkgPT09ICdsZWFkZXJfcGljaydcIlxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktc2V0dXAtcGFuZWxcIlxuICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKHR1dG9yaWFsUGhhc2UoKSA9PT0gJ2NvaW4nKSB7XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1zZXR1cC1jb2luXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtcml2YWwtd29uXT1cInR1dG9yaWFsU2V0dXAoKT8uY29pbldpbm5lciA9PT0gJ1AyJ1wiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5TWF0Y2hTZXR1cCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8aDI+e3sgc2V0dXBUaXRsZSgpIH19PC9oMj5cbiAgICAgICAgICAgICAgPHA+e3sgc2V0dXBCb2R5KCkgfX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAodHV0b3JpYWxQaGFzZSgpID09PSAnY29pbicpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJpbWFyeS1hY3Rpb25cIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1jb250aW51ZS1zZXR1cFwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJjb250aW51ZUFmdGVyQ29pbigpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5Q29udGludWUnKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAodHV0b3JpYWxQaGFzZSgpID09PSAnbGVhZGVyX3BpY2snKSB7XG4gICAgICAgICAgICAgIEBpZiAodHV0b3JpYWxTZXR1cCgpPy5sZWFkZXJQaWNrZXIgPT09ICdQMScgJiYgKHR1dG9yaWFsU2V0dXAoKT8uYXZhaWxhYmxlTGVhZGVycz8ubGVuZ3RoID8/IDApID4gMSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1tZXRlclwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2hvaWNlVGltZXInKS5yZXBsYWNlKCd7c2Vjb25kc30nLCBsZWFkZXJDaG9pY2VTZWNvbmRzKCkudG9TdHJpbmcoKSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8aSBbc3R5bGUudHJhbnNmb3JtXT1cIidzY2FsZVgoJyArIChsZWFkZXJDaG9pY2VTZWNvbmRzKCkgLyBsZWFkZXJDaG9pY2VUb3RhbFNlY29uZHMpICsgJyknXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1ncmlkXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1ncmlkXCI+XG4gICAgICAgICAgICAgICAgICBAZm9yIChsZWFkZXJJZCBvZiB0dXRvcmlhbFNldHVwKCk/LmF2YWlsYWJsZUxlYWRlcnMgPz8gW107IHRyYWNrIGxlYWRlcklkKSB7XG4gICAgICAgICAgICAgICAgICAgIEBsZXQgbGVhZGVyID0gY2FyZERlZmluaXRpb24obGVhZGVySWQpO1xuICAgICAgICAgICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cImNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLW9wdGlvblwiIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJzZWxlY3RlZFR1dG9yaWFsTGVhZGVySWQoKSA9PT0gbGVhZGVySWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtY2FyZCBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXByZXNzZWRdPVwic2VsZWN0ZWRUdXRvcmlhbExlYWRlcklkKCkgPT09IGxlYWRlcklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RUdXRvcmlhbExlYWRlcihsZWFkZXJJZClcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChsZWFkZXIpXCIgdmFyaWFudD1cImJhYnlcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgc2VsZWN0ZWRUdXRvcmlhbExlYWRlcklkKCkgPT09IGxlYWRlcklkID8gdCgnY2hyaXN0aWFuaXR5TGVhZGVyU2VsZWN0ZWQnKSA6IHQoJ2NocmlzdGlhbml0eVNlbGVjdExlYWRlcicpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1kZXRhaWxcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwiaW5zcGVjdExlYWRlckNob2ljZShsZWFkZXJJZClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5Vmlld0RldGFpbHMnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmltYXJ5LWFjdGlvblwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWNvbmZpcm0tbGVhZGVyXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cImNvbmZpcm1UdXRvcmlhbExlYWRlcigpXCI+XG4gICAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlDaG9vc2VUaGlzTGVhZGVyJykgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJpbWFyeS1hY3Rpb25cIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1jb250aW51ZS1zZXR1cFwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJjb250aW51ZUFmdGVyQ29pbigpXCI+XG4gICAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlDb250aW51ZScpIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChnYW1lKCkuc3RhdHVzID09PSAnZmluaXNoZWQnKSB7XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktcmVzdWx0LXBhbmVsXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktcmVzdWx0LXBhbmVsXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlHYW1lT3ZlcicpIH19PC9zcGFuPlxuICAgICAgICAgICAgPGgyPnt7IHJlc3VsdFRpdGxlKCkgfX08L2gyPlxuICAgICAgICAgICAgPHA+e3sgcmVzdWx0Qm9keSgpIH19PC9wPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJpbWFyeS1hY3Rpb25cIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1wbGF5LWFnYWluXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cInJlc3RhcnRUdXRvcmlhbCgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5UGxheUFnYWluJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb25cIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwicmV0dXJuVG9DaHJpc3RpYW5pdHlIb21lKClcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlCYWNrVG9NZW51JykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1pbXBhY3QtbGF5ZXJcIj5cbiAgICAgICAgICBAaWYgKGNvbWJhdFRyYWlsKCk7IGFzIHRyYWlsKSB7XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1jb21iYXQtdHJhaWxcIlxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXMtbGVhZGVyLXRhcmdldF09XCJ0cmFpbC50b25lID09PSAnbGVhZGVyJ1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5pcy1jaGFyYWN0ZXItdGFyZ2V0XT1cInRyYWlsLnRvbmUgPT09ICdjaGFyYWN0ZXInXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC14XT1cInRyYWlsLmZyb21YXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC15XT1cInRyYWlsLmZyb21ZXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1taWQteF09XCJ0cmFpbC5taWRYXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1taWQteV09XCJ0cmFpbC5taWRZXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1sZW5ndGhdPVwidHJhaWwubGVuZ3RoXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1hbmdsZV09XCJ0cmFpbC5hbmdsZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGZvciAoaW1wYWN0IG9mIGltcGFjdEV2ZW50cygpOyB0cmFjayBpbXBhY3QuaWQpIHtcbiAgICAgICAgICAgIDx2YWwtbWluaS1nYW1lLXNjb3JlLXBvcCBbcHJvcHNdPVwiaW1wYWN0UG9wUHJvcHMoaW1wYWN0KVwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY29tYmF0Q2FsbG91dCgpOyBhcyBjYWxsb3V0KSB7XG4gICAgICAgICAgICA8dmFsLW1pbmktZ2FtZS1jYWxsb3V0IFtwcm9wc109XCJjYWxsb3V0XCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSBjaHJpc3RpYW5pdHktcGxheWVyLXNpZGUtLW9wcG9uZW50XCI+XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLXJhY2sgY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrLS1vcHBvbmVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZ3Mtem9uZVwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLVAyXCIgW2NsYXNzLmlzLWVtcHR5LXpvbmVdPVwiIXRvcE9mZmVyaW5nKCdQMicpXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cIm9wZW5PZmZlcmluZ3MoJ1AyJylcIj5cbiAgICAgICAgICAgICAgICBAaWYgKG9mZmVyaW5nU3RhY2soJ1AyJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS16b25lLWNhcmQtc3RhY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAob2ZmZXJpbmcgb2Ygb2ZmZXJpbmdTdGFjaygnUDInKTsgdHJhY2sgb2ZmZXJpbmcuaW5zdGFuY2VJZCkge1xuICAgICAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmRcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjYXJkXT1cIm9mZmVyaW5nLnJlYWR5ID8gb2ZmZXJpbmdSZW5kZXJDYXJkKG9mZmVyaW5nKSA6IGhpZGRlbkNhcmRSZW5kZXJDYXJkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhcmlhbnRdPVwib2ZmZXJpbmcucmVhZHkgPyAnYmFieScgOiAnYmFjaydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCJ6b25lU3RhY2tUcmFuc2Zvcm0oJGluZGV4LCBvZmZlcmluZ1N0YWNrKCdQMicpLmxlbmd0aClcIlxuICAgICAgICAgICAgICAgICAgICAgID48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktZW1wdHktY2FyZC1zbG90XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1Jlc2VydmUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHJlYWR5T2ZmZXJpbmdzKG9wcG9uZW50KCkpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPHNtYWxsPnt7IHQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQmFzZScpIH19IHt7IHRvdGFsT2ZmZXJpbmdzKG9wcG9uZW50KCkpIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktYXR0YWNrLWRyb3AtdGFyZ2V0XCJcbiAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgaWQ9XCJjaHJpc3RpYW5pdHktb3Bwb25lbnQtbGVhZGVyLWRyb3BcIlxuICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJvd25BdHRhY2tlckRyb3BTb3VyY2VJZHMoKVwiXG4gICAgICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImNhbkRyb3BPbk9wcG9uZW50TGVhZGVyXCJcbiAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BPbk9wcG9uZW50TGVhZGVyKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQgY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktbGVhZGVyLVAyXCJcbiAgICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy10YXJnZXRdPVwiaXNPcHBvbmVudExlYWRlclRhcmdldCgpXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtcHJvdGVjdGVkLXRhcmdldF09XCJzZWxlY3RlZEF0dGFja2VyKCkgJiYgaGFzT3Bwb25lbnRHdWFyZHMoKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLWNvbWJhdC10YXJnZXRdPVwiaXNDb21iYXRMZWFkZXJUYXJnZXQoJ1AyJylcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPcHBvbmVudExlYWRlcigpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cImxlYWRlclJlbmRlckNhcmQob3Bwb25lbnQoKSlcIiB2YXJpYW50PVwiYm9hcmRcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXJhY2stc3BhY2VyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIGNocmlzdGlhbml0eS1iYXR0bGUtem9uZS0tb3Bwb25lbnRcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1iYXR0bGUtUDJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eU9wcG9uZW50QmF0dGxlJylcIj5cbiAgICAgICAgICAgIEBmb3IgKHNsb3Qgb2YgYmF0dGxlU2xvdHMoJ1AyJyk7IHRyYWNrIHNsb3QudHJhY2tJZCkge1xuICAgICAgICAgICAgICBAaWYgKHNsb3QuY2FyZCkge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQgY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUgY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJiYXR0bGVDYXJkVGVzdElkKCdQMicsIHNsb3QuY2FyZClcIlxuICAgICAgICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgICAgICAgIFtpZF09XCJvcHBvbmVudFRhcmdldERyb3BJZChzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIm93bkF0dGFja2VyRHJvcFNvdXJjZUlkcygpXCJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImNhbkRyb3BPbk9wcG9uZW50Q2hhcmFjdGVyXCJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdFNvcnRpbmdEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtdGFyZ2V0XT1cImlzT3Bwb25lbnRDaGFyYWN0ZXJUYXJnZXQoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtY29tYmF0LXRhcmdldF09XCJpc0NvbWJhdENoYXJhY3RlclRhcmdldChzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcE9uT3Bwb25lbnRDaGFyYWN0ZXIoJGV2ZW50LCBzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPcHBvbmVudENoYXJhY3RlcihzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cImNoYXJhY3RlclJlbmRlckNhcmQoc2xvdC5jYXJkKVwiIHZhcmlhbnQ9XCJib2FyZFwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1zbG90XCI+PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktc2hhcmVkLXpvbmVcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1zaGFyZWQtem9uZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5U2hhcmVkWm9uZScpXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktem9uZS1waWxlIGNocmlzdGlhbml0eS16b25lLXBpbGUtLWhpc3RvcnlcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1oaXN0b3J5LXpvbmVcIiBbY2xhc3MuaXMtZW1wdHktem9uZV09XCIhdG9wSGlzdG9yeUNhcmQoKVwiIFtjbGFzcy5oYXMtbmV3LWNhcmRdPVwiaGlzdG9yeVB1bHNlKClcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwib3Blbkhpc3RvcnkoKVwiPlxuICAgICAgICAgICAgQGlmIChoaXN0b3J5U3RhY2soKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktem9uZS1jYXJkLXN0YWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoY2FyZElkIG9mIGhpc3RvcnlTdGFjaygpOyB0cmFjayBjYXJkSWQgKyAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmRcbiAgICAgICAgICAgICAgICAgICAgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChjYXJkRGVmaW5pdGlvbihjYXJkSWQpLCB7IHN0YXR1c1RleHQ6IHQoJ2NocmlzdGlhbml0eUhpc3RvcnknKSB9KVwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJiYWJ5XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCJ6b25lU3RhY2tUcmFuc2Zvcm0oJGluZGV4LCBoaXN0b3J5U3RhY2soKS5sZW5ndGgpXCJcbiAgICAgICAgICAgICAgICAgID48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3RcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlIaXN0b3J5JykgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IGdhbWUoKS5oaXN0b3J5Wm9uZS5sZW5ndGggfX08L3N0cm9uZz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS16b25lLXBpbGUgY2hyaXN0aWFuaXR5LXpvbmUtcGlsZS0tZGVja1wiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWRlY2stem9uZVwiIHZhbExpZ2h0UmlwcGxlIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIChjbGljayk9XCJpbnNwZWN0RGVjaygpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1waWxlLWNhcmQtaGludCBjaHJpc3RpYW5pdHktcGlsZS1jYXJkLWhpbnQtLWRlY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgPGk+PC9pPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5RGVjaycpIH19PC9zcGFuPlxuICAgICAgICAgICAgPHN0cm9uZz57eyBnYW1lKCkuc2hhcmVkRGVjay5sZW5ndGggfX08L3N0cm9uZz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCBjaHJpc3RpYW5pdHktem9uZS1jYXJkLS1wbGFjZSBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCJcbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LXBsYWNlLXpvbmVcIlxuICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgIGlkPVwiY2hyaXN0aWFuaXR5LXBsYWNlLWRyb3BcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwiWydjaHJpc3RpYW5pdHktaGFuZC1zb3VyY2UnXVwiXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJjYW5Ecm9wT25QbGFjZVwiXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RTb3J0aW5nRGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbY2xhc3MuaXMtZW1wdHktem9uZV09XCIhYWN0aXZlUGxhY2VDYXJkKClcIlxuICAgICAgICAgICAgW2NsYXNzLmlzLXBsYXktdGFyZ2V0XT1cImNhblBsYWNlU2VsZWN0ZWRQbGFjZSgpIHx8IGlzRHJhZ2dpbmdQbGFjZSgpXCJcbiAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BPblBsYWNlKCRldmVudClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInBsYXlTZWxlY3RlZFBsYWNlT3JJbnNwZWN0KClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBpZiAocGxhY2VTdGFjaygpLmxlbmd0aCkge1xuICAgICAgICAgICAgICBAaWYgKGFjdGl2ZVBsYWNlQ2FyZCgpOyBhcyBwbGFjZUNhcmQpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1wbGFjZS1iYWNrZHJvcFwiIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cInBsYWNlQmFja2Ryb3BJbWFnZShwbGFjZUNhcmQpXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktem9uZS1jYXJkLXN0YWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoY2FyZElkIG9mIHBsYWNlU3RhY2soKTsgdHJhY2sgY2FyZElkICsgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkXG4gICAgICAgICAgICAgICAgICAgIFtjYXJkXT1cImRlZmluaXRpb25Ub1JlbmRlckNhcmQoY2FyZERlZmluaXRpb24oY2FyZElkKSwgeyBzdGF0dXNUZXh0OiB0KCdjaHJpc3RpYW5pdHlQbGFjZScpIH0pXCJcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImJhYnlcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUudHJhbnNmb3JtXT1cInpvbmVTdGFja1RyYW5zZm9ybSgkaW5kZXgsIHBsYWNlU3RhY2soKS5sZW5ndGgpXCJcbiAgICAgICAgICAgICAgICAgID48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3RcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlQbGFjZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgPHN0cm9uZz57eyBnYW1lKCkucGxhY2Vab25lLmxlbmd0aCB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgQGlmIChjYW5QbGFjZVNlbGVjdGVkUGxhY2UoKSB8fCBpc0RyYWdnaW5nUGxhY2UoKSkge1xuICAgICAgICAgICAgICA8ZW0+e3sgdCgnY2hyaXN0aWFuaXR5UGxheUhlcmUnKSB9fTwvZW0+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1wbGF5ZXItc2lkZVwiPlxuICAgICAgICAgIDxzZWN0aW9uXG4gICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1iYXR0bGUtem9uZVwiXG4gICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1iYXR0bGUtUDFcIlxuICAgICAgICAgICAgY2RrRHJvcExpc3RcbiAgICAgICAgICAgIGlkPVwiY2hyaXN0aWFuaXR5LXBsYXllci1iYXR0bGUtc291cmNlXCJcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cImF0dGFja1RhcmdldERyb3BJZHMoKVwiXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RTb3J0aW5nRGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbY2xhc3MuaXMtcGxhY2luZy1jYXJkXT1cImNhblBsYWNlU2VsZWN0ZWRDaGFyYWN0ZXIoKSB8fCBpc0RyYWdnaW5nQ2hhcmFjdGVyKClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlZb3VyQmF0dGxlJylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKHNsb3Qgb2YgYmF0dGxlU2xvdHMoJ1AxJyk7IHRyYWNrIHNsb3QudHJhY2tJZCkge1xuICAgICAgICAgICAgICBAaWYgKHNsb3QuY2FyZCkge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQgY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUgY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJiYXR0bGVDYXJkVGVzdElkKCdQMScsIHNsb3QuY2FyZClcIlxuICAgICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICAgICAgW2Nka0RyYWdEYXRhXT1cInNsb3QuY2FyZC5pbnN0YW5jZUlkXCJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWNhbkRyYWdBdHRhY2tlcihzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwic2VsZWN0ZWRBdHRhY2tlcigpPy5pbnN0YW5jZUlkID09PSBzbG90LmNhcmQuaW5zdGFuY2VJZFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtZXhoYXVzdGVkXT1cIiFzbG90LmNhcmQuY2FuQXR0YWNrXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1yZWFkeS1hdHRhY2tlcl09XCJpc093blR1cm4oKSAmJiBzbG90LmNhcmQuY2FuQXR0YWNrXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1jb21iYXQtYXR0YWNrZXJdPVwiaXNDb21iYXRBdHRhY2tlcihzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJzdGFydERyYWdnaW5nQXR0YWNrZXIoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgICAoY2RrRHJhZ0VuZGVkKT1cImVuZERyYWdnaW5nQXR0YWNrZXIoKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0QXR0YWNrZXIoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJjaGFyYWN0ZXJSZW5kZXJDYXJkKHNsb3QuY2FyZClcIiB2YXJpYW50PVwiYm9hcmRcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjZGtEcmFnUHJldmlldz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1jYXJkLWRyYWctcHJldmlld1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiY2hhcmFjdGVyUmVuZGVyQ2FyZChzbG90LmNhcmQpXCIgdmFyaWFudD1cImJvYXJkXCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjZGtEcmFnUGxhY2Vob2xkZXI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1kcmFnLXBsYWNlaG9sZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNsb3RcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiYmF0dGxlU2xvdFRlc3RJZCgnUDEnLCAkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAgICAgICBbaWRdPVwiYmF0dGxlU2xvdERyb3BJZCgkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwiJGluZGV4XCJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIlsnY2hyaXN0aWFuaXR5LWhhbmQtc291cmNlJ11cIlxuICAgICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwiY2FuRHJvcE9uQmF0dGxlU2xvdFwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RTb3J0aW5nRGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0XT1cImNhblBsYWNlU2VsZWN0ZWRDaGFyYWN0ZXIoKSB8fCBpc0RyYWdnaW5nQ2hhcmFjdGVyKClcIlxuICAgICAgICAgICAgICAgICAgdmFsTGlnaHRSaXBwbGVcbiAgICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcE9uQmF0dGxlU2xvdCgkZXZlbnQsICRpbmRleClcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBsYXlTZWxlY3RlZENhcmQoJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQGlmIChjYW5QbGFjZVNlbGVjdGVkQ2hhcmFjdGVyKCkgfHwgaXNEcmFnZ2luZ0NoYXJhY3RlcigpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eVBsYXlIZXJlJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1wbGF5ZXItcmFja1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZ3Mtem9uZVwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmctZHJvcC10YXJnZXRcIlxuICAgICAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAgICAgaWQ9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLWRyb3BcIlxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIlsnY2hyaXN0aWFuaXR5LWhhbmQtc291cmNlJ11cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1wbGF5LXRhcmdldF09XCJjYW5QbGFjZVNlbGVjdGVkT2ZmZXJpbmcoKSB8fCBpc0RyYWdnaW5nT2ZmZXJpbmcoKVwiXG4gICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwiY2FuRHJvcE9uT2ZmZXJpbmdzXCJcbiAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RTb3J0aW5nRGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wT25PZmZlcmluZ3MoJGV2ZW50KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGVcIlxuICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLVAxXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1lbXB0eS16b25lXT1cIiF0b3BPZmZlcmluZygnUDEnKVwiXG4gICAgICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU9mZmVyaW5nUGlsZSgnUDEnKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQGlmIChvZmZlcmluZ1N0YWNrKCdQMScpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS16b25lLWNhcmQtc3RhY2tcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICBAZm9yIChvZmZlcmluZyBvZiBvZmZlcmluZ1N0YWNrKCdQMScpOyB0cmFjayBvZmZlcmluZy5pbnN0YW5jZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjYXJkXT1cIm9mZmVyaW5nLnJlYWR5ID8gb2ZmZXJpbmdSZW5kZXJDYXJkKG9mZmVyaW5nKSA6IGhpZGRlbkNhcmRSZW5kZXJDYXJkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFyaWFudF09XCJvZmZlcmluZy5yZWFkeSA/ICdiYWJ5JyA6ICdiYWNrJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwiem9uZVN0YWNrVHJhbnNmb3JtKCRpbmRleCwgb2ZmZXJpbmdTdGFjaygnUDEnKS5sZW5ndGgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3RcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1Jlc2VydmUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgcmVhZHlPZmZlcmluZ3MocGxheWVyKCkpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICA8c21hbGw+e3sgdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdCYXNlJykgfX0ge3sgdG90YWxPZmZlcmluZ3MocGxheWVyKCkpIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1sZWFkZXItUDFcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwiaW5zcGVjdExlYWRlcignUDEnKVwiPlxuICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cImxlYWRlclJlbmRlckNhcmQocGxheWVyKCkpXCIgdmFyaWFudD1cImJvYXJkXCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLWNvbW1hbmRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2VcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1hdmF0YXJcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJwbGF5ZXIoKS5hdmF0YXJDb2xvclwiPnt7IHBsYXllcigpLmF2YXRhciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHBsYXllcigpLmRpc3BsYXlOYW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGZcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1oYW5kLW1ldGVyXCI+XG4gICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5SGFuZCcpIH19PC9zcGFuPlxuICAgICAgICAgIDxzdHJvbmc+e3sgcGxheWVyKCkuaGFuZD8ubGVuZ3RoID8/IDAgfX08L3N0cm9uZz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzZWN0aW9uXG4gICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGFuZC1mYW5cIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWhhbmQtUDFcIlxuICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgaWQ9XCJjaHJpc3RpYW5pdHktaGFuZC1zb3VyY2VcIlxuICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cImRyb3BUYXJnZXRJZHMoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlZb3VySGFuZCcpXCJcbiAgICAgICAgICAocG9pbnRlcmxlYXZlKT1cImNsZWFySG92ZXJlZEhhbmRJbmRleCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBmb3IgKGNhcmRJZCBvZiBwbGF5ZXIoKS5oYW5kID8/IFtdOyB0cmFjayBjYXJkSWQgKyAkaW5kZXgpIHtcbiAgICAgICAgICAgIEBsZXQgY2FyZCA9IGNhcmREZWZpbml0aW9uKGNhcmRJZCk7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cInNlbGVjdGVkSGFuZENhcmQoKSA9PT0gY2FyZElkXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmlzLWRyYWdnaW5nXT1cImRyYWdnaW5nQ2FyZElkKCkgPT09IGNhcmRJZFwiXG4gICAgICAgICAgICAgIFtzdHlsZS56LWluZGV4XT1cImhhbmRDYXJkWkluZGV4KCRpbmRleClcIlxuICAgICAgICAgICAgICBbc3R5bGUudHJhbnNmb3JtXT1cImZhblRyYW5zZm9ybSgkaW5kZXgsIHBsYXllcigpLmhhbmQ/Lmxlbmd0aCA/PyAwLCBmYWxzZSlcIlxuICAgICAgICAgICAgICAocG9pbnRlcmVudGVyKT1cInNldEhvdmVyZWRIYW5kSW5kZXgoJGluZGV4KVwiXG4gICAgICAgICAgICAgIChwb2ludGVyZG93bik9XCJzZXRIb3ZlcmVkSGFuZEluZGV4KCRpbmRleClcIlxuICAgICAgICAgICAgICAocG9pbnRlcnVwKT1cInJlbGVhc2VIb3ZlcmVkSGFuZCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkIGNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZCBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJoYW5kQ2FyZFRlc3RJZChjYXJkSWQsICRpbmRleClcIlxuICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICAgIFtjZGtEcmFnRGF0YV09XCJjYXJkSWRcIlxuICAgICAgICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWNhblBsYXkoY2FyZClcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaGFuZENhcmRBY3Rpb25MYWJlbChjYXJkKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cInNlbGVjdGVkSGFuZENhcmQoKSA9PT0gY2FyZElkXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtZGlzYWJsZWRdPVwiIWNhblBsYXkoY2FyZClcIlxuICAgICAgICAgICAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJzdGFydERyYWdnaW5nQ2FyZChjYXJkSWQpXCJcbiAgICAgICAgICAgICAgICAoY2RrRHJhZ0VuZGVkKT1cImVuZERyYWdnaW5nQ2FyZCgpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SGFuZENhcmQoY2FyZElkKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cImRlZmluaXRpb25Ub1JlbmRlckNhcmQoY2FyZClcIiB2YXJpYW50PVwiYmFieVwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjZGtEcmFnUHJldmlldz5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1kcmFnLXByZXZpZXdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJkZWZpbml0aW9uVG9SZW5kZXJDYXJkKGNhcmQpXCIgdmFyaWFudD1cImJhYnlcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGNka0RyYWdQbGFjZWhvbGRlcj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1kcmFnLXBsYWNlaG9sZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1jYXJkLWV5ZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlQcmV2aWV3Q2FyZCcpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW5zcGVjdEhhbmRDYXJkKGNhcmRJZCwgdHJ1ZSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHNlbGVjdGVkUHJldmlldygpKSB7XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctYmFja2Ryb3BcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUNsb3NlUHJldmlldycpXCIgKGNsaWNrKT1cImNsb3NlUHJldmlldygpXCI+PC9idXR0b24+XG4gICAgICAgIDxhc2lkZVxuICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGxcIlxuICAgICAgICAgIFtjbGFzcy5pcy1oaXN0b3J5LXByZXZpZXddPVwiY2FuTmF2aWdhdGVQcmV2aWV3KClcIlxuICAgICAgICAgIFtjbGFzcy5pcy1nYWxsZXJ5LXByZXZpZXddPVwic2VsZWN0ZWRQcmV2aWV3KCk/LnNvdXJjZSA9PT0gJ2dhbGxlcnknXCJcbiAgICAgICAgICBbY2xhc3MuaXMtc2xpZGluZy1wcmV2aW91c109XCJwcmV2aWV3U2xpZGVEaXJlY3Rpb24oKSA9PT0gLTFcIlxuICAgICAgICAgIFtjbGFzcy5pcy1zbGlkaW5nLW5leHRdPVwicHJldmlld1NsaWRlRGlyZWN0aW9uKCkgPT09IDFcIlxuICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctdG9wYmFyXCI+XG4gICAgICAgICAgICBAaWYgKHByZXZpZXdQb3NpdGlvbkxhYmVsKCk7IGFzIHBvc2l0aW9uTGFiZWwpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1wb3NpdGlvblwiPnt7IHBvc2l0aW9uTGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1jbG9zZVwiIChjbGljayk9XCJjbG9zZVByZXZpZXcoKVwiPlxuICAgICAgICAgICAgICB7eyB0KCdjbG9zZScpIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LXN0YWdlXCI+XG4gICAgICAgICAgICAgIEBpZiAoY2FuTmF2aWdhdGVQcmV2aWV3KCkpIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2IGNocmlzdGlhbml0eS1wcmV2aWV3LW5hdi0tcHJldmlvdXNcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlQcmV2aW91c0NhcmQnKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVQcmV2aWV3KC0xKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgJmx0O1xuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1uYXYgY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2LS1uZXh0XCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5TmV4dENhcmQnKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVQcmV2aWV3KDEpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAmZ3Q7XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChzZWxlY3RlZFByZXZpZXdOZWlnaGJvclJlbmRlckNhcmQoLTEpOyBhcyBwcmV2aW91c0NhcmQpIHtcbiAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3QgY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3QtLXByZXZpb3VzXCIgW2NhcmRdPVwicHJldmlvdXNDYXJkXCIgdmFyaWFudD1cImZ1bGxcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLi0tcHJldmlldy1yb3RhdGUteF09XCJwcmV2aWV3VGlsdCgpLnJvdGF0ZVggKyAnZGVnJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLi0tcHJldmlldy1yb3RhdGUteV09XCJwcmV2aWV3VGlsdCgpLnJvdGF0ZVkgKyAnZGVnJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLi0tcHJldmlldy1zaGlmdC14XT1cInByZXZpZXdUaWx0KCkuc2hpZnRYICsgJ3B4J1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLi0tcHJldmlldy1zaGlmdC15XT1cInByZXZpZXdUaWx0KCkuc2hpZnRZICsgJ3B4J1wiXG4gICAgICAgICAgICAgICAgKHBvaW50ZXJtb3ZlKT1cInRpbHRQcmV2aWV3KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChwb2ludGVybGVhdmUpPVwicmVzZXRQcmV2aWV3VGlsdCgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAoc2VsZWN0ZWRQcmV2aWV3UmVuZGVyQ2FyZCgpOyBhcyBwcmV2aWV3Q2FyZCkge1xuICAgICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJwcmV2aWV3Q2FyZFwiIHZhcmlhbnQ9XCJmdWxsXCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgQGlmIChzZWxlY3RlZFByZXZpZXdSZW5kZXJDYXJkKCk/LmJpYmxlQ3JlZGl0OyBhcyBiaWJsZUNyZWRpdCkge1xuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctYmlibGUtY3JlZGl0XCI+e3sgYmlibGVDcmVkaXQgfX08L3A+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChzZWxlY3RlZFByZXZpZXdOZWlnaGJvclJlbmRlckNhcmQoMSk7IGFzIG5leHRDYXJkKSB7XG4gICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWdob3N0IGNocmlzdGlhbml0eS1wcmV2aWV3LWdob3N0LS1uZXh0XCIgW2NhcmRdPVwibmV4dENhcmRcIiB2YXJpYW50PVwiZnVsbFwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1zaWRlXCI+XG4gICAgICAgICAgICAgIEBpZiAocHJldmlld1J1bGUoKTsgYXMgcnVsZSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZS1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+aTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbD57eyB0KCdjaHJpc3RpYW5pdHlDYXJkUnVsZScpIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBydWxlLnRpdGxlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDxwPnt7IHJ1bGUuYm9keSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKHNob3dQcmV2aWV3QWJpbGl0aWVzKCkpIHtcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzXCI+XG4gICAgICAgICAgICAgIDxoZWFkZXIgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbD57eyB0KCdjaHJpc3RpYW5pdHlBYmlsaXRpZXMnKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgICBAaWYgKHNlbGVjdGVkUHJldmlld0FiaWxpdHlQb3NpdGlvbkxhYmVsKCk7IGFzIGFiaWxpdHlQb3NpdGlvbkxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGFiaWxpdHlQb3NpdGlvbkxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoY2FuTmF2aWdhdGVQcmV2aWV3QWJpbGl0aWVzKCkpIHtcbiAgICAgICAgICAgICAgICAgIDxuYXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LW5hdlwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5QWJpbGl0aWVzJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5UHJldmlvdXNDYXJkJylcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVByZXZpZXdBYmlsaXR5KC0xKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAmbHQ7XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlOZXh0Q2FyZCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVQcmV2aWV3QWJpbGl0eSgxKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAmZ3Q7XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9uYXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgICAgICAgQGlmIChzaG93UHJldmlld0FiaWxpdHlUYWJzKCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzXCI+XG4gICAgICAgICAgICAgICAgICBAZm9yIChhYmlsaXR5IG9mIHByZXZpZXdBYmlsaXRpZXMoKTsgdHJhY2sgYWJpbGl0eS5pbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cInNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleCgpID09PSBhYmlsaXR5LmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UHJldmlld0FiaWxpdHkoYWJpbGl0eS5pbmRleClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3sgYWJpbGl0eS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKHNlbGVjdGVkUHJldmlld0FiaWxpdHkoKTsgYXMgYWJpbGl0eSkge1xuICAgICAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IGFiaWxpdHkudGl0bGUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXNjcm9sbFwiPlxuICAgICAgICAgICAgICAgICAgICA8cD57eyBhYmlsaXR5LmJvZHkgfX08L3A+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgICAgICAgPGZvb3RlciBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LXVzZS1hYmlsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFhYmlsaXR5LmNhblVzZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1c2VTZWxlY3RlZFByZXZpZXdBYmlsaXR5KClcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlVc2VBYmlsaXR5JykgfX1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZm9vdGVyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2FzaWRlPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHNlbGVjdGVkSW5mbygpOyBhcyBpbmZvKSB7XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWluZm8tYmFja2Ryb3BcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2Nsb3NlJylcIiAoY2xpY2spPVwiY2xvc2VJbmZvKClcIj48L2J1dHRvbj5cbiAgICAgICAgPGFzaWRlIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWluZm8tcGFuZWxcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2UgY2hyaXN0aWFuaXR5LWluZm8tY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VJbmZvKClcIj5cbiAgICAgICAgICAgIHt7IHQoJ2Nsb3NlJykgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktcnVsZS1ub3RlLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5pPC9zcGFuPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHNtYWxsPnt7IGluZm8uZXllYnJvdyB9fTwvc21hbGw+XG4gICAgICAgICAgICAgIDxoMj57eyBpbmZvLnRpdGxlIH19PC9oMj5cbiAgICAgICAgICAgICAgPHN0cm9uZz57eyBpbmZvLm1ldGEgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPHA+e3sgaW5mby5ib2R5IH19PC9wPlxuICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgQGZvciAoZmFjdCBvZiBpbmZvLmZhY3RzOyB0cmFjayBmYWN0KSB7XG4gICAgICAgICAgICAgICAgICA8bGk+e3sgZmFjdCB9fTwvbGk+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXNpZGU+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc2NyZWVuKCkgPT09ICd0YWJsZScpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktYWN0aW9uc1wiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWFjdGlvbnNcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgICA8cCBjbGFzcz1cImNocmlzdGlhbml0eS1zci1vbmx5XCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktc3RhdHVzXCI+e3sgc3RhdHVzVGV4dCgpIH19PC9wPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LXByaW1hcnktYWN0aW9uXCIgW2Rpc2FibGVkXT1cInR1dG9yaWFsUGhhc2UoKSAhPT0gJ2luX3Byb2dyZXNzJyB8fCBzZWxlY3RlZEFjdGlvbkRpc2FibGVkKClcIiAoY2xpY2spPVwicGxheVNlbGVjdGVkQ2FyZCgpXCI+XG4gICAgICAgICAgICB7eyBzZWxlY3RlZEFjdGlvbkxhYmVsKCkgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHNob3dIaXN0b3J5KCkpIHtcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlzdG9yeS1iYWNrZHJvcFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5Q2xvc2VIaXN0b3J5JylcIiAoY2xpY2spPVwiY2xvc2VIaXN0b3J5KClcIj48L2J1dHRvbj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXJcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlclwiPlxuICAgICAgICAgIDxoZWFkZXI+XG4gICAgICAgICAgICA8aDI+e3sgdCgnY2hyaXN0aWFuaXR5SGlzdG9yeScpIH19PC9oMj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZ2FtZSgpLmhpc3Rvcnlab25lLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlSGlzdG9yeSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICAgIEBpZiAoZ2FtZSgpLmhpc3Rvcnlab25lLmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWRcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWRcIj5cbiAgICAgICAgICAgICAgQGZvciAoY2FyZElkIG9mIGdhbWUoKS5oaXN0b3J5Wm9uZTsgdHJhY2sgY2FyZElkICsgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgQGxldCBjYXJkID0gY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1nYWxsZXJ5LWNhcmQtYnV0dG9uIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIiBbYXR0ci5kYXRhLXRlc3RpZF09XCJoaXN0b3J5Q2FyZFRlc3RJZChjYXJkSWQsICRpbmRleClcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwiaW5zcGVjdEhpc3RvcnlDYXJkKGNhcmRJZClcIj5cbiAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChjYXJkKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHA+e3sgdCgnY2hyaXN0aWFuaXR5SGlzdG9yeUVtcHR5JykgfX08L3A+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc2hvd1BsYWNlKCkpIHtcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlzdG9yeS1iYWNrZHJvcFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5Q2xvc2VIaXN0b3J5JylcIiAoY2xpY2spPVwiY2xvc2VQbGFjZSgpXCI+PC9idXR0b24+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGNocmlzdGlhbml0eS1wbGFjZS1kcmF3ZXJcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1wbGFjZS1kcmF3ZXJcIj5cbiAgICAgICAgICA8aGVhZGVyPlxuICAgICAgICAgICAgPGgyPnt7IHQoJ2NocmlzdGlhbml0eVBsYWNlJykgfX08L2gyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1kaWFsb2ctYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBnYW1lKCkucGxhY2Vab25lLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlUGxhY2UoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2Nsb3NlJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZFwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LXBsYWNlLWdyaWRcIj5cbiAgICAgICAgICAgIEBmb3IgKGNhcmRJZCBvZiBnYW1lKCkucGxhY2Vab25lOyB0cmFjayBjYXJkSWQgKyAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZ2FsbGVyeS1jYXJkLWJ1dHRvbiBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCIgW2F0dHIuZGF0YS10ZXN0aWRdPVwiJ2NocmlzdGlhbml0eS1wbGFjZS1jYXJkLScgKyAkaW5kZXhcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwiaW5zcGVjdFBsYWNlQ2FyZChjYXJkSWQpXCI+XG4gICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJkZWZpbml0aW9uVG9SZW5kZXJDYXJkKGNhcmREZWZpbml0aW9uKGNhcmRJZCksIHsgc3RhdHVzVGV4dDogdCgnY2hyaXN0aWFuaXR5UGxhY2UnKSB9KVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc2hvd0dhbGxlcnkoKSkge1xuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWJhY2tkcm9wIGNocmlzdGlhbml0eS1nYWxsZXJ5LWJhY2tkcm9wXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlDbG9zZUdhbGxlcnknKVwiIChjbGljayk9XCJjbG9zZUdhbGxlcnkoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBjaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXJcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlclwiPlxuICAgICAgICAgIDxoZWFkZXI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8aDI+e3sgdCgnY2hyaXN0aWFuaXR5R2FsbGVyeScpIH19PC9oMj5cbiAgICAgICAgICAgICAgPHA+e3sgZ2FsbGVyeUVkaXRpb25MYWJlbCgpIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWRpYWxvZy1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGdhbGxlcnlDYXJkcygpLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlR2FsbGVyeSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9sc1wiPlxuICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlHYWxsZXJ5U2VhcmNoJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwic2VhcmNoXCIgW3ZhbHVlXT1cImdhbGxlcnlTZWFyY2goKVwiIChpbnB1dCk9XCJzZXRHYWxsZXJ5U2VhcmNoKCRldmVudClcIiBbcGxhY2Vob2xkZXJdPVwidCgnY2hyaXN0aWFuaXR5R2FsbGVyeVNlYXJjaFBsYWNlaG9sZGVyJylcIiAvPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5R2FsbGVyeUZpbHRlcicpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c2VsZWN0IFt2YWx1ZV09XCJnYWxsZXJ5VHlwZSgpXCIgKGNoYW5nZSk9XCJzZXRHYWxsZXJ5VHlwZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIGdhbGxlcnlUeXBlT3B0aW9ucygpOyB0cmFjayBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImlzLWFjdGl2ZVwiIHZhbExpZ2h0UmlwcGxlPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiZ2FsbGVyeUVkaXRpb25JY29uKClcIiBhbHQ9XCJcIiAvPlxuICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlHZW5lc2lzRWRpdGlvbicpIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWRcIj5cbiAgICAgICAgICAgIEBmb3IgKGNhcmQgb2YgZ2FsbGVyeUNhcmRzKCk7IHRyYWNrIGNhcmQuaWQpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZ2FsbGVyeS1jYXJkLWJ1dHRvbiBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cImluc3BlY3RHYWxsZXJ5Q2FyZChjYXJkLmlkKVwiPlxuICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChjYXJkKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfSBAZW1wdHkge1xuICAgICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlHYWxsZXJ5RW1wdHknKSB9fTwvcD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKG9mZmVyaW5nc1NlYXQoKSkge1xuICAgICAgICBAbGV0IG9mZmVyaW5nUGxheWVyID0gZ2FtZSgpLnBsYXllcnNbb2ZmZXJpbmdzU2VhdCgpIV07XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktYmFja2Ryb3BcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUNsb3NlT2ZmZXJpbmdzJylcIiAoY2xpY2spPVwiY2xvc2VPZmZlcmluZ3MoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLWRyYXdlclwiIFthdHRyLmRhdGEtdGVzdGlkXT1cIm9mZmVyaW5nc0RyYXdlclRlc3RJZChvZmZlcmluZ3NTZWF0KCkhKVwiPlxuICAgICAgICAgIDxoZWFkZXI+XG4gICAgICAgICAgICA8aDI+e3sgdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdzJykgfX08L2gyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1kaWFsb2ctYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1Jlc2VydmUnKSB9fSB7eyByZWFkeU9mZmVyaW5ncyhvZmZlcmluZ1BsYXllcikgfX0gwrcge3sgdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdCYXNlJykgfX0ge3sgdG90YWxPZmZlcmluZ3Mob2ZmZXJpbmdQbGF5ZXIpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VPZmZlcmluZ3MoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2Nsb3NlJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPmk8L3NwYW4+XG4gICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ3NSdWxlQm9keScpIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0XCIgW2F0dHIuZGF0YS10ZXN0aWRdPVwib2ZmZXJpbmdMaXN0VGVzdElkKG9mZmVyaW5nc1NlYXQoKSEpXCI+XG4gICAgICAgICAgICAgIEBmb3IgKG9mZmVyaW5nIG9mIG9mZmVyaW5nUGxheWVyLm9mZmVyaW5nczsgdHJhY2sgb2ZmZXJpbmcuaW5zdGFuY2VJZCkge1xuICAgICAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvd1wiIFtjbGFzcy5pcy1leGhhdXN0ZWRdPVwiIW9mZmVyaW5nLnJlYWR5XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCIgW2F0dHIuZGF0YS10ZXN0aWRdPVwib2ZmZXJpbmdDYXJkVGVzdElkKG9mZmVyaW5nKVwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJpbnNwZWN0T2ZmZXJpbmcob2ZmZXJpbmcpXCI+XG4gICAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cIm9mZmVyaW5nLnJlYWR5ID8gb2ZmZXJpbmdSZW5kZXJDYXJkKG9mZmVyaW5nKSA6IGhpZGRlbkNhcmRSZW5kZXJDYXJkKClcIiBbdmFyaWFudF09XCJvZmZlcmluZy5yZWFkeSA/ICdiYWJ5JyA6ICdiYWNrJ1wiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IG9mZmVyaW5nLnJlYWR5ID8gdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdSZWFkeScpIDogdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdFeGhhdXN0ZWQnKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgPHA+e3sgb2ZmZXJpbmdBYmlsaXR5VGV4dChvZmZlcmluZykgfX08L3A+XG4gICAgICAgICAgICAgICAgICBAaWYgKG9mZmVyaW5nLmFiaWxpdHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJvZmZlcmluZ1VzZUJ1dHRvblRlc3RJZChvZmZlcmluZylcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY2FuVXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nLCBvZmZlcmluZ3NTZWF0KCkhKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInVzZU9mZmVyaW5nQWJpbGl0eShvZmZlcmluZywgb2ZmZXJpbmdzU2VhdCgpISlcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5VXNlQWJpbGl0eScpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cbiAgICA8L21haW4+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rOiB2YXIoLS12YWwtdGV4dC1jb2xvciwgIzFmMjkzMyk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLXN1cmZhY2U6ICNmZmZmZmY7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLXBhcmNobWVudDogI2VmZjZmZjtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtb2xpdmU6ICMxZDRlZDg7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQ6ICMyNTYzZWI7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtc29mdDogcmdiYSgzNywgOTksIDIzNSwgMC4xNik7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtcmluZzogcmdiYSgzNywgOTksIDIzNSwgMC40NCk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdsb3c6IHJnYmEoMzcsIDk5LCAyMzUsIDAuMjQpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1czogIzI1NjNlYjtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93OiByZ2JhKDM3LCA5OSwgMjM1LCAwLjE1KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93LXN0cm9uZzogcmdiYSgzNywgOTksIDIzNSwgMC4yNik7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0OiA1IC8gNy40NTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTYsIDQyLCA2NywgMC4xNiksIHJnYmEoMTYsIDQyLCA2NywgMC4wMykpLFxuICAgICAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsICNkYmVhZmUgMCAwLjMzcmVtLCAjZmZmZmZmIDAuMzNyZW0gMC42NnJlbSk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNhcmQtYmFjay1zb2Z0OlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTYsIDQyLCA2NywgMC4xMSksIHJnYmEoMTYsIDQyLCA2NywgMC4wMikpLFxuICAgICAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsICNkYmVhZmUgMCAwLjMzcmVtLCAjZmZmZmZmIDAuMzNyZW0gMC42NnJlbSk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbC1taW5pLWdhbWVzLWZvbnQtc2l6ZSwgMXJlbSk7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBvdmVyZmxvdy14OiBjbGlwO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5mb250LXNtYWxsKSB7XG4gICAgICAgIC0tdmFsLW1pbmktZ2FtZXMtZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmZvbnQtbGFyZ2UpIHtcbiAgICAgICAgLS12YWwtbWluaS1nYW1lcy1mb250LXNpemU6IDEuMTg3NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zaGVsbCB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBwYWRkaW5nOiBjbGFtcCgwLjY1cmVtLCAxLjh2dywgMS4xNXJlbSk7XG4gICAgICAgIG92ZXJmbG93LXg6IGNsaXA7XG4gICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaGFzLW1vZGFsLW9wZW4ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDBkdmg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaGFzLW1vZGFsLW9wZW4gLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmOm5vdCguY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50KSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMS41cmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zaGVsbC5pcy1wcmVwYXJpbmcge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogY2xhbXAoMC43NXJlbSwgMS44dncsIDEuMTVyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNoZWxsLmlzLXByZXBhcmluZyAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwLFxuICAgICAgLmNocmlzdGlhbml0eS1zaGVsbC5pcy1wcmVwYXJpbmcgLmNocmlzdGlhbml0eS10dXJuLWJhbm5lcixcbiAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaXMtcHJlcGFyaW5nIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZixcbiAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaXMtcHJlcGFyaW5nIC5jaHJpc3RpYW5pdHktYWN0aW9ucyxcbiAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaXMtcHJlcGFyaW5nIC5jaHJpc3RpYW5pdHktZW5kLXR1cm4sXG4gICAgICAuY2hyaXN0aWFuaXR5LXNoZWxsLmlzLXByZXBhcmluZyAuY2hyaXN0aWFuaXR5LWltcGFjdC1sYXllcixcbiAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaXMtcHJlcGFyaW5nIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUsXG4gICAgICAuY2hyaXN0aWFuaXR5LXNoZWxsLmlzLXByZXBhcmluZyAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zaGVsbC5pcy1wcmVwYXJpbmcgLmNocmlzdGlhbml0eS10YWJsZSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IG1pbigzNHJlbSwgY2FsYygxMDBkdmggLSAycmVtKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyLFxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyX19zdW1tYXJ5LFxuICAgICAgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAwLjc1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhlYWRlciBoMSxcbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCxcbiAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5IGgyLFxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjM1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNyLW9ubHkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXItYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1vcGVuIHtcbiAgICAgICAgbWluLWhlaWdodDogMi4ycmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNzVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkLXJpbmcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDIzOSwgMjQ2LCAyNTUsIDAuOTgpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTgpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDIwJSAwJSwgdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtc29mdCksIHRyYW5zcGFyZW50IDQyJSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNTVyZW0gMS4ycmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoIHtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDM0cmVtLCBjYWxjKDEwMGR2aCAtIDhyZW0pKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNywgOTksIDIzNSwgMC4xOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuOXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSAxOCUsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTYpLCB0cmFuc3BhcmVudCAyMnJlbSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyMzksIDI0NiwgMjU1LCAwLjkzKSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk3KSksXG4gICAgICAgICAgdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYmFjay1zb2Z0KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxLjJyZW0gMy4ycmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxLjJyZW07XG4gICAgICAgIHBhZGRpbmc6IDIuNXJlbSAxLjI1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAwLjc0cmVtKTtcbiAgICAgICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6IDAuNTVyZW07XG4gICAgICAgIHdpZHRoOiA1LjhyZW07XG4gICAgICAgIGhlaWdodDogNS44cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNTAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjEyKSwgdHJhbnNwYXJlbnQgNTUlKSxcbiAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjIpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDAuNTVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpLFxuICAgICAgICAgIDAgMXJlbSAycmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaF9fbWFyazo6YmVmb3JlLFxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2hfX21hcms6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDAuNDJyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS1sb2FkZXItcmluZyAxODAwbXMgZWFzZS1vdXQgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrOjphZnRlciB7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogNDgwbXM7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrIHNwYW4ge1xuICAgICAgICB3aWR0aDogMC43NHJlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjc0cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWZvY3VzKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuODVyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4yMik7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWxvYWRlci1kb3QgOTYwbXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrIHNwYW46bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxNDBtcztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2hfX21hcmsgc3BhbjpudGgtY2hpbGQoMykge1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDI4MG1zO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGNocmlzdGlhbml0eS1sb2FkZXItZG90IHtcbiAgICAgICAgMCUsXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDAuMzg7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDAuODIpO1xuICAgICAgICB9XG5cbiAgICAgICAgNDUlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC4yMnJlbSkgc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktbG9hZGVyLXJpbmcge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMC40ODtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNzIpO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2ggc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NvcHkgc3BhbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtb2xpdmUpO1xuICAgICAgICBmb250LXNpemU6IDAuNzZyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoIGgyLFxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydCBoMixcbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnQgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2ggaDIge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS42NXJlbSwgN3Z3LCAyLjdyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2ggcCB7XG4gICAgICAgIG1heC13aWR0aDogMjZyZW07XG4gICAgICAgIG1hcmdpbjogMC41NXJlbSBhdXRvIDA7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjgpO1xuICAgICAgICBmb250LXNpemU6IDAuOTZyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDM0cmVtLCBjYWxjKDEwMGR2aCAtIDhyZW0pKTtcbiAgICAgICAgcGFkZGluZzogY2xhbXAoMC4xNXJlbSwgMS4ydncsIDAuNTVyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19oZXJvIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMTJyZW0sIDE4cmVtKTtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jb3B5IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDM2cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0IGgyIHtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjZyZW0sIDZ2dywgMi41cmVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NvcHkgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42OCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19mYW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEzcmVtO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fZmFuIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDUuN3JlbSwgMTJ2dywgNy4ycmVtKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDkyJTtcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDFyZW0gMS41cmVtIHJnYmEoODIsIDY0LCAyOCwgMC4xOCkpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAwLjc1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBhcnRpY2xlLFxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgYXJ0aWNsZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDAuOTVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Mik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC43NXJlbSAxLjdyZW0gcmdiYSg4MiwgNjQsIDI4LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgYXJ0aWNsZSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDEuMDVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX3N0YXR1cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19zdGF0dXMgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUgPiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgbWluLWhlaWdodDogMS44NXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjYycmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjIyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCAyNDYsIDI1NSwgMC44OCk7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzIpO1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4NTA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpO1xuICAgICAgICBnYXA6IDAuNTVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUge1xuICAgICAgICBtaW4taGVpZ2h0OiA4LjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC43Mik7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDAuODI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45MnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJpbWFyeS1hY3Rpb24sXG4gICAgICAuY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb24ge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgICAgICBtaW4taGVpZ2h0OiAyLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC45cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmltYXJ5LWFjdGlvbiB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDQyLCA2NywgMC4xNik7XG4gICAgICAgIGJhY2tncm91bmQ6ICMxMDJhNDM7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb24ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1yaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXBhcmNobWVudCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXIgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktdHVybiBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktaGlkZGVuLWhhbmQgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktZGVjayBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1wbGFjZSBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1waWxlIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlciBzcGFuIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42NCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXIsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncyxcbiAgICAgIC5jaHJpc3RpYW5pdHktaGlkZGVuLWhhbmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXBpbGUsXG4gICAgICAuY2hyaXN0aWFuaXR5LWRlY2ssXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYWNlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjE1cmVtO1xuICAgICAgICBtaW4td2lkdGg6IDUuMjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNTVyZW0gMC42NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXR1cm4uaXMtb3duLXR1cm4ge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTgsIDEyOCwgMTA4LCAwLjM1KTtcbiAgICAgICAgYmFja2dyb3VuZDogI2VjZmRmNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgcGFkZGluZzogMC40NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXItLW9wcG9uZW50IHtcbiAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyLS1vcHBvbmVudCBkaXYge1xuICAgICAgICBkaXJlY3Rpb246IGx0cjtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgc21hbGwge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgc21hbGwsXG4gICAgICAuY2hyaXN0aWFuaXR5LXNjb3JlYm9hcmQgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IDAuNzJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiA0LjJyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC41NXJlbTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEpO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLWJhbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICAgICAgICBnYXA6IDAuN3JlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMC41OHJlbSAwLjcycmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NCksIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC44MikpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjY1cmVtIDEuMjVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLWJhbm5lci5pcy1vd24tdHVybiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNywgOTksIDIzNSwgMC4yOCk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjc1cmVtIDEuNDVyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4xMiksXG4gICAgICAgICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMzcsIDk5LCAyMzUsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXR1cm4tYmFubmVyLmlzLXJpdmFsLXR1cm4ge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTgwLCA4MywgOSwgMC4yNCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdHVybi1iYW5uZXIuaXMtZmluaXNoZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjIsIDE2MywgNzQsIDAuMyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdHVybi1iYW5uZXIgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU2KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXR1cm4tYmFubmVyIHN0cm9uZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMXJlbSwgMS41dncsIDEuMjVyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLWJhbm5lciBwIHtcbiAgICAgICAgbWFyZ2luOiAwLjEycmVtIDAgMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdHVybi1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9wdGlvbnMtYnV0dG9uLFxuICAgICAgLmNocmlzdGlhbml0eS1vcHRpb25zLW1lbnUgYnV0dG9uIHtcbiAgICAgICAgbWluLWhlaWdodDogMi4xNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9wdGlvbnMtYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogMCAwLjc4cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9wdGlvbnMtbWVudSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDAuNTVyZW07XG4gICAgICAgIHRvcDogY2FsYygxMDAlICsgMC4zNXJlbSk7XG4gICAgICAgIHotaW5kZXg6IDE4O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIG1pbi13aWR0aDogOS41cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjQ1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTgpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDFyZW0gMnJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9wdGlvbnMtbWVudSBidXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjU1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9wdGlvbnMtbWVudSBidXR0b246ZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjQ1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXRhYmxlIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IGNsYW1wKDAuNTVyZW0sIDEuNHZ3LCAwLjlyZW0pO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIHBhZGRpbmc6IGNsYW1wKDAuNjVyZW0sIDEuNXZ3LCAxLjA1cmVtKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC45NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSA0NCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSwgdHJhbnNwYXJlbnQgNDQlKSxcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjYzhkZGY3LCAjYjlkNGYxKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KSxcbiAgICAgICAgICBpbnNldCAwIDEuNHJlbSAzcmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG4gICAgICAgIG92ZXJmbG93LXg6IGNsaXA7XG4gICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2V0dXAtcGFuZWwsXG4gICAgICAuY2hyaXN0aWFuaXR5LXJlc3VsdC1wYW5lbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDAuOHJlbTtcbiAgICAgICAgei1pbmRleDogMTQ7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDAuODVyZW07XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjlyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk2KSwgcmdiYSgyMzksIDI0NiwgMjU1LCAwLjk0KSksXG4gICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxLjI1cmVtIDIuNHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTgpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2V0dXAtcGFuZWwgPiBkaXY6bm90KC5jaHJpc3RpYW5pdHktc2V0dXAtY29pbiksXG4gICAgICAuY2hyaXN0aWFuaXR5LXJlc3VsdC1wYW5lbCA+IGRpdjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXgtd2lkdGg6IG1pbigxMDAlLCAzNHJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2V0dXAtcGFuZWwgLmNocmlzdGlhbml0eS1wcmltYXJ5LWFjdGlvbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcmVzdWx0LXBhbmVsIC5jaHJpc3RpYW5pdHktcHJpbWFyeS1hY3Rpb24ge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zZXR1cC1wYW5lbC0tY29pbiB7XG4gICAgICAgIGdhcDogY2xhbXAoMC44NXJlbSwgM3ZoLCAxLjM1cmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zZXR1cC1wYW5lbC0tbGVhZGVyLXBpY2sge1xuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogY2xhbXAoMC43cmVtLCAydmgsIDFyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLWNvaW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBjbGFtcCg0LjZyZW0sIDE4dncsIDYuMnJlbSk7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzNCUgMjglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSksIHRyYW5zcGFyZW50IDIyJSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmZjZhMywgI2ZmZDIxYSA0MiUsICNiODg0MDQgMTAwJSk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAxLjA1cmVtIDEuOXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTgpLFxuICAgICAgICAgIGluc2V0IDAgMCAwIDAuMzJyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpLFxuICAgICAgICAgIGluc2V0IC0wLjZyZW0gLTAuN3JlbSAxcmVtIHJnYmEoOTgsIDcwLCA3LCAwLjIpO1xuICAgICAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS1jb2luLXNwaW4gMTgwMG1zIGN1YmljLWJlemllcigwLjQ1LCAwLCAwLjIsIDEpIGluZmluaXRlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLWNvaW46OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAtMC42NXJlbTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjMyKSwgdHJhbnNwYXJlbnQgNjIlKTtcbiAgICAgICAgZmlsdGVyOiBibHVyKDAuMTVyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLWNvaW46OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDAuMzRyZW07XG4gICAgICAgIGJvcmRlcjogMC4xNnJlbSBzb2xpZCByZ2JhKDEyMCwgNzgsIDAsIDAuMjQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMC4wNnJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2V0dXAtY29pbiBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogNTIlO1xuICAgICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBjb2xvcjogcmdiYSgxNiwgNDIsIDY3LCAwLjg0KTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjY1cmVtLCA2dncsIDIuMjVyZW0pO1xuICAgICAgICBmb250LXdlaWdodDogMTAwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2V0dXAtY29pbiBzcGFuOmZpcnN0LWNoaWxkOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnSic7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2V0dXAtY29pbiBzcGFuOmxhc3QtY2hpbGQge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zZXR1cC1jb2luIHNwYW46bGFzdC1jaGlsZDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ1InO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLWNvaW4uaXMtcml2YWwtd29uIHtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtOTAwbXM7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LWNvaW4tc3BpbiB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZykgdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDM4JSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKDU0MGRlZykgdHJhbnNsYXRlWSgtMC4zNXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICA2MiUge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSg3MjBkZWcpIHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIH1cblxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTA4MGRlZykgdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLXBhbmVsID4gZGl2Om5vdCguY2hyaXN0aWFuaXR5LXNldHVwLWNvaW4pID4gc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcmVzdWx0LXBhbmVsID4gc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjc2KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjcycmVtO1xuICAgICAgICBmb250LXdlaWdodDogMTAwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zZXR1cC1wYW5lbCBoMixcbiAgICAgIC5jaHJpc3RpYW5pdHktcmVzdWx0LXBhbmVsIGgyIHtcbiAgICAgICAgbWFyZ2luOiAwLjE4cmVtIDAgMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuNDVyZW0sIDN2dywgMi4zNXJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLXBhbmVsIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LXJlc3VsdC1wYW5lbCBwIHtcbiAgICAgICAgbWF4LXdpZHRoOiAzMXJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjM1cmVtIGF1dG8gMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcmVzdWx0LXBhbmVsID4gZGl2Omxhc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6IDAuNTVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1tZXRlciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4zOHJlbTtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCAyOHJlbSk7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjgpO1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1tZXRlciBpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMC4zNHJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cyk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjQwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgOS42cmVtKSk7XG4gICAgICAgIGdhcDogY2xhbXAoMC42cmVtLCAydncsIDAuOXJlbSk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCAyMXJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1vcHRpb24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnI7XG4gICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzdGFydDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjQ4cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuODZyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg2KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjcyKSksXG4gICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc4KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjc1cmVtIDEuNXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMDgpO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGJvcmRlci1jb2xvciAxODBtcyBlYXNlLFxuICAgICAgICAgIGJveC1zaGFkb3cgMTgwbXMgZWFzZSxcbiAgICAgICAgICBiYWNrZ3JvdW5kIDE4MG1zIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1vcHRpb24uaXMtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzcsIDk5LCAyMzUsIDAuNDgpO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC45NCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NikpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Mik7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjk1cmVtIDEuNzVyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4xNCksXG4gICAgICAgICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMzcsIDk5LCAyMzUsIDAuMTQpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA4LjI1cmVtKTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1jYXJkIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBmaWx0ZXIgMTgwbXMgZWFzZSxcbiAgICAgICAgICB0cmFuc2Zvcm0gMTgwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLW9wdGlvbiA+IGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC40MnJlbTtcbiAgICAgICAgYWxpZ24tY29udGVudDogZW5kO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLW9wdGlvbiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuOHJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwLjE4cmVtIDAuNDZyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgMjQ2LCAyNTUsIDAuNzQpO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjY4KTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjYycmVtLCAyLjN2dywgMC43MnJlbSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1kZXRhaWwge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjU1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjIyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCAyNDYsIDI1NSwgMC45Mik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtY2FyZDpob3ZlciB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtY2FyZDpmb2N1cy12aXNpYmxlIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC4xMnJlbSk7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwLjc1cmVtIDEuMjVyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4yMikpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWltcGFjdC1sYXllciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDMwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwteDogNTAlO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwteTogNzIlO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbWlkLXg6IDUwJTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLW1pZC15OiA1MCU7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1sZW5ndGg6IDM0JTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWFuZ2xlOiAtOTBkZWc7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk2KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWdsb3c6IHJnYmEoOTYsIDE2NSwgMjUwLCAwLjU2KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWhpdDogcmdiYSgyMjAsIDM4LCAzOCwgMC40Mik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLmlzLWxlYWRlci10YXJnZXQge1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1nbG93OiByZ2JhKDI1MCwgMjA0LCAyMSwgMC41Mik7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1oaXQ6IHJnYmEoMjUwLCAyMDQsIDIxLCAwLjM4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwuaXMtY2hhcmFjdGVyLXRhcmdldCB7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1jb2xvcjogcmdiYSgyMTksIDIzNCwgMjU0LCAwLjk4KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWdsb3c6IHJnYmEoOTYsIDE2NSwgMjUwLCAwLjU4KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWhpdDogcmdiYSgyMjAsIDM4LCAzOCwgMC4zOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsOjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbWlkLXgpO1xuICAgICAgICB0b3A6IHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbWlkLXkpO1xuICAgICAgICB3aWR0aDogY2xhbXAoMi44cmVtLCA5dncsIDUuNHJlbSk7XG4gICAgICAgIGhlaWdodDogY2xhbXAoMi44cmVtLCA5dncsIDUuNHJlbSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43MiksIHRyYW5zcGFyZW50IDI4JSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1oaXQpLCB0cmFuc3BhcmVudCA2MiUpO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC41OCk7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWNvbWJhdC1idXJzdCA4ODBtcyBlYXNlLW91dCBib3RoO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbCA+IHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwteCk7XG4gICAgICAgIHRvcDogdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC15KTtcbiAgICAgICAgd2lkdGg6IHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbGVuZ3RoKTtcbiAgICAgICAgaGVpZ2h0OiAwLjM2cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAgNSUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45MikgNDIlLCB2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWNvbG9yKSA3MiUsIHJnYmEoOTYsIDE2NSwgMjUwLCAwLjcyKSksXG4gICAgICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCAwLjdyZW0sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NikgMC43cmVtIDAuOTJyZW0pO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMCAwLjcycmVtIHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtZ2xvdyksXG4gICAgICAgICAgMCAwIDEuNDVyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1nbG93KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSh2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWFuZ2xlKSkgc2NhbGVYKDApO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcbiAgICAgICAgYW5pbWF0aW9uOiBjaHJpc3RpYW5pdHktY29tYmF0LWFycm93LXRyYWlsIDg0MG1zIGVhc2Utb3V0IGJvdGg7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsID4gc3Bhbjo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICByaWdodDogLTAuMThyZW07XG4gICAgICAgIHdpZHRoOiAwLjk1cmVtO1xuICAgICAgICBoZWlnaHQ6IDAuOTVyZW07XG4gICAgICAgIGJvcmRlci10b3A6IDAuMjhyZW0gc29saWQgdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yaWdodDogMC4yOHJlbSBzb2xpZCB2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWNvbG9yKTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDAuNDVyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1nbG93KSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGNocmlzdGlhbml0eS1jb21iYXQtYXJyb3ctdHJhaWwge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtYW5nbGUpKSBzY2FsZVgoMCk7XG4gICAgICAgIH1cblxuICAgICAgICAyNCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSh2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWFuZ2xlKSkgc2NhbGVYKDAuNTIpO1xuICAgICAgICB9XG5cbiAgICAgICAgNjYlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUodmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1hbmdsZSkpIHNjYWxlWCgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSh2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWFuZ2xlKSkgc2NhbGVYKDEuMDQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LWNvbWJhdC1idXJzdCB7XG4gICAgICAgIDAlLFxuICAgICAgICA0MiUge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC41OCkgcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgNTglIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDAuOTgpIHJvdGF0ZSg0ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS40Mikgcm90YXRlKDEyZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICAuY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbCxcbiAgICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWw6OmJlZm9yZSxcbiAgICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwgPiBzcGFuLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtYXR0YWNrZXIgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtdGFyZ2V0IHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLWNvbWJhdC10YXJnZXQgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGwuaXMtc2xpZGluZy1wcmV2aW91cyAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbC5pcy1zbGlkaW5nLW5leHQgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLWNvaW4sXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrOjpiZWZvcmUsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrOjphZnRlcixcbiAgICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2hfX21hcmsgc3BhbiB7XG4gICAgICAgICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjM1cmVtIDAuM3JlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yOCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCkpLFxuICAgICAgICAgIHJnYmEoNzQsIDEyMiwgMTgwLCAwLjA4KTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoN3JlbSwgMWZyKSBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMy43NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZS0tb3Bwb25lbnQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDdyZW0sIDFmcik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjY1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIHtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktYmF0dGxlLWNhcmQtd2lkdGg6IGNsYW1wKDUuN3JlbSwgMTAuNXZ3LCA3LjlyZW0pO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCB2YXIoLS1jaHJpc3RpYW5pdHktYmF0dGxlLWNhcmQtd2lkdGgpKTtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1pbi1oZWlnaHQ6IGNsYW1wKDEwcmVtLCAxOXZ3LCAxMi40cmVtKTtcbiAgICAgICAgcGFkZGluZzogMC41NXJlbSAwLjRyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQyKSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KSksXG4gICAgICAgICAgcmdiYSgzMSwgNzksIDEzNywgMC4wOCk7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgYmFja2dyb3VuZCAxNjBtcyBlYXNlLFxuICAgICAgICAgIGJveC1zaGFkb3cgMTYwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZS5pcy1wbGFjaW5nLWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTAsIDI0MCwgMC45NiksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NCkpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Nik7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgaW5zZXQgMCAwIDAgMC4xNHJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1zb2Z0KSxcbiAgICAgICAgICAwIDAuOHJlbSAxLjdyZW0gcmdiYSg5NSwgMTExLCA0MiwgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUge1xuICAgICAgICBwYWRkaW5nOiAwLjU1cmVtIDAuNHJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzQpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikpLFxuICAgICAgICAgIHJnYmEoMzEsIDc5LCAxMzcsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWVuZC10dXJuLFxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIGJ1dHRvbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcGlsZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLS10YXJnZXQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtaW4taGVpZ2h0OiA1LjhyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjVyZW0gMS4yNXJlbSByZ2JhKDM2LCA0OCwgNjgsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQgc3BhbiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZCBzdHJvbmcge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgICAgICAgcGFkZGluZzogMC4xNXJlbSAwLjM1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2VkZjJmNztcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMCAwIDAuMThyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtc29mdCksXG4gICAgICAgICAgMCAwLjg1cmVtIDEuNHJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLmlzLWRpc2FibGVkLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLmlzLWV4aGF1c3RlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC5pcy10YXJnZXQge1xuICAgICAgICBib3JkZXItY29sb3I6ICNkYzI2MjY7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZHMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgICAgICBncmlkLWF1dG8tY29sdW1uczogMC43cmVtO1xuICAgICAgICBnYXA6IDAuMTZyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBlbmQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuMDVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZHMgaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMC42NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjk1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE2LCA0MiwgNjcsIDAuMjIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjE4cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmRzIGkuaXMtdXNlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNjYmQ1ZTE7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNsb3Qge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCB2YXIoLS1jaHJpc3RpYW5pdHktYmF0dGxlLWNhcmQtd2lkdGgpKTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0KTtcbiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoMzYsIDQ4LCA2OCwgMC4yMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNjI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtcmluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1MCwgMjQwLCAwLjkyKSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjgyKSksXG4gICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICAgICAgICBjb2xvcjogIzVkNDMwNTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjEycmVtIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjIpLFxuICAgICAgICAgIDAgMC43cmVtIDEuMjVyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXNoYWRvdyk7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LXRhcmdldC1wdWxzZSAxNDUwbXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQ6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwLjM1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4yMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4xKSwgdHJhbnNwYXJlbnQgNDYlKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSA0MiUsIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nbG93KSwgdHJhbnNwYXJlbnQgNTglKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBwYWRkaW5nOiAwLjE2cmVtIDAuNDRyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzgpO1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LXRhcmdldC1wdWxzZSB7XG4gICAgICAgIDAlLFxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgaW5zZXQgMCAwIDAgMC4xMnJlbSByZ2JhKDIxNCwgMTYyLCAyOSwgMC4yKSxcbiAgICAgICAgICAgIDAgMC43cmVtIDEuMjVyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICA1MCUge1xuICAgICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICBpbnNldCAwIDAgMCAwLjE2cmVtIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjM0KSxcbiAgICAgICAgICAgIDAgMC45cmVtIDEuNjVyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXNoYWRvdy1zdHJvbmcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtYXV0by1jb2x1bW5zOiBtaW5tYXgoNnJlbSwgOHJlbSk7XG4gICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgICAgIGdhcDogMC41NXJlbTtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyB7XG4gICAgICAgIHBhZGRpbmc6IDAuNzVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyBidXR0b24sXG4gICAgICAuY2hyaXN0aWFuaXR5LWVuZC10dXJuIHtcbiAgICAgICAgbWluLWhlaWdodDogMi40cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyBidXR0b246bm90KDpkaXNhYmxlZCksXG4gICAgICAuY2hyaXN0aWFuaXR5LWVuZC10dXJuOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzEwMmE0MztcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyBidXR0b24ge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjhyZW0gMS43NXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMjIpLFxuICAgICAgICAgIGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyBidXR0b246ZGlzYWJsZWQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWVuZC10dXJuIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjhyZW0gMS43NXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMjIpLFxuICAgICAgICAgIGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZW5kLXR1cm46ZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjQ2KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcyKTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5IHtcbiAgICAgICAgcGFkZGluZzogMC43NXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWZhbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwLjhyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC4yNXJlbSAyLjFyZW07XG4gICAgICAgIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgei1pbmRleDogMTI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEycmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMS4xNXJlbTtcbiAgICAgICAgcGFkZGluZzogMS40NXJlbSAwLjI1cmVtIDFyZW07XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50IHtcbiAgICAgICAgei1pbmRleDogODtcbiAgICAgICAgbWluLWhlaWdodDogNi44NXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZzogMC40NXJlbSAwLjI1cmVtIDAuODVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50IHtcbiAgICAgICAgbWluLWhlaWdodDogNS45cmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtZmFuLS1vcHBvbmVudCAuY2hyaXN0aWFuaXR5LWhpZGRlbi1jYXJkLWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiBjbGFtcCgzLjdyZW0sIDEydncsIDQuOXJlbSk7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0KTtcbiAgICAgICAgbWFyZ2luLWlubGluZTogLTAuOXJlbTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEyMCU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50IC5jaHJpc3RpYW5pdHktaGlkZGVuLWNhcmQtYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50IC5jaHJpc3RpYW5pdHktaGlkZGVuLWNhcmQtYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtbWluaSxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLFxuICAgICAgLmNocmlzdGlhbml0eS1lbmQtdHVybiB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcikgYXV0byBhdXRvO1xuICAgICAgICBnYXA6IDAuMjhyZW07XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgICAgIHdpZHRoOiBjbGFtcCg0LjlyZW0sIDE3dncsIDcuMXJlbSk7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBwYWRkaW5nOiAwLjQ4cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTE1JTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICB0cmFuc2Zvcm0gMTYwbXMgZWFzZSxcbiAgICAgICAgICBib3gtc2hhZG93IDE2MG1zIGVhc2UsXG4gICAgICAgICAgYm9yZGVyLWNvbG9yIDE2MG1zIGVhc2U7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC41cmVtIDEuMjVyZW0gcmdiYSgzNiwgNDgsIDY4LCAwLjEpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24gPiB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNhcmQtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNi44cmVtKTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNhcmQtYnV0dG9uID4gdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbixcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uIHtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b246aG92ZXIgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXNlbGVjdGVkIHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXNlbGVjdGVkIHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXRhcmdldCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtdGFyZ2V0IHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGZpbHRlcjpcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAgMC40NXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjQ1KSlcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAuNTVyZW0gMXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjIyKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXJlYWR5LWF0dGFja2VyIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGZpbHRlcjpcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAgMC4yNHJlbSByZ2JhKDIyLCAxNjMsIDc0LCAwLjMyKSlcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAuNDVyZW0gMC44cmVtIHJnYmEoMjIsIDE2MywgNzQsIDAuMTYpKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtc2VsZWN0ZWQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuMjhyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1zZWxlY3RlZCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBmaWx0ZXI6XG4gICAgICAgICAgZHJvcC1zaGFkb3coMCAwIDAuNHJlbSByZ2JhKDI1MCwgMjA0LCAyMSwgMC41MikpXG4gICAgICAgICAgZHJvcC1zaGFkb3coMCAwLjY1cmVtIDFyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4yNCkpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtYXR0YWNrZXIge1xuICAgICAgICB6LWluZGV4OiA4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtY29tYmF0LWF0dGFja2VyIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWNvbWJhdC1sdW5nZSA5ODBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjc4LCAwLjIsIDEpIGJvdGg7XG4gICAgICAgIGZpbHRlcjpcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAgMC41cmVtIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjcyKSlcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDFyZW0gMS40cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4yOCkpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtdGFyZ2V0IHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtdGFyZ2V0IHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWNvbWJhdC1pbXBhY3QgOTgwbXMgZWFzZS1vdXQgYm90aDtcbiAgICAgICAgZmlsdGVyOlxuICAgICAgICAgIGRyb3Atc2hhZG93KDAgMCAwLjVyZW0gcmdiYSgyMjAsIDM4LCAzOCwgMC40OCkpXG4gICAgICAgICAgZHJvcC1zaGFkb3coMCAwLjc1cmVtIDEuMXJlbSByZ2JhKDIyMCwgMzgsIDM4LCAwLjE4KSk7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LWNvbWJhdC1sdW5nZSB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDI0JSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMS40cmVtLCAwKSByb3RhdGUoLTRkZWcpIHNjYWxlKDEuMDgpO1xuICAgICAgICB9XG5cbiAgICAgICAgNTIlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC00LjlyZW0sIDApIHJvdGF0ZSg3ZGVnKSBzY2FsZSgxLjEyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDY4JSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMy42cmVtLCAwKSByb3RhdGUoLTNkZWcpIHNjYWxlKDEuMDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoMGRlZykgc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktY29tYmF0LWltcGFjdCB7XG4gICAgICAgIDAlLFxuICAgICAgICA0MiUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2NhbGUoMSk7XG4gICAgICAgIH1cblxuICAgICAgICA1NCUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMC4xNnJlbSwgLTAuMTJyZW0sIDApIHJvdGF0ZSgyZGVnKSBzY2FsZSgxLjA0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIDY0JSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMC4xNHJlbSwgMC4xcmVtLCAwKSByb3RhdGUoLTJkZWcpIHNjYWxlKDAuOTgpO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoMGRlZykgc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXByb3RlY3RlZC10YXJnZXQge1xuICAgICAgICBvcGFjaXR5OiAwLjgyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtcHJvdGVjdGVkLXRhcmdldCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwLjIyKSBkcm9wLXNoYWRvdygwIDAgMC4yOHJlbSByZ2JhKDEwMCwgMTE2LCAxMzksIDAuMjYpKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcikgYXV0byBhdXRvO1xuICAgICAgICBnYXA6IDAuMjhyZW07XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDAuNDhyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk4KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAxNSUgMCUsIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjEyKSwgdHJhbnNwYXJlbnQgNDQlKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDAuNXJlbSAxLjI1cmVtIHJnYmEoMzYsIDQ4LCA2OCwgMC4xKSxcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjE4cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42Mik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG87XG4gICAgICAgIGdhcDogMC4xNnJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1oZWFkZXIgc21hbGwge1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjY0KTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjUycmVtLCAxLjV2dywgMC42OHJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzdHJvbmcge1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgICAgYWxpZ24tc2VsZjogc3RhcnQ7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMC44MnJlbSwgMi41dncsIDEuMDVyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wMjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1oZWFkZXIgc3Ryb25nIHtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBjbGlwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzbWFsbCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWFydCA+IHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgbWF4LXdpZHRoOiA4OCU7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBjbGlwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1oZWFkZXIgc3BhbiB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMSAvIHNwYW4gMjtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAxLjNyZW07XG4gICAgICAgIGhlaWdodDogMS4zcmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuMjJyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZkOTFhO1xuICAgICAgICBjb2xvcjogIzI0MzA0NDtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIC0wLjA4cmVtIDAgcmdiYSg4MiwgNjQsIDI4LCAwLjE4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzcGFuLmlzLW9mZmVyaW5nLXBpcHMsXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1jb3N0LmlzLW9mZmVyaW5nLXBpcHMsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgc3Bhbi5pcy1vZmZlcmluZy1waXBzIHtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjE0cmVtO1xuICAgICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDAgMC4yOHJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzcGFuLmlzLW9mZmVyaW5nLXBpcHMgaSxcbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWNvc3QuaXMtb2ZmZXJpbmctcGlwcyBpLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHNwYW4uaXMtb2ZmZXJpbmctcGlwcyBpLFxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtcGlwcyBpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAwLjcycmVtO1xuICAgICAgICBoZWlnaHQ6IDAuNzJyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzQlIDI4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpIDAgMC4xMnJlbSwgdHJhbnNwYXJlbnQgMC4xM3JlbSksXG4gICAgICAgICAgI2ZmZDkxYTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIC0wLjA4cmVtIDAgcmdiYSg4MiwgNjQsIDI4LCAwLjE4KSxcbiAgICAgICAgICAwIDAuMTJyZW0gMC4yNHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1hcnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzZyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg5NSwgMTExLCA0MiwgMC4xOCksIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjE0KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgMTglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzIpLCB0cmFuc3BhcmVudCA0OCUpLFxuICAgICAgICAgICNkYmU3ZWY7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDM2LCA0OCwgNjgsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtYXJ0ID4gc3BhbiB7XG4gICAgICAgIG1heC13aWR0aDogNzglO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzNiwgNDgsIDY4LCAwLjQ4KTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjgycmVtLCAyLjJ2dywgMS4wNXJlbSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjAyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtYXJ0IHNtYWxsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwLjI4cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDc4JTtcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuMzRyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4IDAgMCA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjY2KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjQ4cmVtO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWVmZmVjdCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAwLjFyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuNDVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjRyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzRyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNzAlLCByZ2JhKDM2LCA0OCwgNjgsIDAuMDYpLCB0cmFuc3BhcmVudCA0NCUpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1lZmZlY3Qgc3Ryb25nIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgcGFkZGluZzogMC4xMnJlbSAwLjMycmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2VkZjJmNztcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjY2cmVtLCAydncsIDAuODJyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWVmZmVjdCBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjcyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjU4cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWZvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAwLjIycmVtO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjUyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjQ2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLS1iYXR0bGUge1xuICAgICAgICBnYXA6IDAuMjJyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNDJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS0tYmF0dGxlIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1hcnQge1xuICAgICAgICBtaW4taGVpZ2h0OiAyLjZyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS0tbGVhZGVyIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1hcnQge1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTQpLCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4xNikpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDE4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc4KSwgdHJhbnNwYXJlbnQgNDglKSxcbiAgICAgICAgICAjZTdlZWY4O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtLWxpc3Qge1xuICAgICAgICB3aWR0aDogY2xhbXAoNC40cmVtLCAyMnZ3LCA1LjhyZW0pO1xuICAgICAgICBwYWRkaW5nOiAwLjM4cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtLWxpc3QgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWFydCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWFyZ2luLWlubGluZTogLTAuNDJyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTE1JTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICB0cmFuc2Zvcm0gMTYwbXMgZWFzZSxcbiAgICAgICAgICBmaWx0ZXIgMTYwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcDpob3ZlcixcbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXAuaXMtc2VsZWN0ZWQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwLmlzLWRyYWdnaW5nIHtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcDpob3ZlciAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kLFxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcC5pcy1zZWxlY3RlZCAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kLFxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcC5pcy1kcmFnZ2luZyAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZCk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwIDAgMC4xMnJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1zb2Z0KSxcbiAgICAgICAgICAwIDFyZW0gMnJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjVyZW0pIHNjYWxlKDEuMDQ1KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZCB7XG4gICAgICAgIGN1cnNvcjogZ3JhYjtcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kOmFjdGl2ZSB7XG4gICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQuY2RrLWRyYWctZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZHJhZy1wcmV2aWV3LFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC5jZGstZHJhZy1wcmV2aWV3IHtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDQuOXJlbSwgMTd2dywgNy4xcmVtKTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDAgMCAwLjE2cmVtIHJnYmEoMjU1LCAyNDQsIDE5NCwgMC42OCksXG4gICAgICAgICAgMCAxLjVyZW0gM3JlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93LXN0cm9uZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDJkZWcpIHNjYWxlKDEuMDMpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZHJhZy1wcmV2aWV3IHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZHJhZy1wbGFjZWhvbGRlcixcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQuY2RrLWRyYWctcGxhY2Vob2xkZXIge1xuICAgICAgICB3aWR0aDogY2xhbXAoNC45cmVtLCAxN3Z3LCA3LjFyZW0pO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMTIpO1xuICAgICAgICBvcGFjaXR5OiAwLjIyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNsb3QuY2RrLWRyb3AtbGlzdC1kcmFnZ2luZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctZHJvcC10YXJnZXQuY2RrLWRyb3AtbGlzdC1kcmFnZ2luZyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtcmluZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2xvdC5jZGstZHJvcC1saXN0LXJlY2VpdmluZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctZHJvcC10YXJnZXQuY2RrLWRyb3AtbGlzdC1yZWNlaXZpbmcge1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDAuMThyZW0gcmdiYSgyMTQsIDE2MiwgMjksIDAuMzQpLFxuICAgICAgICAgIDAgMXJlbSAxLjlyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXNoYWRvdy1zdHJvbmcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZXllIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogNTAlO1xuICAgICAgICBib3R0b206IDAuMzhyZW07XG4gICAgICAgIHdpZHRoOiAyLjE1cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuNTVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpIDUyJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjU1cmVtIDEuMXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTQpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIC0wLjJyZW0pIHNjYWxlKDAuOTIpO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG9wYWNpdHkgMTQwbXMgZWFzZSxcbiAgICAgICAgICB0cmFuc2Zvcm0gMTQwbXMgZWFzZSxcbiAgICAgICAgICBib3JkZXItY29sb3IgMTQwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWV5ZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgd2lkdGg6IDEuMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjFyZW07XG4gICAgICAgIGJvcmRlcjogMC4xMnJlbSBzb2xpZCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4MiUgMDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWV5ZTo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB3aWR0aDogMC40MnJlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjQycmVtO1xuICAgICAgICBib3JkZXI6IDAuMDlyZW0gc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzNSUgMzIlLCAjZmZmZmZmIDAgMC4wNnJlbSwgdHJhbnNwYXJlbnQgMC4wN3JlbSksXG4gICAgICAgICAgdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWZvY3VzKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXA6aG92ZXIgLmNocmlzdGlhbml0eS1jYXJkLWV5ZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXAuaXMtc2VsZWN0ZWQgLmNocmlzdGlhbml0eS1jYXJkLWV5ZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1leWU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgMCkgc2NhbGUoMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctZHJvcC10YXJnZXQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIDYuNDVyZW0pO1xuICAgICAgICBoZWlnaHQ6IDguMDVyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDguMDVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjY0cmVtO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGJvcmRlci1jb2xvciAxNjBtcyBlYXNlLFxuICAgICAgICAgIGJveC1zaGFkb3cgMTYwbXMgZWFzZSxcbiAgICAgICAgICBiYWNrZ3JvdW5kIDE2MG1zIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctZHJvcC10YXJnZXQuaXMtcGxheS10YXJnZXQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkLXJpbmcpO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTAsIDI0MCwgMC45NiksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NCkpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgODIlIDE0JSwgcmdiYSgyNTAsIDIwNCwgMjEsIDAuMjgpIDAgMC43cmVtLCB0cmFuc3BhcmVudCAwLjcycmVtKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjEycmVtIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjI0KSxcbiAgICAgICAgICAwIDAuOHJlbSAxLjU1cmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3cpO1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS10YXJnZXQtcHVsc2UgMTQ1MG1zIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWRyb3AtdGFyZ2V0ID4gLmNkay1kcmFnLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLS1iYWNrLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmFjayB7XG4gICAgICAgIHdpZHRoOiBjbGFtcCg0cmVtLCAxNHZ3LCA1LjdyZW0pO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDAuNTVyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC44cmVtIDEuNTVyZW0gcmdiYSgzNiwgNDgsIDY4LCAwLjE0KTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIC0xOCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWJhY2spO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtLWJhY2s6OmJlZm9yZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhY2s6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwLjVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDQyLCA2NywgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzhyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCkpO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAwLjEycmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZSB7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIHZhcigtLWNocmlzdGlhbml0eS1iYXR0bGUtY2FyZC13aWR0aCkpO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQgPiBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLW1pbmkgPiBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCA+IHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkID4gc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlID4gc3BhbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgYWxpZ24tc2VsZjogc3RhcnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkID4gc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLW1pbmkgPiBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgPiBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkID4gc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHN0cm9uZyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgcGFkZGluZzogMC4xNXJlbSAwLjM1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2VkZjJmNztcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLXJhY2sge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCg1LjNyZW0sIDYuOXJlbSkgbWlubWF4KDYuNHJlbSwgMWZyKSBtaW5tYXgoNC45cmVtLCA2LjVyZW0pO1xuICAgICAgICBnYXA6IDAuNjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBlbmQ7XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrLS1vcHBvbmVudCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwLjM1cmVtO1xuICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZ3JpZDtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjI1cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiAxLjdyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMThyZW0gMC40NnJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuOHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXItLW9wcG9uZW50IHtcbiAgICAgICAgdG9wOiAwLjE1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IDAuNjhyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDAuODZyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlLFxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItY29tbWFuZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlIHtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzYpO1xuICAgICAgICBmb250LXNpemU6IDAuNzRyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlLS1vcHBvbmVudCB7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2Ugc3Ryb25nIHtcbiAgICAgICAgbWF4LXdpZHRoOiA2LjVyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWF2YXRhciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxLjg1cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuODVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgZm9udC1zaXplOiAwLjc2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC45cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xNik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLXpvbmUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIDcuNXJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1taW5pLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtaW4taGVpZ2h0OiA0LjlyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNDhyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvIGF1dG87XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDIuNnJlbSwgMWZyKSBhdXRvO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoO1xuICAgICAgICBnYXA6IDAuMzJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1taW5pIHtcbiAgICAgICAgd2lkdGg6IDMuNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBpc29sYXRpb246IGlzb2xhdGU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNy4zNXJlbSk7XG4gICAgICAgIGhlaWdodDogOS4wNXJlbTtcbiAgICAgICAgbWF4LWhlaWdodDogOS4wNXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMC44NnJlbSAwLjgycmVtIDAuNzhyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZmZmZmZiwgI2Y4ZmFmYyksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNTAsIDIwNCwgMjEsIDAuMTgpLCB0cmFuc3BhcmVudCA0MiUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZC1zdGFjayB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgLmNocmlzdGlhbml0eS16b25lLWNhcmQtc3RhY2ssXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZC1zdGFjayxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLXN0YWNrIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQtc3RhY2sgdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEuNzJyZW07XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDMuNzVyZW0sIDcuM3Z3LCA0Ljg1cmVtKTtcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAuNHJlbSAwLjc1cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xNCkpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgLmNocmlzdGlhbml0eS16b25lLWNhcmQtc3RhY2sgdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgdG9wOiAxLjgycmVtO1xuICAgICAgICB3aWR0aDogY2xhbXAoMy4yNXJlbSwgNi4ydncsIDQuMXJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLS1wbGFjZSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZC1zdGFjayB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICB0b3A6IDEuNDVyZW07XG4gICAgICAgIHdpZHRoOiBjbGFtcCg0LjA1cmVtLCA3LjZ2dywgNS4yNXJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctZHJvcC10YXJnZXQgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3Bhbjpub3QoLmNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3QpOm5vdCguY2hyaXN0aWFuaXR5LXBpbGUtY2FyZC1oaW50KTpub3QoLmNocmlzdGlhbml0eS16b25lLWNhcmQtc3RhY2spIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDAuNzJyZW07XG4gICAgICAgIHJpZ2h0OiAwLjc2cmVtO1xuICAgICAgICBsZWZ0OiAwLjc2cmVtO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IHN0cmV0Y2g7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMC43NHJlbSwgMS45dncsIDAuODZyZW0pO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHN0cm9uZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDAuNThyZW07XG4gICAgICAgIGJvdHRvbTogMC42NHJlbTtcbiAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgbWluLXdpZHRoOiAxLjdyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMTNyZW0gMC4zOHJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM3LCAyNDIsIDI0NywgMC45Mik7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTUwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC43NXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzbWFsbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwLjc4cmVtO1xuICAgICAgICBsZWZ0OiAwLjY4cmVtO1xuICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIuN3JlbSk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IDAuNThyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4NTA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90ID4gLmNkay1kcmFnLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1waWxlLWNhcmQtaGludCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAyLjM1cmVtO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHdpZHRoOiBjbGFtcCgyLjdyZW0sIDYuNHZ3LCAzLjRyZW0pO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDQyLCA2NywgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzRyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk2KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjkpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSAxOCUsIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjI2KSwgdHJhbnNwYXJlbnQgNDQlKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSgtMmRlZyk7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwLjQycmVtIDAuOHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTQpKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1waWxlLWNhcmQtaGludCBpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDAuMzhyZW07XG4gICAgICAgIHJpZ2h0OiAwLjM4cmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDAuNzJyZW07XG4gICAgICAgIGhlaWdodDogMC43MnJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzNCUgMjglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSkgMCAwLjEycmVtLCB0cmFuc3BhcmVudCAwLjEzcmVtKSxcbiAgICAgICAgICAjZmZkOTFhO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgLTAuMDhyZW0gMCByZ2JhKDgyLCA2NCwgMjgsIDAuMTgpLFxuICAgICAgICAgIDAgMC4xMnJlbSAwLjI0cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjpiZWZvcmUsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGU6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZCB7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBjbGFtcCg2LjY1cmVtLCAxMC44dncsIDguODVyZW0pO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYXR0YWNrLWRyb3AtdGFyZ2V0IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcmFjay1zcGFjZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWluLWhlaWdodDogMXB4O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgdmFyKC0tY2hyaXN0aWFuaXR5LWJhdHRsZS1jYXJkLXdpZHRoKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoNC4zcmVtLCAxZnIpKTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIGdhcDogY2xhbXAoMC41NXJlbSwgMS4ydncsIDAuOXJlbSk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDguNHJlbTtcbiAgICAgICAgcGFkZGluZzogMC45MnJlbSAwLjgycmVtIDAuNzhyZW07XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNiwgNDgsIDY4LCAwLjA4KTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTQpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuMzYpKSxcbiAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZC0tcGxhY2Uge1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43MiksIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC41KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA2MiUgMzQlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE4KSwgdHJhbnNwYXJlbnQgNTIlKSxcbiAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYWNlLWJhY2tkcm9wIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBvcGFjaXR5OiAwLjUyO1xuICAgICAgICBmaWx0ZXI6IGJsdXIoMS4zcmVtKSBzYXR1cmF0ZSgxLjI4KTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE0KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQtLXBsYWNlOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42OCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNDIlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjQpLCB0cmFuc3BhcmVudCA1NCUpO1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMC40MnJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxhY2UtdG9rZW4ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMi4xOHJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogY2xhbXAoMy4ycmVtLCA3LjJ2dywgNC40NXJlbSk7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNywgOTksIDIzNSwgMC4xOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzUlIDI0JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyKSwgdHJhbnNwYXJlbnQgMzglKSxcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSksIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC43MikpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMC42NXJlbSAxLjFyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjE2KSxcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjE4cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGFjZS10b2tlbiBpbWcge1xuICAgICAgICB3aWR0aDogNDglO1xuICAgICAgICBoZWlnaHQ6IDQ4JTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAuMThyZW0gMC4yNHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTQpKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUge1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDk5OXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCksXG4gICAgICAgICAgMCAwLjQ1cmVtIDFyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjA2KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQuaXMtcGxheS10YXJnZXQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzcsIDk5LCAyMzUsIDAuMzgpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDk5OXB4IHJnYmEoMzcsIDk5LCAyMzUsIDAuMDgpLFxuICAgICAgICAgIDAgMCAwIDAuMThyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLS1oaXN0b3J5Lmhhcy1uZXctY2FyZCB7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWhpc3RvcnktcHVsc2UgOTAwbXMgZWFzZS1vdXQgYm90aDtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktaGlzdG9yeS1wdWxzZSB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgaW5zZXQgMCAwIDAgOTk5cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSxcbiAgICAgICAgICAgIDAgMCAwIDAgcmdiYSgzNywgOTksIDIzNSwgMCk7XG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDI4JSB7XG4gICAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDk5OXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNiksXG4gICAgICAgICAgICAwIDAgMCAwLjI1cmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTgpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMjUpO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDk5OXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMiksXG4gICAgICAgICAgICAwIDAgMCAwIHJnYmEoMzcsIDk5LCAyMzUsIDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxLjg1cmVtO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIHdpZHRoOiBjbGFtcCg0LjE1cmVtLCA3LjV2dywgNS4zNXJlbSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoLTJkZWcpO1xuICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMC4zNXJlbSAwLjc1cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xMikpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZC0tcGxhY2UgPiB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICB0b3A6IDEuNTVyZW07XG4gICAgICAgIHdpZHRoOiBjbGFtcCg0LjRyZW0sIDcuOHZ3LCA1Ljg1cmVtKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSgyZGVnKTtcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAuNjVyZW0gMS4xcmVtIHJnYmEoMTYsIDQyLCA2NywgMC4yKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLS1kZWNrID4gdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSgzZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUgLmNocmlzdGlhbml0eS1waWxlLWNhcmQtaGludCB7XG4gICAgICAgIHRvcDogMS44NXJlbTtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDMuNzVyZW0sIDcuNHZ3LCA0Ljg1cmVtKTtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE2LCA0MiwgNjcsIDAuMTQpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKC0yZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUtLWRlY2sgLmNocmlzdGlhbml0eS1waWxlLWNhcmQtaGludCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWJhY2spO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDNkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZS0tZGVjayAuY2hyaXN0aWFuaXR5LXBpbGUtY2FyZC1oaW50IGkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZS0taGlzdG9yeSAuY2hyaXN0aWFuaXR5LXBpbGUtY2FyZC1oaW50IHtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTYpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOSkpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDE4JSwgcmdiYSgzNywgOTksIDIzNSwgMC4xOCksIHRyYW5zcGFyZW50IDQ0JSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Bhbjpub3QoLmNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3QpOm5vdCguY2hyaXN0aWFuaXR5LXBsYWNlLXRva2VuKTpub3QoLmNocmlzdGlhbml0eS16b25lLWNhcmQtc3RhY2spLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzcGFuOm5vdCguY2hyaXN0aWFuaXR5LWVtcHR5LWNhcmQtc2xvdCk6bm90KC5jaHJpc3RpYW5pdHktcGlsZS1jYXJkLWhpbnQpOm5vdCguY2hyaXN0aWFuaXR5LXpvbmUtY2FyZC1zdGFjaykge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMC43MnJlbTtcbiAgICAgICAgbGVmdDogMC44MnJlbTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxLjU1cmVtKTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC44NCk7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMC43NnJlbSwgMi41dncsIDAuOTJyZW0pO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHN0cm9uZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDAuNDVyZW07XG4gICAgICAgIGJvdHRvbTogMC40NXJlbTtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgbWluLXdpZHRoOiAxLjY1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjEycmVtIDAuNHJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjY0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM3LCAyNDIsIDI0NywgMC45Mik7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTUwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC43NXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IGVtIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24tc2VsZjogZW5kO1xuICAgICAgICBwYWRkaW5nOiAwLjEycmVtIDAuMzhyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjEyKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42OHJlbTtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZC0tcGxhY2UgPiBzdHJvbmcge1xuICAgICAgICByaWdodDogMC40NXJlbTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWVtcHR5LWNhcmQtc2xvdCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxLjg1cmVtO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogY2xhbXAoNC4xNXJlbSwgNy41dncsIDUuMzVyZW0pO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCByZ2JhKDE2LCA0MiwgNjcsIDAuMjIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjM1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzYpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjpiZWZvcmUsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEuOTVyZW07XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDMuNXJlbSwgNy4ydncsIDQuNDVyZW0pO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDQyLCA2NywgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45NCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC01MCUgKyAwLjIycmVtKSkgcm90YXRlKDRkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTUwJSAtIDAuMjJyZW0pKSB0cmFuc2xhdGVZKDAuMTZyZW0pIHJvdGF0ZSgtM2RlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLmlzLWVtcHR5LXpvbmU6OmJlZm9yZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLmlzLWVtcHR5LXpvbmU6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAxMDAyMDtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCgwLCAxZnIpIGF1dG87XG4gICAgICAgIGdhcDogMC41NXJlbTtcbiAgICAgICAgd2lkdGg6IG1pbig1NnJlbSwgY2FsYygxMDB2dyAtIDEuMjVyZW0pKTtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDBkdmggLSA0LjI1cmVtKTtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGwuaXMtaGlzdG9yeS1wcmV2aWV3IHtcbiAgICAgICAgd2lkdGg6IG1pbig1NnJlbSwgY2FsYygxMDB2dyAtIDEuMjVyZW0pKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXRvcGJhciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogODtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDAuNjVyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuMDVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1wb3NpdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICBtaW4td2lkdGg6IDMuMTVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC42MnJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjQ1cmVtIDFyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjEpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogbWluKDE5LjI1cmVtLCBjYWxjKDU4ZHZoIC0gMi40cmVtKSwgY2FsYygxMDB2dyAtIDYuMnJlbSkpO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMi4ycmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nbG93KTtcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06XG4gICAgICAgICAgdHJhbnNsYXRlKHZhcigtLXByZXZpZXctc2hpZnQteCwgMHB4KSwgdmFyKC0tcHJldmlldy1zaGlmdC15LCAwcHgpKVxuICAgICAgICAgIHBlcnNwZWN0aXZlKDQ4cmVtKVxuICAgICAgICAgIHJvdGF0ZVgodmFyKC0tcHJldmlldy1yb3RhdGUteCwgMGRlZykpXG4gICAgICAgICAgcm90YXRlWSh2YXIoLS1wcmV2aWV3LXJvdGF0ZS15LCAwZGVnKSk7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNDBtcyBlYXNlLW91dDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIG1pbm1heCgxM3JlbSwgMTdyZW0pO1xuICAgICAgICBnYXA6IDFyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1zdGFnZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgMzFyZW0pO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiA0LjRyZW07XG4gICAgICAgIHBlcnNwZWN0aXZlOiA1MnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXN0YWdlOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMTAlIDIuMzVyZW07XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI2KSwgdHJhbnNwYXJlbnQgNTglKSxcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDM3LCA5OSwgMjM1LCAwLjEpLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1naG9zdCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgd2lkdGg6IG1pbigxM3JlbSwgY2FsYyg0MmR2aCAtIDNyZW0pLCAzNHZ3KTtcbiAgICAgICAgb3BhY2l0eTogMC4zNDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGZpbHRlcjogYmx1cigwLjAycmVtKSBzYXR1cmF0ZSgwLjkpO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMzYwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC44NCwgMC4yMiwgMSksIG9wYWNpdHkgMzYwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWdob3N0LS1wcmV2aW91cyB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtODYlKSByb3RhdGVZKDIyZGVnKSByb3RhdGUoLTRkZWcpIHNjYWxlKDAuOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1naG9zdC0tbmV4dCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4NiUpIHJvdGF0ZVkoLTIyZGVnKSByb3RhdGUoNGRlZykgc2NhbGUoMC44KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsLmlzLXNsaWRpbmctcHJldmlvdXMgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkIHtcbiAgICAgICAgYW5pbWF0aW9uOiBjaHJpc3RpYW5pdHktcHJldmlldy1zbGlkZS1wcmV2aW91cyAzNjBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjg0LCAwLjIyLCAxKSBib3RoO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGwuaXMtc2xpZGluZy1uZXh0IC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCB7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LXByZXZpZXctc2xpZGUtbmV4dCAzNjBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjg0LCAwLjIyLCAxKSBib3RoO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGNocmlzdGlhbml0eS1wcmV2aWV3LXNsaWRlLXByZXZpb3VzIHtcbiAgICAgICAgMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1wcmV2aWV3LXNoaWZ0LXgsIDBweCkgLSA0LjJyZW0pLCB2YXIoLS1wcmV2aWV3LXNoaWZ0LXksIDBweCkpIHBlcnNwZWN0aXZlKDQ4cmVtKSByb3RhdGVYKHZhcigtLXByZXZpZXctcm90YXRlLXgsIDBkZWcpKSByb3RhdGVZKGNhbGModmFyKC0tcHJldmlldy1yb3RhdGUteSwgMGRlZykgKyAxMGRlZykpIHNjYWxlKDAuOTIpO1xuICAgICAgICB9XG5cbiAgICAgICAgNTglIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1wcmV2aWV3LXNoaWZ0LXgsIDBweCksIHZhcigtLXByZXZpZXctc2hpZnQteSwgMHB4KSkgcGVyc3BlY3RpdmUoNDhyZW0pIHJvdGF0ZVgodmFyKC0tcHJldmlldy1yb3RhdGUteCwgMGRlZykpIHJvdGF0ZVkodmFyKC0tcHJldmlldy1yb3RhdGUteSwgMGRlZykpIHNjYWxlKDEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LXByZXZpZXctc2xpZGUtbmV4dCB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGModmFyKC0tcHJldmlldy1zaGlmdC14LCAwcHgpICsgNC4ycmVtKSwgdmFyKC0tcHJldmlldy1zaGlmdC15LCAwcHgpKSBwZXJzcGVjdGl2ZSg0OHJlbSkgcm90YXRlWCh2YXIoLS1wcmV2aWV3LXJvdGF0ZS14LCAwZGVnKSkgcm90YXRlWShjYWxjKHZhcigtLXByZXZpZXctcm90YXRlLXksIDBkZWcpIC0gMTBkZWcpKSBzY2FsZSgwLjkyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDU4JSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tcHJldmlldy1zaGlmdC14LCAwcHgpLCB2YXIoLS1wcmV2aWV3LXNoaWZ0LXksIDBweCkpIHBlcnNwZWN0aXZlKDQ4cmVtKSByb3RhdGVYKHZhcigtLXByZXZpZXctcm90YXRlLXgsIDBkZWcpKSByb3RhdGVZKHZhcigtLXByZXZpZXctcm90YXRlLXksIDBkZWcpKSBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctc2lkZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsLmlzLWdhbGxlcnktcHJldmlldyAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQge1xuICAgICAgICB3aWR0aDogbWluKDIwLjRyZW0sIGNhbGMoNjJkdmggLSAyLjJyZW0pLCBjYWxjKDEwMHZ3IC0gNS40cmVtKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1iaWJsZS1jcmVkaXQge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgbWF4LXdpZHRoOiBtaW4oMjByZW0sIGNhbGMoMTAwdncgLSA0cmVtKSk7XG4gICAgICAgIG1hcmdpbjogMC4ycmVtIDAgMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC40OHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAwLjFyZW0gMC4yNXJlbSByZ2JhKDE1LCAyMywgNDIsIDAuMzUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWlubWF4KDAsIDFmcikgYXV0bztcbiAgICAgICAgZ2FwOiAwLjQycmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1oZWFkZXIgc3Ryb25nIHtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGNsaXA7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjI1cmVtLCA1dncsIDEuODVyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtdHlwZS1pY29uLFxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtY29zdCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC10eXBlLWljb24ge1xuICAgICAgICB3aWR0aDogMS42cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuNnJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSA1MCUsIHJnYmEoOTUsIDExMSwgNDIsIDAuNzIpIDAgMC4yMnJlbSwgdHJhbnNwYXJlbnQgMC4yNHJlbSksXG4gICAgICAgICAgcmdiYSgzNiwgNDgsIDY4LCAwLjEpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC10eXBlLWljb24gaW1nIHtcbiAgICAgICAgd2lkdGg6IDFyZW07XG4gICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtY29zdCB7XG4gICAgICAgIG1pbi13aWR0aDogMi4xcmVtO1xuICAgICAgICBoZWlnaHQ6IDIuMXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjM2cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZkOTFhO1xuICAgICAgICBjb2xvcjogIzI0MzA0NDtcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTAuMTJyZW0gMCByZ2JhKDgyLCA2NCwgMjgsIDAuMTgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1hcnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDlyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNDhyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg5NSwgMTExLCA0MiwgMC4yKSwgcmdiYSgyMTQsIDE2MiwgMjksIDAuMTYpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSAyNSUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NiksIHRyYW5zcGFyZW50IDQyJSksXG4gICAgICAgICAgI2RiZTdlZjtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMzYsIDQ4LCA2OCwgMC4wOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWFydCBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtYXJ0ID4gc3BhbiB7XG4gICAgICAgIG1heC13aWR0aDogODAlO1xuICAgICAgICBjb2xvcjogcmdiYSgzNiwgNDgsIDY4LCAwLjU4KTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjFyZW0sIDV2dywgMS44cmVtKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtYXJ0IHNtYWxsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwLjU1cmVtO1xuICAgICAgICBtaW4td2lkdGg6IDVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMTZyZW0gMC40OHJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHggMCAwIDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zcmVtIDAuOHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTIpO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc0KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY4cmVtO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtdmVyc2UsXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1lZmZlY3Qge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMzJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXZlcnNlIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1lZmZlY3QgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXZlcnNlIHtcbiAgICAgICAgY29sb3I6ICMxNzE5MjM7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCAnVGltZXMgTmV3IFJvbWFuJywgc2VyaWY7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMC43MnJlbSwgMi43dncsIDAuODZyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC12ZXJzZSBzdHJvbmcge1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1lZmZlY3Qge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0YXJ0O1xuICAgICAgICBtaW4taGVpZ2h0OiA3cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjZyZW0gMC43cmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjQ1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDcyJSwgcmdiYSgzNiwgNDgsIDY4LCAwLjA3KSwgdHJhbnNwYXJlbnQgMzQlKSxcbiAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODYpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1zdGF0cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMS4zNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtc3RhdHMgc3Ryb25nIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtc3RhdHMgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtcGlwcyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ncmlkO1xuICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgICAgICBnYXA6IDAuMnJlbTtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCA+IGRpdjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMTJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCA+IGRpdjpsYXN0LW9mLXR5cGUgc3Ryb25nIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1lZmZlY3QgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMC43OHJlbSwgMi45dncsIDAuOTJyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1yYXJpdHkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMC42MnJlbTtcbiAgICAgICAgcmlnaHQ6IDAuNjJyZW07XG4gICAgICAgIHdpZHRoOiAwLjQ2cmVtO1xuICAgICAgICBoZWlnaHQ6IDAuNDZyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMTJyZW07XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtcmFyaXR5LmlzLW5vcm1hbCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMzYTgwZTk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXJhcml0eS5pcy1nb29kIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzRlZTkzYTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtcmFyaXR5LmlzLXZlcnktZ29vZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlOWNlM2E7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWZvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvIG1pbm1heCgwLCAxZnIpIGF1dG87XG4gICAgICAgIGdhcDogMC4zNHJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC41OHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWZvb3RlciBzcGFuIHtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiA4O1xuICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNnJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43OCk7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjQ1cmVtIDFyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjEpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgei1pbmRleDogNztcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDIuNTVyZW07XG4gICAgICAgIGhlaWdodDogMi41NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNywgOTksIDIzNSwgMC4yOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCksIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC45NCkpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzUlIDIwJSwgcmdiYSgzNywgOTksIDIzNSwgMC4xOCksIHRyYW5zcGFyZW50IDUyJSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDEwMDA7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjc1cmVtIDEuNHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTQpLFxuICAgICAgICAgIGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDQpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzcsIDk5LCAyMzUsIDAuNDIpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMC45NXJlbSAxLjY1cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xOCksXG4gICAgICAgICAgMCAwIDAgMC4xNnJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjA4KSxcbiAgICAgICAgICBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdi0tcHJldmlvdXMge1xuICAgICAgICBsZWZ0OiAwLjZyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYtLW5leHQge1xuICAgICAgICByaWdodDogMC42cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYmFja2Ryb3AsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktYmFja2Ryb3AsXG4gICAgICAuY2hyaXN0aWFuaXR5LWluZm8tYmFja2Ryb3Age1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC42NCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1iYWNrZHJvcCB7XG4gICAgICAgIHotaW5kZXg6IDEwMDEwO1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMC4xMnJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaW5mby1iYWNrZHJvcCB7XG4gICAgICAgIHotaW5kZXg6IDUwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWluZm8tcGFuZWwge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDUxO1xuICAgICAgICB3aWR0aDogbWluKDMxcmVtLCBjYWxjKDEwMHZ3IC0gMS4yNXJlbSkpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBtaW4oMzRyZW0sIGNhbGMoMTAwdmggLSAycmVtKSk7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyLjM1cmVtO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1pbmZvLWNsb3NlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwLjE1cmVtO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgZ2FwOiAwLjg1cmVtO1xuICAgICAgICBtYXgtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjlyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk3KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk3KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4JSAwJSwgcmdiYSgzNywgOTksIDIzNSwgMC4xKSwgdHJhbnNwYXJlbnQgMzglKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDEuMnJlbSAyLjZyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjI0KSxcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjI1cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41Mik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLWljb24ge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMi4xcmVtO1xuICAgICAgICBoZWlnaHQ6IDIuMXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpIDEyJSwgI2ZmZmZmZik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWZvY3VzKSAyNCUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc21hbGwsXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBwLFxuICAgICAgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgaDIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHNtYWxsIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgaDIge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjE4cmVtO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuNXJlbSwgN3Z3LCAyLjJyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc3Ryb25nIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgbWFyZ2luLXRvcDogMC41NXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4yMnJlbSAwLjU1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2VkZjJmNztcbiAgICAgICAgZm9udC1zaXplOiAwLjkycmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMC43NXJlbTtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43OCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjhyZW0gMCAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMDVyZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzgpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkID4gc21hbGwsXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42NCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCA+IHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41NXJlbSwgOHZ3LCAyLjM1cmVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCA+IHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICBnYXA6IDAuNjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICAgICAgbWF4LWhlaWdodDogbWluKDE4cmVtLCA1NGR2aCk7XG4gICAgICAgIHBhZGRpbmc6IDAuNjhyZW0gMC43NnJlbTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44OCksIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC44MikpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgOCUgMCUsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMDcpLCB0cmFuc3BhcmVudCA0NCUpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNTVyZW0gMS4ycmVtIHJnYmEoMTYsIDQyLCA2NywgMC4wOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvIG1pbm1heCg0LjVyZW0sIDFmcikgYXV0bztcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIG1heC1oZWlnaHQ6IG1pbigxNXJlbSwgMzRkdmgpO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjcycmVtIDAuNzhyZW0gMC43OHJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNywgOTksIDIzNSwgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk3KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk3KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4JSAwJSwgcmdiYSgzNywgOTksIDIzNSwgMC4xKSwgdHJhbnNwYXJlbnQgNDQlKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjc1cmVtIDEuNnJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAwLjdyZW07XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcy1oZWFkZXIgPiBkaXYge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMXJlbTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyBwLFxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcy1oZWFkZXIgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQgc3Ryb25nIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHNtYWxsIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42OHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcy1oZWFkZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTIpO1xuICAgICAgICBmb250LXNpemU6IDAuNzJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LW5hdiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LW5hdiBidXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMS44NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjg1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44OCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5NTA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC44NXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjE0KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogMC4zNHJlbTtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogMS44NXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjU4cmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM3LCAyNDIsIDI0NywgMC44Mik7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzYpO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuNzRyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIGJ1dHRvbi5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNywgOTksIDIzNSwgMC4zMik7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpIDE0JSwgI2ZmZmZmZik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICBtaW4taGVpZ2h0OiA0LjVyZW07XG4gICAgICAgIGdhcDogMC4zNHJlbTtcbiAgICAgICAgcGFkZGluZzogMC41NXJlbSAwLjYycmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjYycmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHN0cm9uZyB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuOSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDk1MDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXNjcm9sbCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgcCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzQpO1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWZvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXVzZS1hYmlsaXR5IHtcbiAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjcycmVtO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNTVyZW0gMS4xcmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMjIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctdXNlLWFiaWxpdHk6ZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzYpO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjUpO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgc21hbGwge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHN0cm9uZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjA4cmVtO1xuICAgICAgICBmb250LXNpemU6IDAuOTJyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuMjJyZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzQpO1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjMyO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNTJyZW0pIHtcbiAgICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsIHtcbiAgICAgICAgICB3aWR0aDogbWluKDU4cmVtLCBjYWxjKDEwMHZ3IC0gM3JlbSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgd2lkdGg6IG1pbigyMy40cmVtLCBjYWxjKDY5ZHZoIC0gNS44NXJlbSksIDI1cmVtKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNTEuOTlyZW0pIHtcbiAgICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsIHtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICBnYXA6IDAuNHJlbTtcbiAgICAgICAgICB3aWR0aDogbWluKGNhbGMoMTAwdncgLSAwLjlyZW0pLCAyNHJlbSk7XG4gICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDBkdmggLSAxLjE1cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1jb250ZW50IHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXNpZGUge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctc3RhZ2Uge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAzLjU1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkIHtcbiAgICAgICAgICB3aWR0aDogbWluKDE2LjVyZW0sIGNhbGMoNjZkdmggLSA3LjRyZW0pLCBjYWxjKDEwMHZ3IC0gNi4zNXJlbSkpO1xuICAgICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsLmlzLWdhbGxlcnktcHJldmlldyAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQge1xuICAgICAgICAgIHdpZHRoOiBtaW4oMTcuMjVyZW0sIGNhbGMoNzBkdmggLSA3LjJyZW0pLCBjYWxjKDEwMHZ3IC0gNS43NXJlbSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWJpYmxlLWNyZWRpdCB7XG4gICAgICAgICAgbWF4LXdpZHRoOiBtaW4oMTcuNXJlbSwgY2FsYygxMDB2dyAtIDQuMjVyZW0pKTtcbiAgICAgICAgICBmb250LXNpemU6IDAuNDJyZW07XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTg7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3Qge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiBtaW4oNy4xcmVtLCBjYWxjKDMwZHZoIC0gNHJlbSksIDI0dncpO1xuICAgICAgICAgIG9wYWNpdHk6IDAuMjQ7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3QtLXByZXZpb3VzIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTExOCUpIHJvdGF0ZVkoMjRkZWcpIHJvdGF0ZSgtNWRlZykgc2NhbGUoMC43OCk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3QtLW5leHQge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMTglKSByb3RhdGVZKC0yNGRlZykgcm90YXRlKDVkZWcpIHNjYWxlKDAuNzgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWNsb3NlIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxLjlyZW07XG4gICAgICAgICAgcGFkZGluZzogMCAwLjU4cmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYge1xuICAgICAgICAgIHdpZHRoOiAyLjJyZW07XG4gICAgICAgICAgaGVpZ2h0OiAyLjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2LS1wcmV2aW91cyB7XG4gICAgICAgICAgbGVmdDogMC4zNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYtLW5leHQge1xuICAgICAgICAgIHJpZ2h0OiAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG8gbWlubWF4KDQuN3JlbSwgMWZyKSBhdXRvO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IG1pbigxMy41cmVtLCAzNGR2aCk7XG4gICAgICAgICAgcGFkZGluZzogMC42MnJlbSAwLjdyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIHtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4wMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDQuN3JlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjQ4cmVtIDAuNTRyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHAge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4yNDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy11c2UtYWJpbGl0eSB7XG4gICAgICAgICAgbWluLWhlaWdodDogMS45NXJlbTtcbiAgICAgICAgICBwYWRkaW5nLWlubGluZTogMC42OHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktYmFja2Ryb3Age1xuICAgICAgICB6LWluZGV4OiA0MDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWJhY2tkcm9wIHtcbiAgICAgICAgei1pbmRleDogMTAwMDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC43Mik7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigwLjE0cmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgIGJvdHRvbTogbWF4KDAuNXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiA0MTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICBnYXA6IDAuNzVyZW07XG4gICAgICAgIHdpZHRoOiBtaW4oY2FsYygxMDB2dyAtIDFyZW0pLCA0NHJlbSk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IG1pbigxOHJlbSwgY2FsYygxMDBkdmggLSAxcmVtKSk7XG4gICAgICAgIG1heC1oZWlnaHQ6IG1pbigzMnJlbSwgY2FsYygxMDBkdmggLSAycmVtKSk7XG4gICAgICAgIHBhZGRpbmc6IDAuOHJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxLjVyZW0gNHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMjgpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDAuNzVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgaDIsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgaGVhZGVyIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDEuODVyZW07XG4gICAgICAgIGhlaWdodDogMS44NXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlZGYyZjc7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZGlhbG9nLWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDAuNDVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlIHtcbiAgICAgICAgbWluLWhlaWdodDogMS44NXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjYycmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43OCk7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuOHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDUuNHJlbSwgMWZyKSk7XG4gICAgICAgIGdhcDogMC41NXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgICBzY3JvbGxiYXItY29sb3I6IHJnYmEoMzYsIDQ4LCA2OCwgMC4zMikgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW0gMC4xcmVtIDAuMjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhcixcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICB3aWR0aDogMC42NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNzIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYm9yZGVyOiAwLjE0cmVtIHNvbGlkIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43Mik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM2LCA0OCwgNjgsIDAuMzIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1kcmF3ZXIge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgd2lkdGg6IG1pbihjYWxjKDEwMHZ3IC0gMXJlbSksIDQ4cmVtKTtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDIwcmVtLCBjYWxjKDEwMGR2aCAtIDFyZW0pKTtcbiAgICAgICAgbWF4LWhlaWdodDogbWluKDM0cmVtLCBjYWxjKDEwMGR2aCAtIDJyZW0pKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgZ2FwOiAwLjY1cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDAuNzJyZW0gMC44cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjdyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk2KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk2KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4JSAwJSwgcmdiYSgyMTQsIDE2MiwgMjksIDAuMTIpLCB0cmFuc3BhcmVudCA0MiUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzYpO1xuICAgICAgICBmb250LXNpemU6IDAuODZyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Qge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuNnJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgICBzY3JvbGxiYXItY29sb3I6IHJnYmEoMzYsIDQ4LCA2OCwgMC4zMikgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlO1xuICAgICAgICBwYWRkaW5nOiAwLjFyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoNS40cmVtLCA2LjVyZW0pIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICBnYXA6IDAuNjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDAuNDVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93LmlzLWV4aGF1c3RlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjg7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXIge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvIGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICB6LWluZGV4OiAxMDAwMTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6IDEwMGR2dztcbiAgICAgICAgaGVpZ2h0OiAxMDBkdmg7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgbWluLWhlaWdodDogMTAwZHZoO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDBkdmg7XG4gICAgICAgIHBhZGRpbmc6XG4gICAgICAgICAgbWF4KDFyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSlcbiAgICAgICAgICBtYXgoMXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpXG4gICAgICAgICAgbWF4KDFyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSlcbiAgICAgICAgICBtYXgoMXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTkpLCByZ2JhKDIzOSwgMjQ2LCAyNTUsIDAuOTkpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDE2JSAwJSwgcmdiYSgzNywgOTksIDIzNSwgMC4xMiksIHRyYW5zcGFyZW50IDQyJSk7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciBoZWFkZXIgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMTVyZW07XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciBoZWFkZXIgcCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDguNXJlbSwgMTNyZW0pO1xuICAgICAgICBnYXA6IDAuNjVyZW07XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjI1cmVtO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjIpO1xuICAgICAgICBmb250LXNpemU6IDAuNzRyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBpbnB1dCxcbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBzZWxlY3Qge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAyLjM1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNzVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIGJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDAuNDVyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuMzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC43NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMTQsIDE2MiwgMjksIDAuMzgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXBhcmNobWVudCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZWRpdGlvbi1zdHJpcCBpbWcge1xuICAgICAgICB3aWR0aDogMS4ycmVtO1xuICAgICAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCg4LjJyZW0sIDkuMXJlbSkpO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgICAgIGdhcDogMC45NXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBzY3JvbGxiYXItY29sb3I6IHJnYmEoMzYsIDQ4LCA2OCwgMC4zMikgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlO1xuICAgICAgICBwYWRkaW5nOiAwLjM1cmVtIDAuMTVyZW0gMC42NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNhcmQtYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiAwLjY1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYm9yZGVyOiAwLjE0cmVtIHNvbGlkIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43Mik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM2LCA0OCwgNjgsIDAuMzIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoO1xuICAgICAgICBnYXA6IDAuMjZyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiA3LjdyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNThyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk2KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk2KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA3OCUgMTQlLCByZ2JhKDI1MCwgMjA0LCAyMSwgMC43OCkgMCAwLjQycmVtLCB0cmFuc3BhcmVudCAwLjQ0cmVtKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjQ1cmVtIDFyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjEpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgc21hbGwge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IDAuNjJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHN0cm9uZyB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjFyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgICAgICBmb250LXNpemU6IDAuODhyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMC40MnJlbTtcbiAgICAgICAgYm90dG9tOiAwLjQycmVtO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDEuNTVyZW07XG4gICAgICAgIGhlaWdodDogMS41NXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjI4cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2VkZjJmNztcbiAgICAgICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgZW0ge1xuICAgICAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMS45cmVtKTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42NHJlbTtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBwLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHAge1xuICAgICAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjQpO1xuICAgICAgICBmb250LXNpemU6IDAuNzJyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93ID4gZGl2IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjM1cmVtO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgPiBkaXYgcCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzIpO1xuICAgICAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93ID4gZGl2IGJ1dHRvbiB7XG4gICAgICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuMnJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjdyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDQyLCA2NywgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogIzEwMmE0MztcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93ID4gZGl2IGJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlMmU4ZjA7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZCAuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbiB7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIDYuNHJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkIC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgOC43cmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDAuNzRyZW0sIDAuODV2dywgMC45cmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzbWFsbCxcbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1mb290ZXIge1xuICAgICAgICBmb250LXNpemU6IDAuNDRyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA1LjhyZW0pO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuXG4gICAgICBidXR0b24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogMC4xODc1cmVtIHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpIDI0JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogMC4xMjVyZW07XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyayksXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyayksXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyayksXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIHtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rOiB2YXIoLS1pb24tdGV4dC1jb2xvciwgI2U1ZWRmOCk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLXN1cmZhY2U6ICMxMTE4Mjc7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLXBhcmNobWVudDogIzEzMjIzYTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtb2xpdmU6ICM5M2M1ZmQ7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQ6ICM2MGE1ZmE7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtc29mdDogcmdiYSg5NiwgMTY1LCAyNTAsIDAuMTgpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkLXJpbmc6IHJnYmEoMTQ3LCAxOTcsIDI1MywgMC40Mik7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdsb3c6IHJnYmEoOTYsIDE2NSwgMjUwLCAwLjI0KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXM6ICM5M2M1ZmQ7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjM0KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93LXN0cm9uZzogcmdiYSgwLCAwLCAwLCAwLjQ4KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTQ3LCAxOTcsIDI1MywgMC4yKSwgcmdiYSgxNSwgMjMsIDQyLCAwLjA4KSksXG4gICAgICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZywgIzFlM2E1ZiAwIDAuMzNyZW0sICMwZjE3MmEgMC4zM3JlbSAwLjY2cmVtKTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrLXNvZnQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxNDcsIDE5NywgMjUzLCAwLjE1KSwgcmdiYSgxNSwgMjMsIDQyLCAwLjA2KSksXG4gICAgICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZywgIzFlM2E1ZiAwIDAuMzNyZW0sICMwZjE3MmEgMC4zM3JlbSAwLjY2cmVtKTtcbiAgICAgICAgY29sb3Itc2NoZW1lOiBkYXJrO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktb3BlbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1vcGVuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1vcGVuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1vcGVuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktb3BlbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc2Vjb25kYXJ5LWFjdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2Vjb25kYXJ5LWFjdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb24sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zZWNvbmRhcnktYWN0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb24sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZWRpdGlvbi1zdHJpcCBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZWRpdGlvbi1zdHJpcCBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWVkaXRpb24tc3RyaXAgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWVkaXRpb24tc3RyaXAgYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0NywgMTk3LCAyNTMsIDAuMzYpO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMzAsIDU4LCA5NSwgMC44MiksIHJnYmEoMTUsIDIzLCA0MiwgMC44OCkpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMjAlIDAlLCByZ2JhKDk2LCAxNjUsIDI1MCwgMC4xNiksIHRyYW5zcGFyZW50IDQyJSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjU1cmVtIDEuMnJlbSByZ2JhKDAsIDAsIDAsIDAuMjQpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXNwbGFzaCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3BsYXNoLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3BsYXNoLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc3BsYXNoLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXNwbGFzaCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDcsIDE5NywgMjUzLCAwLjIyKTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSAxOCUsIHJnYmEoOTYsIDE2NSwgMjUwLCAwLjE2KSwgdHJhbnNwYXJlbnQgMjJyZW0pLFxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMTUsIDIzLCA0MiwgMC44OCksIHJnYmEoNywgMTcsIDMxLCAwLjk3KSksXG4gICAgICAgICAgdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYmFjay1zb2Z0KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxLjJyZW0gMy4ycmVtIHJnYmEoMCwgMCwgMCwgMC4yOCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIGFydGljbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBhcnRpY2xlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIGFydGljbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX3N0YXR1cyBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fc3RhdHVzIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fc3RhdHVzIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fc3RhdHVzIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc3RhcnRfX3N0YXR1cyBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgYXJ0aWNsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgYXJ0aWNsZSA+IHNwYW4ge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4yKTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjY4KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjc1cmVtIDEuN3JlbSByZ2JhKDAsIDAsIDAsIDAuMjIpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXNwbGFzaCBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zcGxhc2ggcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNwbGFzaCBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc3BsYXNoIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc3BsYXNoIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jb3B5IHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jb3B5IHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY29weSBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NvcHkgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zdGFydF9fY29weSBwLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBwLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBwLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBwLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBwLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oZWFkZXIgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGVhZGVyIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oZWFkZXIgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXNjb3JlYm9hcmQgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXNjb3JlYm9hcmQgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNzQpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXR1cm4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXR1cm4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS10dXJuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktdHVybixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS10dXJuLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1sZWFkZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWxlYWRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWxlYWRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWxlYWRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1sZWFkZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktaGlkZGVuLWhhbmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpZGRlbi1oYW5kLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlkZGVuLWhhbmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1oaWRkZW4taGFuZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1oaWRkZW4taGFuZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXBpbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXBpbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWRlY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWRlY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1kZWNrLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZGVjayxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1kZWNrLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wbGFjZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcGxhY2UsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wbGFjZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYWNlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXBsYWNlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXAsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1hY3Rpb25zLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1hY3Rpb25zLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktYWN0aW9ucyxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWFjdGlvbnMsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktYWN0aW9ucyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnksXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWhpc3Rvcnkge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xOCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC44Mik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktdHVybi5pcy1vd24tdHVybixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktdHVybi5pcy1vd24tdHVybixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXR1cm4uaXMtb3duLXR1cm4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS10dXJuLmlzLW93bi10dXJuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXR1cm4uaXMtb3duLXR1cm4ge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoNDUsIDIxMiwgMTkxLCAwLjM2KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMCwgODMsIDc2LCAwLjM2KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS10YWJsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktdGFibGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS10YWJsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXRhYmxlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXRhYmxlIHtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzEwMjMzZCwgIzBiMTcyOCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYXllci1zaWRlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC4zNCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC41OCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUuaXMtcGxhY2luZy1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZS5pcy1wbGFjaW5nLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZS5pcy1wbGFjaW5nLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZS5pcy1wbGFjaW5nLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUuaXMtcGxhY2luZy1jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDMwLCA1OCwgOTUsIDAuODIpLCByZ2JhKDE1LCAyMywgNDIsIDAuNzIpKSxcbiAgICAgICAgICByZ2JhKDE1LCAyMywgNDIsIDAuNTgpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zbG90LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zbG90LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2xvdCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc2xvdCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjI0KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjU0KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0LFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0IHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMjQpLCByZ2JhKDE1LCAyMywgNDIsIDAuNzgpKSxcbiAgICAgICAgICByZ2JhKDE1LCAyMywgNDIsIDAuNzQpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1jYXJkIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktY2FyZCBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1jYXJkIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWNhcmQgc3Ryb25nIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzMCwgNDEsIDU5LCAwLjkyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS16b25lLXBpbGUge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4yNCk7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxNywgMjQsIDM5LCAwLjk2KSwgcmdiYSgxNSwgMjMsIDQyLCAwLjk0KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAxNCUgMCUsIHJnYmEoOTYsIDE2NSwgMjUwLCAwLjEyKSwgdHJhbnNwYXJlbnQgNDIlKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMC41NXJlbSAxLjI1cmVtIHJnYmEoMCwgMCwgMCwgMC4yOCksXG4gICAgICAgICAgaW5zZXQgMCAwIDAgMC4xMnJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktem9uZS1waWxlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2UsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2UsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2UsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43OCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHNtYWxsIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC42Mik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktem9uZS1waWxlID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuODgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjhyZW0gcmdiYSgwLCAwLCAwLCAwLjI4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyIHNwYW4ge1xuICAgICAgICBjb2xvcjogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGU6OmJlZm9yZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YmVmb3JlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YmVmb3JlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YmVmb3JlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGU6OmJlZm9yZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjpiZWZvcmUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YmVmb3JlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjpiZWZvcmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmJlZm9yZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuOTIpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC44NXJlbSByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGU6OmFmdGVyLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjphZnRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGU6OmFmdGVyLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YWZ0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YWZ0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YWZ0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YWZ0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmFmdGVyLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjphZnRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuODVyZW0gcmdiYSgwLCAwLCAwLCAwLjI2KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1lbmQtdHVybjpkaXNhYmxlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZW5kLXR1cm46ZGlzYWJsZWQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1lbmQtdHVybjpkaXNhYmxlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWVuZC10dXJuOmRpc2FibGVkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWVuZC10dXJuOmRpc2FibGVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMTYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNDYpO1xuICAgICAgICBjb2xvcjogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjQyKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlcixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlcixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xOCk7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxNSwgMjMsIDQyLCAwLjk2KSwgcmdiYSgxNywgMjQsIDM5LCAwLjk2KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4JSAwJSwgcmdiYSg5NiwgMTY1LCAyNTAsIDAuMTIpLCB0cmFuc3BhcmVudCA0MCUpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDEuNXJlbSA0cmVtIHJnYmEoMCwgMCwgMCwgMC40Mik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWNsb3NlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWNsb3NlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1jbG9zZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1jbG9zZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1wb3NpdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1wb3NpdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcG9zaXRpb24sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXBvc2l0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcG9zaXRpb24sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2LFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1uYXYgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktbmF2IGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1uYXYgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LW5hdiBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LW5hdiBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIGJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjIyKTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjk0KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC44cmVtIHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyBidXR0b24uaXMtc2VsZWN0ZWQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIGJ1dHRvbi5pcy1zZWxlY3RlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIGJ1dHRvbi5pcy1zZWxlY3RlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIGJ1dHRvbi5pcy1zZWxlY3RlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyBidXR0b24uaXMtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoOTYsIDE2NSwgMjUwLCAwLjM4KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNywgOTksIDIzNSwgMC4yMik7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIxOSwgMjM0LCAyNTQsIDAuOTQpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctdXNlLWFiaWxpdHk6ZGlzYWJsZWQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctdXNlLWFiaWxpdHk6ZGlzYWJsZWQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXVzZS1hYmlsaXR5OmRpc2FibGVkLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy11c2UtYWJpbGl0eTpkaXNhYmxlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LXVzZS1hYmlsaXR5OmRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg1MSwgNjUsIDg1LCAwLjc4KTtcbiAgICAgICAgY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC40OCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE2KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjQyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZCBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZCBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLWhlYWRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcy1oZWFkZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLWhlYWRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMtaGVhZGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMtaGVhZGVyIHNwYW4ge1xuICAgICAgICBjb2xvcjogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjgyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBoZWFkZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgaGVhZGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBoZWFkZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGhlYWRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGhlYWRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHN0cm9uZyB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzAsIDQxLCA1OSwgMC45Mik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciBoZWFkZXIgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXIgaGVhZGVyIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciBoZWFkZXIgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIGhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIGhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGxhYmVsLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGxhYmVsLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBsYWJlbCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgbGFiZWwsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNjgpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSB1bCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHVsLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHVsLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHVsLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSB1bCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyBwLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLW5vdGUgcCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuOCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBpbnB1dCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBpbnB1dCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgaW5wdXQsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGlucHV0LFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgaW5wdXQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgc2VsZWN0LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIHNlbGVjdCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgc2VsZWN0LFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBzZWxlY3QsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBzZWxlY3QsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvdyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93LFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93LFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvdyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNzgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3QsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHtcbiAgICAgICAgc2Nyb2xsYmFyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuNTQpIHJnYmEoMTUsIDIzLCA0MiwgMC44Nik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLWljb24sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZS1pY29uLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLWljb24sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoOTYsIDE2NSwgMjUwLCAwLjE2KTtcbiAgICAgICAgY29sb3I6ICNiZmRiZmU7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDE0NywgMTk3LCAyNTMsIDAuMjIpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC44Nik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE1LCAyMywgNDIsIDAuODYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuNTQpO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwge1xuICAgICAgICAgIHBhZGRpbmc6XG4gICAgICAgICAgICBtYXgoMC43NXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC10b3ApKVxuICAgICAgICAgICAgbWF4KDAuNzVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKVxuICAgICAgICAgICAgMTAuNDVyZW1cbiAgICAgICAgICAgIG1heCgwLjc1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaXMtcHJlcGFyaW5nIHtcbiAgICAgICAgICBwYWRkaW5nOlxuICAgICAgICAgICAgbWF4KDAuNzVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSlcbiAgICAgICAgICAgIG1heCgwLjc1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSlcbiAgICAgICAgICAgIG1heCgwLjc1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpXG4gICAgICAgICAgICBtYXgoMC43NXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXNoZWxsLmlzLXByZXBhcmluZyAuY2hyaXN0aWFuaXR5LXRhYmxlIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiBjYWxjKDEwMGR2aCAtIG1heCgxLjVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIHtcbiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgcmlnaHQ6IG1heCgwLjZyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKTtcbiAgICAgICAgICBib3R0b206IGNhbGMobWF4KDAuNzVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSkgKyA3LjQ1cmVtKTtcbiAgICAgICAgICB6LWluZGV4OiA4MDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIGJ1dHRvbiB7XG4gICAgICAgICAgbWluLWhlaWdodDogMi4xNXJlbTtcbiAgICAgICAgICBwYWRkaW5nLWlubGluZTogMC43cmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXIsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXAsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyX19zdW1tYXJ5IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IG1heCgwLjVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1heCgwLjVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXIsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyX19zdW1tYXJ5LFxuICAgICAgICAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lIHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS10dXJuLWJhbm5lciB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgICBnYXA6IDAuNDVyZW07XG4gICAgICAgICAgcGFkZGluZzogMC41NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktdHVybi1hY3Rpb25zIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWVuZC10dXJuIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAyLjE1cmVtO1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwLjdyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW9wdGlvbnMtYnV0dG9uIHtcbiAgICAgICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1vcHRpb25zLW1lbnUge1xuICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgIGxlZnQ6IDAuNTVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLXBhbmVsLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LXJlc3VsdC1wYW5lbCB7XG4gICAgICAgICAgaW5zZXQ6IDAuNTVyZW07XG4gICAgICAgICAgcGFkZGluZzogMC43cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLWdyaWQge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCA4LjFyZW0pKTtcbiAgICAgICAgICBnYXA6IDAuNXJlbTtcbiAgICAgICAgICB3aWR0aDogbWluKDEwMCUsIDE3cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1vcHRpb24ge1xuICAgICAgICAgIHBhZGRpbmc6IDAuMzhyZW07XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMC43OHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1jYXJkIHtcbiAgICAgICAgICB3aWR0aDogbWluKDEwMCUsIDcuMXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2Utb3B0aW9uIHNwYW4ge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuNjVyZW07XG4gICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDAuMzRyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtZGV0YWlsIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxLjlyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciB7XG4gICAgICAgICAgZ2FwOiAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgc21hbGwge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhlYWRlci1hY3Rpb25zIHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9faGVybyB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2ZhbiB7XG4gICAgICAgICAgbWluLWhlaWdodDogMTAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2ZhbiB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICAgIHdpZHRoOiBjbGFtcCg1LjJyZW0sIDIydncsIDYuNHJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2gge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IG1pbigzMHJlbSwgY2FsYygxMDBkdmggLSA3cmVtKSk7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogbWF4KDAuNjVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IG1heCgwLjY1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnQge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IG1pbigzMHJlbSwgY2FsYygxMDBkdmggLSA3cmVtKSk7XG4gICAgICAgICAgcGFkZGluZzogMC4zNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCB7XG4gICAgICAgICAgbWluLXdpZHRoOiAzLjY1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAgMC4zNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzdHJvbmcge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4wNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktdGFibGUge1xuICAgICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNDVyZW07XG4gICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICBwYWRkaW5nOiAwLjNyZW0gMC4yNXJlbTtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSB7XG4gICAgICAgICAgLS1jaHJpc3RpYW5pdHktYmF0dGxlLWNhcmQtd2lkdGg6IG1pbig1LjQ1cmVtLCAxMDAlKTtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICAgICAgZ2FwOiBjbGFtcCgwLjI1cmVtLCAxLjV2dywgMC40cmVtKTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgICAgICAgbWluLWhlaWdodDogNy40NXJlbTtcbiAgICAgICAgICBwYWRkaW5nLWlubGluZTogMC4yOHJlbTtcbiAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZSxcbiAgICAgICAgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSAuY2hyaXN0aWFuaXR5LXNsb3Qge1xuICAgICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNS40NXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGY6bm90KC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZi0tb3Bwb25lbnQpIHtcbiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgei1pbmRleDogNTI7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA5LjU1cmVtO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBwYWRkaW5nOlxuICAgICAgICAgICAgMC43cmVtIG1heCgwLjM1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSlcbiAgICAgICAgICAgIG1heCgwLjU1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpXG4gICAgICAgICAgICBtYXgoMC4zNXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjM5LCAyNDYsIDI1NSwgMCksIHJnYmEoMjE5LCAyMzQsIDI1NCwgMC45NikgMTglLCByZ2JhKDIxOSwgMjM0LCAyNTQsIDAuOTgpKSxcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE0KSwgdHJhbnNwYXJlbnQgNTglKTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZjpub3QoLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmLS1vcHBvbmVudCkgLmNocmlzdGlhbml0eS1oYW5kLWZhbixcbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmOm5vdCguY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50KSAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwIHtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZjpub3QoLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmLS1vcHBvbmVudCkgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyIHtcbiAgICAgICAgICB0b3A6IDAuMTVyZW07XG4gICAgICAgICAgcmlnaHQ6IG1heCgwLjU1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSk7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGY6bm90KC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZi0tb3Bwb25lbnQpIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4ge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDguODVyZW07XG4gICAgICAgICAgcGFkZGluZzogMC4yNXJlbSAwLjI1cmVtIDEuMXJlbTtcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZjpub3QoLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmLS1vcHBvbmVudCkgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZCB7XG4gICAgICAgICAgd2lkdGg6IGNsYW1wKDQuMzVyZW0sIDIwdncsIDUuNjVyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmLS1vcHBvbmVudCB7XG4gICAgICAgICAgbWluLWhlaWdodDogNS41NXJlbTtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDAuNHJlbTtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC4zNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLXJhY2sge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDUuNTVyZW0pIG1pbm1heCgwLCAxZnIpIG1pbm1heCgwLCA1LjQ1cmVtKTtcbiAgICAgICAgICBnYXA6IGNsYW1wKDAuMzVyZW0sIDJ2dywgMC41cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLXJhY2s6bm90KC5jaHJpc3RpYW5pdHktcGxheWVyLXJhY2stLW9wcG9uZW50KSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy16b25lIHtcbiAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgbGVmdDogbWF4KDAuNjVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuICAgICAgICAgIGJvdHRvbTogY2FsYyg5LjY1cmVtICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTtcbiAgICAgICAgICB6LWluZGV4OiA0OTtcbiAgICAgICAgICB3aWR0aDogbWluKDUuNjVyZW0sIDI0dncpO1xuICAgICAgICAgIG1pbi13aWR0aDogNS4xNXJlbTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgZmlsdGVyIDE2MG1zIGVhc2UsXG4gICAgICAgICAgICB0cmFuc2Zvcm0gMTYwbXMgZWFzZSxcbiAgICAgICAgICAgIHotaW5kZXggMTYwbXMgZWFzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaXMtb2ZmZXJpbmctZHJvcC1hY3RpdmUgLmNocmlzdGlhbml0eS1wbGF5ZXItcmFjazpub3QoLmNocmlzdGlhbml0eS1wbGF5ZXItcmFjay0tb3Bwb25lbnQpIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLXpvbmUge1xuICAgICAgICAgIHotaW5kZXg6IDcyO1xuICAgICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwLjg1cmVtIDEuNDVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjI0KSk7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjIycmVtKSBzY2FsZSgxLjAzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaGFzLW1vZGFsLW9wZW4gLmNocmlzdGlhbml0eS1wbGF5ZXItcmFjazpub3QoLmNocmlzdGlhbml0eS1wbGF5ZXItcmFjay0tb3Bwb25lbnQpIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLXpvbmUge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lIHtcbiAgICAgICAgICBnYXA6IDAuNDVyZW07XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDYuMzVyZW07XG4gICAgICAgICAgcGFkZGluZzogMC42OHJlbSAwLjU4cmVtIDAuNTVyZW07XG4gICAgICAgICAgZ2FwOiAwLjI0cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlID4gdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSAuY2hyaXN0aWFuaXR5LXBpbGUtY2FyZC1oaW50LFxuICAgICAgICAuY2hyaXN0aWFuaXR5LXBsYWNlLXRva2VuLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YmVmb3JlLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YWZ0ZXIsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZW1wdHktY2FyZC1zbG90IHtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoM3JlbSwgMTZ2dywgMy43NXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUge1xuICAgICAgICAgIGhlaWdodDogNy41NXJlbTtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiA3LjU1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNjJyZW0gMC41NHJlbSAwLjUycmVtO1xuICAgICAgICAgIGdhcDogMC4yNHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctZHJvcC10YXJnZXQge1xuICAgICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNi4zNXJlbSk7XG4gICAgICAgICAgaGVpZ2h0OiA3LjU1cmVtO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgICAgbWF4LWhlaWdodDogNy41NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcGlsZS1jYXJkLWhpbnQge1xuICAgICAgICAgIHRvcDogMnJlbTtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoMi4yNXJlbSwgMTAuNXZ3LCAyLjhyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLXN0YWNrIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgICAgdG9wOiAxLjcycmVtO1xuICAgICAgICAgIHdpZHRoOiBjbGFtcCgyLjg1cmVtLCAxNHZ3LCAzLjQ1cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIC5jaHJpc3RpYW5pdHktcGlsZS1jYXJkLWhpbnQge1xuICAgICAgICAgIHRvcDogMS43OHJlbTtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoM3JlbSwgMTZ2dywgMy43NXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXBsYWNlLXRva2VuIHtcbiAgICAgICAgICB0b3A6IDJyZW07XG4gICAgICAgICAgd2lkdGg6IGNsYW1wKDIuODVyZW0sIDE1dncsIDMuNTVyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc21hbGwge1xuICAgICAgICAgIGJvdHRvbTogMC42NHJlbTtcbiAgICAgICAgICBsZWZ0OiAwLjU4cmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC41NnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHN0cm9uZyB7XG4gICAgICAgICAgcmlnaHQ6IDAuNDhyZW07XG4gICAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkIHtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoNC4ycmVtLCAyMHZ3LCA1LjdyZW0pO1xuICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZCB7XG4gICAgICAgICAgd2lkdGg6IGNsYW1wKDUuMTVyZW0sIDIydncsIDYuMzVyZW0pO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvdyB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoNXJlbSwgNS44cmVtKSBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgICBnYXA6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgICBnYXA6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXIge1xuICAgICAgICAgIGdhcDogMC42cmVtO1xuICAgICAgICAgIHBhZGRpbmc6XG4gICAgICAgICAgICBtYXgoMC43MnJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC10b3ApKVxuICAgICAgICAgICAgbWF4KDAuNzJyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKVxuICAgICAgICAgICAgbWF4KDAuNzJyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSlcbiAgICAgICAgICAgIG1heCgwLjcycmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXIgaGVhZGVyIHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIGgyIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBsYWJlbCB7XG4gICAgICAgICAgZ2FwOiAwLjE4cmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGlucHV0LFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgc2VsZWN0LFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZWRpdGlvbi1zdHJpcCBidXR0b24ge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDIuMDVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIGNsYW1wKDYuMzVyZW0sIDI4dncsIDcuMTVyZW0pKSk7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgZ2FwOiBjbGFtcCgwLjU1cmVtLCAyLjJ2dywgMC43MnJlbSk7XG4gICAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogYXV0bztcbiAgICAgICAgICBwYWRkaW5nOiAwLjQycmVtIDAgMC44cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQgLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24ge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA3LjI1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50IHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA0Ljc1cmVtO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWZhbi0tb3Bwb25lbnQgLmNocmlzdGlhbml0eS1oaWRkZW4tY2FyZC1idXR0b24ge1xuICAgICAgICAgIHdpZHRoOiBjbGFtcCgzLjFyZW0sIDE0dncsIDMuOXJlbSk7XG4gICAgICAgICAgbWFyZ2luLWlubGluZTogLTAuNjVyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDaHJpc3RpYW5pdHlHYW1lQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBib290U3RhcnRlZEF0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gIHByaXZhdGUgYm90VHVyblRpbWVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaW1wYWN0RXZlbnRTZXF1ZW5jZSA9IDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW1wYWN0VGltZXJzID0gbmV3IFNldDxudW1iZXI+KCk7XG4gIHByaXZhdGUgY29tYmF0UmVzb2x1dGlvblRpbWVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgY29tYmF0Q2xlYXJUaW1lcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGNvbWJhdFRyYWlsQ2xlYXJUaW1lcjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGxlYWRlckNob2ljZVRpbWVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGdhbWUgPSBzaWduYWw8Q2hyaXN0aWFuaXR5R2FtZVN0YXRlPihzdHJ1Y3R1cmVkQ2xvbmUoU1RBUlRJTkdfR0FNRSkpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2NyZWVuID0gc2lnbmFsPENocmlzdGlhbml0eVNjcmVlbj4oJ3NwbGFzaCcpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHV0b3JpYWxQaGFzZSA9IHNpZ25hbDxDaHJpc3RpYW5pdHlUdXRvcmlhbFBoYXNlPignY29pbicpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHV0b3JpYWxTZXR1cCA9IHNpZ25hbDxDaHJpc3RpYW5pdHlUdXRvcmlhbFNldHVwIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFR1dG9yaWFsTGVhZGVySWQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBsZWFkZXJDaG9pY2VTZWNvbmRzID0gc2lnbmFsKFRVVE9SSUFMX0xFQURFUl9DSE9JQ0VfU0VDT05EUyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93T3B0aW9ucyA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjYXRhbG9nTG9hZFN0YXRlID0gc2lnbmFsPENocmlzdGlhbml0eUNhdGFsb2dMb2FkU3RhdGU+KCdsb2FkaW5nJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZEhhbmRDYXJkID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRBdHRhY2tlciA9IHNpZ25hbDxDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRQcmV2aWV3ID0gc2lnbmFsPENocmlzdGlhbml0eUNhcmRQcmV2aWV3IHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZEluZm8gPSBzaWduYWw8Q2hyaXN0aWFuaXR5SW5mb1BhbmVsIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBwcmV2aWV3VGlsdCA9IHNpZ25hbDxDaHJpc3RpYW5pdHlQcmV2aWV3VGlsdD4oQ0hSSVNUSUFOSVRZX1BSRVZJRVdfTkVVVFJBTF9USUxUKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleCA9IHNpZ25hbCgwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZXZpZXdTbGlkZURpcmVjdGlvbiA9IHNpZ25hbDwwIHwgLTEgfCAxPigwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhvdmVyZWRIYW5kSW5kZXggPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkcmFnZ2luZ0NhcmRJZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyYWdnaW5nQXR0YWNrZXJJbnN0YW5jZUlkID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGlzdG9yeVB1bHNlID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dIaXN0b3J5ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dQbGFjZSA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93R2FsbGVyeSA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBvZmZlcmluZ3NTZWF0ID0gc2lnbmFsPENocmlzdGlhbml0eVNlYXQgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGltcGFjdEV2ZW50cyA9IHNpZ25hbDxDaHJpc3RpYW5pdHlJbXBhY3RFdmVudFtdPihbXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb21iYXRBbmltYXRpb24gPSBzaWduYWw8Q2hyaXN0aWFuaXR5Q29tYmF0QW5pbWF0aW9uIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb21iYXRUcmFpbCA9IHNpZ25hbDxDaHJpc3RpYW5pdHlDb21iYXRUcmFpbCB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FyZENhdGFsb2cgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24+PihTVEFSVEVSX0NBUkRTKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFsbENhdGFsb2dDYXJkcyA9IHNpZ25hbDxDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbltdPihPYmplY3QudmFsdWVzKFNUQVJURVJfQ0FSRFMpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhdGFsb2dMb2FkZWQgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2FsbGVyeVNlYXJjaCA9IHNpZ25hbCgnJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBnYWxsZXJ5VHlwZSA9IHNpZ25hbDxDaHJpc3RpYW5pdHlHYWxsZXJ5VHlwZUZpbHRlcj4oJ2FsbCcpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGVhZGVyQ2hvaWNlVG90YWxTZWNvbmRzID0gVFVUT1JJQUxfTEVBREVSX0NIT0lDRV9TRUNPTkRTO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25CYXR0bGVTbG90ID0gKGRyYWc6IENka0RyYWc8c3RyaW5nPik6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGRyYWcuZGF0YSk7XG4gICAgcmV0dXJuIGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicgJiYgdGhpcy5jYW5QbGF5KGNhcmQpO1xuICB9O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25PZmZlcmluZ3MgPSAoZHJhZzogQ2RrRHJhZzxzdHJpbmc+KTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oZHJhZy5kYXRhKTtcbiAgICByZXR1cm4gY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnICYmIHRoaXMuY2FuUGxheShjYXJkKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuRHJvcE9uUGxhY2UgPSAoZHJhZzogQ2RrRHJhZzxzdHJpbmc+KTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oZHJhZy5kYXRhKTtcbiAgICByZXR1cm4gY2FyZC50eXBlID09PSAncGxhY2UnICYmIHRoaXMuY2FuUGxheShjYXJkKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuRHJvcE9uT3Bwb25lbnRDaGFyYWN0ZXIgPSAoZHJhZzogQ2RrRHJhZzxzdHJpbmc+KTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWxpZEF0dGFja2VySW5zdGFuY2UoZHJhZy5kYXRhKSAmJiB0aGlzLm9wcG9uZW50KCkuYmF0dGxlWm9uZS5sZW5ndGggPiAwO1xuICB9O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25PcHBvbmVudExlYWRlciA9IChkcmFnOiBDZGtEcmFnPHN0cmluZz4pOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkQXR0YWNrZXJJbnN0YW5jZShkcmFnLmRhdGEpICYmICF0aGlzLmhhc09wcG9uZW50R3VhcmRzKCk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsYXllciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZ2FtZSgpLnBsYXllcnMuUDEpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3Bwb25lbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdhbWUoKS5wbGF5ZXJzLlAyKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1cnJlbnRQbGF5ZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdhbWUoKS5wbGF5ZXJzW3RoaXMuZ2FtZSgpLnR1cm5Pd25lcl0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNPd25UdXJuID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5nYW1lKCkuc3RhdHVzID09PSAnaW5fcHJvZ3Jlc3MnICYmIHRoaXMuZ2FtZSgpLnR1cm5Pd25lciA9PT0gJ1AxJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0dXJuQmFubmVyVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZ2FtZSgpLnN0YXR1cyA9PT0gJ2ZpbmlzaGVkJykgcmV0dXJuIHRoaXMucmVzdWx0VGl0bGUoKTtcbiAgICByZXR1cm4gdGhpcy5pc093blR1cm4oKSA/IHRoaXMudCgnY2hyaXN0aWFuaXR5WW91clR1cm4nKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5Uml2YWxUdXJuJyk7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdHVybkJhbm5lckJvZHkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZ2FtZSgpLnN0YXR1cyA9PT0gJ2ZpbmlzaGVkJykgcmV0dXJuIHRoaXMucmVzdWx0Qm9keSgpO1xuICAgIHJldHVybiB0aGlzLmlzT3duVHVybigpID8gdGhpcy50KCdjaHJpc3RpYW5pdHlZb3VyVHVybkJvZHknKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5Uml2YWxUdXJuQm9keScpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlc3VsdFRpdGxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHdpbm5lciA9IHRoaXMud2lubmVyU2VhdCgpO1xuICAgIGlmICghd2lubmVyKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlHYW1lRmluaXNoZWQnKTtcbiAgICByZXR1cm4gd2lubmVyID09PSAnUDEnID8gdGhpcy50KCdjaHJpc3RpYW5pdHlWaWN0b3J5VGl0bGUnKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5RGVmZWF0VGl0bGUnKTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSByZXN1bHRCb2R5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHdpbm5lciA9IHRoaXMud2lubmVyU2VhdCgpO1xuICAgIGlmICghd2lubmVyKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlHYW1lRmluaXNoZWRCb2R5Jyk7XG4gICAgcmV0dXJuIHdpbm5lciA9PT0gJ1AxJyA/IHRoaXMudCgnY2hyaXN0aWFuaXR5VmljdG9yeUJvZHknKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5RGVmZWF0Qm9keScpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNldHVwVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLnR1dG9yaWFsU2V0dXAoKTtcbiAgICBpZiAoIXNldHVwKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlQcmVwYXJpbmdNYXRjaCcpO1xuICAgIGlmICh0aGlzLnR1dG9yaWFsUGhhc2UoKSA9PT0gJ2NvaW4nKSB7XG4gICAgICByZXR1cm4gc2V0dXAuY29pbldpbm5lciA9PT0gJ1AxJyA/IHRoaXMudCgnY2hyaXN0aWFuaXR5Q29pbllvdVdvbicpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlDb2luUml2YWxXb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHNldHVwLmxlYWRlclBpY2tlciA9PT0gJ1AxJyA/IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hvb3NlTGVhZGVyVGl0bGUnKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5Uml2YWxDaG9vc2VzTGVhZGVyVGl0bGUnKTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZXR1cEJvZHkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLnR1dG9yaWFsU2V0dXAoKTtcbiAgICBpZiAoIXNldHVwKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlQcmVwYXJpbmdNYXRjaEJvZHknKTtcbiAgICBjb25zdCBmaXJzdFBsYXllck5hbWUgPSBzZXR1cC5maXJzdFBsYXllciA9PT0gJ1AxJyA/IHRoaXMucGxheWVyKCkuZGlzcGxheU5hbWUgOiB0aGlzLm9wcG9uZW50KCkuZGlzcGxheU5hbWU7XG4gICAgaWYgKHRoaXMudHV0b3JpYWxQaGFzZSgpID09PSAnY29pbicpIHtcbiAgICAgIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUNvaW5SZXN1bHRCb2R5JykucmVwbGFjZSgne3BsYXllcn0nLCBmaXJzdFBsYXllck5hbWUpO1xuICAgIH1cbiAgICBpZiAoc2V0dXAubGVhZGVyUGlja2VyID09PSAnUDEnKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlDaG9vc2VMZWFkZXJCb2R5Jyk7XG4gICAgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5Uml2YWxDaG9vc2VzTGVhZGVyQm9keScpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpbm5lclNlYXQgPSBjb21wdXRlZDxDaHJpc3RpYW5pdHlTZWF0IHwgbnVsbD4oKCkgPT4ge1xuICAgIGNvbnN0IGdhbWUgPSB0aGlzLmdhbWUoKTtcbiAgICBpZiAoZ2FtZS5zdGF0dXMgIT09ICdmaW5pc2hlZCcpIHJldHVybiBudWxsO1xuICAgIGlmIChnYW1lLnBsYXllcnMuUDEubGVhZGVySHAgPD0gMCkgcmV0dXJuICdQMic7XG4gICAgaWYgKGdhbWUucGxheWVycy5QMi5sZWFkZXJIcCA8PSAwKSByZXR1cm4gJ1AxJztcbiAgICByZXR1cm4gZ2FtZS5wbGF5ZXJzLlAxLmxlYWRlckhwID49IGdhbWUucGxheWVycy5QMi5sZWFkZXJIcCA/ICdQMScgOiAnUDInO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc09wcG9uZW50R3VhcmRzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHBvbmVudCgpLmJhdHRsZVpvbmUubGVuZ3RoID4gMCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBvcHBvbmVudEhhbmRDb3VudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3Bwb25lbnQoKS5oYW5kQ291bnQgPz8gdGhpcy5vcHBvbmVudCgpLmhhbmQ/Lmxlbmd0aCA/PyAwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGdhbGxlcnlDYXJkcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZ2FsbGVyeVNlYXJjaCgpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmdhbGxlcnlUeXBlKCk7XG4gICAgcmV0dXJuIHRoaXMuYWxsQ2F0YWxvZ0NhcmRzKClcbiAgICAgIC5maWx0ZXIoY2FyZCA9PiB0aGlzLmlzQ2xhc3NpY0dhbGxlcnlDYXJkKGNhcmQpKVxuICAgICAgLmZpbHRlcihjYXJkID0+IHR5cGUgPT09ICdhbGwnIHx8IGNhcmQudHlwZSA9PT0gdHlwZSlcbiAgICAgIC5maWx0ZXIoY2FyZCA9PiB7XG4gICAgICAgIGlmICghcXVlcnkpIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoY2FyZCk7XG4gICAgICAgIGNvbnN0IGhheXN0YWNrID0gW3RleHQubmFtZSwgY2FyZC50eXBlLCB0ZXh0LnNjcmlwdHVyZSwgdGV4dC5hYmlsaXR5TmFtZSwgdGV4dC5hYmlsaXR5VGV4dCwgdGV4dC52ZXJzZVRleHRdXG4gICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgIC5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcbiAgICAgICAgcmV0dXJuIGhheXN0YWNrLmluY2x1ZGVzKHF1ZXJ5KTtcbiAgICAgIH0pXG4gICAgICAuc29ydCgobGVmdCwgcmlnaHQpID0+IHRoaXMuY2FyZFNvcnRLZXkobGVmdCkubG9jYWxlQ29tcGFyZSh0aGlzLmNhcmRTb3J0S2V5KHJpZ2h0KSwgJ2VzJykpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGdhbGxlcnlFZGl0aW9uTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY291bnQgPSB0aGlzLmFsbENhdGFsb2dDYXJkcygpLmZpbHRlcihjYXJkID0+IHRoaXMuaXNDbGFzc2ljR2FsbGVyeUNhcmQoY2FyZCkpLmxlbmd0aDtcbiAgICByZXR1cm4gYCR7dGhpcy50KCdjaHJpc3RpYW5pdHlHZW5lc2lzRWRpdGlvbicpfSDCtyAke2NvdW50fSAke3RoaXMudCgnY2hyaXN0aWFuaXR5Q2FyZHMnKX1gO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGdhbGxlcnlFZGl0aW9uSWNvbiA9IGNvbXB1dGVkKCgpID0+IEdFTkVTSVNfSUNPTl9VUkwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2FsbGVyeVR5cGVPcHRpb25zID0gY29tcHV0ZWQ8QXJyYXk8eyB2YWx1ZTogQ2hyaXN0aWFuaXR5R2FsbGVyeVR5cGVGaWx0ZXI7IGxhYmVsOiBzdHJpbmcgfT4+KCgpID0+IFtcbiAgICB7IHZhbHVlOiAnYWxsJywgbGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5QWxsQ2FyZHMnKSB9LFxuICAgIHsgdmFsdWU6ICdsZWFkZXInLCBsYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJykgfSxcbiAgICB7IHZhbHVlOiAnb2ZmZXJpbmcnLCBsYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSB9LFxuICAgIHsgdmFsdWU6ICdjaGFyYWN0ZXInLCBsYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJDYXJkJykgfSxcbiAgICB7IHZhbHVlOiAnd2lzZG9tJywgbGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5V2lzZG9tQ2FyZCcpIH0sXG4gICAgeyB2YWx1ZTogJ2FjdGlvbicsIGxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eUFjdGlvbkNhcmQnKSB9LFxuICAgIHsgdmFsdWU6ICd0b29sJywgbGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5VG9vbENhcmQnKSB9LFxuICAgIHsgdmFsdWU6ICdwbGFjZScsIGxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYWNlQ2FyZCcpIH0sXG4gICAgeyB2YWx1ZTogJ2V2ZW50JywgbGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5RXZlbnRDYXJkJykgfSxcbiAgXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBoYXNNb2RhbE92ZXJsYXkgPSBjb21wdXRlZCgoKSA9PlxuICAgICEhdGhpcy5zZWxlY3RlZFByZXZpZXcoKVxuICAgIHx8ICEhdGhpcy5zZWxlY3RlZEluZm8oKVxuICAgIHx8IHRoaXMuc2hvd0hpc3RvcnkoKVxuICAgIHx8IHRoaXMuc2hvd1BsYWNlKClcbiAgICB8fCB0aGlzLnNob3dHYWxsZXJ5KClcbiAgICB8fCAhIXRoaXMub2ZmZXJpbmdzU2VhdCgpXG4gICk7XG4gIHByb3RlY3RlZCByZWFkb25seSBwcmV2aWV3Q2Fyb3VzZWxJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3VycmVudFByZXZpZXdDYXJvdXNlbEl0ZW1zKCkpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuTmF2aWdhdGVQcmV2aWV3ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wcmV2aWV3Q2Fyb3VzZWxJdGVtcygpLmxlbmd0aCA+IDEpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJldmlld1Bvc2l0aW9uTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnByZXZpZXdDYXJvdXNlbEl0ZW1zKCk7XG4gICAgaWYgKGl0ZW1zLmxlbmd0aCA8IDIpIHJldHVybiAnJztcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY3VycmVudFByZXZpZXdDYXJvdXNlbEluZGV4KGl0ZW1zKTtcbiAgICBpZiAoaW5kZXggPCAwKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIGAke2luZGV4ICsgMX0vJHtpdGVtcy5sZW5ndGh9YDtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBwcmV2aWV3QWJpbGl0aWVzID0gY29tcHV0ZWQ8Q2hyaXN0aWFuaXR5UHJldmlld0FiaWxpdHlbXT4oKCkgPT4ge1xuICAgIGNvbnN0IHByZXZpZXcgPSB0aGlzLnNlbGVjdGVkUHJldmlldygpO1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLnNlbGVjdGVkUHJldmlld0NhcmQoKTtcbiAgICBpZiAoIXByZXZpZXcgfHwgIWNhcmQpIHJldHVybiBbXTtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoY2FyZCk7XG4gICAgY29uc3QgYWJpbGl0aWVzID0gdGV4dC5hYmlsaXRpZXM/Lmxlbmd0aFxuICAgICAgPyB0ZXh0LmFiaWxpdGllcy5tYXAoKGFiaWxpdHksIGluZGV4KSA9PiAoe1xuICAgICAgICBpbmRleCxcbiAgICAgICAgdGl0bGU6IGFiaWxpdHkubmFtZSA/PyB0aGlzLnQoJ2NocmlzdGlhbml0eUFiaWxpdHknKSxcbiAgICAgICAgYm9keTogYWJpbGl0eS50ZXh0ID8/ICcnLFxuICAgICAgICBjYW5Vc2U6IHRoaXMuY2FuVXNlUHJldmlld0FiaWxpdHkoaW5kZXgpLFxuICAgICAgfSkpXG4gICAgICA6IHRleHQuYWJpbGl0eU5hbWUgfHwgdGV4dC5hYmlsaXR5VGV4dFxuICAgICAgICA/IFt7XG4gICAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgICAgdGl0bGU6IHRleHQuYWJpbGl0eU5hbWUgPz8gdGhpcy50KCdjaHJpc3RpYW5pdHlBYmlsaXR5JyksXG4gICAgICAgICAgYm9keTogdGV4dC5hYmlsaXR5VGV4dCA/PyAnJyxcbiAgICAgICAgICBjYW5Vc2U6IHRoaXMuY2FuVXNlUHJldmlld0FiaWxpdHkoMCksXG4gICAgICAgIH1dXG4gICAgICA6IFt7XG4gICAgICAgIGluZGV4OiAwLFxuICAgICAgICB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlOb0FiaWxpdHlUaXRsZScpLFxuICAgICAgICBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eU5vQWJpbGl0eUJvZHknKSxcbiAgICAgICAgY2FuVXNlOiBmYWxzZSxcbiAgICAgIH1dO1xuICAgIHJldHVybiBhYmlsaXRpZXM7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd1ByZXZpZXdBYmlsaXR5VGFicyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBhYmlsaXRpZXMgPSB0aGlzLnByZXZpZXdBYmlsaXRpZXMoKTtcbiAgICByZXR1cm4gYWJpbGl0aWVzLmxlbmd0aCA+IDFcbiAgICAgIHx8ICF0aGlzLmlzUHJldmlld0FiaWxpdHlQbGFjZWhvbGRlcihhYmlsaXRpZXNbMF0pXG4gICAgICAgICYmIChhYmlsaXRpZXNbMF0/LnRpdGxlID8/ICcnKSAhPT0gdGhpcy50KCdjaHJpc3RpYW5pdHlBYmlsaXR5Jyk7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd1ByZXZpZXdBYmlsaXRpZXMgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk/LnNvdXJjZSAhPT0gJ2dhbGxlcnknICYmIHRoaXMucHJldmlld0FiaWxpdGllcygpLmxlbmd0aCA+IDBcbiAgKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbk5hdmlnYXRlUHJldmlld0FiaWxpdGllcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJldmlld0FiaWxpdGllcygpLmxlbmd0aCA+IDEpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eVBvc2l0aW9uTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYWJpbGl0aWVzID0gdGhpcy5wcmV2aWV3QWJpbGl0aWVzKCk7XG4gICAgaWYgKGFiaWxpdGllcy5sZW5ndGggPCAyKSByZXR1cm4gJyc7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IGFiaWxpdGllcy5maW5kSW5kZXgoYWJpbGl0eSA9PiBhYmlsaXR5LmluZGV4ID09PSB0aGlzLnNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleCgpKTtcbiAgICByZXR1cm4gYCR7c2VsZWN0ZWRJbmRleCA+PSAwID8gc2VsZWN0ZWRJbmRleCArIDEgOiAxfS8ke2FiaWxpdGllcy5sZW5ndGh9YDtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFByZXZpZXdBYmlsaXR5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGFiaWxpdGllcyA9IHRoaXMucHJldmlld0FiaWxpdGllcygpO1xuICAgIGlmICghYWJpbGl0aWVzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGFiaWxpdGllcy5maW5kKGFiaWxpdHkgPT4gYWJpbGl0eS5pbmRleCA9PT0gdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXgoKSkgPz8gYWJpbGl0aWVzWzBdO1xuICB9KTtcblxuICBwcml2YXRlIGlzUHJldmlld0FiaWxpdHlQbGFjZWhvbGRlcihhYmlsaXR5OiBDaHJpc3RpYW5pdHlQcmV2aWV3QWJpbGl0eSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhYmlsaXR5Py50aXRsZSA9PT0gdGhpcy50KCdjaHJpc3RpYW5pdHlOb0FiaWxpdHlUaXRsZScpICYmICFhYmlsaXR5LmNhblVzZTtcbiAgfVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tYmF0Q2FsbG91dCA9IGNvbXB1dGVkPE1pbmlHYW1lQ2FsbG91dE1ldGFkYXRhIHwgbnVsbD4oKCkgPT4ge1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IHRoaXMuY29tYmF0QW5pbWF0aW9uKCk7XG4gICAgaWYgKCFhbmltYXRpb24pIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGF0dGFja2VyID0gdGhpcy5jb21iYXRBbmltYXRpb25BdHRhY2tlcihhbmltYXRpb24pO1xuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuY29tYmF0QW5pbWF0aW9uVGFyZ2V0TGFiZWwoYW5pbWF0aW9uKTtcbiAgICBjb25zdCB0aXRsZSA9IGF0dGFja2VyID8gYXR0YWNrZXIubmFtZSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5QXR0YWNrJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlLFxuICAgICAgYm9keTogYCR7dGhpcy50KCdjaHJpc3RpYW5pdHlBdHRhY2snKX0gJHt0YXJnZXR9YCxcbiAgICAgIGltcGFjdDogYW5pbWF0aW9uLnRhcmdldCA9PT0gJ2xlYWRlcicgPyB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyQ2FyZCcpLFxuICAgICAgaWNvbjogJz4nLFxuICAgICAgdG9uZVJnYjogYW5pbWF0aW9uLnRhcmdldCA9PT0gJ2xlYWRlcicgPyAnMjUwLCAyMDQsIDIxJyA6ICc5NiwgMTY1LCAyNTAnLFxuICAgICAgZHVyYXRpb25NczogOTgwLFxuICAgICAgdmFyaWFudDogYW5pbWF0aW9uLnRhcmdldCA9PT0gJ2xlYWRlcicgPyAnd2FybmluZycgOiAnY2FwdHVyZScsXG4gICAgfTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzcGxhc2hTdGF0dXNUZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5jYXRhbG9nTG9hZFN0YXRlKCk7XG4gICAgaWYgKHN0YXRlID09PSAncmVhZHknKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlTcGxhc2hSZWFkeScpO1xuICAgIGlmIChzdGF0ZSA9PT0gJ2ZhbGxiYWNrJykgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5U3BsYXNoRmFsbGJhY2snKTtcbiAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlTcGxhc2hMb2FkaW5nJyk7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhcnRGZWF0dXJlZENhcmRzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNhcmRzID0gdGhpcy5hbGxDYXRhbG9nQ2FyZHMoKTtcbiAgICBjb25zdCBwcmVmZXJyZWQgPSBbJ0dFTi0wMDknLCAnR0VOLTAxMycsICdHRU4tMDMyJ11cbiAgICAgIC5tYXAoaWQgPT4gdGhpcy5jYXJkQ2F0YWxvZygpW2lkXSlcbiAgICAgIC5maWx0ZXIoKGNhcmQpOiBjYXJkIGlzIENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uID0+ICEhY2FyZCk7XG4gICAgcmV0dXJuIChwcmVmZXJyZWQubGVuZ3RoID8gcHJlZmVycmVkIDogY2FyZHMuc2xpY2UoMCwgMykpLnNsaWNlKDAsIDMpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZ1dHVyZU1vZGVzID0gY29tcHV0ZWQoKCkgPT4gW1xuICAgIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5U29sb0JvdE1vZGUnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlTb2xvQm90TW9kZUJvZHknKSB9LFxuICAgIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5VHdvUGxheWVyTW9kZScpLCBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eVR3b1BsYXllck1vZGVCb2R5JykgfSxcbiAgICB7IHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eU9uZURldmljZU1vZGUnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlPbmVEZXZpY2VNb2RlQm9keScpIH0sXG4gICAgeyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlTcGVjdGF0b3JNb2RlJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5U3BlY3RhdG9yTW9kZUJvZHknKSB9LFxuICBdKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkQ2FyZERlZmluaXRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkSGFuZENhcmQoKTtcbiAgICByZXR1cm4gc2VsZWN0ZWQgPyB0aGlzLmNhcmREZWZpbml0aW9uKHNlbGVjdGVkKSA6IG51bGw7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRQcmV2aWV3Q2FyZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLnNlbGVjdGVkUHJldmlldygpPy5jYXJkSWQ7XG4gICAgcmV0dXJuIGNhcmRJZCA/IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKSA6IG51bGw7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRQcmV2aWV3UmVuZGVyQ2FyZCA9IGNvbXB1dGVkPENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbCB8IG51bGw+KCgpID0+IHtcbiAgICBjb25zdCBwcmV2aWV3ID0gdGhpcy5zZWxlY3RlZFByZXZpZXcoKTtcbiAgICBpZiAoIXByZXZpZXcpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLnNlbGVjdGVkUHJldmlld0NhcmQoKTtcbiAgICBpZiAoY2FyZCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChjYXJkLCB7XG4gICAgICAgIHN0YXR1c1RleHQ6IHByZXZpZXcuYm9keSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocHJldmlldy5leWVicm93ID09PSB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSkge1xuICAgICAgY29uc3QgW2N1cnJlbnRIcCwgbWF4SHBdID0gcHJldmlldy5tZXRhLnNwbGl0KCcvJykubWFwKHZhbHVlID0+IE51bWJlcih2YWx1ZSkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGBsZWFkZXItJHtwcmV2aWV3LnRpdGxlLnRvTG93ZXJDYXNlKCl9YCxcbiAgICAgICAgbmFtZTogcHJldmlldy50aXRsZSxcbiAgICAgICAgdHlwZTogJ2xlYWRlcicsXG4gICAgICAgIHR5cGVMYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksXG4gICAgICAgIGN1cnJlbnRIcDogTnVtYmVyLmlzRmluaXRlKGN1cnJlbnRIcCkgPyBjdXJyZW50SHAgOiB1bmRlZmluZWQsXG4gICAgICAgIG1heEhwOiBOdW1iZXIuaXNGaW5pdGUobWF4SHApID8gbWF4SHAgOiB1bmRlZmluZWQsXG4gICAgICAgIGxpZmU6IE51bWJlci5pc0Zpbml0ZShjdXJyZW50SHApID8gY3VycmVudEhwIDogdW5kZWZpbmVkLFxuICAgICAgICBhYmlsaXR5TmFtZTogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksXG4gICAgICAgIGFiaWxpdHlUZXh0OiBwcmV2aWV3LmJvZHksXG4gICAgICAgIHZlcnNlVGV4dDogcHJldmlldy5ib2R5LFxuICAgICAgICBlZGl0aW9uOiAnTVZQJyxcbiAgICAgICAgY29sbGVjdG9yTnVtYmVyOiAnTElERVInLFxuICAgICAgICB5ZWFyOiAnMjAyNicsXG4gICAgICAgIGF1dGhvcjogJ01WUCcsXG4gICAgICAgIHJhcml0eTogJ2xlZ2VuZGFyeScsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGBwcmV2aWV3LSR7cHJldmlldy50aXRsZS50b0xvd2VyQ2FzZSgpfWAsXG4gICAgICBuYW1lOiBwcmV2aWV3LnRpdGxlLFxuICAgICAgdHlwZTogdGhpcy5wcmV2aWV3UmVuZGVyVHlwZShwcmV2aWV3LmV5ZWJyb3cpLFxuICAgICAgdHlwZUxhYmVsOiBwcmV2aWV3LmV5ZWJyb3csXG4gICAgICBhYmlsaXR5TmFtZTogcHJldmlldy5leWVicm93LFxuICAgICAgYWJpbGl0eVRleHQ6IHByZXZpZXcuYm9keSxcbiAgICAgIHZlcnNlVGV4dDogcHJldmlldy5ib2R5LFxuICAgICAgZWRpdGlvbjogJ01WUCcsXG4gICAgICBjb2xsZWN0b3JOdW1iZXI6IHByZXZpZXcuZXllYnJvdyxcbiAgICAgIHllYXI6ICcyMDI2JyxcbiAgICAgIGF1dGhvcjogJ01WUCcsXG4gICAgICByYXJpdHk6ICdub3JtYWwnLFxuICAgIH07XG4gIH0pO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRQcmV2aWV3TmVpZ2hib3JSZW5kZXJDYXJkKGRpcmVjdGlvbjogLTEgfCAxKTogQ2hyaXN0aWFuaXR5Q2FyZFJlbmRlck1vZGVsIHwgbnVsbCB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnByZXZpZXdDYXJvdXNlbEl0ZW1zKCk7XG4gICAgaWYgKGl0ZW1zLmxlbmd0aCA8IDIpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuY3VycmVudFByZXZpZXdDYXJvdXNlbEluZGV4KGl0ZW1zKTtcbiAgICBpZiAoY3VycmVudEluZGV4IDwgMCkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgbmV4dEluZGV4ID0gKGN1cnJlbnRJbmRleCArIGRpcmVjdGlvbiArIGl0ZW1zLmxlbmd0aCkgJSBpdGVtcy5sZW5ndGg7XG4gICAgY29uc3QgaXRlbSA9IGl0ZW1zW25leHRJbmRleF07XG4gICAgaWYgKGl0ZW0ua2luZCA9PT0gJ2hpc3RvcnknKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uVG9SZW5kZXJDYXJkKHRoaXMuY2FyZERlZmluaXRpb24oaXRlbS5jYXJkSWQpLCB7IHN0YXR1c1RleHQ6IHRoaXMudCgnY2hyaXN0aWFuaXR5SGlzdG9yeScpIH0pO1xuICAgIH1cbiAgICBpZiAoaXRlbS5raW5kID09PSAnaGFuZCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmluaXRpb25Ub1JlbmRlckNhcmQodGhpcy5jYXJkRGVmaW5pdGlvbihpdGVtLmNhcmRJZCkpO1xuICAgIH1cbiAgICBpZiAoaXRlbS5raW5kID09PSAncGxhY2UnKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uVG9SZW5kZXJDYXJkKHRoaXMuY2FyZERlZmluaXRpb24oaXRlbS5jYXJkSWQpLCB7IHN0YXR1c1RleHQ6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2UnKSB9KTtcbiAgICB9XG4gICAgaWYgKGl0ZW0ua2luZCA9PT0gJ2dhbGxlcnknKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uVG9SZW5kZXJDYXJkKHRoaXMuY2FyZERlZmluaXRpb24oaXRlbS5jYXJkSWQpKTtcbiAgICB9XG4gICAgaWYgKGl0ZW0ua2luZCA9PT0gJ2xlYWRlci1jaG9pY2UnKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uVG9SZW5kZXJDYXJkKHRoaXMuY2FyZERlZmluaXRpb24oaXRlbS5jYXJkSWQpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMub2ZmZXJpbmdSZW5kZXJDYXJkKGl0ZW0ub2ZmZXJpbmcpO1xuICB9XG4gIHByb3RlY3RlZCByZWFkb25seSBwcmV2aWV3UnVsZSA9IGNvbXB1dGVkPENocmlzdGlhbml0eVByZXZpZXdSdWxlIHwgbnVsbD4oKCkgPT4ge1xuICAgIGNvbnN0IHByZXZpZXcgPSB0aGlzLnNlbGVjdGVkUHJldmlldygpO1xuICAgIGlmICghcHJldmlldykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3Q2FyZCgpO1xuICAgIGlmIChjYXJkPy50eXBlID09PSAnb2ZmZXJpbmcnKSB7XG4gICAgICByZXR1cm4geyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1J1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgaWYgKGNhcmQ/LnR5cGUgPT09ICdjaGFyYWN0ZXInKSB7XG4gICAgICByZXR1cm4geyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJDYXJkJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyUnVsZUJvZHknKSB9O1xuICAgIH1cbiAgICBpZiAoY2FyZD8udHlwZSA9PT0gJ3dpc2RvbScpIHtcbiAgICAgIHJldHVybiB7IHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eVdpc2RvbUNhcmQnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlXaXNkb21SdWxlQm9keScpIH07XG4gICAgfVxuICAgIGlmIChjYXJkPy50eXBlID09PSAnYWN0aW9uJykge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5QWN0aW9uQ2FyZCcpLCBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eUFjdGlvblJ1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgaWYgKGNhcmQ/LnR5cGUgPT09ICd0b29sJykge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5VG9vbENhcmQnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlUb29sUnVsZUJvZHknKSB9O1xuICAgIH1cbiAgICBpZiAoY2FyZD8udHlwZSA9PT0gJ3BsYWNlJykge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VDYXJkJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VSdWxlQm9keScpIH07XG4gICAgfVxuICAgIGlmIChjYXJkPy50eXBlID09PSAnZXZlbnQnKSB7XG4gICAgICByZXR1cm4geyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlFdmVudENhcmQnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlFdmVudFJ1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgaWYgKGNhcmQ/LnR5cGUgPT09ICdsZWFkZXInKSB7XG4gICAgICByZXR1cm4geyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyUnVsZUJvZHknKSB9O1xuICAgIH1cbiAgICBpZiAocHJldmlldy5leWVicm93ID09PSB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSkge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLCBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlclJ1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhdHVzVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy50dXRvcmlhbFBoYXNlKCkgPT09ICdjb2luJyB8fCB0aGlzLnR1dG9yaWFsUGhhc2UoKSA9PT0gJ2xlYWRlcl9waWNrJykge1xuICAgICAgcmV0dXJuIHRoaXMuc2V0dXBUaXRsZSgpO1xuICAgIH1cbiAgICBjb25zdCB3aW5uZXIgPSB0aGlzLndpbm5lclNlYXQoKTtcbiAgICBpZiAod2lubmVyKSB7XG4gICAgICByZXR1cm4gd2lubmVyID09PSAnUDEnID8gdGhpcy50KCdjaHJpc3RpYW5pdHlZb3VXaW4nKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5T3Bwb25lbnRXaW5zJyk7XG4gICAgfVxuICAgIGNvbnN0IGF0dGFja2VyID0gdGhpcy5zZWxlY3RlZEF0dGFja2VyKCk7XG4gICAgY29uc3QgaGFuZENhcmQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICBpZiAoIXRoaXMuaXNPd25UdXJuKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVdhaXRUdXJuJyk7XG4gICAgfVxuICAgIGlmIChhdHRhY2tlcikge1xuICAgICAgcmV0dXJuIHRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKSA/IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hvb3NlQ2hhcmFjdGVyVGFyZ2V0JykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNob29zZVRhcmdldCcpO1xuICAgIH1cbiAgICBpZiAoaGFuZENhcmQpIHtcbiAgICAgIGlmICghdGhpcy5jYW5QbGF5KGhhbmRDYXJkKSkge1xuICAgICAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlOZWVkT2ZmZXJpbmdzJyk7XG4gICAgICB9XG4gICAgICBpZiAoaGFuZENhcmQudHlwZSA9PT0gJ3BsYWNlJykge1xuICAgICAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlDaG9vc2VQbGFjZVNsb3QnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYW5kQ2FyZC50eXBlID09PSAnb2ZmZXJpbmcnID8gdGhpcy50KCdjaHJpc3RpYW5pdHlQbGFjZU9mZmVyaW5nJykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNob29zZVNsb3QnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hvb3NlQ2FyZCcpO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnTWluaUdhbWVzJywgTUlOSV9HQU1FU19JMThOKTtcbiAgICBlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmhhc01vZGFsT3ZlcmxheSgpKSByZXR1cm47XG4gICAgICBjb25zdCBwcmV2aW91c092ZXJmbG93ID0gdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93O1xuICAgICAgY29uc3QgcHJldmlvdXNPdmVyc2Nyb2xsID0gdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvcjtcbiAgICAgIGNvbnN0IHByZXZpb3VzUG9zaXRpb24gPSB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucG9zaXRpb247XG4gICAgICBjb25zdCBwcmV2aW91c1RvcCA9IHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS50b3A7XG4gICAgICBjb25zdCBwcmV2aW91c1dpZHRoID0gdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoO1xuICAgICAgY29uc3Qgc2Nyb2xsWSA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgY29uc3Qgc2Nyb2xsSG9zdCA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5taW5pLWdhbWUtcGFnZS1zaGVsbCcpO1xuICAgICAgY29uc3Qgc2Nyb2xsSG9zdFRvcCA9IHNjcm9sbEhvc3Q/LnNjcm9sbFRvcCA/PyAwO1xuICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yID0gJ2NvbnRhaW4nO1xuICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS50b3AgPSBgLSR7c2Nyb2xsWX1weGA7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgICBvbkNsZWFudXAoKCkgPT4ge1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSBwcmV2aW91c092ZXJmbG93O1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yID0gcHJldmlvdXNPdmVyc2Nyb2xsO1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucG9zaXRpb24gPSBwcmV2aW91c1Bvc2l0aW9uO1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUudG9wID0gcHJldmlvdXNUb3A7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9IHByZXZpb3VzV2lkdGg7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogc2Nyb2xsWSwgbGVmdDogMCwgYmVoYXZpb3I6ICdhdXRvJyB9KTtcbiAgICAgICAgaWYgKHNjcm9sbEhvc3QpIHtcbiAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHNjcm9sbEhvc3Quc2Nyb2xsVG8oeyB0b3A6IHNjcm9sbEhvc3RUb3AsIGxlZnQ6IDAsIGJlaGF2aW9yOiAnYXV0bycgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zY3JlZW4oKSA9PT0gJ3RhYmxlJyAmJiB0aGlzLmdhbWUoKS5zdGF0dXMgPT09ICdmaW5pc2hlZCcpIHtcbiAgICAgICAgdGhpcy50dXRvcmlhbFBoYXNlLnNldCgnZmluaXNoZWQnKTtcbiAgICAgICAgdGhpcy5jbGVhckJvdFR1cm4oKTtcbiAgICAgICAgdGhpcy5jbGVhckxlYWRlckNob2ljZVRpbWVyKCk7XG4gICAgICB9XG4gICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgdGltZXIgb2YgdGhpcy5pbXBhY3RUaW1lcnMpIHtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICB9XG4gICAgICB0aGlzLmltcGFjdFRpbWVycy5jbGVhcigpO1xuICAgICAgdGhpcy5jbGVhckNvbWJhdFRpbWVycygpO1xuICAgICAgdGhpcy5jbGVhckxlYWRlckNob2ljZVRpbWVyKCk7XG4gICAgfSk7XG4gICAgdm9pZCB0aGlzLmxvYWRHZW5lc2lzQ2F0YWxvZygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgJ01pbmlHYW1lcycpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkR2VuZXNpc0NhdGFsb2coKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgbGV0IGxvYWRlZCA9IGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKEdFTkVTSVNfQ0FUQUxPR19VUkwpO1xuICAgICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGNvbnN0IGNhdGFsb2cgPSBhd2FpdCByZXNwb25zZS5qc29uKCkgYXMgQ2hyaXN0aWFuaXR5RWRpdGlvbkNhdGFsb2c7XG4gICAgICAgIGNvbnN0IGNhcmRzID0gKGNhdGFsb2cuY2FyZHMgPz8gW10pLm1hcChjYXJkID0+IHRoaXMubm9ybWFsaXplQ2F0YWxvZ0NhcmQoY2FyZCwgY2F0YWxvZykpO1xuICAgICAgICBpZiAoY2FyZHMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5jYXJkQ2F0YWxvZy5zZXQoT2JqZWN0LmZyb21FbnRyaWVzKGNhcmRzLm1hcChjYXJkID0+IFtjYXJkLmlkLCBjYXJkXSkpKTtcbiAgICAgICAgICB0aGlzLmFsbENhdGFsb2dDYXJkcy5zZXQoY2FyZHMpO1xuICAgICAgICAgIHRoaXMuY2F0YWxvZ0xvYWRlZC5zZXQodHJ1ZSk7XG4gICAgICAgICAgdGhpcy5nYW1lLnNldCh0aGlzLmNyZWF0ZVR1dG9yaWFsR2FtZShjYXJkcykpO1xuICAgICAgICAgIGxvYWRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKCdDaHJpc3RpYW5pdHkgY2F0YWxvZyBjb3VsZCBub3QgYmUgbG9hZGVkLiBGYWxsaW5nIGJhY2sgdG8gc3RhcnRlciBjYXJkcy4nLCBlcnJvcik7XG4gICAgfVxuICAgIHRoaXMuY2F0YWxvZ0xvYWRTdGF0ZS5zZXQobG9hZGVkID8gJ3JlYWR5JyA6ICdmYWxsYmFjaycpO1xuICAgIHRoaXMuZmluaXNoU3BsYXNoKCk7XG4gIH1cblxuICBwcml2YXRlIGZpbmlzaFNwbGFzaCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbGFwc2VkID0gcGVyZm9ybWFuY2Uubm93KCkgLSB0aGlzLmJvb3RTdGFydGVkQXQ7XG4gICAgY29uc3QgcmVtYWluaW5nID0gTWF0aC5tYXgoMCwgU1BMQVNIX01JTl9EVVJBVElPTl9NUyAtIGVsYXBzZWQpO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnNjcmVlbigpID09PSAnc3BsYXNoJykge1xuICAgICAgICB0aGlzLnNjcmVlbi5zZXQoJ2hvbWUnKTtcbiAgICAgIH1cbiAgICB9LCByZW1haW5pbmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVDYXRhbG9nQ2FyZChjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiwgY2F0YWxvZzogQ2hyaXN0aWFuaXR5RWRpdGlvbkNhdGFsb2cpOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZWRpdGlvbkljb24gPSBjYXJkLmVkaXRpb25JY29uID8/IGNhdGFsb2cuZWRpdGlvbj8uaWNvbiA/PyBHRU5FU0lTX0lDT05fVVJMO1xuICAgIGNvbnN0IHZlcnNlVGV4dCA9IGNhcmQudmVyc2VUZXh0ID8/IGNhcmQuYmlibGU/LnRleHQ7XG4gICAgY29uc3Qgc2NyaXB0dXJlID0gY2FyZC5zY3JpcHR1cmUgPz8gdGhpcy5mb3JtYXRTY3JpcHR1cmUoY2FyZC5iaWJsZSk7XG4gICAgY29uc3Qgb2ZmZXJpbmdWYWx1ZSA9IGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyA/IGNhcmQub2ZmZXJpbmdWYWx1ZSA/PyBjYXJkLmxpZmUgPz8gY2FyZC5jb3N0ID8/IDEgOiBjYXJkLm9mZmVyaW5nVmFsdWU7XG4gICAgY29uc3QgbGlmZSA9IGNhcmQudHlwZSA9PT0gJ2xlYWRlcidcbiAgICAgID8gY2FyZC5sZWFkZXJMaWZlID8/IGNhcmQubGlmZSA/PyAxMFxuICAgICAgOiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZydcbiAgICAgICAgPyBvZmZlcmluZ1ZhbHVlXG4gICAgICAgIDogY2FyZC5saWZlID8/IDA7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNhcmQsXG4gICAgICBjb3N0OiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgPyAwIDogY2FyZC5jb3N0ID8/IDAsXG4gICAgICBvZmZlcmluZ1ZhbHVlLFxuICAgICAgbGlmZSxcbiAgICAgIGxlYWRlckxpZmU6IGNhcmQudHlwZSA9PT0gJ2xlYWRlcicgPyBjYXJkLmxlYWRlckxpZmUgPz8gbGlmZSA6IGNhcmQubGVhZGVyTGlmZSxcbiAgICAgIGF0dGFjazogY2FyZC50eXBlID09PSAnY2hhcmFjdGVyJyA/IGNhcmQuYXR0YWNrID8/IDAgOiBjYXJkLmF0dGFjayxcbiAgICAgIGFiaWxpdHlOYW1lOiBjYXJkLmFiaWxpdHlOYW1lID8/IGNhcmQuYWJpbGl0aWVzPy5bMF0/Lm5hbWUsXG4gICAgICBhYmlsaXR5VGV4dDogY2FyZC5hYmlsaXR5VGV4dCA/PyBjYXJkLmFiaWxpdGllcz8uWzBdPy50ZXh0LFxuICAgICAgdmVyc2VUZXh0LFxuICAgICAgc2NyaXB0dXJlLFxuICAgICAgZWRpdGlvbjogY2FyZC5lZGl0aW9uID8/IGNhdGFsb2cuZWRpdGlvbj8uaWQgPz8gJ0dFTicsXG4gICAgICBlZGl0aW9uTnVtYmVyOiBjYXJkLmVkaXRpb25OdW1iZXIgPz8gY2F0YWxvZy5lZGl0aW9uPy5udW1iZXIsXG4gICAgICBlZGl0aW9uSWNvbixcbiAgICAgIGltYWdlVXJsOiBjYXJkLmltYWdlVXJsID8/IGNhcmQuYXJ0Py5pbWFnZVVybCxcbiAgICAgIGF1dGhvcjogY2FyZC5hdXRob3IgPz8gY2FyZC5hcnQ/LmFydGlzdENyZWRpdCxcbiAgICAgIHllYXI6IGNhcmQueWVhciA/PyAnMjAyNicsXG4gICAgICBmcm9udFRlbXBsYXRlOiBjYXJkLmZyb250VGVtcGxhdGUgPz8gJ2dlbmVzaXMtY2xhc3NpYycsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0U2NyaXB0dXJlKGJpYmxlPzogQ2hyaXN0aWFuaXR5Q2FyZEJpYmxlUmVmZXJlbmNlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIWJpYmxlPy5ib29rIHx8ICFiaWJsZS5yZWZlcmVuY2UpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGAke2JpYmxlLmJvb2t9ICR7YmlibGUucmVmZXJlbmNlfSR7YmlibGUudmVyc2lvbiA/IGAgJHtiaWJsZS52ZXJzaW9ufWAgOiAnJ31gO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUdXRvcmlhbEdhbWUoXG4gICAgY2FyZHM6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uW10sXG4gICAgb3B0aW9uczoge1xuICAgICAgcGxheWVyTGVhZGVySWQ/OiBzdHJpbmc7XG4gICAgICBvcHBvbmVudExlYWRlcklkPzogc3RyaW5nO1xuICAgICAgZmlyc3RQbGF5ZXI/OiBDaHJpc3RpYW5pdHlTZWF0O1xuICAgICAgc2VlZD86IG51bWJlcjtcbiAgICB9ID0ge30sXG4gICk6IENocmlzdGlhbml0eUdhbWVTdGF0ZSB7XG4gICAgY29uc3QgbGVhZGVycyA9IHRoaXMudHV0b3JpYWxMZWFkZXJDYXJkcyhjYXJkcyk7XG4gICAgY29uc3QgcGxheWVyTGVhZGVyID0gdGhpcy5jYXJkQnlJZChvcHRpb25zLnBsYXllckxlYWRlcklkKSA/PyB0aGlzLmZpbmRDYXJkKGxlYWRlcnMsICdBZMOhbicpID8/IGxlYWRlcnNbMF07XG4gICAgY29uc3Qgb3Bwb25lbnRMZWFkZXIgPSB0aGlzLmNhcmRCeUlkKG9wdGlvbnMub3Bwb25lbnRMZWFkZXJJZCkgPz8gdGhpcy5maW5kQ2FyZChsZWFkZXJzLCAnTm/DqScpID8/IGxlYWRlcnMuZmluZChjYXJkID0+IGNhcmQuaWQgIT09IHBsYXllckxlYWRlcj8uaWQpID8/IGxlYWRlcnNbMF07XG4gICAgY29uc3Qgb2ZmZXJpbmdzID0gY2FyZHMuZmlsdGVyKGNhcmQgPT4gY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnICYmIHRoaXMuaXNDbGFzc2ljR2FsbGVyeUNhcmQoY2FyZCkpLnNsaWNlKDAsIFRVVE9SSUFMX09GRkVSSU5HX0xJTUlUKTtcbiAgICBjb25zdCBwbGFjZXMgPSBjYXJkcy5maWx0ZXIoY2FyZCA9PiBjYXJkLnR5cGUgPT09ICdwbGFjZScpO1xuICAgIGNvbnN0IGNoYXJhY3RlcnMgPSBjYXJkc1xuICAgICAgLmZpbHRlcihjYXJkID0+IGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicgJiYgdGhpcy5pc0NsYXNzaWNHYWxsZXJ5Q2FyZChjYXJkKSAmJiAoY2FyZC5jb3N0ID8/IDApIDw9IDQgJiYgKGNhcmQuYXR0YWNrID8/IDApID49IDAgJiYgKGNhcmQubGlmZSA/PyAwKSA+IDApXG4gICAgICAuc2xpY2UoMCwgVFVUT1JJQUxfQ0hBUkFDVEVSX0xJTUlUKTtcbiAgICBjb25zdCB0dXRvcmlhbERlY2sgPSBbXG4gICAgICAuLi5vZmZlcmluZ3MsXG4gICAgICAuLi5jaGFyYWN0ZXJzLFxuICAgICAgLi4ub2ZmZXJpbmdzLFxuICAgICAgLi4uY2hhcmFjdGVycy5zbGljZSgwLCA2KSxcbiAgICBdLnNsaWNlKDAsIDI4KTtcbiAgICBjb25zdCBzaHVmZmxlZERlY2sgPSB0aGlzLnByZXBhcmVUdXRvcmlhbE9wZW5pbmdEZWNrKHRoaXMuc2h1ZmZsZUNhcmRzKHR1dG9yaWFsRGVjaywgb3B0aW9ucy5zZWVkID8/IFRVVE9SSUFMX1NFRUQpKTtcbiAgICBjb25zdCBwbGF5ZXJIYW5kID0gc2h1ZmZsZWREZWNrLnNsaWNlKDAsIFRVVE9SSUFMX09QRU5JTkdfSEFORF9TSVpFKS5tYXAoY2FyZCA9PiBjYXJkLmlkKTtcbiAgICBjb25zdCBvcHBvbmVudEhhbmQgPSBzaHVmZmxlZERlY2suc2xpY2UoVFVUT1JJQUxfT1BFTklOR19IQU5EX1NJWkUsIFRVVE9SSUFMX09QRU5JTkdfSEFORF9TSVpFICogMikubWFwKGNhcmQgPT4gY2FyZC5pZCk7XG4gICAgY29uc3Qgc2hhcmVkRGVjayA9IHNodWZmbGVkRGVjay5zbGljZShUVVRPUklBTF9PUEVOSU5HX0hBTkRfU0laRSAqIDIpLm1hcChjYXJkID0+IGNhcmQuaWQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0cnVjdHVyZWRDbG9uZShTVEFSVElOR19HQU1FKSxcbiAgICAgIHN0YXR1czogJ2luX3Byb2dyZXNzJyxcbiAgICAgIHR1cm5Pd25lcjogb3B0aW9ucy5maXJzdFBsYXllciA/PyAnUDEnLFxuICAgICAgdHVybkNvdW50OiAxLFxuICAgICAgbWF0Y2hTY29yZTogeyBQMTogMCwgUDI6IDAgfSxcbiAgICAgIHNoYXJlZERlY2ssXG4gICAgICBwbGFjZVpvbmU6IHBsYWNlc1swXSA/IFtwbGFjZXNbMF0uaWRdIDogW10sXG4gICAgICBoaXN0b3J5Wm9uZTogW10sXG4gICAgICBwbGF5ZXJzOiB7XG4gICAgICAgIFAxOiB0aGlzLmNyZWF0ZVR1dG9yaWFsUGxheWVyKCdQMScsIHBsYXllckxlYWRlciwgcGxheWVySGFuZCwgW10pLFxuICAgICAgICBQMjogdGhpcy5jcmVhdGVUdXRvcmlhbFBsYXllcignUDInLCBvcHBvbmVudExlYWRlciwgb3Bwb25lbnRIYW5kLCBbXSksXG4gICAgICB9LFxuICAgICAgbG9nOiBbXG4gICAgICAgIGAke3RoaXMudCgnY2hyaXN0aWFuaXR5VHVybk9mJyl9ICR7KG9wdGlvbnMuZmlyc3RQbGF5ZXIgPz8gJ1AxJykgPT09ICdQMScgPyBTVEFSVElOR19HQU1FLnBsYXllcnMuUDEuZGlzcGxheU5hbWUgOiBTVEFSVElOR19HQU1FLnBsYXllcnMuUDIuZGlzcGxheU5hbWV9LmAsXG4gICAgICAgIHRoaXMudCgnY2hyaXN0aWFuaXR5VHV0b3JpYWxMb2FkZWQnKSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVHV0b3JpYWxQbGF5ZXIoXG4gICAgc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCxcbiAgICBsZWFkZXI6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uIHwgdW5kZWZpbmVkLFxuICAgIGhhbmQ6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgIGJhdHRsZVpvbmU6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlW10sXG4gICk6IENocmlzdGlhbml0eVBsYXllclN0YXRlIHtcbiAgICBjb25zdCBiYXNlID0gU1RBUlRJTkdfR0FNRS5wbGF5ZXJzW3NlYXRdO1xuICAgIGNvbnN0IGxlYWRlckxpZmUgPSBsZWFkZXI/LmxlYWRlckxpZmUgPz8gbGVhZGVyPy5saWZlID8/IGJhc2UubGVhZGVyTWF4SHA7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0cnVjdHVyZWRDbG9uZShiYXNlKSxcbiAgICAgIGxlYWRlckNhcmRJZDogbGVhZGVyPy5pZCxcbiAgICAgIGxlYWRlck5hbWU6IGxlYWRlciA/IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGxlYWRlcikubmFtZSA6IGJhc2UubGVhZGVyTmFtZSxcbiAgICAgIGxlYWRlckhwOiBsZWFkZXJMaWZlLFxuICAgICAgbGVhZGVyTWF4SHA6IGxlYWRlckxpZmUsXG4gICAgICBvZmZlcmluZ3M6IFtdLFxuICAgICAgb2ZmZXJpbmdQbGF5ZWRUaGlzVHVybjogZmFsc2UsXG4gICAgICBoYW5kLFxuICAgICAgaGFuZENvdW50OiBoYW5kID8gdW5kZWZpbmVkIDogNCxcbiAgICAgIGJhdHRsZVpvbmUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT2ZmZXJpbmdJbnN0YW5jZShjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiwgc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCwgaW5zdGFuY2VJZDogc3RyaW5nKTogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSB7XG4gICAgY29uc3QgdmFsdWUgPSBjYXJkLm9mZmVyaW5nVmFsdWUgPz8gY2FyZC5saWZlID8/IDE7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluc3RhbmNlSWQsXG4gICAgICBjYXJkSWQ6IGNhcmQuaWQsXG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKS5uYW1lLFxuICAgICAgb3duZXI6IHNlYXQsXG4gICAgICByZWFkeTogdHJ1ZSxcbiAgICAgIHZhbHVlLFxuICAgICAgYWJpbGl0eU5hbWU6IGNhcmQuYWJpbGl0eU5hbWUsXG4gICAgICBhYmlsaXR5VGV4dDogY2FyZC5hYmlsaXR5VGV4dCxcbiAgICAgIGFiaWxpdHlDb3N0OiBjYXJkLmFiaWxpdHlDb3N0LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNoYXJhY3Rlckluc3RhbmNlKGNhcmQ6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uLCBzZWF0OiBDaHJpc3RpYW5pdHlTZWF0LCBzbG90OiBudW1iZXIsIGluc3RhbmNlSWQ6IHN0cmluZyk6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlIHtcbiAgICBjb25zdCBsaWZlID0gY2FyZC5saWZlID8/IDE7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluc3RhbmNlSWQsXG4gICAgICBjYXJkSWQ6IGNhcmQuaWQsXG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKS5uYW1lLFxuICAgICAgb3duZXI6IHNlYXQsXG4gICAgICBjb250cm9sbGVyOiBzZWF0LFxuICAgICAgc2xvdCxcbiAgICAgIGF0dGFjazogY2FyZC5hdHRhY2sgPz8gMCxcbiAgICAgIGN1cnJlbnRIcDogbGlmZSxcbiAgICAgIG1heEhwOiBsaWZlLFxuICAgICAgY2FuQXR0YWNrOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kQ2FyZChjYXJkczogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXSwgbmFtZVBhcnQ6IHN0cmluZyk6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gY2FyZHMuZmluZChjYXJkID0+IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhuYW1lUGFydC50b0xvd2VyQ2FzZSgpKSk7XG4gIH1cblxuICBwcml2YXRlIGNhcmRCeUlkKGNhcmRJZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBjYXJkSWQgPyB0aGlzLmNhcmRDYXRhbG9nKClbY2FyZElkXSA/PyBTVEFSVEVSX0NBUkRTW2NhcmRJZF0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHR1dG9yaWFsTGVhZGVyQ2FyZHMoY2FyZHM6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uW10pOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbltdIHtcbiAgICBjb25zdCBsZWFkZXJzID0gY2FyZHNcbiAgICAgIC5maWx0ZXIoY2FyZCA9PiBjYXJkLnR5cGUgPT09ICdsZWFkZXInICYmIHRoaXMuaXNDbGFzc2ljR2FsbGVyeUNhcmQoY2FyZCkpXG4gICAgICAuc29ydCgobGVmdCwgcmlnaHQpID0+IHRoaXMuY2FyZFNvcnRLZXkobGVmdCkubG9jYWxlQ29tcGFyZSh0aGlzLmNhcmRTb3J0S2V5KHJpZ2h0KSwgJ2VzJykpO1xuICAgIGlmIChsZWFkZXJzLmxlbmd0aCA+PSAyKSByZXR1cm4gbGVhZGVycy5zbGljZSgwLCA0KTtcbiAgICByZXR1cm4gY2FyZHMuZmlsdGVyKGNhcmQgPT4gY2FyZC50eXBlID09PSAnbGVhZGVyJykuc2xpY2UoMCwgNCk7XG4gIH1cblxuICBwcml2YXRlIHNodWZmbGVDYXJkcyhjYXJkczogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXSwgc2VlZDogbnVtYmVyKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gWy4uLmNhcmRzXTtcbiAgICBsZXQgc3RhdGUgPSBzZWVkID4+PiAwO1xuICAgIGZvciAobGV0IGluZGV4ID0gcmVzdWx0Lmxlbmd0aCAtIDE7IGluZGV4ID4gMDsgaW5kZXgtLSkge1xuICAgICAgc3RhdGUgPSAoc3RhdGUgKiAxNjY0NTI1ICsgMTAxMzkwNDIyMykgPj4+IDA7XG4gICAgICBjb25zdCBzd2FwSW5kZXggPSBzdGF0ZSAlIChpbmRleCArIDEpO1xuICAgICAgW3Jlc3VsdFtpbmRleF0sIHJlc3VsdFtzd2FwSW5kZXhdXSA9IFtyZXN1bHRbc3dhcEluZGV4XSwgcmVzdWx0W2luZGV4XV07XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVUdXRvcmlhbE9wZW5pbmdEZWNrKGNhcmRzOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbltdKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gWy4uLmNhcmRzXTtcbiAgICB0aGlzLmVuc3VyZU9wZW5pbmdPZmZlcmluZyhyZXN1bHQsIDAsIFRVVE9SSUFMX09QRU5JTkdfSEFORF9TSVpFKTtcbiAgICB0aGlzLmVuc3VyZU9wZW5pbmdPZmZlcmluZyhyZXN1bHQsIFRVVE9SSUFMX09QRU5JTkdfSEFORF9TSVpFLCBUVVRPUklBTF9PUEVOSU5HX0hBTkRfU0laRSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlT3BlbmluZ09mZmVyaW5nKGNhcmRzOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbltdLCBzdGFydDogbnVtYmVyLCBzaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBoYW5kID0gY2FyZHMuc2xpY2Uoc3RhcnQsIHN0YXJ0ICsgc2l6ZSk7XG4gICAgaWYgKGhhbmQuc29tZShjYXJkID0+IGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJykpIHJldHVybjtcbiAgICBjb25zdCBvZmZlcmluZ0luZGV4ID0gY2FyZHMuZmluZEluZGV4KChjYXJkLCBpbmRleCkgPT4gaW5kZXggPj0gc3RhcnQgKyBzaXplICYmIGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyk7XG4gICAgaWYgKG9mZmVyaW5nSW5kZXggPCAwKSByZXR1cm47XG4gICAgW2NhcmRzW3N0YXJ0XSwgY2FyZHNbb2ZmZXJpbmdJbmRleF1dID0gW2NhcmRzW29mZmVyaW5nSW5kZXhdLCBjYXJkc1tzdGFydF1dO1xuICB9XG5cbiAgcHJpdmF0ZSBjYXJkU29ydEtleShjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbik6IHN0cmluZyB7XG4gICAgY29uc3QgY29sbGVjdG9yID0gY2FyZC5jb2xsZWN0b3JOdW1iZXIgPz8gY2FyZC5pZDtcbiAgICByZXR1cm4gYCR7Y2FyZC5lZGl0aW9uID8/ICcnfS0ke2NvbGxlY3Rvci5wYWRTdGFydCg4LCAnMCcpfS0ke3RoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpLm5hbWV9YDtcbiAgfVxuXG4gIHByaXZhdGUgaXNDbGFzc2ljR2FsbGVyeUNhcmQoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKGNhcmQuZnJvbnRUZW1wbGF0ZSA/PyAnZ2VuZXNpcy1jbGFzc2ljJykgPT09ICdnZW5lc2lzLWNsYXNzaWMnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhcmREZWZpbml0aW9uKGNhcmRJZDogc3RyaW5nKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24ge1xuICAgIHJldHVybiB0aGlzLmNhcmRDYXRhbG9nKClbY2FyZElkXSA/PyBTVEFSVEVSX0NBUkRTW2NhcmRJZF0gPz8gU1RBUlRFUl9DQVJEU1sncF9zY291dCddO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2xhdGVkQ2FyZFRleHQoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBDaHJpc3RpYW5pdHlSZXNvbHZlZENhcmRUZXh0IHtcbiAgICBjb25zdCBsYW5nID0gdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCB0cmFuc2xhdGlvbiA9IGNhcmQuaTE4bj8uW2xhbmddID8/IGNhcmQuaTE4bj8uWydlcyddO1xuICAgIGNvbnN0IHByaW1hcnlBYmlsaXR5ID0gdHJhbnNsYXRpb24/LmFiaWxpdGllcz8uWzBdID8/IGNhcmQuYWJpbGl0aWVzPy5bMF07XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRyYW5zbGF0aW9uPy5uYW1lID8/IGNhcmQubmFtZSxcbiAgICAgIGZ1bGxOYW1lOiB0cmFuc2xhdGlvbj8uZnVsbE5hbWUgPz8gY2FyZC5mdWxsTmFtZSxcbiAgICAgIHZlcnNlVGV4dDogdHJhbnNsYXRpb24/LnZlcnNlVGV4dCA/PyBjYXJkLnZlcnNlVGV4dCxcbiAgICAgIHNjcmlwdHVyZTogdHJhbnNsYXRpb24/LnNjcmlwdHVyZSA/PyBjYXJkLnNjcmlwdHVyZSxcbiAgICAgIGFiaWxpdHlOYW1lOiB0cmFuc2xhdGlvbj8uYWJpbGl0eU5hbWUgPz8gcHJpbWFyeUFiaWxpdHk/Lm5hbWUgPz8gY2FyZC5hYmlsaXR5TmFtZSxcbiAgICAgIGFiaWxpdHlUZXh0OiB0cmFuc2xhdGlvbj8uYWJpbGl0eVRleHQgPz8gcHJpbWFyeUFiaWxpdHk/LnRleHQgPz8gY2FyZC5hYmlsaXR5VGV4dCxcbiAgICAgIGFiaWxpdGllczogdHJhbnNsYXRpb24/LmFiaWxpdGllcyA/PyBjYXJkLmFiaWxpdGllcyxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhcmREaXNwbGF5TmFtZShjYXJkSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKSkubmFtZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwbGF5ZXJMZWFkZXJEaXNwbGF5TmFtZShwbGF5ZXI6IENocmlzdGlhbml0eVBsYXllclN0YXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGxheWVyLmxlYWRlckNhcmRJZCA/IHRoaXMuY2FyZERpc3BsYXlOYW1lKHBsYXllci5sZWFkZXJDYXJkSWQpIDogcGxheWVyLmxlYWRlck5hbWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2F0YWxvZ1N0YXR1c0xhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmNhdGFsb2dMb2FkU3RhdGUoKTtcbiAgICBpZiAoc3RhdGUgPT09ICdyZWFkeScpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUNhdGFsb2dSZWFkeScpO1xuICAgIGlmIChzdGF0ZSA9PT0gJ2ZhbGxiYWNrJykgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5Q2F0YWxvZ0ZhbGxiYWNrJyk7XG4gICAgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5Q2F0YWxvZ0xvYWRpbmcnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydEZlYXR1cmVkQ2FyZFRyYW5zZm9ybShpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cmFuc2Zvcm1zID0gW1xuICAgICAgJ3RyYW5zbGF0ZVgoLTEuNHJlbSkgcm90YXRlKC05ZGVnKScsXG4gICAgICAndHJhbnNsYXRlWSgtMC41NXJlbSkgcm90YXRlKDJkZWcpJyxcbiAgICAgICd0cmFuc2xhdGVYKDEuNHJlbSkgcm90YXRlKDEwZGVnKScsXG4gICAgXTtcbiAgICByZXR1cm4gdHJhbnNmb3Jtc1tpbmRleF0gPz8gJ25vbmUnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhcmRUeXBlTGFiZWwoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IGxhYmVsczogUmVjb3JkPENocmlzdGlhbml0eUNhcmRUeXBlLCBzdHJpbmc+ID0ge1xuICAgICAgYWN0aW9uOiB0aGlzLnQoJ2NocmlzdGlhbml0eUFjdGlvbkNhcmQnKSxcbiAgICAgIGNoYXJhY3RlcjogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJDYXJkJyksXG4gICAgICBldmVudDogdGhpcy50KCdjaHJpc3RpYW5pdHlFdmVudENhcmQnKSxcbiAgICAgIGxlYWRlcjogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksXG4gICAgICBvZmZlcmluZzogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSxcbiAgICAgIHBsYWNlOiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYWNlQ2FyZCcpLFxuICAgICAgdG9vbDogdGhpcy50KCdjaHJpc3RpYW5pdHlUb29sQ2FyZCcpLFxuICAgICAgd2lzZG9tOiB0aGlzLnQoJ2NocmlzdGlhbml0eVdpc2RvbUNhcmQnKSxcbiAgICB9O1xuICAgIHJldHVybiBsYWJlbHNbY2FyZC50eXBlXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZWZpbml0aW9uVG9SZW5kZXJDYXJkKFxuICAgIGNhcmQ6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uLFxuICAgIG92ZXJyaWRlczogUGFydGlhbDxDaHJpc3RpYW5pdHlDYXJkUmVuZGVyTW9kZWw+ID0ge30sXG4gICk6IENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbCB7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpO1xuICAgIGNvbnN0IGJhc2U6IENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbCA9IHtcbiAgICAgIGlkOiBjYXJkLmlkLFxuICAgICAgbmFtZTogdGV4dC5uYW1lLFxuICAgICAgdHlwZTogY2FyZC50eXBlLFxuICAgICAgdHlwZUxhYmVsOiB0aGlzLmNhcmRUeXBlTGFiZWwoY2FyZCksXG4gICAgICBjb3N0OiBjYXJkLmNvc3QsXG4gICAgICBvZmZlcmluZ1ZhbHVlOiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgPyBjYXJkLm9mZmVyaW5nVmFsdWUgPz8gY2FyZC5saWZlIDogdW5kZWZpbmVkLFxuICAgICAgYXR0YWNrOiBjYXJkLnR5cGUgPT09ICdjaGFyYWN0ZXInID8gY2FyZC5hdHRhY2sgOiB1bmRlZmluZWQsXG4gICAgICBsaWZlOiBjYXJkLmxpZmUsXG4gICAgICBjdXJyZW50SHA6IGNhcmQubGlmZSxcbiAgICAgIG1heEhwOiBjYXJkLmxpZmUsXG4gICAgICBhYmlsaXR5TmFtZTogdGV4dC5hYmlsaXR5TmFtZSxcbiAgICAgIGFiaWxpdHlUZXh0OiB0ZXh0LmFiaWxpdHlUZXh0LFxuICAgICAgdmVyc2VUZXh0OiB0ZXh0LnZlcnNlVGV4dCxcbiAgICAgIHNjcmlwdHVyZTogdGV4dC5zY3JpcHR1cmUsXG4gICAgICBlZGl0aW9uOiBjYXJkLmVkaXRpb24sXG4gICAgICBjb2xsZWN0b3JOdW1iZXI6IGNhcmQuY29sbGVjdG9yTnVtYmVyLFxuICAgICAgZWRpdGlvbkljb246IGNhcmQuZWRpdGlvbkljb24gPz8gKGNhcmQuZWRpdGlvbiA9PT0gJ0dFTicgPyBHRU5FU0lTX0lDT05fVVJMIDogdW5kZWZpbmVkKSxcbiAgICAgIHllYXI6IGNhcmQueWVhcixcbiAgICAgIGF1dGhvcjogY2FyZC5hdXRob3IsXG4gICAgICByYXJpdHk6IGNhcmQucmFyaXR5LFxuICAgICAgaW1hZ2VVcmw6IGNhcmQuaW1hZ2VVcmwsXG4gICAgICBmcm9udFRlbXBsYXRlOiBjYXJkLmZyb250VGVtcGxhdGUgPz8gKGNhcmQuZWRpdGlvbiA9PT0gJ0dFTicgPyAnZ2VuZXNpcy1jbGFzc2ljJyA6IHVuZGVmaW5lZCksXG4gICAgICBiaWJsZUNyZWRpdDogdGhpcy5iaWJsZUNyZWRpdEZvckNhcmQoY2FyZCksXG4gICAgfTtcbiAgICByZXR1cm4geyAuLi5iYXNlLCAuLi5vdmVycmlkZXMgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwbGFjZUJhY2tkcm9wSW1hZ2UoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IGltYWdlVXJsID0gY2FyZC5pbWFnZVVybCA/PyBjYXJkLmFydD8uaW1hZ2VVcmw7XG4gICAgaWYgKCFpbWFnZVVybCkge1xuICAgICAgcmV0dXJuICdsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDEzLCAxNDgsIDEzNiwgMC43MiksIHJnYmEoMTI0LCA1OCwgMjM3LCAwLjUyKSA0OCUsIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjQyKSknO1xuICAgIH1cbiAgICByZXR1cm4gYHVybChcIiR7aW1hZ2VVcmwucmVwbGFjZUFsbCgnXCInLCAnXFxcXFwiJyl9XCIpYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBoaWRkZW5DYXJkUmVuZGVyQ2FyZCgpOiBDaHJpc3RpYW5pdHlDYXJkUmVuZGVyTW9kZWwge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogJ2NocmlzdGlhbml0eS1oaWRkZW4tY2FyZCcsXG4gICAgICBuYW1lOiB0aGlzLnQoJ2NocmlzdGlhbml0eUhpZGRlbkNhcmQnKSxcbiAgICAgIHR5cGU6ICdldmVudCcsXG4gICAgICB0eXBlTGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5SGlkZGVuQ2FyZCcpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJpYmxlQ3JlZGl0Rm9yQ2FyZChjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGNhcmQuYmlibGVDcmVkaXQpIHJldHVybiBjYXJkLmJpYmxlQ3JlZGl0O1xuICAgIGlmIChjYXJkLmJpYmxlPy52ZXJzaW9uID09PSAnTkJWJykge1xuICAgICAgcmV0dXJuICdOdWV2YSBCaWJsaWEgVml2YSDCqSAyMDA2LCAyMDA4IHBvciBCaWJsaWNhLCBJbmMuwq4gVXNhZG8gY29uIHBlcm1pc28gZGUgQmlibGljYSwgSW5jLsKuIFJlc2VydmFkb3MgdG9kb3MgbG9zIGRlcmVjaG9zIGVuIHRvZG8gZWwgbXVuZG8uJztcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZGVmYXVsdENhcmRCb2R5KHR5cGU6IENocmlzdGlhbml0eUNhcmRUeXBlKTogc3RyaW5nIHtcbiAgICBjb25zdCBib2RpZXM6IFJlY29yZDxDaHJpc3RpYW5pdHlDYXJkVHlwZSwgc3RyaW5nPiA9IHtcbiAgICAgIGFjdGlvbjogdGhpcy50KCdjaHJpc3RpYW5pdHlBY3Rpb25SdWxlQm9keScpLFxuICAgICAgY2hhcmFjdGVyOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlckJvZHknKSxcbiAgICAgIGV2ZW50OiB0aGlzLnQoJ2NocmlzdGlhbml0eUV2ZW50UnVsZUJvZHknKSxcbiAgICAgIGxlYWRlcjogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJCb2R5JyksXG4gICAgICBvZmZlcmluZzogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0JvZHknKSxcbiAgICAgIHBsYWNlOiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYWNlUnVsZUJvZHknKSxcbiAgICAgIHRvb2w6IHRoaXMudCgnY2hyaXN0aWFuaXR5VG9vbFJ1bGVCb2R5JyksXG4gICAgICB3aXNkb206IHRoaXMudCgnY2hyaXN0aWFuaXR5V2lzZG9tUnVsZUJvZHknKSxcbiAgICB9O1xuICAgIHJldHVybiBib2RpZXNbdHlwZV07XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hhcmFjdGVyUmVuZGVyQ2FyZChjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbCB7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZC5jYXJkSWQpO1xuICAgIHJldHVybiB0aGlzLmRlZmluaXRpb25Ub1JlbmRlckNhcmQoZGVmaW5pdGlvbiwge1xuICAgICAgaWQ6IGNhcmQuaW5zdGFuY2VJZCxcbiAgICAgIGF0dGFjazogY2FyZC5hdHRhY2ssXG4gICAgICBsaWZlOiBjYXJkLm1heEhwLFxuICAgICAgY3VycmVudEhwOiBjYXJkLmN1cnJlbnRIcCxcbiAgICAgIG1heEhwOiBjYXJkLm1heEhwLFxuICAgICAgc3RhdHVzVGV4dDogY2FyZC5jYW5BdHRhY2sgPyB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlclJlYWR5JykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlckV4aGF1c3RlZCcpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGxlYWRlclJlbmRlckNhcmQocGxheWVyOiBDaHJpc3RpYW5pdHlQbGF5ZXJTdGF0ZSk6IENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbCB7XG4gICAgaWYgKHBsYXllci5sZWFkZXJDYXJkSWQpIHtcbiAgICAgIGNvbnN0IGRlZmluaXRpb24gPSB0aGlzLmNhcmREZWZpbml0aW9uKHBsYXllci5sZWFkZXJDYXJkSWQpO1xuICAgICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChkZWZpbml0aW9uLCB7XG4gICAgICAgIGlkOiBgJHtwbGF5ZXIuc2VhdH0tbGVhZGVyYCxcbiAgICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoZGVmaW5pdGlvbikubmFtZSxcbiAgICAgICAgdHlwZTogJ2xlYWRlcicsXG4gICAgICAgIHR5cGVMYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksXG4gICAgICAgIGxpZmU6IHBsYXllci5sZWFkZXJIcCxcbiAgICAgICAgY3VycmVudEhwOiBwbGF5ZXIubGVhZGVySHAsXG4gICAgICAgIG1heEhwOiBwbGF5ZXIubGVhZGVyTWF4SHAsXG4gICAgICAgIHN0YXR1c1RleHQ6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQm9keScpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpZDogYCR7cGxheWVyLnNlYXR9LWxlYWRlcmAsXG4gICAgICBuYW1lOiBwbGF5ZXIubGVhZGVyTmFtZSxcbiAgICAgIHR5cGU6ICdsZWFkZXInLFxuICAgICAgdHlwZUxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSxcbiAgICAgIGxpZmU6IHBsYXllci5sZWFkZXJIcCxcbiAgICAgIGN1cnJlbnRIcDogcGxheWVyLmxlYWRlckhwLFxuICAgICAgbWF4SHA6IHBsYXllci5sZWFkZXJNYXhIcCxcbiAgICAgIGFiaWxpdHlOYW1lOiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSxcbiAgICAgIGFiaWxpdHlUZXh0OiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckJvZHknKSxcbiAgICAgIHZlcnNlVGV4dDogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJCb2R5JyksXG4gICAgICBlZGl0aW9uOiAnTVZQJyxcbiAgICAgIGNvbGxlY3Rvck51bWJlcjogJ0xJREVSJyxcbiAgICAgIGVkaXRpb25JY29uOiBHRU5FU0lTX0lDT05fVVJMLFxuICAgICAgeWVhcjogJzIwMjYnLFxuICAgICAgYXV0aG9yOiAnTVZQJyxcbiAgICAgIHJhcml0eTogJ2xlZ2VuZGFyeScsXG4gICAgICBmcm9udFRlbXBsYXRlOiAnZ2VuZXNpcy1jbGFzc2ljJyxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIG9mZmVyaW5nUmVuZGVyQ2FyZChvZmZlcmluZzogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSk6IENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbCB7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXMuY2FyZERlZmluaXRpb24ob2ZmZXJpbmcuY2FyZElkKTtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoZGVmaW5pdGlvbik7XG4gICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChkZWZpbml0aW9uLCB7XG4gICAgICBpZDogb2ZmZXJpbmcuaW5zdGFuY2VJZCxcbiAgICAgIG5hbWU6IHRleHQubmFtZSxcbiAgICAgIHR5cGU6ICdvZmZlcmluZycsXG4gICAgICB0eXBlTGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdDYXJkJyksXG4gICAgICBvZmZlcmluZ1ZhbHVlOiBvZmZlcmluZy52YWx1ZSxcbiAgICAgIGxpZmU6IG9mZmVyaW5nLnZhbHVlLFxuICAgICAgY3VycmVudEhwOiBvZmZlcmluZy52YWx1ZSxcbiAgICAgIG1heEhwOiBvZmZlcmluZy52YWx1ZSxcbiAgICAgIGFiaWxpdHlOYW1lOiB0ZXh0LmFiaWxpdHlOYW1lID8/IG9mZmVyaW5nLmFiaWxpdHlOYW1lLFxuICAgICAgYWJpbGl0eVRleHQ6IHRleHQuYWJpbGl0eVRleHQgPz8gb2ZmZXJpbmcuYWJpbGl0eVRleHQgPz8gdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ05vQWJpbGl0eScpLFxuICAgICAgc3RhdHVzVGV4dDogb2ZmZXJpbmcucmVhZHkgPyB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nUmVhZHknKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdFeGhhdXN0ZWQnKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJldmlld1JlbmRlclR5cGUodHlwZUxhYmVsOiBzdHJpbmcpOiBDaHJpc3RpYW5pdHlDYXJkUmVuZGVyVHlwZSB7XG4gICAgaWYgKHR5cGVMYWJlbCA9PT0gdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJykpIHJldHVybiAnbGVhZGVyJztcbiAgICBpZiAodHlwZUxhYmVsID09PSB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQ2FyZCcpKSByZXR1cm4gJ29mZmVyaW5nJztcbiAgICByZXR1cm4gJ2NoYXJhY3Rlcic7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FyZFR5cGVJY29uVXJsKGNhcmQ6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jYXJkVHlwZUljb25VcmxGb3JUeXBlKGNhcmQudHlwZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJldmlld1R5cGVJY29uVXJsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcHJldmlldyA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk7XG4gICAgaWYgKHByZXZpZXc/LmV5ZWJyb3cgPT09IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpKSByZXR1cm4gdGhpcy5jYXJkVHlwZUljb25VcmxGb3JUeXBlKCdsZWFkZXInKTtcbiAgICBpZiAocHJldmlldz8uZXllYnJvdyA9PT0gdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSkgcmV0dXJuIHRoaXMuY2FyZFR5cGVJY29uVXJsRm9yVHlwZSgnb2ZmZXJpbmcnKTtcbiAgICByZXR1cm4gdGhpcy5jYXJkVHlwZUljb25VcmxGb3JUeXBlKCdjaGFyYWN0ZXInKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYXJkVHlwZUljb25VcmxGb3JUeXBlKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IHR5cGUudG9Mb3dlckNhc2UoKS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcbiAgICBjb25zdCBpY29uID0gbm9ybWFsaXplZCA9PT0gJ2xpZGVyJyA/ICdsZWFkZXInIDogbm9ybWFsaXplZCA9PT0gJ3BlcnNvbmFqZScgPyAnY2hhcmFjdGVyJyA6IG5vcm1hbGl6ZWQgPT09ICdvZnJlbmRhJyA/ICdvZmZlcmluZycgOiBub3JtYWxpemVkO1xuICAgIHJldHVybiBgYXNzZXRzL2dhbWVzL2NocmlzdGlhbml0eS9pY29ucy8ke2ljb259LnBuZ2A7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdQaXBzKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQpOiB1bmtub3duW10ge1xuICAgIGNvbnN0IGNvdW50ID0gTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShjb3VudCkgfHwgY291bnQgPD0gMCkgcmV0dXJuIFtdO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBNYXRoLm1pbihNYXRoLmZsb29yKGNvdW50KSwgNSkgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYmF0dGxlU2xvdHMoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IEFycmF5PHsgdHJhY2tJZDogc3RyaW5nOyBjYXJkPzogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UgfT4ge1xuICAgIGNvbnN0IGNhcmRzID0gdGhpcy5nYW1lKCkucGxheWVyc1tzZWF0XS5iYXR0bGVab25lO1xuICAgIGNvbnN0IHBvc2l0aW9uZWRDYXJkcyA9IG5ldyBNYXA8bnVtYmVyLCBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZT4oKTtcbiAgICBjYXJkcy5mb3JFYWNoKChjYXJkLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qgc2xvdCA9IE51bWJlci5pc0ludGVnZXIoY2FyZC5zbG90KSA/IGNhcmQuc2xvdCA/PyBpbmRleCA6IGluZGV4O1xuICAgICAgaWYgKHNsb3QgPj0gMCAmJiBzbG90IDwgNCAmJiAhcG9zaXRpb25lZENhcmRzLmhhcyhzbG90KSkge1xuICAgICAgICBwb3NpdGlvbmVkQ2FyZHMuc2V0KHNsb3QsIGNhcmQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiA0IH0sIChfLCBpbmRleCkgPT4gKHtcbiAgICAgIHRyYWNrSWQ6IHBvc2l0aW9uZWRDYXJkcy5nZXQoaW5kZXgpPy5pbnN0YW5jZUlkID8/IGAke3NlYXR9LWVtcHR5LSR7aW5kZXh9YCxcbiAgICAgIGNhcmQ6IHBvc2l0aW9uZWRDYXJkcy5nZXQoaW5kZXgpLFxuICAgIH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBiYXR0bGVTbG90RHJvcElkKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LWJhdHRsZS1zbG90LSR7aW5kZXh9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBkcm9wVGFyZ2V0SWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWydjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLWRyb3AnLCAnY2hyaXN0aWFuaXR5LXBsYWNlLWRyb3AnLCAuLi50aGlzLmJhdHRsZVNsb3RzKCdQMScpLm1hcCgoXywgaW5kZXgpID0+IHRoaXMuYmF0dGxlU2xvdERyb3BJZChpbmRleCkpXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvd25BdHRhY2tlckRyb3BTb3VyY2VJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbJ2NocmlzdGlhbml0eS1wbGF5ZXItYmF0dGxlLXNvdXJjZSddO1xuICB9XG5cbiAgcHJvdGVjdGVkIGF0dGFja1RhcmdldERyb3BJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbJ2NocmlzdGlhbml0eS1vcHBvbmVudC1sZWFkZXItZHJvcCcsIC4uLnRoaXMub3Bwb25lbnQoKS5iYXR0bGVab25lLm1hcChjYXJkID0+IHRoaXMub3Bwb25lbnRUYXJnZXREcm9wSWQoY2FyZCkpXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvcHBvbmVudFRhcmdldERyb3BJZChjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjaHJpc3RpYW5pdHktb3Bwb25lbnQtdGFyZ2V0LSR7Y2FyZC5pbnN0YW5jZUlkfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9wSGlzdG9yeUNhcmQoKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24gfCBudWxsIHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLmdhbWUoKS5oaXN0b3J5Wm9uZS5hdCgtMSk7XG4gICAgcmV0dXJuIGNhcmRJZCA/IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKSA6IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGlzdG9yeVN0YWNrKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5nYW1lKCkuaGlzdG9yeVpvbmUuc2xpY2UoLTMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvcE9mZmVyaW5nKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZ2FtZSgpLnBsYXllcnNbc2VhdF0ub2ZmZXJpbmdzLmF0KC0xKSA/PyBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9mZmVyaW5nU3RhY2soc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2FtZSgpLnBsYXllcnNbc2VhdF0ub2ZmZXJpbmdzLnNsaWNlKC0zKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY3RpdmVQbGFjZUNhcmQoKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24gfCBudWxsIHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLmdhbWUoKS5wbGFjZVpvbmVbMF07XG4gICAgcmV0dXJuIGNhcmRJZCA/IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKSA6IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGxhY2VTdGFjaygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2FtZSgpLnBsYWNlWm9uZS5zbGljZSgtMyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgem9uZVN0YWNrVHJhbnNmb3JtKGluZGV4OiBudW1iZXIsIHRvdGFsOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNlbnRlciA9ICh0b3RhbCAtIDEpIC8gMjtcbiAgICBjb25zdCBvZmZzZXQgPSBpbmRleCAtIGNlbnRlcjtcbiAgICBjb25zdCB4ID0gb2Zmc2V0ICogMC41MjtcbiAgICBjb25zdCB5ID0gTWF0aC5hYnMob2Zmc2V0KSAqIDAuMTQ7XG4gICAgY29uc3Qgcm90YXRpb24gPSBvZmZzZXQgKiA1O1xuICAgIHJldHVybiBgdHJhbnNsYXRlWChjYWxjKC01MCUgKyAke3h9cmVtKSkgdHJhbnNsYXRlWSgke3l9cmVtKSByb3RhdGUoJHtyb3RhdGlvbn1kZWcpYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc09wcG9uZW50TGVhZGVyVGFyZ2V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuc2VsZWN0ZWRBdHRhY2tlcigpICYmICF0aGlzLmhhc09wcG9uZW50R3VhcmRzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNPcHBvbmVudENoYXJhY3RlclRhcmdldChjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIWNhcmQgJiYgISF0aGlzLnNlbGVjdGVkQXR0YWNrZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoaWRkZW5IYW5kQ2FyZHMoY291bnQ6IG51bWJlcik6IHVua25vd25bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IGNvdW50IH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZhblRyYW5zZm9ybShpbmRleDogbnVtYmVyLCB0b3RhbDogbnVtYmVyLCBvcHBvbmVudDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgaWYgKHRvdGFsIDw9IDEpIHJldHVybiAnbm9uZSc7XG4gICAgY29uc3QgY2VudGVyID0gKHRvdGFsIC0gMSkgLyAyO1xuICAgIGNvbnN0IG9mZnNldCA9IGluZGV4IC0gY2VudGVyO1xuICAgIGNvbnN0IHJvdGF0ZSA9IG9mZnNldCAqIChvcHBvbmVudCA/IDYgOiA1KTtcbiAgICBjb25zdCBsaWZ0ID0gTWF0aC5hYnMob2Zmc2V0KSAqIDAuMjU7XG4gICAgY29uc3QgaG92ZXJMaWZ0ID0gb3Bwb25lbnQgPyAwIDogdGhpcy5oYW5kV2F2ZUxpZnQoaW5kZXgpO1xuICAgIGNvbnN0IHNjYWxlID0gb3Bwb25lbnQgPyAxIDogdGhpcy5oYW5kV2F2ZVNjYWxlKGluZGV4KTtcbiAgICBjb25zdCBmYW5MaWZ0ID0gb3Bwb25lbnQgPyBNYXRoLmFicyhvZmZzZXQpICogMC4yMiA6IGxpZnQgKyBob3ZlckxpZnQ7XG4gICAgY29uc3QgZmFuU3ByZWFkID0gb3Bwb25lbnQgPyBvZmZzZXQgKiAwLjAyIDogMDtcbiAgICByZXR1cm4gYHRyYW5zbGF0ZSgke2ZhblNwcmVhZH1yZW0sICR7ZmFuTGlmdH1yZW0pIHJvdGF0ZSgke3JvdGF0ZX1kZWcpIHNjYWxlKCR7c2NhbGV9KWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZENhcmRaSW5kZXgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaG92ZXJlZCA9IHRoaXMuaG92ZXJlZEhhbmRJbmRleCgpO1xuICAgIGlmIChob3ZlcmVkID09PSBudWxsKSByZXR1cm4gMjtcbiAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKGluZGV4IC0gaG92ZXJlZCk7XG4gICAgcmV0dXJuIE1hdGgubWF4KDIsIDggLSBkaXN0YW5jZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0SG92ZXJlZEhhbmRJbmRleChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5ob3ZlcmVkSGFuZEluZGV4LnNldChpbmRleCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJIb3ZlcmVkSGFuZEluZGV4KCk6IHZvaWQge1xuICAgIHRoaXMuaG92ZXJlZEhhbmRJbmRleC5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVsZWFzZUhvdmVyZWRIYW5kKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgIT09ICdtb3VzZScpIHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xlYXJIb3ZlcmVkSGFuZEluZGV4KCksIDE4MCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kV2F2ZUxpZnQoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaG92ZXJlZCA9IHRoaXMuaG92ZXJlZEhhbmRJbmRleCgpO1xuICAgIGlmIChob3ZlcmVkID09PSBudWxsKSByZXR1cm4gMDtcbiAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKGluZGV4IC0gaG92ZXJlZCk7XG4gICAgaWYgKGRpc3RhbmNlID09PSAwKSByZXR1cm4gLTEuMTU7XG4gICAgaWYgKGRpc3RhbmNlID09PSAxKSByZXR1cm4gLTAuNTg7XG4gICAgaWYgKGRpc3RhbmNlID09PSAyKSByZXR1cm4gLTAuMjI7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBwcml2YXRlIGhhbmRXYXZlU2NhbGUoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaG92ZXJlZCA9IHRoaXMuaG92ZXJlZEhhbmRJbmRleCgpO1xuICAgIGlmIChob3ZlcmVkID09PSBudWxsKSByZXR1cm4gMTtcbiAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKGluZGV4IC0gaG92ZXJlZCk7XG4gICAgaWYgKGRpc3RhbmNlID09PSAwKSByZXR1cm4gMS4wNjtcbiAgICBpZiAoZGlzdGFuY2UgPT09IDEpIHJldHVybiAxLjAzO1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWR5T2ZmZXJpbmdzKHBsYXllcjogQ2hyaXN0aWFuaXR5UGxheWVyU3RhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiByZWFkeU9mZmVyaW5ncyhwbGF5ZXIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvdGFsT2ZmZXJpbmdzKHBsYXllcjogQ2hyaXN0aWFuaXR5UGxheWVyU3RhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0b3RhbE9mZmVyaW5ncyhwbGF5ZXIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhblBsYXkoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy50dXRvcmlhbFBoYXNlKCkgIT09ICdpbl9wcm9ncmVzcycpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gY2FuUGxheUNhcmQodGhpcy5nYW1lKCksICdQMScsIGNhcmQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRDYXJkQWN0aW9uTGFiZWwoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLnQoJ2NocmlzdGlhbml0eVNlbGVjdENhcmQnKX06ICR7dGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoY2FyZCkubmFtZX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRDYXJkVGVzdElkKGNhcmRJZDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNocmlzdGlhbml0eS1oYW5kLWNhcmQtJHtpbmRleH0tJHt0aGlzLnRlc3RJZFBhcnQoY2FyZElkKX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJhdHRsZUNhcmRUZXN0SWQoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCwgY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LWJhdHRsZS1jYXJkLSR7c2VhdH0tJHt0aGlzLnRlc3RJZFBhcnQoY2FyZC5pbnN0YW5jZUlkKX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJhdHRsZVNsb3RUZXN0SWQoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjaHJpc3RpYW5pdHktYmF0dGxlLXNsb3QtJHtzZWF0fS0ke2luZGV4fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGlzdG9yeUNhcmRUZXN0SWQoY2FyZElkOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LWhpc3RvcnktY2FyZC0ke2luZGV4fS0ke3RoaXMudGVzdElkUGFydChjYXJkSWQpfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdzRHJhd2VyVGVzdElkKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1kcmF3ZXItJHtzZWF0fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdMaXN0VGVzdElkKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3QtJHtzZWF0fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdDYXJkVGVzdElkKG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkLSR7b2ZmZXJpbmcub3duZXJ9LSR7dGhpcy50ZXN0SWRQYXJ0KG9mZmVyaW5nLmluc3RhbmNlSWQpfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdVc2VCdXR0b25UZXN0SWQob2ZmZXJpbmc6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LXVzZS1vZmZlcmluZy0ke29mZmVyaW5nLm93bmVyfS0ke3RoaXMudGVzdElkUGFydChvZmZlcmluZy5pbnN0YW5jZUlkKX1gO1xuICB9XG5cbiAgcHJpdmF0ZSB0ZXN0SWRQYXJ0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05XSsvZywgJy0nKS5yZXBsYWNlKC9eLXwtJC9nLCAnJykuc2xpY2UoMCwgNDgpIHx8ICdpdGVtJztcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5QbGF5U2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkSGFuZENhcmQoKTtcbiAgICByZXR1cm4gISFzZWxlY3RlZCAmJiB0aGlzLmNhblBsYXkodGhpcy5jYXJkRGVmaW5pdGlvbihzZWxlY3RlZCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkQWN0aW9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRDYXJkRGVmaW5pdGlvbigpO1xuICAgIGlmICghc2VsZWN0ZWQpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYXlDYXJkJyk7XG4gICAgaWYgKHNlbGVjdGVkLnR5cGUgPT09ICdvZmZlcmluZycpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYXlPZmZlcmluZycpO1xuICAgIGlmIChzZWxlY3RlZC50eXBlID09PSAnY2hhcmFjdGVyJykgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5UGxheUNoYXJhY3RlcicpO1xuICAgIGlmIChzZWxlY3RlZC50eXBlID09PSAncGxhY2UnKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlQbGF5UGxhY2UnKTtcbiAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlQbGF5Q2FyZCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkQWN0aW9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICByZXR1cm4gIXNlbGVjdGVkIHx8IHNlbGVjdGVkLnR5cGUgPT09ICdvZmZlcmluZycgfHwgIXRoaXMuY2FuUGxheShzZWxlY3RlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuUGxhY2VTZWxlY3RlZENoYXJhY3RlcigpOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRDYXJkRGVmaW5pdGlvbigpO1xuICAgIHJldHVybiAhIXNlbGVjdGVkICYmIHNlbGVjdGVkLnR5cGUgPT09ICdjaGFyYWN0ZXInICYmIHRoaXMuY2FuUGxheShzZWxlY3RlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuUGxhY2VTZWxlY3RlZE9mZmVyaW5nKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZENhcmREZWZpbml0aW9uKCk7XG4gICAgcmV0dXJuICEhc2VsZWN0ZWQgJiYgc2VsZWN0ZWQudHlwZSA9PT0gJ29mZmVyaW5nJyAmJiB0aGlzLmNhblBsYXkoc2VsZWN0ZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhblBsYWNlU2VsZWN0ZWRQbGFjZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRDYXJkRGVmaW5pdGlvbigpO1xuICAgIHJldHVybiAhIXNlbGVjdGVkICYmIHNlbGVjdGVkLnR5cGUgPT09ICdwbGFjZScgJiYgdGhpcy5jYW5QbGF5KHNlbGVjdGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0RyYWdnaW5nQ2hhcmFjdGVyKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNhcmRJZCA9IHRoaXMuZHJhZ2dpbmdDYXJkSWQoKTtcbiAgICBpZiAoIWNhcmRJZCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCk7XG4gICAgcmV0dXJuIGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicgJiYgdGhpcy5jYW5QbGF5KGNhcmQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRHJhZ2dpbmdPZmZlcmluZygpOiBib29sZWFuIHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLmRyYWdnaW5nQ2FyZElkKCk7XG4gICAgaWYgKCFjYXJkSWQpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpO1xuICAgIHJldHVybiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgJiYgdGhpcy5jYW5QbGF5KGNhcmQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRHJhZ2dpbmdQbGFjZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLmRyYWdnaW5nQ2FyZElkKCk7XG4gICAgaWYgKCFjYXJkSWQpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpO1xuICAgIHJldHVybiBjYXJkLnR5cGUgPT09ICdwbGFjZScgJiYgdGhpcy5jYW5QbGF5KGNhcmQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN0YXJ0RHJhZ2dpbmdDYXJkKGNhcmRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KGNhcmRJZCk7XG4gICAgdGhpcy5kcmFnZ2luZ0NhcmRJZC5zZXQoY2FyZElkKTtcbiAgICB0aGlzLmNsb3NlUHJldmlldygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVuZERyYWdnaW5nQ2FyZCgpOiB2b2lkIHtcbiAgICB0aGlzLmRyYWdnaW5nQ2FyZElkLnNldChudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5EcmFnQXR0YWNrZXIoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nYW1lKCkuc3RhdHVzID09PSAnaW5fcHJvZ3Jlc3MnICYmIHRoaXMuaXNPd25UdXJuKCkgJiYgY2FyZC5jYW5BdHRhY2sgJiYgIXRoaXMuY29tYmF0QW5pbWF0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RhcnREcmFnZ2luZ0F0dGFja2VyKGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhbkRyYWdBdHRhY2tlcihjYXJkKSkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQobnVsbCk7XG4gICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KGNhcmQpO1xuICAgIHRoaXMuZHJhZ2dpbmdBdHRhY2tlckluc3RhbmNlSWQuc2V0KGNhcmQuaW5zdGFuY2VJZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW5kRHJhZ2dpbmdBdHRhY2tlcigpOiB2b2lkIHtcbiAgICB0aGlzLmRyYWdnaW5nQXR0YWNrZXJJbnN0YW5jZUlkLnNldChudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkcm9wT25CYXR0bGVTbG90KGV2ZW50OiBDZGtEcmFnRHJvcDxudW1iZXIsIHVua25vd24sIHN0cmluZz4sIHNsb3RJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oZXZlbnQuaXRlbS5kYXRhKTtcbiAgICBpZiAoY2FyZC50eXBlICE9PSAnY2hhcmFjdGVyJykgcmV0dXJuO1xuICAgIHRoaXMucGxheUNhcmRGcm9tSGFuZChldmVudC5pdGVtLmRhdGEsIHNsb3RJbmRleCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZHJvcE9uT2ZmZXJpbmdzKGV2ZW50OiBDZGtEcmFnRHJvcDx1bmtub3duLCB1bmtub3duLCBzdHJpbmc+KTogdm9pZCB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oZXZlbnQuaXRlbS5kYXRhKTtcbiAgICBpZiAoY2FyZC50eXBlICE9PSAnb2ZmZXJpbmcnKSByZXR1cm47XG4gICAgdGhpcy5wbGF5Q2FyZEZyb21IYW5kKGV2ZW50Lml0ZW0uZGF0YSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZHJvcE9uUGxhY2UoZXZlbnQ6IENka0RyYWdEcm9wPHVua25vd24sIHVua25vd24sIHN0cmluZz4pOiB2b2lkIHtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihldmVudC5pdGVtLmRhdGEpO1xuICAgIGlmIChjYXJkLnR5cGUgIT09ICdwbGFjZScpIHJldHVybjtcbiAgICB0aGlzLnBsYXlDYXJkRnJvbUhhbmQoZXZlbnQuaXRlbS5kYXRhKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwbGF5U2VsZWN0ZWRQbGFjZU9ySW5zcGVjdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYW5QbGFjZVNlbGVjdGVkUGxhY2UoKSkge1xuICAgICAgdGhpcy5wbGF5U2VsZWN0ZWRDYXJkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5zcGVjdFBsYWNlWm9uZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3BPbk9wcG9uZW50Q2hhcmFjdGVyKGV2ZW50OiBDZGtEcmFnRHJvcDx1bmtub3duLCB1bmtub3duLCBzdHJpbmc+LCB0YXJnZXQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWRBdHRhY2tlckluc3RhbmNlKGV2ZW50Lml0ZW0uZGF0YSkpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KHRoaXMucGxheWVyKCkuYmF0dGxlWm9uZS5maW5kKGNhcmQgPT4gY2FyZC5pbnN0YW5jZUlkID09PSBldmVudC5pdGVtLmRhdGEpID8/IG51bGwpO1xuICAgIHRoaXMuYXR0YWNrQ2hhcmFjdGVyKHRhcmdldCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZHJvcE9uT3Bwb25lbnRMZWFkZXIoZXZlbnQ6IENka0RyYWdEcm9wPHVua25vd24sIHVua25vd24sIHN0cmluZz4pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZEF0dGFja2VySW5zdGFuY2UoZXZlbnQuaXRlbS5kYXRhKSB8fCB0aGlzLmhhc09wcG9uZW50R3VhcmRzKCkpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KHRoaXMucGxheWVyKCkuYmF0dGxlWm9uZS5maW5kKGNhcmQgPT4gY2FyZC5pbnN0YW5jZUlkID09PSBldmVudC5pdGVtLmRhdGEpID8/IG51bGwpO1xuICAgIHRoaXMuYXR0YWNrTGVhZGVyKCk7XG4gIH1cblxuICBwcml2YXRlIGlzVmFsaWRBdHRhY2tlckluc3RhbmNlKGluc3RhbmNlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdhbWUoKS5zdGF0dXMgPT09ICdpbl9wcm9ncmVzcydcbiAgICAgICYmIHRoaXMuaXNPd25UdXJuKClcbiAgICAgICYmICF0aGlzLmNvbWJhdEFuaW1hdGlvbigpXG4gICAgICAmJiB0aGlzLnBsYXllcigpLmJhdHRsZVpvbmUuc29tZShjYXJkID0+IGNhcmQuaW5zdGFuY2VJZCA9PT0gaW5zdGFuY2VJZCAmJiBjYXJkLmNhbkF0dGFjayk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0SGFuZENhcmQoY2FyZElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB3YXNTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZCgpID09PSBjYXJkSWQ7XG4gICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KHdhc1NlbGVjdGVkID8gbnVsbCA6IGNhcmRJZCk7XG4gICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwbGF5U2VsZWN0ZWRDYXJkKHNsb3RJbmRleD86IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGNhcmRJZCA9IHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZCgpO1xuICAgIGlmICghY2FyZElkKSByZXR1cm47XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICBjb25zdCByZXNvbHZlZFNsb3RJbmRleCA9IGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicgJiYgc2xvdEluZGV4ID09PSB1bmRlZmluZWRcbiAgICAgID8gdGhpcy5maXJzdEF2YWlsYWJsZUJhdHRsZVNsb3RJbmRleCgpXG4gICAgICA6IHNsb3RJbmRleDtcbiAgICB0aGlzLnBsYXlDYXJkRnJvbUhhbmQoY2FyZElkLCByZXNvbHZlZFNsb3RJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIGZpcnN0QXZhaWxhYmxlQmF0dGxlU2xvdEluZGV4KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmJhdHRsZVNsb3RzKCdQMScpLmZpbmRJbmRleChzbG90ID0+ICFzbG90LmNhcmQpO1xuICAgIHJldHVybiBpbmRleCA+PSAwID8gaW5kZXggOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGxheUNhcmRGcm9tSGFuZChjYXJkSWQ6IHN0cmluZywgc2xvdEluZGV4PzogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICBpZiAoIXRoaXMuY2FuUGxheShjYXJkKSkgcmV0dXJuO1xuICAgIGxldCBwbGF5ZWRPZmZlcmluZ1ZhbHVlID0gMDtcbiAgICBsZXQgc3BlbnRPZmZlcmluZ3MgPSAwO1xuXG4gICAgdGhpcy5nYW1lLnVwZGF0ZShnYW1lID0+IHtcbiAgICAgIGNvbnN0IGhpc3RvcnlCZWZvcmUgPSBnYW1lLmhpc3Rvcnlab25lLmxlbmd0aDtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBsYXlDaHJpc3RpYW5pdHlDYXJkRnJvbUhhbmQoZ2FtZSwgJ1AxJywgY2FyZCwge1xuICAgICAgICBzbG90SW5kZXgsXG4gICAgICAgIGRpc3BsYXlOYW1lOiB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKS5uYW1lLFxuICAgICAgfSk7XG4gICAgICBwbGF5ZWRPZmZlcmluZ1ZhbHVlID0gcmVzdWx0LnBsYXllZE9mZmVyaW5nVmFsdWU7XG4gICAgICBzcGVudE9mZmVyaW5ncyA9IHJlc3VsdC5zcGVudE9mZmVyaW5ncztcbiAgICAgIGlmIChyZXN1bHQuZ2FtZS5oaXN0b3J5Wm9uZS5sZW5ndGggPiBoaXN0b3J5QmVmb3JlKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckhpc3RvcnlQdWxzZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdC5nYW1lO1xuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQobnVsbCk7XG4gICAgdGhpcy5kcmFnZ2luZ0NhcmRJZC5zZXQobnVsbCk7XG4gICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgICBpZiAocGxheWVkT2ZmZXJpbmdWYWx1ZSA+IDApIHtcbiAgICAgIHRoaXMucHVzaEltcGFjdEV2ZW50KHsgdGV4dDogYCske3BsYXllZE9mZmVyaW5nVmFsdWV9YCwgdG9uZTogJ3Jlc291cmNlJywgc2VhdDogJ1AxJywgdGFyZ2V0OiAnb2ZmZXJpbmdzJyB9KTtcbiAgICB9IGVsc2UgaWYgKHNwZW50T2ZmZXJpbmdzID4gMCkge1xuICAgICAgdGhpcy5wdXNoSW1wYWN0RXZlbnQoeyB0ZXh0OiBgLSR7c3BlbnRPZmZlcmluZ3N9YCwgdG9uZTogJ3Jlc291cmNlJywgc2VhdDogJ1AxJywgdGFyZ2V0OiAnb2ZmZXJpbmdzJyB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT2ZmZXJpbmdQaWxlKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiB2b2lkIHtcbiAgICBpZiAoc2VhdCA9PT0gJ1AxJyAmJiB0aGlzLmNhblBsYWNlU2VsZWN0ZWRPZmZlcmluZygpKSB7XG4gICAgICB0aGlzLnBsYXlTZWxlY3RlZENhcmQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vcGVuT2ZmZXJpbmdzKHNlYXQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdEF0dGFja2VyKGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICBpZiAodGhpcy5nYW1lKCkuc3RhdHVzICE9PSAnaW5fcHJvZ3Jlc3MnIHx8ICF0aGlzLmlzT3duVHVybigpIHx8ICFjYXJkLmNhbkF0dGFjaykge1xuICAgICAgdGhpcy5pbnNwZWN0Q2hhcmFjdGVyKGNhcmQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNsb3NlUHJldmlldygpO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQodGhpcy5zZWxlY3RlZEF0dGFja2VyKCk/Lmluc3RhbmNlSWQgPT09IGNhcmQuaW5zdGFuY2VJZCA/IG51bGwgOiBjYXJkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPcHBvbmVudENoYXJhY3RlcihjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQXR0YWNrZXIoKSkge1xuICAgICAgdGhpcy5hdHRhY2tDaGFyYWN0ZXIoY2FyZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5zcGVjdENoYXJhY3RlcihjYXJkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPcHBvbmVudExlYWRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEF0dGFja2VyKCkgJiYgIXRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKSkge1xuICAgICAgdGhpcy5hdHRhY2tMZWFkZXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnNwZWN0TGVhZGVyKCdQMicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGF0dGFja0xlYWRlcigpOiB2b2lkIHtcbiAgICBjb25zdCBhdHRhY2tlciA9IHRoaXMuc2VsZWN0ZWRBdHRhY2tlcigpO1xuICAgIGlmICghYXR0YWNrZXIpIHJldHVybjtcbiAgICBpZiAodGhpcy5nYW1lKCkuc3RhdHVzICE9PSAnaW5fcHJvZ3Jlc3MnIHx8IHRoaXMuY29tYmF0QW5pbWF0aW9uKCkpIHJldHVybjtcbiAgICBpZiAodGhpcy5oYXNPcHBvbmVudEd1YXJkcygpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQoe1xuICAgICAgICB0aXRsZTogdGhpcy5vcHBvbmVudCgpLmxlYWRlck5hbWUsXG4gICAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLFxuICAgICAgICBtZXRhOiBgJHt0aGlzLm9wcG9uZW50KCkubGVhZGVySHB9LyR7dGhpcy5vcHBvbmVudCgpLmxlYWRlck1heEhwfWAsXG4gICAgICAgIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyUHJvdGVjdGVkJyksXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdGFydENvbWJhdEFuaW1hdGlvbih7IGF0dGFja2VySW5zdGFuY2VJZDogYXR0YWNrZXIuaW5zdGFuY2VJZCwgYXR0YWNrZXJTZWF0OiAnUDEnLCB0YXJnZXRTZWF0OiAnUDInLCB0YXJnZXQ6ICdsZWFkZXInIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5jb21iYXRSZXNvbHV0aW9uVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBsZXQgZGFtYWdlID0gMDtcbiAgICAgIHRoaXMuZ2FtZS51cGRhdGUoZ2FtZSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc29sdmVBdHRhY2tMZWFkZXIoZ2FtZSwgJ1AxJywgYXR0YWNrZXIuaW5zdGFuY2VJZCwgdGhpcy5ydWxlTWVzc2FnZXMoKSk7XG4gICAgICAgIGRhbWFnZSA9IHJlc3VsdC50YXJnZXREYW1hZ2U7XG4gICAgICAgIHJldHVybiByZXN1bHQuZ2FtZTtcbiAgICAgIH0pO1xuICAgICAgaWYgKGRhbWFnZSA+IDApIHtcbiAgICAgICAgdGhpcy5wdXNoSW1wYWN0RXZlbnQoeyB0ZXh0OiBgLSR7ZGFtYWdlfWAsIHRvbmU6ICdkYW1hZ2UnLCBzZWF0OiAnUDInLCB0YXJnZXQ6ICdsZWFkZXInIH0pO1xuICAgICAgfVxuICAgIH0sIDUyMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXR0YWNrQ2hhcmFjdGVyKHRhcmdldDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiB2b2lkIHtcbiAgICBjb25zdCBhdHRhY2tlciA9IHRoaXMuc2VsZWN0ZWRBdHRhY2tlcigpO1xuICAgIGlmICghYXR0YWNrZXIpIHJldHVybjtcbiAgICBpZiAodGhpcy5nYW1lKCkuc3RhdHVzICE9PSAnaW5fcHJvZ3Jlc3MnIHx8IHRoaXMuY29tYmF0QW5pbWF0aW9uKCkpIHJldHVybjtcbiAgICB0aGlzLnN0YXJ0Q29tYmF0QW5pbWF0aW9uKHtcbiAgICAgIGF0dGFja2VySW5zdGFuY2VJZDogYXR0YWNrZXIuaW5zdGFuY2VJZCxcbiAgICAgIGF0dGFja2VyU2VhdDogJ1AxJyxcbiAgICAgIHRhcmdldEluc3RhbmNlSWQ6IHRhcmdldC5pbnN0YW5jZUlkLFxuICAgICAgdGFyZ2V0U2VhdDogJ1AyJyxcbiAgICAgIHRhcmdldDogJ2NoYXJhY3RlcicsXG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldChudWxsKTtcbiAgICB0aGlzLmNvbWJhdFJlc29sdXRpb25UaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxldCBhdHRhY2tlckRhbWFnZSA9IDA7XG4gICAgICBsZXQgdGFyZ2V0RGFtYWdlID0gMDtcbiAgICAgIHRoaXMuZ2FtZS51cGRhdGUoZ2FtZSA9PiB7XG4gICAgICAgIGNvbnN0IGhpc3RvcnlCZWZvcmUgPSBnYW1lLmhpc3Rvcnlab25lLmxlbmd0aDtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVzb2x2ZUF0dGFja0NoYXJhY3RlcihnYW1lLCAnUDEnLCBhdHRhY2tlci5pbnN0YW5jZUlkLCB0YXJnZXQuaW5zdGFuY2VJZCwgdGhpcy5ydWxlTWVzc2FnZXMoKSk7XG4gICAgICAgIGF0dGFja2VyRGFtYWdlID0gcmVzdWx0LmF0dGFja2VyRGFtYWdlO1xuICAgICAgICB0YXJnZXREYW1hZ2UgPSByZXN1bHQudGFyZ2V0RGFtYWdlO1xuICAgICAgICBpZiAocmVzdWx0LmdhbWUuaGlzdG9yeVpvbmUubGVuZ3RoID4gaGlzdG9yeUJlZm9yZSkge1xuICAgICAgICAgIHRoaXMudHJpZ2dlckhpc3RvcnlQdWxzZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQuZ2FtZTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgaW1wYWN0czogQXJyYXk8T21pdDxDaHJpc3RpYW5pdHlJbXBhY3RFdmVudCwgJ2lkJz4+ID0gW107XG4gICAgICBpZiAodGFyZ2V0RGFtYWdlID4gMCkgaW1wYWN0cy5wdXNoKHsgdGV4dDogYC0ke3RhcmdldERhbWFnZX1gLCB0b25lOiAnZGFtYWdlJywgc2VhdDogJ1AyJywgdGFyZ2V0OiAnYmF0dGxlJyB9KTtcbiAgICAgIGlmIChhdHRhY2tlckRhbWFnZSA+IDApIGltcGFjdHMucHVzaCh7IHRleHQ6IGAtJHthdHRhY2tlckRhbWFnZX1gLCB0b25lOiAnZGFtYWdlJywgc2VhdDogJ1AxJywgdGFyZ2V0OiAnYmF0dGxlJyB9KTtcbiAgICAgIHRoaXMucHVzaEltcGFjdEV2ZW50cyhpbXBhY3RzKTtcbiAgICB9LCA1MjApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVuZFR1cm4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ2FtZSgpLnN0YXR1cyAhPT0gJ2luX3Byb2dyZXNzJykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmNvbWJhdEFuaW1hdGlvbigpKSByZXR1cm47XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5nYW1lLnVwZGF0ZShnYW1lID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBzdHJ1Y3R1cmVkQ2xvbmUoZ2FtZSk7XG4gICAgICBjb25zdCBsb2cgPSBhZHZhbmNlVHVybihuZXh0LCB0aGlzLnJ1bGVNZXNzYWdlcygpKTtcbiAgICAgIG5leHQucmV2aXNpb24rKztcbiAgICAgIG5leHQubG9nID0gWy4uLmxvZywgLi4ubmV4dC5sb2ddLnNsaWNlKDAsIDQpO1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfSk7XG4gICAgdGhpcy5zY2hlZHVsZUJvdFR1cm5JZk5lZWRlZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0TW9jaygpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQm90VHVybigpO1xuICAgIHRoaXMuY2xlYXJDb21iYXRUaW1lcnMoKTtcbiAgICB0aGlzLmNsZWFyTGVhZGVyQ2hvaWNlVGltZXIoKTtcbiAgICB0aGlzLmNvbWJhdEFuaW1hdGlvbi5zZXQobnVsbCk7XG4gICAgdGhpcy5jb21iYXRUcmFpbC5zZXQobnVsbCk7XG4gICAgdGhpcy5nYW1lLnNldCh0aGlzLmNhdGFsb2dMb2FkZWQoKSA/IHRoaXMuY3JlYXRlVHV0b3JpYWxHYW1lKHRoaXMuYWxsQ2F0YWxvZ0NhcmRzKCkpIDogc3RydWN0dXJlZENsb25lKFNUQVJUSU5HX0dBTUUpKTtcbiAgICB0aGlzLnR1dG9yaWFsUGhhc2Uuc2V0KCdjb2luJyk7XG4gICAgdGhpcy50dXRvcmlhbFNldHVwLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkVHV0b3JpYWxMZWFkZXJJZC5zZXQobnVsbCk7XG4gICAgdGhpcy5sZWFkZXJDaG9pY2VTZWNvbmRzLnNldChUVVRPUklBTF9MRUFERVJfQ0hPSUNFX1NFQ09ORFMpO1xuICAgIHRoaXMuc2hvd09wdGlvbnMuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICB0aGlzLnNob3dIaXN0b3J5LnNldChmYWxzZSk7XG4gICAgdGhpcy5zaG93UGxhY2Uuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNob3dHYWxsZXJ5LnNldChmYWxzZSk7XG4gICAgdGhpcy5vZmZlcmluZ3NTZWF0LnNldChudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydFR1dG9yaWFsKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJCb3RUdXJuKCk7XG4gICAgdGhpcy5jbGVhckNvbWJhdFRpbWVycygpO1xuICAgIHRoaXMuY2xlYXJMZWFkZXJDaG9pY2VUaW1lcigpO1xuICAgIHRoaXMucmVzZXRUcmFuc2llbnRUYWJsZVN0YXRlKCk7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLmNyZWF0ZVR1dG9yaWFsU2V0dXAoKTtcbiAgICB0aGlzLnR1dG9yaWFsU2V0dXAuc2V0KHNldHVwKTtcbiAgICB0aGlzLnNlbGVjdGVkVHV0b3JpYWxMZWFkZXJJZC5zZXQoc2V0dXAubGVhZGVyUGlja2VyID09PSAnUDEnID8gc2V0dXAuYXZhaWxhYmxlTGVhZGVyc1swXSA/PyBudWxsIDogbnVsbCk7XG4gICAgdGhpcy5sZWFkZXJDaG9pY2VTZWNvbmRzLnNldChUVVRPUklBTF9MRUFERVJfQ0hPSUNFX1NFQ09ORFMpO1xuICAgIHRoaXMudHV0b3JpYWxQaGFzZS5zZXQoJ2NvaW4nKTtcbiAgICB0aGlzLnNjcmVlbi5zZXQoJ3RhYmxlJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29udGludWVBZnRlckNvaW4oKTogdm9pZCB7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLnR1dG9yaWFsU2V0dXAoKTtcbiAgICBpZiAoIXNldHVwKSByZXR1cm47XG4gICAgaWYgKHRoaXMudHV0b3JpYWxQaGFzZSgpID09PSAnY29pbicpIHtcbiAgICAgIHRoaXMudHV0b3JpYWxQaGFzZS5zZXQoJ2xlYWRlcl9waWNrJyk7XG4gICAgICBpZiAoc2V0dXAuYXZhaWxhYmxlTGVhZGVycy5sZW5ndGggPCAyKSB7XG4gICAgICAgIHRoaXMuc3RhcnRUdXRvcmlhbE1hdGNoKHNldHVwKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHNldHVwLmxlYWRlclBpY2tlciA9PT0gJ1AyJykge1xuICAgICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmNob29zZVJpdmFsVHV0b3JpYWxMZWFkZXIoKSwgNTIwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUdXRvcmlhbExlYWRlcklkLnNldCh0aGlzLnNlbGVjdGVkVHV0b3JpYWxMZWFkZXJJZCgpID8/IHNldHVwLmF2YWlsYWJsZUxlYWRlcnNbMF0gPz8gbnVsbCk7XG4gICAgICAgIHRoaXMuc3RhcnRMZWFkZXJDaG9pY2VUaW1lcigpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy50dXRvcmlhbFBoYXNlKCkgPT09ICdsZWFkZXJfcGljaycgJiYgc2V0dXAubGVhZGVyUGlja2VyID09PSAnUDInKSB7XG4gICAgICB0aGlzLmNob29zZVJpdmFsVHV0b3JpYWxMZWFkZXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMudHV0b3JpYWxQaGFzZSgpID09PSAnbGVhZGVyX3BpY2snICYmIHNldHVwLmF2YWlsYWJsZUxlYWRlcnMubGVuZ3RoIDwgMikge1xuICAgICAgdGhpcy5zdGFydFR1dG9yaWFsTWF0Y2goc2V0dXApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjaG9vc2VUdXRvcmlhbExlYWRlcihsZWFkZXJJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLnR1dG9yaWFsU2V0dXAoKTtcbiAgICBpZiAoIXNldHVwIHx8IHNldHVwLmxlYWRlclBpY2tlciAhPT0gJ1AxJykgcmV0dXJuO1xuICAgIHRoaXMuY2xlYXJMZWFkZXJDaG9pY2VUaW1lcigpO1xuICAgIGNvbnN0IG9wcG9uZW50TGVhZGVySWQgPSBzZXR1cC5hdmFpbGFibGVMZWFkZXJzLmZpbmQoY2FuZGlkYXRlID0+IGNhbmRpZGF0ZSAhPT0gbGVhZGVySWQpID8/IHNldHVwLmF2YWlsYWJsZUxlYWRlcnNbMF07XG4gICAgdGhpcy5zdGFydFR1dG9yaWFsTWF0Y2goe1xuICAgICAgLi4uc2V0dXAsXG4gICAgICBwbGF5ZXJMZWFkZXJJZDogbGVhZGVySWQsXG4gICAgICBvcHBvbmVudExlYWRlcklkLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdFR1dG9yaWFsTGVhZGVyKGxlYWRlcklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBzZXR1cCA9IHRoaXMudHV0b3JpYWxTZXR1cCgpO1xuICAgIGlmICghc2V0dXAgfHwgc2V0dXAubGVhZGVyUGlja2VyICE9PSAnUDEnIHx8ICFzZXR1cC5hdmFpbGFibGVMZWFkZXJzLmluY2x1ZGVzKGxlYWRlcklkKSkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWRUdXRvcmlhbExlYWRlcklkLnNldChsZWFkZXJJZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlybVR1dG9yaWFsTGVhZGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IHNldHVwID0gdGhpcy50dXRvcmlhbFNldHVwKCk7XG4gICAgaWYgKCFzZXR1cCB8fCBzZXR1cC5sZWFkZXJQaWNrZXIgIT09ICdQMScpIHJldHVybjtcbiAgICB0aGlzLmNob29zZVR1dG9yaWFsTGVhZGVyKHRoaXMuc2VsZWN0ZWRUdXRvcmlhbExlYWRlcklkKCkgPz8gc2V0dXAuYXZhaWxhYmxlTGVhZGVyc1swXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdExlYWRlckNob2ljZShsZWFkZXJJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLnR1dG9yaWFsU2V0dXAoKTtcbiAgICBpZiAoIXNldHVwPy5hdmFpbGFibGVMZWFkZXJzLmluY2x1ZGVzKGxlYWRlcklkKSkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0VHV0b3JpYWxMZWFkZXIobGVhZGVySWQpO1xuICAgIHRoaXMuaW5zcGVjdEhhbmRDYXJkKGxlYWRlcklkKTtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy51cGRhdGUocHJldmlldyA9PiBwcmV2aWV3ID8geyAuLi5wcmV2aWV3LCBzb3VyY2U6ICdsZWFkZXItY2hvaWNlJyB9IDogcHJldmlldyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlT3B0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dPcHRpb25zLnVwZGF0ZSh2YWx1ZSA9PiAhdmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc3RhcnRUdXRvcmlhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0VHV0b3JpYWwoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNpZ25UdXRvcmlhbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5nYW1lKCkuc3RhdHVzID09PSAnZmluaXNoZWQnKSByZXR1cm47XG4gICAgdGhpcy5jbGVhckJvdFR1cm4oKTtcbiAgICB0aGlzLmNsZWFyQ29tYmF0VGltZXJzKCk7XG4gICAgdGhpcy5jbGVhckxlYWRlckNob2ljZVRpbWVyKCk7XG4gICAgdGhpcy50dXRvcmlhbFBoYXNlLnNldCgnZmluaXNoZWQnKTtcbiAgICB0aGlzLnNob3dPcHRpb25zLnNldChmYWxzZSk7XG4gICAgdGhpcy5nYW1lLnVwZGF0ZShnYW1lID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBzdHJ1Y3R1cmVkQ2xvbmUoZ2FtZSk7XG4gICAgICBuZXh0LnN0YXR1cyA9ICdmaW5pc2hlZCc7XG4gICAgICBuZXh0LnBsYXllcnMuUDEubGVhZGVySHAgPSAwO1xuICAgICAgbmV4dC5tYXRjaFNjb3JlLlAyICs9IDE7XG4gICAgICBuZXh0LnJldmlzaW9uKys7XG4gICAgICBuZXh0LmxvZyA9IFt0aGlzLnQoJ2NocmlzdGlhbml0eVJlc2lnbmVkTG9nJyksIC4uLm5leHQubG9nXS5zbGljZSgwLCA0KTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJldHVyblRvQ2hyaXN0aWFuaXR5SG9tZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQm90VHVybigpO1xuICAgIHRoaXMuY2xlYXJDb21iYXRUaW1lcnMoKTtcbiAgICB0aGlzLmNsZWFyTGVhZGVyQ2hvaWNlVGltZXIoKTtcbiAgICB0aGlzLnJlc2V0VHJhbnNpZW50VGFibGVTdGF0ZSgpO1xuICAgIHRoaXMuc2hvd09wdGlvbnMuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNjcmVlbi5zZXQoJ2hvbWUnKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRMZWFkZXJDaG9pY2VUaW1lcigpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyTGVhZGVyQ2hvaWNlVGltZXIoKTtcbiAgICB0aGlzLmxlYWRlckNob2ljZVNlY29uZHMuc2V0KFRVVE9SSUFMX0xFQURFUl9DSE9JQ0VfU0VDT05EUyk7XG4gICAgdGhpcy5sZWFkZXJDaG9pY2VUaW1lciA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBjb25zdCBuZXh0U2Vjb25kcyA9IE1hdGgubWF4KDAsIHRoaXMubGVhZGVyQ2hvaWNlU2Vjb25kcygpIC0gMSk7XG4gICAgICB0aGlzLmxlYWRlckNob2ljZVNlY29uZHMuc2V0KG5leHRTZWNvbmRzKTtcbiAgICAgIGlmIChuZXh0U2Vjb25kcyA+IDApIHJldHVybjtcbiAgICAgIHRoaXMuY2xlYXJMZWFkZXJDaG9pY2VUaW1lcigpO1xuICAgICAgdGhpcy5jb25maXJtVHV0b3JpYWxMZWFkZXIoKTtcbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJMZWFkZXJDaG9pY2VUaW1lcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sZWFkZXJDaG9pY2VUaW1lciA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5sZWFkZXJDaG9pY2VUaW1lcik7XG4gICAgdGhpcy5sZWFkZXJDaG9pY2VUaW1lciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVHV0b3JpYWxTZXR1cCgpOiBDaHJpc3RpYW5pdHlUdXRvcmlhbFNldHVwIHtcbiAgICBjb25zdCBsZWFkZXJzID0gdGhpcy50dXRvcmlhbExlYWRlckNhcmRzKHRoaXMuYWxsQ2F0YWxvZ0NhcmRzKCkpLnNsaWNlKDAsIFRVVE9SSUFMX0xFQURFUl9DSE9JQ0VfQ09VTlQpO1xuICAgIGNvbnN0IGNvaW5XaW5uZXI6IENocmlzdGlhbml0eVNlYXQgPSBUVVRPUklBTF9TRUVEICUgMiA9PT0gMCA/ICdQMScgOiAnUDInO1xuICAgIGNvbnN0IGZpcnN0UGxheWVyOiBDaHJpc3RpYW5pdHlTZWF0ID0gY29pbldpbm5lciA9PT0gJ1AxJyA/ICdQMicgOiAnUDEnO1xuICAgIHJldHVybiB7XG4gICAgICBjb2luV2lubmVyLFxuICAgICAgbGVhZGVyUGlja2VyOiBjb2luV2lubmVyLFxuICAgICAgZmlyc3RQbGF5ZXIsXG4gICAgICBhdmFpbGFibGVMZWFkZXJzOiBsZWFkZXJzLm1hcChjYXJkID0+IGNhcmQuaWQpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNob29zZVJpdmFsVHV0b3JpYWxMZWFkZXIoKTogdm9pZCB7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLnR1dG9yaWFsU2V0dXAoKTtcbiAgICBpZiAoIXNldHVwIHx8IHNldHVwLmxlYWRlclBpY2tlciAhPT0gJ1AyJykgcmV0dXJuO1xuICAgIHRoaXMuY2xlYXJMZWFkZXJDaG9pY2VUaW1lcigpO1xuICAgIGNvbnN0IG9wcG9uZW50TGVhZGVySWQgPSB0aGlzLmZpbmRDYXJkKHNldHVwLmF2YWlsYWJsZUxlYWRlcnMubWFwKGlkID0+IHRoaXMuY2FyZERlZmluaXRpb24oaWQpKSwgJ05vw6knKT8uaWQgPz8gc2V0dXAuYXZhaWxhYmxlTGVhZGVyc1swXTtcbiAgICBjb25zdCBwbGF5ZXJMZWFkZXJJZCA9IHNldHVwLmF2YWlsYWJsZUxlYWRlcnMuZmluZChjYW5kaWRhdGUgPT4gY2FuZGlkYXRlICE9PSBvcHBvbmVudExlYWRlcklkKSA/PyBzZXR1cC5hdmFpbGFibGVMZWFkZXJzWzBdO1xuICAgIHRoaXMuc3RhcnRUdXRvcmlhbE1hdGNoKHtcbiAgICAgIC4uLnNldHVwLFxuICAgICAgcGxheWVyTGVhZGVySWQsXG4gICAgICBvcHBvbmVudExlYWRlcklkLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFR1dG9yaWFsTWF0Y2goc2V0dXA6IENocmlzdGlhbml0eVR1dG9yaWFsU2V0dXApOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyTGVhZGVyQ2hvaWNlVGltZXIoKTtcbiAgICB0aGlzLnJlc2V0VHJhbnNpZW50VGFibGVTdGF0ZSgpO1xuICAgIHRoaXMudHV0b3JpYWxTZXR1cC5zZXQoc2V0dXApO1xuICAgIHRoaXMudHV0b3JpYWxQaGFzZS5zZXQoJ2luX3Byb2dyZXNzJyk7XG4gICAgdGhpcy5nYW1lLnNldCh0aGlzLmNyZWF0ZVR1dG9yaWFsR2FtZSh0aGlzLmFsbENhdGFsb2dDYXJkcygpLCB7XG4gICAgICBwbGF5ZXJMZWFkZXJJZDogc2V0dXAucGxheWVyTGVhZGVySWQsXG4gICAgICBvcHBvbmVudExlYWRlcklkOiBzZXR1cC5vcHBvbmVudExlYWRlcklkLFxuICAgICAgZmlyc3RQbGF5ZXI6IHNldHVwLmZpcnN0UGxheWVyLFxuICAgICAgc2VlZDogVFVUT1JJQUxfU0VFRCxcbiAgICB9KSk7XG4gICAgdGhpcy5zY2hlZHVsZUJvdFR1cm5JZk5lZWRlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFRyYW5zaWVudFRhYmxlU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5zaG93SGlzdG9yeS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd0dhbGxlcnkuc2V0KGZhbHNlKTtcbiAgICB0aGlzLm9mZmVyaW5nc1NlYXQuc2V0KG51bGwpO1xuICAgIHRoaXMuaW1wYWN0RXZlbnRzLnNldChbXSk7XG4gICAgdGhpcy5jb21iYXRBbmltYXRpb24uc2V0KG51bGwpO1xuICAgIHRoaXMuY29tYmF0VHJhaWwuc2V0KG51bGwpO1xuICAgIHRoaXMuZHJhZ2dpbmdDYXJkSWQuc2V0KG51bGwpO1xuICAgIHRoaXMuZHJhZ2dpbmdBdHRhY2tlckluc3RhbmNlSWQuc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlUHJldmlldygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXguc2V0KDApO1xuICAgIHRoaXMucmVzZXRQcmV2aWV3VGlsdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlSW5mbygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3Blbk9mZmVyaW5ncyhzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICB0aGlzLnNob3dIaXN0b3J5LnNldChmYWxzZSk7XG4gICAgdGhpcy5zaG93UGxhY2Uuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNob3dHYWxsZXJ5LnNldChmYWxzZSk7XG4gICAgdGhpcy5vZmZlcmluZ3NTZWF0LnNldChzZWF0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvcGVuSGlzdG9yeSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KG51bGwpO1xuICAgIHRoaXMub2ZmZXJpbmdzU2VhdC5zZXQobnVsbCk7XG4gICAgdGhpcy5zaG93UGxhY2Uuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNob3dHYWxsZXJ5LnNldChmYWxzZSk7XG4gICAgdGhpcy5zaG93SGlzdG9yeS5zZXQodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3BlblBsYWNlKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5vZmZlcmluZ3NTZWF0LnNldChudWxsKTtcbiAgICB0aGlzLnNob3dIaXN0b3J5LnNldChmYWxzZSk7XG4gICAgdGhpcy5zaG93R2FsbGVyeS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd1BsYWNlLnNldCh0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZUhpc3RvcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93SGlzdG9yeS5zZXQoZmFsc2UpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUHJldmlldygpPy5zb3VyY2UgPT09ICdoaXN0b3J5Jykge1xuICAgICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xvc2VQbGFjZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dQbGFjZS5zZXQoZmFsc2UpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUHJldmlldygpPy5zb3VyY2UgPT09ICdwbGFjZScpIHtcbiAgICAgIHRoaXMuY2xvc2VQcmV2aWV3KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlT2ZmZXJpbmdzKCk6IHZvaWQge1xuICAgIHRoaXMub2ZmZXJpbmdzU2VhdC5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3BlbkdhbGxlcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICB0aGlzLm9mZmVyaW5nc1NlYXQuc2V0KG51bGwpO1xuICAgIHRoaXMuc2hvd0hpc3Rvcnkuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNob3dQbGFjZS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd0dhbGxlcnkuc2V0KHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlR2FsbGVyeSgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dHYWxsZXJ5LnNldChmYWxzZSk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk/LnNvdXJjZSA9PT0gJ2dhbGxlcnknKSB7XG4gICAgICB0aGlzLmNsb3NlUHJldmlldygpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBuYXZpZ2F0ZVByZXZpZXcoZGlyZWN0aW9uOiAtMSB8IDEpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMucHJldmlld0Nhcm91c2VsSXRlbXMoKTtcbiAgICBpZiAoaXRlbXMubGVuZ3RoIDwgMikgcmV0dXJuO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuY3VycmVudFByZXZpZXdDYXJvdXNlbEluZGV4KGl0ZW1zKTtcbiAgICBpZiAoY3VycmVudEluZGV4IDwgMCkgcmV0dXJuO1xuICAgIGNvbnN0IG5leHRJbmRleCA9IChjdXJyZW50SW5kZXggKyBkaXJlY3Rpb24gKyBpdGVtcy5sZW5ndGgpICUgaXRlbXMubGVuZ3RoO1xuICAgIGNvbnN0IG5leHRJdGVtID0gaXRlbXNbbmV4dEluZGV4XTtcbiAgICB0aGlzLnByZXZpZXdTbGlkZURpcmVjdGlvbi5zZXQoZGlyZWN0aW9uKTtcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLnByZXZpZXdTbGlkZURpcmVjdGlvbi5zZXQoMCksIDM2MCk7XG4gICAgaWYgKG5leHRJdGVtLmtpbmQgPT09ICdoaXN0b3J5Jykge1xuICAgICAgdGhpcy5pbnNwZWN0SGlzdG9yeUNhcmQobmV4dEl0ZW0uY2FyZElkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG5leHRJdGVtLmtpbmQgPT09ICdoYW5kJykge1xuICAgICAgdGhpcy5pbnNwZWN0SGFuZENhcmQobmV4dEl0ZW0uY2FyZElkLCB0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG5leHRJdGVtLmtpbmQgPT09ICdwbGFjZScpIHtcbiAgICAgIHRoaXMuaW5zcGVjdFBsYWNlQ2FyZChuZXh0SXRlbS5jYXJkSWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAobmV4dEl0ZW0ua2luZCA9PT0gJ2dhbGxlcnknKSB7XG4gICAgICB0aGlzLmluc3BlY3RHYWxsZXJ5Q2FyZChuZXh0SXRlbS5jYXJkSWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAobmV4dEl0ZW0ua2luZCA9PT0gJ2xlYWRlci1jaG9pY2UnKSB7XG4gICAgICB0aGlzLmluc3BlY3RMZWFkZXJDaG9pY2UobmV4dEl0ZW0uY2FyZElkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnNwZWN0T2ZmZXJpbmcobmV4dEl0ZW0ub2ZmZXJpbmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBjdXJyZW50UHJldmlld0Nhcm91c2VsSXRlbXMoKTogQXJyYXk8XG4gICAgeyBraW5kOiAnaGlzdG9yeSc7IGNhcmRJZDogc3RyaW5nIH1cbiAgICB8IHsga2luZDogJ2hhbmQnOyBjYXJkSWQ6IHN0cmluZyB9XG4gICAgfCB7IGtpbmQ6ICdwbGFjZSc7IGNhcmRJZDogc3RyaW5nIH1cbiAgICB8IHsga2luZDogJ29mZmVyaW5nJzsgb2ZmZXJpbmc6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UgfVxuICAgIHwgeyBraW5kOiAnZ2FsbGVyeSc7IGNhcmRJZDogc3RyaW5nIH1cbiAgICB8IHsga2luZDogJ2xlYWRlci1jaG9pY2UnOyBjYXJkSWQ6IHN0cmluZyB9XG4gID4ge1xuICAgIGNvbnN0IHByZXZpZXcgPSB0aGlzLnNlbGVjdGVkUHJldmlldygpO1xuICAgIGlmICghcHJldmlldykgcmV0dXJuIFtdO1xuICAgIGlmIChwcmV2aWV3LnNvdXJjZSA9PT0gJ2hpc3RvcnknICYmIHRoaXMuc2hvd0hpc3RvcnkoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2FtZSgpLmhpc3Rvcnlab25lLm1hcChjYXJkSWQgPT4gKHsga2luZDogJ2hpc3RvcnknLCBjYXJkSWQgfSkpO1xuICAgIH1cbiAgICBpZiAocHJldmlldy5zb3VyY2UgPT09ICdoYW5kJykge1xuICAgICAgcmV0dXJuICh0aGlzLnBsYXllcigpLmhhbmQgPz8gW10pLm1hcChjYXJkSWQgPT4gKHsga2luZDogJ2hhbmQnIGFzIGNvbnN0LCBjYXJkSWQgfSkpO1xuICAgIH1cbiAgICBpZiAocHJldmlldy5zb3VyY2UgPT09ICdwbGFjZScgJiYgdGhpcy5zaG93UGxhY2UoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2FtZSgpLnBsYWNlWm9uZS5tYXAoY2FyZElkID0+ICh7IGtpbmQ6ICdwbGFjZScgYXMgY29uc3QsIGNhcmRJZCB9KSk7XG4gICAgfVxuICAgIGlmIChwcmV2aWV3LnNvdXJjZSA9PT0gJ29mZmVyaW5ncycgJiYgcHJldmlldy5zZWF0KSB7XG4gICAgICByZXR1cm4gdGhpcy5nYW1lKCkucGxheWVyc1twcmV2aWV3LnNlYXRdLm9mZmVyaW5ncy5tYXAob2ZmZXJpbmcgPT4gKHsga2luZDogJ29mZmVyaW5nJywgb2ZmZXJpbmcgfSkpO1xuICAgIH1cbiAgICBpZiAocHJldmlldy5zb3VyY2UgPT09ICdnYWxsZXJ5JyAmJiB0aGlzLnNob3dHYWxsZXJ5KCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdhbGxlcnlDYXJkcygpLm1hcChjYXJkID0+ICh7IGtpbmQ6ICdnYWxsZXJ5JyBhcyBjb25zdCwgY2FyZElkOiBjYXJkLmlkIH0pKTtcbiAgICB9XG4gICAgaWYgKHByZXZpZXcuc291cmNlID09PSAnbGVhZGVyLWNob2ljZScpIHtcbiAgICAgIHJldHVybiB0aGlzLnR1dG9yaWFsU2V0dXAoKT8uYXZhaWxhYmxlTGVhZGVycy5tYXAoY2FyZElkID0+ICh7IGtpbmQ6ICdsZWFkZXItY2hvaWNlJyBhcyBjb25zdCwgY2FyZElkIH0pKSA/PyBbXTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBjdXJyZW50UHJldmlld0Nhcm91c2VsSW5kZXgoXG4gICAgaXRlbXM6IEFycmF5PFxuICAgICAgeyBraW5kOiAnaGlzdG9yeSc7IGNhcmRJZDogc3RyaW5nIH1cbiAgICAgIHwgeyBraW5kOiAnaGFuZCc7IGNhcmRJZDogc3RyaW5nIH1cbiAgICAgIHwgeyBraW5kOiAncGxhY2UnOyBjYXJkSWQ6IHN0cmluZyB9XG4gICAgICB8IHsga2luZDogJ29mZmVyaW5nJzsgb2ZmZXJpbmc6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UgfVxuICAgICAgfCB7IGtpbmQ6ICdnYWxsZXJ5JzsgY2FyZElkOiBzdHJpbmcgfVxuICAgICAgfCB7IGtpbmQ6ICdsZWFkZXItY2hvaWNlJzsgY2FyZElkOiBzdHJpbmcgfVxuICAgID4sXG4gICk6IG51bWJlciB7XG4gICAgY29uc3QgcHJldmlldyA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk7XG4gICAgaWYgKCFwcmV2aWV3KSByZXR1cm4gLTE7XG4gICAgaWYgKHByZXZpZXcuc291cmNlID09PSAnaGlzdG9yeScpIHtcbiAgICAgIHJldHVybiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmtpbmQgPT09ICdoaXN0b3J5JyAmJiBpdGVtLmNhcmRJZCA9PT0gcHJldmlldy5jYXJkSWQpO1xuICAgIH1cbiAgICBpZiAocHJldmlldy5zb3VyY2UgPT09ICdoYW5kJykge1xuICAgICAgcmV0dXJuIGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0ua2luZCA9PT0gJ2hhbmQnICYmIGl0ZW0uY2FyZElkID09PSBwcmV2aWV3LmNhcmRJZCk7XG4gICAgfVxuICAgIGlmIChwcmV2aWV3LnNvdXJjZSA9PT0gJ3BsYWNlJykge1xuICAgICAgcmV0dXJuIGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0ua2luZCA9PT0gJ3BsYWNlJyAmJiBpdGVtLmNhcmRJZCA9PT0gcHJldmlldy5jYXJkSWQpO1xuICAgIH1cbiAgICBpZiAocHJldmlldy5zb3VyY2UgPT09ICdvZmZlcmluZ3MnKSB7XG4gICAgICByZXR1cm4gaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5raW5kID09PSAnb2ZmZXJpbmcnICYmIGl0ZW0ub2ZmZXJpbmcuaW5zdGFuY2VJZCA9PT0gcHJldmlldy5vZmZlcmluZ0luc3RhbmNlSWQpO1xuICAgIH1cbiAgICBpZiAocHJldmlldy5zb3VyY2UgPT09ICdnYWxsZXJ5Jykge1xuICAgICAgcmV0dXJuIGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0ua2luZCA9PT0gJ2dhbGxlcnknICYmIGl0ZW0uY2FyZElkID09PSBwcmV2aWV3LmNhcmRJZCk7XG4gICAgfVxuICAgIGlmIChwcmV2aWV3LnNvdXJjZSA9PT0gJ2xlYWRlci1jaG9pY2UnKSB7XG4gICAgICByZXR1cm4gaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5raW5kID09PSAnbGVhZGVyLWNob2ljZScgJiYgaXRlbS5jYXJkSWQgPT09IHByZXZpZXcuY2FyZElkKTtcbiAgICB9XG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldEdhbGxlcnlTZWFyY2goZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5nYWxsZXJ5U2VhcmNoLnNldCgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRHYWxsZXJ5VHlwZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmdhbGxlcnlUeXBlLnNldCgoZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50KS52YWx1ZSBhcyBDaHJpc3RpYW5pdHlHYWxsZXJ5VHlwZUZpbHRlcik7XG4gIH1cblxuICBwcm90ZWN0ZWQgdGlsdFByZXZpZXcoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGJvdW5kcyA9IChldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB4ID0gKGV2ZW50LmNsaWVudFggLSBib3VuZHMubGVmdCkgLyBib3VuZHMud2lkdGggLSAwLjU7XG4gICAgY29uc3QgeSA9IChldmVudC5jbGllbnRZIC0gYm91bmRzLnRvcCkgLyBib3VuZHMuaGVpZ2h0IC0gMC41O1xuICAgIHRoaXMucHJldmlld1RpbHQuc2V0KHtcbiAgICAgIHJvdGF0ZVg6IC15ICogNyxcbiAgICAgIHJvdGF0ZVk6IHggKiA3LFxuICAgICAgc2hpZnRYOiB4ICogNCxcbiAgICAgIHNoaWZ0WTogeSAqIDQsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVzZXRQcmV2aWV3VGlsdCgpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZpZXdUaWx0LnNldChDSFJJU1RJQU5JVFlfUFJFVklFV19ORVVUUkFMX1RJTFQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGltcGFjdFBvcFByb3BzKGltcGFjdDogQ2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQpOiBNaW5pR2FtZVNjb3JlUG9wTWV0YWRhdGEge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5pbXBhY3RQb3NpdGlvbihpbXBhY3QpO1xuICAgIHJldHVybiB7XG4gICAgICBzY29yZTogaW1wYWN0LnRleHQsXG4gICAgICBsYWJlbDogdGhpcy5pbXBhY3RMYWJlbChpbXBhY3QpLFxuICAgICAgeDogcG9zaXRpb24ueCxcbiAgICAgIHk6IHBvc2l0aW9uLnksXG4gICAgICB0b25lUmdiOiB0aGlzLmltcGFjdFRvbmVSZ2IoaW1wYWN0KSxcbiAgICAgIGR1cmF0aW9uTXM6IDExMjAsXG4gICAgICB2YXJpYW50OiBpbXBhY3QudG9uZSA9PT0gJ2RhbWFnZScgPyAncGVuYWx0eScgOiAnYm9udXMnLFxuICAgICAgYXJpYUxpdmU6ICdwb2xpdGUnLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGltcGFjdFBvc2l0aW9uKGltcGFjdDogQ2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQpOiB7IHg6IHN0cmluZzsgeTogc3RyaW5nIH0ge1xuICAgIGlmIChpbXBhY3Quc2VhdCA9PT0gJ1AyJyAmJiBpbXBhY3QudGFyZ2V0ID09PSAnbGVhZGVyJykgcmV0dXJuIHsgeDogJzUwJScsIHk6ICcxMCUnIH07XG4gICAgaWYgKGltcGFjdC5zZWF0ID09PSAnUDInICYmIGltcGFjdC50YXJnZXQgPT09ICdiYXR0bGUnKSByZXR1cm4geyB4OiAnNTAlJywgeTogJzI3JScgfTtcbiAgICBpZiAoaW1wYWN0LnNlYXQgPT09ICdQMicgJiYgaW1wYWN0LnRhcmdldCA9PT0gJ29mZmVyaW5ncycpIHJldHVybiB7IHg6ICcxMSUnLCB5OiAnOCUnIH07XG4gICAgaWYgKGltcGFjdC5zZWF0ID09PSAnUDEnICYmIGltcGFjdC50YXJnZXQgPT09ICdiYXR0bGUnKSByZXR1cm4geyB4OiAnNTAlJywgeTogJzY3JScgfTtcbiAgICBpZiAoaW1wYWN0LnNlYXQgPT09ICdQMScgJiYgaW1wYWN0LnRhcmdldCA9PT0gJ2xlYWRlcicpIHJldHVybiB7IHg6ICc1MCUnLCB5OiAnODQlJyB9O1xuICAgIGlmIChpbXBhY3Quc2VhdCA9PT0gJ1AxJyAmJiBpbXBhY3QudGFyZ2V0ID09PSAnb2ZmZXJpbmdzJykgcmV0dXJuIHsgeDogJzEwJScsIHk6ICc4NCUnIH07XG4gICAgcmV0dXJuIHsgeDogJzUwJScsIHk6ICc1MCUnIH07XG4gIH1cblxuICBwcml2YXRlIGltcGFjdExhYmVsKGltcGFjdDogQ2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQpOiBzdHJpbmcge1xuICAgIGlmIChpbXBhY3QudG9uZSA9PT0gJ3Jlc291cmNlJykgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdzJyk7XG4gICAgaWYgKGltcGFjdC50b25lID09PSAnaGVhbCcpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKTtcbiAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlEYW1hZ2UnKTtcbiAgfVxuXG4gIHByaXZhdGUgaW1wYWN0VG9uZVJnYihpbXBhY3Q6IENocmlzdGlhbml0eUltcGFjdEV2ZW50KTogc3RyaW5nIHtcbiAgICBpZiAoaW1wYWN0LnRvbmUgPT09ICdkYW1hZ2UnKSByZXR1cm4gJzIyMCwgMzgsIDM4JztcbiAgICBpZiAoaW1wYWN0LnRvbmUgPT09ICdoZWFsJykgcmV0dXJuICcyMiwgMTYzLCA3NCc7XG4gICAgcmV0dXJuICczNywgOTksIDIzNSc7XG4gIH1cblxuICBwcml2YXRlIHB1c2hJbXBhY3RFdmVudChldmVudDogT21pdDxDaHJpc3RpYW5pdHlJbXBhY3RFdmVudCwgJ2lkJz4pOiB2b2lkIHtcbiAgICBjb25zdCBpZCA9ICsrdGhpcy5pbXBhY3RFdmVudFNlcXVlbmNlO1xuICAgIHRoaXMuaW1wYWN0RXZlbnRzLnVwZGF0ZShldmVudHMgPT4gWy4uLmV2ZW50cywgeyAuLi5ldmVudCwgaWQgfV0uc2xpY2UoLTYpKTtcbiAgICBjb25zdCB0aW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaW1wYWN0VGltZXJzLmRlbGV0ZSh0aW1lcik7XG4gICAgICB0aGlzLmltcGFjdEV2ZW50cy51cGRhdGUoZXZlbnRzID0+IGV2ZW50cy5maWx0ZXIoaW1wYWN0ID0+IGltcGFjdC5pZCAhPT0gaWQpKTtcbiAgICB9LCAxMTIwKTtcbiAgICB0aGlzLmltcGFjdFRpbWVycy5hZGQodGltZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBwdXNoSW1wYWN0RXZlbnRzKGV2ZW50czogQXJyYXk8T21pdDxDaHJpc3RpYW5pdHlJbXBhY3RFdmVudCwgJ2lkJz4+KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMpIHtcbiAgICAgIHRoaXMucHVzaEltcGFjdEV2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbWJhdEFuaW1hdGlvbkF0dGFja2VyKGFuaW1hdGlvbjogQ2hyaXN0aWFuaXR5Q29tYmF0QW5pbWF0aW9uKTogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5nYW1lKCkucGxheWVyc1thbmltYXRpb24uYXR0YWNrZXJTZWF0XS5iYXR0bGVab25lLmZpbmQoY2FyZCA9PiBjYXJkLmluc3RhbmNlSWQgPT09IGFuaW1hdGlvbi5hdHRhY2tlckluc3RhbmNlSWQpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGNvbWJhdEFuaW1hdGlvblRhcmdldExhYmVsKGFuaW1hdGlvbjogQ2hyaXN0aWFuaXR5Q29tYmF0QW5pbWF0aW9uKTogc3RyaW5nIHtcbiAgICBpZiAoYW5pbWF0aW9uLnRhcmdldCA9PT0gJ2xlYWRlcicpIHtcbiAgICAgIHJldHVybiB0aGlzLmdhbWUoKS5wbGF5ZXJzW2FuaW1hdGlvbi50YXJnZXRTZWF0XS5sZWFkZXJOYW1lO1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmdhbWUoKS5wbGF5ZXJzW2FuaW1hdGlvbi50YXJnZXRTZWF0XS5iYXR0bGVab25lLmZpbmQoY2FyZCA9PiBjYXJkLmluc3RhbmNlSWQgPT09IGFuaW1hdGlvbi50YXJnZXRJbnN0YW5jZUlkKTtcbiAgICByZXR1cm4gdGFyZ2V0Py5uYW1lID8/IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyQ2FyZCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzQ29tYmF0QXR0YWNrZXIoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb21iYXRBbmltYXRpb24oKT8uYXR0YWNrZXJJbnN0YW5jZUlkID09PSBjYXJkLmluc3RhbmNlSWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNDb21iYXRDaGFyYWN0ZXJUYXJnZXQoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiBib29sZWFuIHtcbiAgICBjb25zdCBhbmltYXRpb24gPSB0aGlzLmNvbWJhdEFuaW1hdGlvbigpO1xuICAgIHJldHVybiBhbmltYXRpb24/LnRhcmdldCA9PT0gJ2NoYXJhY3RlcicgJiYgYW5pbWF0aW9uLnRhcmdldEluc3RhbmNlSWQgPT09IGNhcmQuaW5zdGFuY2VJZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0NvbWJhdExlYWRlclRhcmdldChzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogYm9vbGVhbiB7XG4gICAgY29uc3QgYW5pbWF0aW9uID0gdGhpcy5jb21iYXRBbmltYXRpb24oKTtcbiAgICByZXR1cm4gYW5pbWF0aW9uPy50YXJnZXQgPT09ICdsZWFkZXInICYmIGFuaW1hdGlvbi50YXJnZXRTZWF0ID09PSBzZWF0O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydENvbWJhdEFuaW1hdGlvbihhbmltYXRpb246IENocmlzdGlhbml0eUNvbWJhdEFuaW1hdGlvbik6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJDb21iYXRUaW1lcnMoKTtcbiAgICB0aGlzLmNvbWJhdEFuaW1hdGlvbi5zZXQoYW5pbWF0aW9uKTtcbiAgICB0aGlzLmNvbWJhdFRyYWlsLnNldCh0aGlzLmNyZWF0ZUNvbWJhdFRyYWlsKGFuaW1hdGlvbikpO1xuICAgIHRoaXMuY29tYmF0VHJhaWxDbGVhclRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb21iYXRUcmFpbC5zZXQobnVsbCk7XG4gICAgICB0aGlzLmNvbWJhdFRyYWlsQ2xlYXJUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9LCA4ODApO1xuICAgIHRoaXMuY29tYmF0Q2xlYXJUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY29tYmF0QW5pbWF0aW9uLnNldChudWxsKTtcbiAgICAgIHRoaXMuY29tYmF0Q2xlYXJUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9LCA5ODApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDb21iYXRUcmFpbChhbmltYXRpb246IENocmlzdGlhbml0eUNvbWJhdEFuaW1hdGlvbik6IENocmlzdGlhbml0eUNvbWJhdFRyYWlsIHtcbiAgICBjb25zdCBmcm9tID0gdGhpcy5jb21iYXRBbmNob3IoYW5pbWF0aW9uLmF0dGFja2VyU2VhdCwgJ2JhdHRsZScpO1xuICAgIGNvbnN0IHRvID0gdGhpcy5jb21iYXRBbmNob3IoYW5pbWF0aW9uLnRhcmdldFNlYXQsIGFuaW1hdGlvbi50YXJnZXQpO1xuICAgIGNvbnN0IGR4ID0gdG8ueCAtIGZyb20ueDtcbiAgICBjb25zdCBkeSA9IHRvLnkgLSBmcm9tLnk7XG4gICAgY29uc3QgbGVuZ3RoID0gTWF0aC5tYXgoMTIsIE1hdGguaHlwb3QoZHgsIGR5KSk7XG4gICAgY29uc3QgYW5nbGUgPSBNYXRoLmF0YW4yKGR5LCBkeCkgKiAxODAgLyBNYXRoLlBJO1xuICAgIHJldHVybiB7XG4gICAgICBmcm9tWDogYCR7ZnJvbS54fSVgLFxuICAgICAgZnJvbVk6IGAke2Zyb20ueX0lYCxcbiAgICAgIG1pZFg6IGAke3RvLnh9JWAsXG4gICAgICBtaWRZOiBgJHt0by55fSVgLFxuICAgICAgbGVuZ3RoOiBgJHtsZW5ndGh9JWAsXG4gICAgICBhbmdsZTogYCR7YW5nbGV9ZGVnYCxcbiAgICAgIHRvbmU6IGFuaW1hdGlvbi50YXJnZXQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY29tYmF0QW5jaG9yKHNlYXQ6IENocmlzdGlhbml0eVNlYXQsIHRhcmdldDogJ2xlYWRlcicgfCAnY2hhcmFjdGVyJyB8ICdiYXR0bGUnKTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9IHtcbiAgICBpZiAoc2VhdCA9PT0gJ1AyJykge1xuICAgICAgaWYgKHRhcmdldCA9PT0gJ2xlYWRlcicpIHJldHVybiB7IHg6IDUwLCB5OiAxMCB9O1xuICAgICAgcmV0dXJuIHsgeDogNTAsIHk6IDI4IH07XG4gICAgfVxuICAgIGlmICh0YXJnZXQgPT09ICdsZWFkZXInKSByZXR1cm4geyB4OiA1MCwgeTogODQgfTtcbiAgICByZXR1cm4geyB4OiA1MCwgeTogNjggfTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJDb21iYXRUaW1lcnMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29tYmF0UmVzb2x1dGlvblRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5jb21iYXRSZXNvbHV0aW9uVGltZXIpO1xuICAgICAgdGhpcy5jb21iYXRSZXNvbHV0aW9uVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbWJhdENsZWFyVGltZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmNvbWJhdENsZWFyVGltZXIpO1xuICAgICAgdGhpcy5jb21iYXRDbGVhclRpbWVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb21iYXRUcmFpbENsZWFyVGltZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmNvbWJhdFRyYWlsQ2xlYXJUaW1lcik7XG4gICAgICB0aGlzLmNvbWJhdFRyYWlsQ2xlYXJUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5jb21iYXRUcmFpbC5zZXQobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHRyaWdnZXJIaXN0b3J5UHVsc2UoKTogdm9pZCB7XG4gICAgdGhpcy5oaXN0b3J5UHVsc2Uuc2V0KGZhbHNlKTtcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmhpc3RvcnlQdWxzZS5zZXQodHJ1ZSksIDApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuaGlzdG9yeVB1bHNlLnNldChmYWxzZSksIDkwMCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyQm90VHVybigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ib3RUdXJuVGltZXIgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5ib3RUdXJuVGltZXIpO1xuICAgIHRoaXMuYm90VHVyblRpbWVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzY2hlZHVsZUJvdFR1cm5JZk5lZWRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQm90VHVybigpO1xuICAgIGNvbnN0IGdhbWUgPSB0aGlzLmdhbWUoKTtcbiAgICBpZiAodGhpcy5zY3JlZW4oKSAhPT0gJ3RhYmxlJyB8fCBnYW1lLnN0YXR1cyAhPT0gJ2luX3Byb2dyZXNzJyB8fCBnYW1lLnR1cm5Pd25lciAhPT0gJ1AyJykgcmV0dXJuO1xuICAgIHRoaXMuYm90VHVyblRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5ib3RUdXJuVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnJ1blR1dG9yaWFsQm90VHVybigpO1xuICAgIH0sIDUyMCk7XG4gIH1cblxuICBwcml2YXRlIHJ1blR1dG9yaWFsQm90VHVybigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICBjb25zdCBpbXBhY3RzOiBBcnJheTxPbWl0PENocmlzdGlhbml0eUltcGFjdEV2ZW50LCAnaWQnPj4gPSBbXTtcbiAgICB0aGlzLmdhbWUudXBkYXRlKGdhbWUgPT4ge1xuICAgICAgaWYgKGdhbWUuc3RhdHVzICE9PSAnaW5fcHJvZ3Jlc3MnIHx8IGdhbWUudHVybk93bmVyICE9PSAnUDInKSByZXR1cm4gZ2FtZTtcbiAgICAgIGNvbnN0IG5leHQgPSBzdHJ1Y3R1cmVkQ2xvbmUoZ2FtZSk7XG4gICAgICBjb25zdCBoaXN0b3J5QmVmb3JlID0gbmV4dC5oaXN0b3J5Wm9uZS5sZW5ndGg7XG4gICAgICBjb25zdCBsb2c6IHN0cmluZ1tdID0gW107XG4gICAgICB0aGlzLnJlc29sdmVCb3RQbGF5cyhuZXh0LCBsb2cpO1xuICAgICAgdGhpcy5yZXNvbHZlQm90QXR0YWNrKG5leHQsIGxvZywgaW1wYWN0cyk7XG4gICAgICBpZiAobmV4dC5oaXN0b3J5Wm9uZS5sZW5ndGggPiBoaXN0b3J5QmVmb3JlKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckhpc3RvcnlQdWxzZSgpO1xuICAgICAgfVxuICAgICAgZXZhbHVhdGVWaWN0b3J5KG5leHQsIGxvZywgdGhpcy5ydWxlTWVzc2FnZXMoKSk7XG4gICAgICBpZiAobmV4dC5zdGF0dXMgPT09ICdpbl9wcm9ncmVzcycpIHtcbiAgICAgICAgbG9nLnB1c2goLi4uYWR2YW5jZVR1cm4obmV4dCwgdGhpcy5ydWxlTWVzc2FnZXMoKSkpO1xuICAgICAgfVxuICAgICAgbmV4dC5yZXZpc2lvbisrO1xuICAgICAgbmV4dC5sb2cgPSBbLi4ubG9nLCAuLi5uZXh0LmxvZ10uc2xpY2UoMCwgNCk7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9KTtcbiAgICB0aGlzLnB1c2hJbXBhY3RFdmVudHMoaW1wYWN0cyk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVCb3RQbGF5cyhnYW1lOiBDaHJpc3RpYW5pdHlHYW1lU3RhdGUsIGxvZzogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBjb25zdCBib3QgPSBnYW1lLnBsYXllcnMuUDI7XG4gICAgY29uc3QgaGFuZCA9IFsuLi4oYm90LmhhbmQgPz8gW10pXTtcbiAgICBjb25zdCBvZmZlcmluZ0lkID0gaGFuZC5maW5kKGNhcmRJZCA9PiB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCkudHlwZSA9PT0gJ29mZmVyaW5nJyAmJiBjYW5QbGF5Q2FyZChnYW1lLCAnUDInLCB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCkpKTtcbiAgICBpZiAob2ZmZXJpbmdJZCkge1xuICAgICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24ob2ZmZXJpbmdJZCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBwbGF5Q2hyaXN0aWFuaXR5Q2FyZEZyb21IYW5kKGdhbWUsICdQMicsIGNhcmQsIHsgZGlzcGxheU5hbWU6IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpLm5hbWUgfSk7XG4gICAgICBpZiAocmVzdWx0LnBsYXllZCkge1xuICAgICAgICBPYmplY3QuYXNzaWduKGdhbWUsIHJlc3VsdC5nYW1lKTtcbiAgICAgICAgbG9nLnB1c2goLi4ucmVzdWx0LmxvZyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGxheWFibGVDaGFyYWN0ZXJzID0gWy4uLihnYW1lLnBsYXllcnMuUDIuaGFuZCA/PyBbXSldXG4gICAgICAubWFwKGNhcmRJZCA9PiB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCkpXG4gICAgICAuZmlsdGVyKGNhcmQgPT4gY2FyZC50eXBlID09PSAnY2hhcmFjdGVyJyAmJiBjYW5QbGF5Q2FyZChnYW1lLCAnUDInLCBjYXJkKSlcbiAgICAgIC5zb3J0KChsZWZ0LCByaWdodCkgPT4gKHJpZ2h0LmF0dGFjayA/PyAwKSAtIChsZWZ0LmF0dGFjayA/PyAwKSB8fCAocmlnaHQubGlmZSA/PyAwKSAtIChsZWZ0LmxpZmUgPz8gMCkpO1xuICAgIGNvbnN0IGNoYXJhY3RlciA9IHBsYXlhYmxlQ2hhcmFjdGVyc1swXTtcbiAgICBpZiAoY2hhcmFjdGVyKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBwbGF5Q2hyaXN0aWFuaXR5Q2FyZEZyb21IYW5kKGdhbWUsICdQMicsIGNoYXJhY3Rlciwge1xuICAgICAgICBkaXNwbGF5TmFtZTogdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoY2hhcmFjdGVyKS5uYW1lLFxuICAgICAgfSk7XG4gICAgICBpZiAocmVzdWx0LnBsYXllZCkge1xuICAgICAgICBPYmplY3QuYXNzaWduKGdhbWUsIHJlc3VsdC5nYW1lKTtcbiAgICAgICAgbG9nLnB1c2goLi4ucmVzdWx0LmxvZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlQm90QXR0YWNrKFxuICAgIGdhbWU6IENocmlzdGlhbml0eUdhbWVTdGF0ZSxcbiAgICBsb2c6IHN0cmluZ1tdLFxuICAgIGltcGFjdHM6IEFycmF5PE9taXQ8Q2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQsICdpZCc+PlxuICApOiB2b2lkIHtcbiAgICBjb25zdCBib3QgPSBnYW1lLnBsYXllcnMuUDI7XG4gICAgY29uc3QgcGxheWVyID0gZ2FtZS5wbGF5ZXJzLlAxO1xuICAgIGNvbnN0IGF0dGFja2VyID0gYm90LmJhdHRsZVpvbmVcbiAgICAgIC5maWx0ZXIoY2FyZCA9PiBjYXJkLmNhbkF0dGFjayAmJiBjYXJkLmF0dGFjayA+IDApXG4gICAgICAuc29ydCgobGVmdCwgcmlnaHQpID0+IChsZWZ0LnNsb3QgPz8gMCkgLSAocmlnaHQuc2xvdCA/PyAwKSlbMF07XG5cbiAgICBpZiAoIWF0dGFja2VyKSB7XG4gICAgICBsb2cucHVzaCh0aGlzLnQoJ2NocmlzdGlhbml0eUJvdE5vQXR0YWNrZXJzJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldCA9IHBsYXllci5iYXR0bGVab25lXG4gICAgICAuZmlsdGVyKGNhcmQgPT4gY2FyZC5jdXJyZW50SHAgPiAwKVxuICAgICAgLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiBsZWZ0LmN1cnJlbnRIcCAtIHJpZ2h0LmN1cnJlbnRIcCB8fCAobGVmdC5zbG90ID8/IDApIC0gKHJpZ2h0LnNsb3QgPz8gMCkpWzBdO1xuXG4gICAgaWYgKHRhcmdldCkge1xuICAgICAgaW1wYWN0cy5wdXNoKHsgdGV4dDogYC0ke2F0dGFja2VyLmF0dGFja31gLCB0b25lOiAnZGFtYWdlJywgc2VhdDogJ1AxJywgdGFyZ2V0OiAnYmF0dGxlJyB9KTtcbiAgICAgIGltcGFjdHMucHVzaCh7IHRleHQ6IGAtJHt0YXJnZXQuYXR0YWNrfWAsIHRvbmU6ICdkYW1hZ2UnLCBzZWF0OiAnUDInLCB0YXJnZXQ6ICdiYXR0bGUnIH0pO1xuICAgICAgdGFyZ2V0LmN1cnJlbnRIcCAtPSBhdHRhY2tlci5hdHRhY2s7XG4gICAgICBhdHRhY2tlci5jdXJyZW50SHAgLT0gdGFyZ2V0LmF0dGFjaztcbiAgICAgIGF0dGFja2VyLmNhbkF0dGFjayA9IGZhbHNlO1xuICAgICAgbG9nLnB1c2goYCR7YXR0YWNrZXIubmFtZX0gJHt0aGlzLnQoJ2NocmlzdGlhbml0eUNvbWJhdHNBZ2FpbnN0Jyl9ICR7dGFyZ2V0Lm5hbWV9LmApO1xuICAgICAgY2xlYW51cERlc3Ryb3llZChwbGF5ZXIsIGdhbWUpO1xuICAgICAgY2xlYW51cERlc3Ryb3llZChib3QsIGdhbWUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGltcGFjdHMucHVzaCh7IHRleHQ6IGAtJHthdHRhY2tlci5hdHRhY2t9YCwgdG9uZTogJ2RhbWFnZScsIHNlYXQ6ICdQMScsIHRhcmdldDogJ2xlYWRlcicgfSk7XG4gICAgcGxheWVyLmxlYWRlckhwID0gTWF0aC5tYXgoMCwgcGxheWVyLmxlYWRlckhwIC0gYXR0YWNrZXIuYXR0YWNrKTtcbiAgICBhdHRhY2tlci5jYW5BdHRhY2sgPSBmYWxzZTtcbiAgICBsb2cucHVzaChgJHthdHRhY2tlci5uYW1lfSAke3RoaXMudCgnY2hyaXN0aWFuaXR5QXR0YWNrc1lvdXJMZWFkZXInKX1gKTtcbiAgfVxuXG4gIHByaXZhdGUgcnVsZU1lc3NhZ2VzKCk6IENocmlzdGlhbml0eVJ1bGVNZXNzYWdlcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF0dGFja3NPcHBvbmVudExlYWRlcjogdGhpcy50KCdjaHJpc3RpYW5pdHlBdHRhY2tzT3Bwb25lbnRMZWFkZXInKSxcbiAgICAgIGF0dGFja3NZb3VyTGVhZGVyOiB0aGlzLnQoJ2NocmlzdGlhbml0eUF0dGFja3NZb3VyTGVhZGVyJyksXG4gICAgICBjb21iYXRzQWdhaW5zdDogdGhpcy50KCdjaHJpc3RpYW5pdHlDb21iYXRzQWdhaW5zdCcpLFxuICAgICAgZHJhd3NDYXJkOiB0aGlzLnQoJ2NocmlzdGlhbml0eURyYXdzQ2FyZCcpLFxuICAgICAgZGVja0lzRW1wdHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5RGVja0lzRW1wdHknKSxcbiAgICAgIHR1cm5PZjogdGhpcy50KCdjaHJpc3RpYW5pdHlUdXJuT2YnKSxcbiAgICAgIHlvdVdpbjogdGhpcy50KCdjaHJpc3RpYW5pdHlZb3VXaW4nKSxcbiAgICAgIG9wcG9uZW50V2luczogdGhpcy50KCdjaHJpc3RpYW5pdHlPcHBvbmVudFdpbnMnKSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGluc3BlY3RMZWFkZXIoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleC5zZXQoMCk7XG4gICAgY29uc3QgcGxheWVyID0gdGhpcy5nYW1lKCkucGxheWVyc1tzZWF0XTtcbiAgICBjb25zdCBsZWFkZXIgPSBwbGF5ZXIubGVhZGVyQ2FyZElkID8gdGhpcy5jYXJkRGVmaW5pdGlvbihwbGF5ZXIubGVhZGVyQ2FyZElkKSA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQoe1xuICAgICAgdGl0bGU6IGxlYWRlciA/IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGxlYWRlcikubmFtZSA6IHBsYXllci5sZWFkZXJOYW1lLFxuICAgICAgZXllYnJvdzogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksXG4gICAgICBtZXRhOiBgJHtwbGF5ZXIubGVhZGVySHB9LyR7cGxheWVyLmxlYWRlck1heEhwfWAsXG4gICAgICBib2R5OiBzZWF0ID09PSAnUDInICYmIHRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKSA/IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyUHJvdGVjdGVkJykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckJvZHknKSxcbiAgICAgIGNhcmRJZDogcGxheWVyLmxlYWRlckNhcmRJZCxcbiAgICAgIHNvdXJjZTogJ2JvYXJkJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0T2ZmZXJpbmcob2ZmZXJpbmc6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXguc2V0KDApO1xuICAgIGNvbnN0IGRlZmluaXRpb24gPSB0aGlzLmNhcmREZWZpbml0aW9uKG9mZmVyaW5nLmNhcmRJZCk7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGRlZmluaXRpb24pO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldCh7XG4gICAgICB0aXRsZTogdGV4dC5uYW1lLFxuICAgICAgZXllYnJvdzogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSxcbiAgICAgIG1ldGE6IG9mZmVyaW5nLnJlYWR5ID8gdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1JlYWR5JykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nRXhoYXVzdGVkJyksXG4gICAgICBib2R5OiB0ZXh0LmFiaWxpdHlUZXh0ID8/IG9mZmVyaW5nLmFiaWxpdHlUZXh0ID8/IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdCb2R5JyksXG4gICAgICBjYXJkSWQ6IG9mZmVyaW5nLmNhcmRJZCxcbiAgICAgIHNvdXJjZTogJ29mZmVyaW5ncycsXG4gICAgICBzZWF0OiBvZmZlcmluZy5vd25lcixcbiAgICAgIG9mZmVyaW5nSW5zdGFuY2VJZDogb2ZmZXJpbmcuaW5zdGFuY2VJZCxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvZmZlcmluZ0FiaWxpdHlUZXh0KG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlKTogc3RyaW5nIHtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQodGhpcy5jYXJkRGVmaW5pdGlvbihvZmZlcmluZy5jYXJkSWQpKTtcbiAgICByZXR1cm4gdGV4dC5hYmlsaXR5VGV4dCA/PyBvZmZlcmluZy5hYmlsaXR5VGV4dCA/PyB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nTm9BYmlsaXR5Jyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuVXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlLCBzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogYm9vbGVhbiB7XG4gICAgaWYgKHNlYXQgIT09ICdQMScpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gY2FuVXNlQ2hyaXN0aWFuaXR5T2ZmZXJpbmdBYmlsaXR5KHRoaXMuZ2FtZSgpLCBzZWF0LCBvZmZlcmluZy5pbnN0YW5jZUlkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1c2VPZmZlcmluZ0FiaWxpdHkob2ZmZXJpbmc6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UsIHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY2FuVXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nLCBzZWF0KSkgcmV0dXJuO1xuICAgIGxldCBsZWFkZXJEYW1hZ2UgPSAwO1xuICAgIGxldCByZXNlcnZlR2FpbiA9IDA7XG4gICAgdGhpcy5nYW1lLnVwZGF0ZShnYW1lID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc29sdmVPZmZlcmluZ0FiaWxpdHkoZ2FtZSwgc2VhdCwgb2ZmZXJpbmcuaW5zdGFuY2VJZCwgdGhpcy5ydWxlTWVzc2FnZXMoKSk7XG4gICAgICBsZWFkZXJEYW1hZ2UgPSByZXN1bHQubGVhZGVyRGFtYWdlO1xuICAgICAgcmVzZXJ2ZUdhaW4gPSByZXN1bHQucmVzZXJ2ZUdhaW47XG4gICAgICByZXR1cm4gcmVzdWx0LmdhbWU7XG4gICAgfSk7XG4gICAgaWYgKGxlYWRlckRhbWFnZSA+IDApIHtcbiAgICAgIHRoaXMucHVzaEltcGFjdEV2ZW50KHsgdGV4dDogYC0ke2xlYWRlckRhbWFnZX1gLCB0b25lOiAnZGFtYWdlJywgc2VhdCwgdGFyZ2V0OiAnbGVhZGVyJyB9KTtcbiAgICB9XG4gICAgaWYgKHJlc2VydmVHYWluID4gMCkge1xuICAgICAgdGhpcy5wdXNoSW1wYWN0RXZlbnQoeyB0ZXh0OiBgKyR7cmVzZXJ2ZUdhaW59YCwgdG9uZTogJ3Jlc291cmNlJywgc2VhdCwgdGFyZ2V0OiAnb2ZmZXJpbmdzJyB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0UHJldmlld0FiaWxpdHkoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4LnNldChpbmRleCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmF2aWdhdGVQcmV2aWV3QWJpbGl0eShkaXJlY3Rpb246IC0xIHwgMSk6IHZvaWQge1xuICAgIGNvbnN0IGFiaWxpdGllcyA9IHRoaXMucHJldmlld0FiaWxpdGllcygpO1xuICAgIGlmIChhYmlsaXRpZXMubGVuZ3RoIDwgMikgcmV0dXJuO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGFiaWxpdGllcy5maW5kSW5kZXgoYWJpbGl0eSA9PiBhYmlsaXR5LmluZGV4ID09PSB0aGlzLnNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleCgpKTtcbiAgICBjb25zdCBuZXh0SW5kZXggPSAoTWF0aC5tYXgoY3VycmVudEluZGV4LCAwKSArIGRpcmVjdGlvbiArIGFiaWxpdGllcy5sZW5ndGgpICUgYWJpbGl0aWVzLmxlbmd0aDtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleC5zZXQoYWJpbGl0aWVzW25leHRJbmRleF0uaW5kZXgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVzZVNlbGVjdGVkUHJldmlld0FiaWxpdHkoKTogdm9pZCB7XG4gICAgY29uc3Qgb2ZmZXJpbmcgPSB0aGlzLnNlbGVjdGVkUHJldmlld09mZmVyaW5nKCk7XG4gICAgaWYgKCFvZmZlcmluZykgcmV0dXJuO1xuICAgIGNvbnN0IHNlbGVjdGVkQWJpbGl0eUluZGV4ID0gdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXgoKTtcbiAgICB0aGlzLnVzZU9mZmVyaW5nQWJpbGl0eShvZmZlcmluZywgb2ZmZXJpbmcub3duZXIpO1xuICAgIGNvbnN0IGxpdmVPZmZlcmluZyA9IHRoaXMuZ2FtZSgpLnBsYXllcnNbb2ZmZXJpbmcub3duZXJdLm9mZmVyaW5ncy5maW5kKGNhcmQgPT4gY2FyZC5pbnN0YW5jZUlkID09PSBvZmZlcmluZy5pbnN0YW5jZUlkKTtcbiAgICBpZiAobGl2ZU9mZmVyaW5nKSB7XG4gICAgICB0aGlzLmluc3BlY3RPZmZlcmluZyhsaXZlT2ZmZXJpbmcpO1xuICAgICAgdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXguc2V0KHNlbGVjdGVkQWJpbGl0eUluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdGVkUHJldmlld09mZmVyaW5nKCk6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UgfCBudWxsIHtcbiAgICBjb25zdCBwcmV2aWV3ID0gdGhpcy5zZWxlY3RlZFByZXZpZXcoKTtcbiAgICBpZiAoIXByZXZpZXc/LnNlYXQgfHwgIXByZXZpZXcub2ZmZXJpbmdJbnN0YW5jZUlkKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5nYW1lKCkucGxheWVyc1twcmV2aWV3LnNlYXRdLm9mZmVyaW5ncy5maW5kKGNhcmQgPT4gY2FyZC5pbnN0YW5jZUlkID09PSBwcmV2aWV3Lm9mZmVyaW5nSW5zdGFuY2VJZCkgPz8gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgY2FuVXNlUHJldmlld0FiaWxpdHkoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG9mZmVyaW5nID0gdGhpcy5zZWxlY3RlZFByZXZpZXdPZmZlcmluZygpO1xuICAgIGlmICghb2ZmZXJpbmcgfHwgaW5kZXggIT09IDApIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5jYW5Vc2VPZmZlcmluZ0FiaWxpdHkob2ZmZXJpbmcsIG9mZmVyaW5nLm93bmVyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0RGVjaygpOiB2b2lkIHtcbiAgICBjb25zdCByZW1haW5pbmdDYXJkcyA9IHRoaXMuZ2FtZSgpLnNoYXJlZERlY2subGVuZ3RoO1xuICAgIGNvbnN0IG5leHRDYXJkID0gdGhpcy5nYW1lKCkuc2hhcmVkRGVja1swXTtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KHtcbiAgICAgIHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eURlY2snKSxcbiAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5U2hhcmVkWm9uZScpLFxuICAgICAgbWV0YTogYCR7cmVtYWluaW5nQ2FyZHN9ICR7cmVtYWluaW5nQ2FyZHMgPT09IDEgPyB0aGlzLnQoJ2NocmlzdGlhbml0eUNhcmRSZW1haW5pbmcnKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2FyZHNSZW1haW5pbmcnKX1gLFxuICAgICAgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlEZWNrQm9keScpLFxuICAgICAgZmFjdHM6IFtcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlEZWNrUnVsZVNoYXJlZCcpLFxuICAgICAgICB0aGlzLnQoJ2NocmlzdGlhbml0eURlY2tSdWxlRHJhdycpLFxuICAgICAgICB0aGlzLnQoJ2NocmlzdGlhbml0eURlY2tSdWxlRW1wdHknKSxcbiAgICAgICAgbmV4dENhcmQgPyBgJHt0aGlzLnQoJ2NocmlzdGlhbml0eURlY2tOZXh0Q2FyZCcpfTogJHt0aGlzLmNhcmREaXNwbGF5TmFtZShuZXh0Q2FyZCl9YCA6IHRoaXMudCgnY2hyaXN0aWFuaXR5RGVja05vTmV4dENhcmQnKSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdFBsYWNlWm9uZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5nYW1lKCkucGxhY2Vab25lLmxlbmd0aCkge1xuICAgICAgdGhpcy5vcGVuUGxhY2UoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldCh7XG4gICAgICB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlQbGFjZScpLFxuICAgICAgZXllYnJvdzogdGhpcy50KCdjaHJpc3RpYW5pdHlTaGFyZWRab25lJyksXG4gICAgICBtZXRhOiB0aGlzLnQoJ2NocmlzdGlhbml0eUVtcHR5JyksXG4gICAgICBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYWNlUnVsZUJvZHknKSxcbiAgICAgIGZhY3RzOiBbXG4gICAgICAgIHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VTbG90UGxheWFibGUnKSxcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlQbGFjZU9ubHlPbmUnKSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdFBsYWNlQ2FyZChjYXJkSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaW5zcGVjdEhhbmRDYXJkKGNhcmRJZCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcudXBkYXRlKHByZXZpZXcgPT4gcHJldmlldyA/IHsgLi4ucHJldmlldywgc291cmNlOiAncGxhY2UnIH0gOiBwcmV2aWV3KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0SG93VG9QbGF5KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQoe1xuICAgICAgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5SG93VG9QbGF5JyksXG4gICAgICBleWVicm93OiB0aGlzLnQoJ2NocmlzdGlhbml0eUdlbmVzaXNFZGl0aW9uJyksXG4gICAgICBtZXRhOiB0aGlzLnQoJ2NocmlzdGlhbml0eVR1dG9yaWFsTW9kZScpLFxuICAgICAgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlIb3dUb1BsYXlJbnRybycpLFxuICAgICAgZmFjdHM6IFtcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlIb3dUb1BsYXlHb2FsJyksXG4gICAgICAgIHRoaXMudCgnY2hyaXN0aWFuaXR5SG93VG9QbGF5VHVybicpLFxuICAgICAgICB0aGlzLnQoJ2NocmlzdGlhbml0eUhvd1RvUGxheU9mZmVyaW5ncycpLFxuICAgICAgICB0aGlzLnQoJ2NocmlzdGlhbml0eUhvd1RvUGxheUJhdHRsZScpLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0SGFuZENhcmQoY2FyZElkOiBzdHJpbmcsIGZyb21IYW5kID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXguc2V0KDApO1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCk7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpO1xuICAgIGlmIChmcm9tSGFuZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldChudWxsKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQoY2FyZElkKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KHtcbiAgICAgIHRpdGxlOiB0ZXh0Lm5hbWUsXG4gICAgICBleWVicm93OiB0aGlzLmNhcmRUeXBlTGFiZWwoY2FyZCksXG4gICAgICBtZXRhOiB0aGlzLmNhcmRQcmV2aWV3TWV0YShjYXJkKSxcbiAgICAgIGJvZHk6IHRleHQuYWJpbGl0eVRleHQgPz8gJycsXG4gICAgICBjYXJkSWQsXG4gICAgICBzb3VyY2U6IGZyb21IYW5kID8gJ2hhbmQnIDogJ3BpbGUnLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluc3BlY3RHYWxsZXJ5Q2FyZChjYXJkSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaW5zcGVjdEhhbmRDYXJkKGNhcmRJZCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcudXBkYXRlKHByZXZpZXcgPT4gcHJldmlldyA/IHsgLi4ucHJldmlldywgc291cmNlOiAnZ2FsbGVyeScgfSA6IHByZXZpZXcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluc3BlY3RIaXN0b3J5Q2FyZChjYXJkSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaW5zcGVjdEhhbmRDYXJkKGNhcmRJZCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcudXBkYXRlKHByZXZpZXcgPT4gcHJldmlldyA/IHsgLi4ucHJldmlldywgc291cmNlOiAnaGlzdG9yeScgfSA6IHByZXZpZXcpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnNwZWN0Q2hhcmFjdGVyKGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4LnNldCgwKTtcbiAgICBjb25zdCBkZWZpbml0aW9uID0gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkLmNhcmRJZCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KHtcbiAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChkZWZpbml0aW9uKS5uYW1lLFxuICAgICAgZXllYnJvdzogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJDYXJkJyksXG4gICAgICBtZXRhOiBgJHtjYXJkLmF0dGFja30vJHtjYXJkLmN1cnJlbnRIcH1gLFxuICAgICAgYm9keTogY2FyZC5jYW5BdHRhY2sgPyB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlclJlYWR5JykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlckV4aGF1c3RlZCcpLFxuICAgICAgY2FyZElkOiBjYXJkLmNhcmRJZCxcbiAgICAgIHNvdXJjZTogJ2JvYXJkJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2FyZFByZXZpZXdNZXRhKGNhcmQ6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICBpZiAoY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnKSByZXR1cm4gYCR7Y2FyZC5vZmZlcmluZ1ZhbHVlID8/IGNhcmQubGlmZSA/PyAxfWA7XG4gICAgaWYgKGNhcmQudHlwZSA9PT0gJ2xlYWRlcicpIHJldHVybiBgJHtjYXJkLmxlYWRlckxpZmUgPz8gY2FyZC5saWZlID8/IDB9YDtcbiAgICBpZiAoY2FyZC50eXBlID09PSAnY2hhcmFjdGVyJykgcmV0dXJuIGAke3RoaXMudCgnY2hyaXN0aWFuaXR5Q29zdCcpfSAke2NhcmQuY29zdCA/PyAwfSDCtyAke2NhcmQuYXR0YWNrID8/IDB9LyR7Y2FyZC5saWZlID8/IDB9YDtcbiAgICBpZiAoY2FyZC5jb3N0ICE9PSB1bmRlZmluZWQpIHJldHVybiBgJHt0aGlzLnQoJ2NocmlzdGlhbml0eUNvc3QnKX0gJHtjYXJkLmNvc3R9YDtcbiAgICByZXR1cm4gY2FyZC5jb2xsZWN0b3JOdW1iZXIgPz8gY2FyZC5pZDtcbiAgfVxuXG59XG4iXX0=
4100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyaXN0aWFuaXR5LWdhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9taW5pLWdhbWVzL2NocmlzdGlhbml0eS1nYW1lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxPQUFPLEVBQWUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRS9HLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUseUJBQXlCLEVBQTJELE1BQU0sK0JBQStCLENBQUM7QUFDbkksT0FBTyxFQUFFLHdCQUF3QixFQUEyQixNQUFNLCtCQUErQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSx5QkFBeUIsRUFBNEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RyxPQUFPLEVBRUwsV0FBVyxFQUNYLHFCQUFxQixJQUFJLGlDQUFpQyxFQUMxRCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixnQkFBZ0IsSUFBSSw0QkFBNEIsRUFDaEQsY0FBYyxFQUNkLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLGNBQWMsR0FDZixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFnSHBELE1BQU0sbUJBQW1CLEdBQUcsc0RBQXNELENBQUM7QUFD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QUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRVMsU0FBUztRQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRVMsVUFBVTtRQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDL0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRVMsY0FBYztRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRVMsaUJBQWlCLENBQUMsS0FBbUI7UUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUFFLE9BQU87UUFDdkMsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQ2hFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckcsS0FBSyxDQUFDLGFBQTZCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVTLGtCQUFrQixDQUFDLEtBQW1CO1FBQzlDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNyQyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQzFELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDOUIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLGFBQTRCLENBQUM7UUFDbEQsSUFBSSxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQUUsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUvRixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzVDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixJQUFJLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJO1lBQUUsT0FBTztRQUU1QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRVMsa0JBQWtCLENBQUMsS0FBbUI7UUFDOUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxLQUFLLEtBQUssQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUNsRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxhQUE0QixDQUFDO1FBQ2xELElBQUksTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUFFLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVTLGVBQWUsQ0FBQyxTQUFpQjtRQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMxQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFDN0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELElBQUksWUFBWSxHQUFHLENBQUM7WUFBRSxPQUFPO1FBQzdCLE1BQU0sU0FBUyxHQUFHLENBQUMsWUFBWSxHQUFHLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzRSxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDaEUsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxlQUFlLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVPLDJCQUEyQjtRQVFqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN4QixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3ZELE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUUsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQWUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkYsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkYsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxXQUFXLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2RyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN2RCxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQWtCLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUYsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxlQUFlLEVBQUUsQ0FBQztZQUN2QyxPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGVBQXdCLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsSCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRU8sMkJBQTJCLENBQ2pDLEtBT0M7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzlCLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDL0IsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUYsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNuQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsS0FBSyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN0SCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVGLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssZUFBZSxFQUFFLENBQUM7WUFDdkMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEcsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRVMsZ0JBQWdCLENBQUMsS0FBWTtRQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBRSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQVk7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUUsS0FBSyxDQUFDLE1BQTRCLENBQUMsS0FBc0MsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFUyxXQUFXLENBQUMsS0FBbUI7UUFDdkMsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLE9BQU87WUFBRSxPQUFPO1FBQzFDLE1BQU0sTUFBTSxHQUFJLEtBQUssQ0FBQyxhQUE2QixDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDNUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUM3RCxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBQzdELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQ25CLE9BQU8sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2YsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ2QsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ2IsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFUyxjQUFjLENBQUMsTUFBK0I7UUFDdEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxPQUFPO1lBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2xCLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUMvQixDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDYixDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDYixPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7WUFDbkMsVUFBVSxFQUFFLElBQUk7WUFDaEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU87WUFDdkQsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjLENBQUMsTUFBK0I7UUFDcEQsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDdEYsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDdEYsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFdBQVc7WUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDeEYsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDdEYsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDdEYsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFdBQVc7WUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUss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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXczQlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJhZ1BsYWNlaG9sZGVyLCBDZGtEcmFnUHJldmlldywgQ2RrRHJvcExpc3QgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuaW1wb3J0IHsgTGlnaHRSaXBwbGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2xpZ2h0LXJpcHBsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IENocmlzdGlhbml0eUNhcmRDb21wb25lbnQsIENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbCwgQ2hyaXN0aWFuaXR5Q2FyZFJlbmRlclR5cGUgfSBmcm9tICcuL2NocmlzdGlhbml0eS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNaW5pR2FtZUNhbGxvdXRDb21wb25lbnQsIE1pbmlHYW1lQ2FsbG91dE1ldGFkYXRhIH0gZnJvbSAnLi9taW5pLWdhbWUtY2FsbG91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWluaUdhbWVTY29yZVBvcENvbXBvbmVudCwgTWluaUdhbWVTY29yZVBvcE1ldGFkYXRhIH0gZnJvbSAnLi9taW5pLWdhbWUtc2NvcmUtcG9wLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDaHJpc3RpYW5pdHlSdWxlTWVzc2FnZXMsXG4gIGFkdmFuY2VUdXJuLFxuICBjYW5Vc2VPZmZlcmluZ0FiaWxpdHkgYXMgY2FuVXNlQ2hyaXN0aWFuaXR5T2ZmZXJpbmdBYmlsaXR5LFxuICBjYW5QbGF5Q2FyZCxcbiAgY2xlYW51cERlc3Ryb3llZCxcbiAgZXZhbHVhdGVWaWN0b3J5LFxuICBwbGF5Q2FyZEZyb21IYW5kIGFzIHBsYXlDaHJpc3RpYW5pdHlDYXJkRnJvbUhhbmQsXG4gIHJlYWR5T2ZmZXJpbmdzLFxuICByZXNvbHZlQXR0YWNrQ2hhcmFjdGVyLFxuICByZXNvbHZlQXR0YWNrTGVhZGVyLFxuICByZXNvbHZlT2ZmZXJpbmdBYmlsaXR5LFxuICB0b3RhbE9mZmVyaW5ncyxcbn0gZnJvbSAnLi9jaHJpc3RpYW5pdHktcnVsZXMnO1xuaW1wb3J0IHsgTUlOSV9HQU1FU19JMThOIH0gZnJvbSAnLi9taW5pLWdhbWVzLmkxOG4nO1xuaW1wb3J0IHtcbiAgQ2hyaXN0aWFuaXR5Q2FyZEJpYmxlUmVmZXJlbmNlLFxuICBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbixcbiAgQ2hyaXN0aWFuaXR5Q2FyZFRyYW5zbGF0aW9uLFxuICBDaHJpc3RpYW5pdHlDYXJkVHlwZSxcbiAgQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UsXG4gIENocmlzdGlhbml0eUdhbWVTdGF0ZSxcbiAgQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSxcbiAgQ2hyaXN0aWFuaXR5UGxheWVyU3RhdGUsXG4gIENocmlzdGlhbml0eVNlYXQsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5pbnRlcmZhY2UgQ2hyaXN0aWFuaXR5Q2FyZFByZXZpZXcge1xuICB0aXRsZTogc3RyaW5nO1xuICBleWVicm93OiBzdHJpbmc7XG4gIG1ldGE6IHN0cmluZztcbiAgYm9keTogc3RyaW5nO1xuICBjYXJkSWQ/OiBzdHJpbmc7XG4gIHNvdXJjZT86ICdoYW5kJyB8ICdib2FyZCcgfCAncGlsZScgfCAnaGlzdG9yeScgfCAnb2ZmZXJpbmdzJyB8ICdwbGFjZScgfCAnZ2FsbGVyeScgfCAnbGVhZGVyLWNob2ljZSc7XG4gIHNlYXQ/OiBDaHJpc3RpYW5pdHlTZWF0O1xuICBvZmZlcmluZ0luc3RhbmNlSWQ/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlJbmZvUGFuZWwge1xuICB0aXRsZTogc3RyaW5nO1xuICBleWVicm93OiBzdHJpbmc7XG4gIG1ldGE6IHN0cmluZztcbiAgYm9keTogc3RyaW5nO1xuICBmYWN0czogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlQcmV2aWV3UnVsZSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGJvZHk6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eVByZXZpZXdBYmlsaXR5IHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgdGl0bGU6IHN0cmluZztcbiAgYm9keTogc3RyaW5nO1xuICBjYW5Vc2U6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlQcmV2aWV3VGlsdCB7XG4gIHJvdGF0ZVg6IG51bWJlcjtcbiAgcm90YXRlWTogbnVtYmVyO1xuICBzaGlmdFg6IG51bWJlcjtcbiAgc2hpZnRZOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlJbXBhY3RFdmVudCB7XG4gIGlkOiBudW1iZXI7XG4gIHRleHQ6IHN0cmluZztcbiAgdG9uZTogJ2RhbWFnZScgfCAnaGVhbCcgfCAncmVzb3VyY2UnO1xuICBzZWF0OiBDaHJpc3RpYW5pdHlTZWF0O1xuICB0YXJnZXQ6ICdsZWFkZXInIHwgJ2JhdHRsZScgfCAnb2ZmZXJpbmdzJztcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eUNvbWJhdFRyYWlsIHtcbiAgZnJvbVg6IHN0cmluZztcbiAgZnJvbVk6IHN0cmluZztcbiAgbWlkWDogc3RyaW5nO1xuICBtaWRZOiBzdHJpbmc7XG4gIGxlbmd0aDogc3RyaW5nO1xuICBhbmdsZTogc3RyaW5nO1xuICB0b25lOiAnYXR0YWNrJyB8ICdsZWFkZXInIHwgJ2NoYXJhY3Rlcic7XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlDb21iYXRBbmltYXRpb24ge1xuICBhdHRhY2tlckluc3RhbmNlSWQ6IHN0cmluZztcbiAgYXR0YWNrZXJTZWF0OiBDaHJpc3RpYW5pdHlTZWF0O1xuICB0YXJnZXRJbnN0YW5jZUlkPzogc3RyaW5nO1xuICB0YXJnZXRTZWF0OiBDaHJpc3RpYW5pdHlTZWF0O1xuICB0YXJnZXQ6ICdsZWFkZXInIHwgJ2NoYXJhY3Rlcic7XG59XG5cbmludGVyZmFjZSBDaHJpc3RpYW5pdHlSZXNvbHZlZENhcmRUZXh0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBmdWxsTmFtZT86IHN0cmluZztcbiAgdmVyc2VUZXh0Pzogc3RyaW5nO1xuICBzY3JpcHR1cmU/OiBzdHJpbmc7XG4gIGFiaWxpdHlOYW1lPzogc3RyaW5nO1xuICBhYmlsaXR5VGV4dD86IHN0cmluZztcbiAgYWJpbGl0aWVzPzogQ2hyaXN0aWFuaXR5Q2FyZFRyYW5zbGF0aW9uWydhYmlsaXRpZXMnXTtcbn1cblxuaW50ZXJmYWNlIENocmlzdGlhbml0eUVkaXRpb25DYXRhbG9nIHtcbiAgZWRpdGlvbj86IHtcbiAgICBpZD86IHN0cmluZztcbiAgICBudW1iZXI/OiBudW1iZXI7XG4gICAgc2x1Zz86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGljb24/OiBzdHJpbmc7XG4gIH07XG4gIGNhcmRzPzogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXTtcbn1cblxudHlwZSBDaHJpc3RpYW5pdHlHYWxsZXJ5VHlwZUZpbHRlciA9ICdhbGwnIHwgQ2hyaXN0aWFuaXR5Q2FyZFR5cGU7XG50eXBlIENocmlzdGlhbml0eVNjcmVlbiA9ICdzcGxhc2gnIHwgJ2hvbWUnIHwgJ3RhYmxlJztcbnR5cGUgQ2hyaXN0aWFuaXR5Q2F0YWxvZ0xvYWRTdGF0ZSA9ICdsb2FkaW5nJyB8ICdyZWFkeScgfCAnZmFsbGJhY2snO1xudHlwZSBDaHJpc3RpYW5pdHlUdXRvcmlhbFBoYXNlID0gJ2NvaW4nIHwgJ2xlYWRlcl9waWNrJyB8ICdpbl9wcm9ncmVzcycgfCAnZmluaXNoZWQnO1xuXG5pbnRlcmZhY2UgQ2hyaXN0aWFuaXR5VHV0b3JpYWxTZXR1cCB7XG4gIGNvaW5XaW5uZXI6IENocmlzdGlhbml0eVNlYXQ7XG4gIGxlYWRlclBpY2tlcjogQ2hyaXN0aWFuaXR5U2VhdDtcbiAgZmlyc3RQbGF5ZXI6IENocmlzdGlhbml0eVNlYXQ7XG4gIGF2YWlsYWJsZUxlYWRlcnM6IHN0cmluZ1tdO1xuICBwbGF5ZXJMZWFkZXJJZD86IHN0cmluZztcbiAgb3Bwb25lbnRMZWFkZXJJZD86IHN0cmluZztcbn1cblxuY29uc3QgR0VORVNJU19DQVRBTE9HX1VSTCA9ICdhc3NldHMvZ2FtZXMvY2hyaXN0aWFuaXR5L2RhdGEvMDEtZ2VuZXNpcy5jYXJkcy5qc29uJztcbmNvbnN0IEdFTkVTSVNfSUNPTl9VUkwgPSAnYXNzZXRzL2dhbWVzL2NocmlzdGlhbml0eS9pY29ucy8xLWljb24ucG5nJztcbmNvbnN0IFRVVE9SSUFMX0NIQVJBQ1RFUl9MSU1JVCA9IDEyO1xuY29uc3QgVFVUT1JJQUxfT0ZGRVJJTkdfTElNSVQgPSA2O1xuY29uc3QgVFVUT1JJQUxfT1BFTklOR19IQU5EX1NJWkUgPSA1O1xuY29uc3QgVFVUT1JJQUxfTEVBREVSX0NIT0lDRV9DT1VOVCA9IDI7XG5jb25zdCBUVVRPUklBTF9MRUFERVJfQ0hPSUNFX1NFQ09ORFMgPSAxNTtcbmNvbnN0IFRVVE9SSUFMX1NFRUQgPSAyMDI2MDcyODtcbmNvbnN0IFNQTEFTSF9NSU5fRFVSQVRJT05fTVMgPSA3MjA7XG5jb25zdCBDSFJJU1RJQU5JVFlfUFJFVklFV19ORVVUUkFMX1RJTFQ6IENocmlzdGlhbml0eVByZXZpZXdUaWx0ID0geyByb3RhdGVYOiAwLCByb3RhdGVZOiAwLCBzaGlmdFg6IDAsIHNoaWZ0WTogMCB9O1xuXG5jb25zdCBTVEFSVEVSX0NBUkRTOiBSZWNvcmQ8c3RyaW5nLCBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbj4gPSB7XG4gIG9fc2ltcGxlOiB7XG4gICAgaWQ6ICdvX3NpbXBsZScsXG4gICAgbmFtZTogJ09mcmVuZGEgc2ltcGxlJyxcbiAgICB0eXBlOiAnb2ZmZXJpbmcnLFxuICAgIGNvc3Q6IDAsXG4gICAgYXR0YWNrOiAwLFxuICAgIGxpZmU6IDEsXG4gICAgdmVyc2VUZXh0OiAnVW5hIG9mcmVuZGEgc2VuY2lsbGEgcXVlZGEgbGlzdGEgcGFyYSBzb3N0ZW5lciB0dXMgc2lndWllbnRlcyBqdWdhZGFzLicsXG4gICAgc2NyaXB0dXJlOiAnR2VuZXNpcyA0OjQnLFxuICAgIGVkaXRpb246ICdHRU4nLFxuICAgIGNvbGxlY3Rvck51bWJlcjogJzAwMS8wMjAnLFxuICAgIHllYXI6ICcyMDI2JyxcbiAgICBhdXRob3I6ICdNVlAnLFxuICAgIHJhcml0eTogJ25vcm1hbCcsXG4gIH0sXG4gIG9fZm9yYmlkZGVuOiB7XG4gICAgaWQ6ICdvX2ZvcmJpZGRlbicsXG4gICAgbmFtZTogJ0VsIGZydXRvIHByb2hpYmlkbycsXG4gICAgdHlwZTogJ29mZmVyaW5nJyxcbiAgICBjb3N0OiAwLFxuICAgIGF0dGFjazogMCxcbiAgICBsaWZlOiAyLFxuICAgIGFiaWxpdHlOYW1lOiAnQ29ub2NpbWllbnRvIGRlbCBiaWVuIHkgZGVsIG1hbCcsXG4gICAgYWJpbGl0eVRleHQ6ICdHZW5lcmEgZWwgdmFsb3IgZGUgMiBvZnJlbmRhcy4gQWwgdXNhcmxhLCBpbmZsaWdlIDEgcHVudG8gZGUgZGHDsW8gYWwgbMOtZGVyLicsXG4gICAgYWJpbGl0eUNvc3Q6IDAsXG4gICAgdmVyc2VUZXh0OiAnRGlvcyBlbCBTZcOxb3IgcHVzbyBhbCBob21icmUgZW4gZWwgamFyZMOtbiBkZSBFZMOpbiBwYXJhIHF1ZSBsbyBsYWJyYXJhIHkgbG8gY3VpZGFyYS4nLFxuICAgIHNjcmlwdHVyZTogJ0dlbmVzaXMgMjoxNyBOQlYnLFxuICAgIGVkaXRpb246ICdHRU4nLFxuICAgIGNvbGxlY3Rvck51bWJlcjogJzAxMi8xODAnLFxuICAgIHllYXI6ICcyMDI2JyxcbiAgICBhdXRob3I6ICdNVlAnLFxuICAgIHJhcml0eTogJ3VuY29tbW9uJyxcbiAgfSxcbiAgcF9zY291dDoge1xuICAgIGlkOiAncF9zY291dCcsXG4gICAgbmFtZTogJ1Njb3V0JyxcbiAgICB0eXBlOiAnY2hhcmFjdGVyJyxcbiAgICBjb3N0OiAxLFxuICAgIGF0dGFjazogMSxcbiAgICBsaWZlOiAxLFxuICAgIHZlcnNlVGV4dDogJ1VuIGV4cGxvcmFkb3IgaHVtaWxkZSBhYnJlIGNhbWlubyBhbnRlcyBkZSBxdWUgbGxlZ3VlIGxhIGJhdGFsbGEuJyxcbiAgICBzY3JpcHR1cmU6ICdHZW5lc2lzIDEzOjE3JyxcbiAgICBlZGl0aW9uOiAnR0VOJyxcbiAgICBjb2xsZWN0b3JOdW1iZXI6ICcwMDIvMDIwJyxcbiAgICB5ZWFyOiAnMjAyNicsXG4gICAgYXV0aG9yOiAnTVZQJyxcbiAgICByYXJpdHk6ICdub3JtYWwnLFxuICB9LFxuICBwX2d1YXJkOiB7IGlkOiAncF9ndWFyZCcsIG5hbWU6ICdHdWFyZCcsIHR5cGU6ICdjaGFyYWN0ZXInLCBjb3N0OiAyLCBhdHRhY2s6IDEsIGxpZmU6IDMsIGVkaXRpb246ICdHRU4nLCBjb2xsZWN0b3JOdW1iZXI6ICcwMDMvMDIwJywgeWVhcjogJzIwMjYnLCBhdXRob3I6ICdNVlAnLCByYXJpdHk6ICdub3JtYWwnIH0sXG4gIHBfd2FycmlvcjogeyBpZDogJ3Bfd2FycmlvcicsIG5hbWU6ICdXYXJyaW9yJywgdHlwZTogJ2NoYXJhY3RlcicsIGNvc3Q6IDIsIGF0dGFjazogMiwgbGlmZTogMiwgZWRpdGlvbjogJ0dFTicsIGNvbGxlY3Rvck51bWJlcjogJzAwNC8wMjAnLCB5ZWFyOiAnMjAyNicsIGF1dGhvcjogJ01WUCcsIHJhcml0eTogJ25vcm1hbCcgfSxcbiAgcF9lbGRlcjogeyBpZDogJ3BfZWxkZXInLCBuYW1lOiAnRWxkZXInLCB0eXBlOiAnY2hhcmFjdGVyJywgY29zdDogMywgYXR0YWNrOiAyLCBsaWZlOiA0LCBlZGl0aW9uOiAnR0VOJywgY29sbGVjdG9yTnVtYmVyOiAnMDA1LzAyMCcsIHllYXI6ICcyMDI2JywgYXV0aG9yOiAnTVZQJywgcmFyaXR5OiAndW5jb21tb24nIH0sXG4gIHBfY2hhbXBpb246IHsgaWQ6ICdwX2NoYW1waW9uJywgbmFtZTogJ0NoYW1waW9uJywgdHlwZTogJ2NoYXJhY3RlcicsIGNvc3Q6IDQsIGF0dGFjazogNCwgbGlmZTogNCwgZWRpdGlvbjogJ0dFTicsIGNvbGxlY3Rvck51bWJlcjogJzAwNi8wMjAnLCB5ZWFyOiAnMjAyNicsIGF1dGhvcjogJ01WUCcsIHJhcml0eTogJ3JhcmUnIH0sXG59O1xuXG5jb25zdCBTVEFSVElOR19TSEFSRURfREVDSyA9IFtcbiAgJ29fc2ltcGxlJyxcbiAgJ3Bfc2NvdXQnLFxuICAnb19mb3JiaWRkZW4nLFxuICAnb19zaW1wbGUnLFxuICAncF9ndWFyZCcsXG4gICdwX3dhcnJpb3InLFxuICAnb19zaW1wbGUnLFxuICAncF9lbGRlcicsXG4gICdwX3Njb3V0JyxcbiAgJ29fc2ltcGxlJyxcbiAgJ3BfY2hhbXBpb24nLFxuICAncF9ndWFyZCcsXG4gICdvX3NpbXBsZScsXG4gICdwX3dhcnJpb3InLFxuICAncF9zY291dCcsXG4gICdvX3NpbXBsZScsXG4gICdwX2VsZGVyJyxcbiAgJ3BfZ3VhcmQnLFxuICAnb19zaW1wbGUnLFxuXTtcblxuY29uc3QgU1RBUlRJTkdfR0FNRTogQ2hyaXN0aWFuaXR5R2FtZVN0YXRlID0ge1xuICBnYW1lSWQ6ICdtb2NrLWNocmlzdGlhbml0eScsXG4gIHN0YXR1czogJ2luX3Byb2dyZXNzJyxcbiAgbW9kZTogJ2xvY2FsX3Bhc3MnLFxuICB0dXJuT3duZXI6ICdQMScsXG4gIHJldmlzaW9uOiAwLFxuICB0dXJuQ291bnQ6IDEsXG4gIG1hdGNoU2NvcmU6IHsgUDE6IDAsIFAyOiAwIH0sXG4gIHNoYXJlZERlY2s6IFNUQVJUSU5HX1NIQVJFRF9ERUNLLFxuICBwbGFjZVpvbmU6IFtdLFxuICBoaXN0b3J5Wm9uZTogW10sXG4gIHBsYXllcnM6IHtcbiAgICBQMToge1xuICAgICAgc2VhdDogJ1AxJyxcbiAgICAgIGRpc3BsYXlOYW1lOiAnSnVnYWRvcicsXG4gICAgICBhdmF0YXI6ICdKJyxcbiAgICAgIGF2YXRhckNvbG9yOiAnIzI1NjNlYicsXG4gICAgICBsZWFkZXJOYW1lOiAnQWRhbScsXG4gICAgICBsZWFkZXJIcDogMTUsXG4gICAgICBsZWFkZXJNYXhIcDogMTUsXG4gICAgICBvZmZlcmluZ3M6IFtcbiAgICAgICAgeyBpbnN0YW5jZUlkOiAncDFfb2ZmZXJpbmdfMDAxJywgY2FyZElkOiAnb19zaW1wbGUnLCBuYW1lOiAnT2ZyZW5kYSBzaW1wbGUnLCBvd25lcjogJ1AxJywgcmVhZHk6IHRydWUsIHZhbHVlOiAxIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpbnN0YW5jZUlkOiAncDFfb2ZmZXJpbmdfMDAyJyxcbiAgICAgICAgICBjYXJkSWQ6ICdvX2ZvcmJpZGRlbicsXG4gICAgICAgICAgbmFtZTogJ0VsIGZydXRvIHByb2hpYmlkbycsXG4gICAgICAgICAgb3duZXI6ICdQMScsXG4gICAgICAgICAgcmVhZHk6IHRydWUsXG4gICAgICAgICAgdmFsdWU6IDIsXG4gICAgICAgICAgYWJpbGl0eU5hbWU6ICdDb25vY2ltaWVudG8gZGVsIGJpZW4geSBkZWwgbWFsJyxcbiAgICAgICAgICBhYmlsaXR5VGV4dDogJ0dlbmVyYSBlbCB2YWxvciBkZSAyIG9mcmVuZGFzLiBBbCB1c2FybGEsIGluZmxpZ2UgMSBwdW50byBkZSBkYcOxbyBhbCBsaWRlci4nLFxuICAgICAgICAgIGFiaWxpdHlDb3N0OiAwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIG9mZmVyaW5nUGxheWVkVGhpc1R1cm46IGZhbHNlLFxuICAgICAgaGFuZDogWydvX3NpbXBsZScsICdwX3Njb3V0JywgJ3Bfd2FycmlvcicsICdwX2d1YXJkJ10sXG4gICAgICBiYXR0bGVab25lOiBbXSxcbiAgICB9LFxuICAgIFAyOiB7XG4gICAgICBzZWF0OiAnUDInLFxuICAgICAgZGlzcGxheU5hbWU6ICdSaXZhbCcsXG4gICAgICBhdmF0YXI6ICdSJyxcbiAgICAgIGF2YXRhckNvbG9yOiAnI2I0NTMwOScsXG4gICAgICBsZWFkZXJOYW1lOiAnTm9haCcsXG4gICAgICBsZWFkZXJIcDogMTUsXG4gICAgICBsZWFkZXJNYXhIcDogMTUsXG4gICAgICBvZmZlcmluZ3M6IFt7IGluc3RhbmNlSWQ6ICdwMl9vZmZlcmluZ18wMDEnLCBjYXJkSWQ6ICdvX3NpbXBsZScsIG5hbWU6ICdPZnJlbmRhIHNpbXBsZScsIG93bmVyOiAnUDInLCByZWFkeTogdHJ1ZSwgdmFsdWU6IDEgfV0sXG4gICAgICBvZmZlcmluZ1BsYXllZFRoaXNUdXJuOiBmYWxzZSxcbiAgICAgIGhhbmRDb3VudDogNCxcbiAgICAgIGJhdHRsZVpvbmU6IFtcbiAgICAgICAge1xuICAgICAgICAgIGluc3RhbmNlSWQ6ICdvcHBfMDAxJyxcbiAgICAgICAgICBjYXJkSWQ6ICdwX3Njb3V0JyxcbiAgICAgICAgICBuYW1lOiAnU2NvdXQnLFxuICAgICAgICAgIG93bmVyOiAnUDInLFxuICAgICAgICAgIGNvbnRyb2xsZXI6ICdQMicsXG4gICAgICAgICAgc2xvdDogMCxcbiAgICAgICAgICBhdHRhY2s6IDEsXG4gICAgICAgICAgY3VycmVudEhwOiAxLFxuICAgICAgICAgIG1heEhwOiAxLFxuICAgICAgICAgIGNhbkF0dGFjazogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG4gIGxvZzogWydQYXJ0aWRhIGluaWNpYWRhLiddLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNocmlzdGlhbml0eS1nYW1lJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENka0RyYWcsXG4gICAgQ2RrRHJhZ1BsYWNlaG9sZGVyLFxuICAgIENka0RyYWdQcmV2aWV3LFxuICAgIENka0Ryb3BMaXN0LFxuICAgIExpZ2h0UmlwcGxlRGlyZWN0aXZlLFxuICAgIENocmlzdGlhbml0eUNhcmRDb21wb25lbnQsXG4gICAgTWluaUdhbWVDYWxsb3V0Q29tcG9uZW50LFxuICAgIE1pbmlHYW1lU2NvcmVQb3BDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1haW5cbiAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNoZWxsXCJcbiAgICAgIFtjbGFzcy5oYXMtbW9kYWwtb3Blbl09XCJoYXNNb2RhbE92ZXJsYXkoKVwiXG4gICAgICBbY2xhc3MuaXMtcHJlcGFyaW5nXT1cInNjcmVlbigpID09PSAndGFibGUnICYmIHR1dG9yaWFsUGhhc2UoKSAhPT0gJ2luX3Byb2dyZXNzJyAmJiB0dXRvcmlhbFBoYXNlKCkgIT09ICdmaW5pc2hlZCdcIlxuICAgICAgW2NsYXNzLmlzLW9mZmVyaW5nLWRyb3AtYWN0aXZlXT1cImNhblBsYWNlU2VsZWN0ZWRPZmZlcmluZygpIHx8IGlzRHJhZ2dpbmdPZmZlcmluZygpXCJcbiAgICA+XG4gICAgICBAaWYgKHNjcmVlbigpID09PSAnc3BsYXNoJykge1xuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1zcGxhc2hcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1zcGxhc2hfX21hcmtcIj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5U3BsYXNoRXllYnJvdycpIH19PC9zcGFuPlxuICAgICAgICAgICAgPGgyPnt7IHQoJ2NocmlzdGlhbml0eVNwbGFzaFRpdGxlJykgfX08L2gyPlxuICAgICAgICAgICAgPHA+e3sgc3BsYXNoU3RhdHVzVGV4dCgpIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9IEBlbHNlIGlmIChzY3JlZW4oKSA9PT0gJ2hvbWUnKSB7XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXN0YXJ0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1zdGFydF9faGVyb1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1zdGFydF9fY29weVwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlHZW5lc2lzRWRpdGlvbicpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8aDI+e3sgdCgnY2hyaXN0aWFuaXR5U3RhcnRUaXRsZScpIH19PC9oMj5cbiAgICAgICAgICAgICAgPHA+e3sgdCgnY2hyaXN0aWFuaXR5U3RhcnRCb2R5JykgfX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktc3RhcnRfX2ZhblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICBAZm9yIChjYXJkIG9mIHN0YXJ0RmVhdHVyZWRDYXJkcygpOyB0cmFjayBjYXJkLmlkKSB7XG4gICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZFxuICAgICAgICAgICAgICAgICAgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChjYXJkKVwiXG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYmFieVwiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUudHJhbnNmb3JtXT1cInN0YXJ0RmVhdHVyZWRDYXJkVHJhbnNmb3JtKCRpbmRleClcIlxuICAgICAgICAgICAgICAgID48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1zdGFydF9fY2FyZHNcIj5cbiAgICAgICAgICAgIDxhcnRpY2xlPlxuICAgICAgICAgICAgICA8c3Ryb25nPnt7IHQoJ2NocmlzdGlhbml0eVR1dG9yaWFsTW9kZScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDxwPnt7IHQoJ2NocmlzdGlhbml0eVR1dG9yaWFsTW9kZUJvZHknKSB9fTwvcD5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJpbWFyeS1hY3Rpb25cIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwic3RhcnRUdXRvcmlhbCgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5U3RhcnRUdXRvcmlhbCcpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgICAgICAgPGFydGljbGU+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgdCgnY2hyaXN0aWFuaXR5R2FsbGVyeScpIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDxwPnt7IHQoJ2NocmlzdGlhbml0eUdhbGxlcnlNb2RlQm9keScpIH19PC9wPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1zZWNvbmRhcnktYWN0aW9uXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cIm9wZW5HYWxsZXJ5KClcIj5cbiAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlPcGVuR2FsbGVyeScpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgICAgICAgPGFydGljbGU+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgdCgnY2hyaXN0aWFuaXR5SG93VG9QbGF5JykgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPHA+e3sgdCgnY2hyaXN0aWFuaXR5SG93VG9QbGF5Qm9keScpIH19PC9wPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1zZWNvbmRhcnktYWN0aW9uXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cImluc3BlY3RIb3dUb1BsYXkoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2xlYXJuTW9yZScpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktc3RhcnRfX3N0YXR1c1wiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5RWRpdGlvblN0YXR1cycpXCI+XG4gICAgICAgICAgICA8c3Bhbj57eyBnYWxsZXJ5RWRpdGlvbkxhYmVsKCkgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlUdXRvcmlhbEFjdGl2ZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+e3sgY2F0YWxvZ1N0YXR1c0xhYmVsKCkgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlGdXR1cmVNb2RlcycpXCI+XG4gICAgICAgICAgICBAZm9yIChtb2RlIG9mIGZ1dHVyZU1vZGVzKCk7IHRyYWNrIG1vZGUudGl0bGUpIHtcbiAgICAgICAgICAgICAgPGFydGljbGU+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyBtb2RlLnRpdGxlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPHA+e3sgbW9kZS5ib2R5IH19PC9wPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ3Nvb25UaXRsZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXBcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eU1hdGNoU2NvcmUnKVwiPlxuICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cImNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1hdmF0YXJcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJwbGF5ZXIoKS5hdmF0YXJDb2xvclwiPnt7IHBsYXllcigpLmF2YXRhciB9fTwvc3Bhbj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHN0cm9uZz57eyBwbGF5ZXIoKS5kaXNwbGF5TmFtZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgPHNtYWxsPnt7IHBsYXllckxlYWRlckRpc3BsYXlOYW1lKHBsYXllcigpKSB9fSDCtyB7eyBwbGF5ZXIoKS5sZWFkZXJIcCB9fS97eyBwbGF5ZXIoKS5sZWFkZXJNYXhIcCB9fTwvc21hbGw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1zY29yZWJvYXJkXCI+XG4gICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5TWF0Y2gnKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3Ryb25nPnt7IGdhbWUoKS5tYXRjaFNjb3JlLlAxIH19LXt7IGdhbWUoKS5tYXRjaFNjb3JlLlAyIH19PC9zdHJvbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YXJ0aWNsZSBjbGFzcz1cImNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllci0tb3Bwb25lbnRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1hdmF0YXJcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJvcHBvbmVudCgpLmF2YXRhckNvbG9yXCI+e3sgb3Bwb25lbnQoKS5hdmF0YXIgfX08L3NwYW4+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgb3Bwb25lbnQoKS5kaXNwbGF5TmFtZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgPHNtYWxsPnt7IHBsYXllckxlYWRlckRpc3BsYXlOYW1lKG9wcG9uZW50KCkpIH19IMK3IHt7IG9wcG9uZW50KCkubGVhZGVySHAgfX0ve3sgb3Bwb25lbnQoKS5sZWFkZXJNYXhIcCB9fTwvc21hbGw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgPHNlY3Rpb25cbiAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktdHVybi1iYW5uZXJcIlxuICAgICAgICBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS10dXJuLWJhbm5lclwiXG4gICAgICAgIFtjbGFzcy5pcy1vd24tdHVybl09XCJpc093blR1cm4oKVwiXG4gICAgICAgIFtjbGFzcy5pcy1yaXZhbC10dXJuXT1cIiFpc093blR1cm4oKSAmJiBnYW1lKCkuc3RhdHVzID09PSAnaW5fcHJvZ3Jlc3MnXCJcbiAgICAgICAgW2NsYXNzLmlzLWZpbmlzaGVkXT1cImdhbWUoKS5zdGF0dXMgPT09ICdmaW5pc2hlZCdcIlxuICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eVR1cm4nKSB9fSB7eyBnYW1lKCkudHVybkNvdW50IH19PC9zcGFuPlxuICAgICAgICAgIDxzdHJvbmc+e3sgdHVybkJhbm5lclRpdGxlKCkgfX08L3N0cm9uZz5cbiAgICAgICAgICA8cD57eyB0dXJuQmFubmVyQm9keSgpIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS10dXJuLWFjdGlvbnNcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWVuZC10dXJuXCJcbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWVuZC10dXJuXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNPd25UdXJuKCkgfHwgdHV0b3JpYWxQaGFzZSgpICE9PSAnaW5fcHJvZ3Jlc3MnIHx8ICEhY29tYmF0QW5pbWF0aW9uKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVuZFR1cm4oKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5RW5kVHVybicpIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktb3B0aW9ucy1idXR0b25cIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1vcHRpb25zLWJ1dHRvblwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJ0b2dnbGVPcHRpb25zKClcIj5cbiAgICAgICAgICAgIHt7IHQoJ2NocmlzdGlhbml0eU9wdGlvbnMnKSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChzaG93T3B0aW9ucygpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1vcHRpb25zLW1lbnVcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1vcHRpb25zLW1lbnVcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJyZXN0YXJ0VHV0b3JpYWwoKVwiPnt7IHQoJ2NocmlzdGlhbml0eVJlc3RhcnQnKSB9fTwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cImdhbWUoKS5zdGF0dXMgPT09ICdmaW5pc2hlZCdcIiAoY2xpY2spPVwicmVzaWduVHV0b3JpYWwoKVwiPnt7IHQoJ2NocmlzdGlhbml0eVJlc2lnbicpIH19PC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicmV0dXJuVG9DaHJpc3RpYW5pdHlIb21lKClcIj57eyB0KCdjaHJpc3RpYW5pdHlCYWNrVG9NZW51JykgfX08L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oYW5kLXNoZWxmIGNocmlzdGlhbml0eS1oYW5kLXNoZWxmLS1vcHBvbmVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXItLW9wcG9uZW50XCI+XG4gICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5SGFuZCcpIH19PC9zcGFuPlxuICAgICAgICAgIDxzdHJvbmc+e3sgb3Bwb25lbnRIYW5kQ291bnQoKSB9fTwvc3Ryb25nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktaGFuZC1mYW4gY2hyaXN0aWFuaXR5LWhhbmQtZmFuLS1vcHBvbmVudFwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LW9wcG9uZW50LWhhbmRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eU9wcG9uZW50SGFuZCcpXCI+XG4gICAgICAgICAgQGZvciAoXyBvZiBoaWRkZW5IYW5kQ2FyZHMob3Bwb25lbnRIYW5kQ291bnQoKSk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlkZGVuLWNhcmQtYnV0dG9uIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIlxuICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICBbc3R5bGUudHJhbnNmb3JtXT1cImZhblRyYW5zZm9ybSgkaW5kZXgsIG9wcG9uZW50SGFuZENvdW50KCksIHRydWUpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlIaWRkZW5DYXJkJylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cImhpZGRlbkNhcmRSZW5kZXJDYXJkKClcIiB2YXJpYW50PVwiYmFja1wiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXRhYmxlXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktdGFibGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eVRhYmxlJylcIj5cbiAgICAgICAgQGlmICh0dXRvcmlhbFBoYXNlKCkgIT09ICdpbl9wcm9ncmVzcycgJiYgdHV0b3JpYWxQaGFzZSgpICE9PSAnZmluaXNoZWQnKSB7XG4gICAgICAgICAgPHNlY3Rpb25cbiAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNldHVwLXBhbmVsXCJcbiAgICAgICAgICAgIFtjbGFzcy5jaHJpc3RpYW5pdHktc2V0dXAtcGFuZWwtLWNvaW5dPVwidHV0b3JpYWxQaGFzZSgpID09PSAnY29pbidcIlxuICAgICAgICAgICAgW2NsYXNzLmNocmlzdGlhbml0eS1zZXR1cC1wYW5lbC0tbGVhZGVyLXBpY2tdPVwidHV0b3JpYWxQaGFzZSgpID09PSAnbGVhZGVyX3BpY2snXCJcbiAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LXNldHVwLXBhbmVsXCJcbiAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQGlmICh0dXRvcmlhbFBoYXNlKCkgPT09ICdjb2luJykge1xuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktc2V0dXAtY29pblwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLXJpdmFsLXdvbl09XCJ0dXRvcmlhbFNldHVwKCk/LmNvaW5XaW5uZXIgPT09ICdQMidcIlxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eU1hdGNoU2V0dXAnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGgyPnt7IHNldHVwVGl0bGUoKSB9fTwvaDI+XG4gICAgICAgICAgICAgIDxwPnt7IHNldHVwQm9keSgpIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKHR1dG9yaWFsUGhhc2UoKSA9PT0gJ2NvaW4nKSB7XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByaW1hcnktYWN0aW9uXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktY29udGludWUtc2V0dXBcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwiY29udGludWVBZnRlckNvaW4oKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2NocmlzdGlhbml0eUNvbnRpbnVlJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHR1dG9yaWFsUGhhc2UoKSA9PT0gJ2xlYWRlcl9waWNrJykge1xuICAgICAgICAgICAgICBAaWYgKHR1dG9yaWFsU2V0dXAoKT8ubGVhZGVyUGlja2VyID09PSAnUDEnICYmICh0dXRvcmlhbFNldHVwKCk/LmF2YWlsYWJsZUxlYWRlcnM/Lmxlbmd0aCA/PyAwKSA+IDEpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtbWV0ZXJcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eUxlYWRlckNob2ljZVRpbWVyJykucmVwbGFjZSgne3NlY29uZHN9JywgbGVhZGVyQ2hvaWNlU2Vjb25kcygpLnRvU3RyaW5nKCkpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPGkgW3N0eWxlLnRyYW5zZm9ybV09XCInc2NhbGVYKCcgKyAobGVhZGVyQ2hvaWNlU2Vjb25kcygpIC8gbGVhZGVyQ2hvaWNlVG90YWxTZWNvbmRzKSArICcpJ1wiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtZ3JpZFwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtZ3JpZFwiPlxuICAgICAgICAgICAgICAgICAgQGZvciAobGVhZGVySWQgb2YgdHV0b3JpYWxTZXR1cCgpPy5hdmFpbGFibGVMZWFkZXJzID8/IFtdOyB0cmFjayBsZWFkZXJJZCkge1xuICAgICAgICAgICAgICAgICAgICBAbGV0IGxlYWRlciA9IGNhcmREZWZpbml0aW9uKGxlYWRlcklkKTtcbiAgICAgICAgICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9XCJjaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1vcHRpb25cIiBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwic2VsZWN0ZWRUdXRvcmlhbExlYWRlcklkKCkgPT09IGxlYWRlcklkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLWNhcmQgY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1wcmVzc2VkXT1cInNlbGVjdGVkVHV0b3JpYWxMZWFkZXJJZCgpID09PSBsZWFkZXJJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VHV0b3JpYWxMZWFkZXIobGVhZGVySWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cImRlZmluaXRpb25Ub1JlbmRlckNhcmQobGVhZGVyKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHNlbGVjdGVkVHV0b3JpYWxMZWFkZXJJZCgpID09PSBsZWFkZXJJZCA/IHQoJ2NocmlzdGlhbml0eUxlYWRlclNlbGVjdGVkJykgOiB0KCdjaHJpc3RpYW5pdHlTZWxlY3RMZWFkZXInKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtZGV0YWlsXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cImluc3BlY3RMZWFkZXJDaG9pY2UobGVhZGVySWQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHQoJ2NocmlzdGlhbml0eVZpZXdEZXRhaWxzJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJpbWFyeS1hY3Rpb25cIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1jb25maXJtLWxlYWRlclwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJjb25maXJtVHV0b3JpYWxMZWFkZXIoKVwiPlxuICAgICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5Q2hvb3NlVGhpc0xlYWRlcicpIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByaW1hcnktYWN0aW9uXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktY29udGludWUtc2V0dXBcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwiY29udGludWVBZnRlckNvaW4oKVwiPlxuICAgICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5Q29udGludWUnKSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoZ2FtZSgpLnN0YXR1cyA9PT0gJ2ZpbmlzaGVkJykge1xuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXJlc3VsdC1wYW5lbFwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LXJlc3VsdC1wYW5lbFwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5R2FtZU92ZXInKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxoMj57eyByZXN1bHRUaXRsZSgpIH19PC9oMj5cbiAgICAgICAgICAgIDxwPnt7IHJlc3VsdEJvZHkoKSB9fTwvcD5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByaW1hcnktYWN0aW9uXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktcGxheS1hZ2FpblwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJyZXN0YXJ0VHV0b3JpYWwoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2NocmlzdGlhbml0eVBsYXlBZ2FpbicpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1zZWNvbmRhcnktYWN0aW9uXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cInJldHVyblRvQ2hyaXN0aWFuaXR5SG9tZSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5QmFja1RvTWVudScpIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktaW1wYWN0LWxheWVyXCI+XG4gICAgICAgICAgQGlmIChjb21iYXRUcmFpbCgpOyBhcyB0cmFpbCkge1xuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsXCJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmlzLWxlYWRlci10YXJnZXRdPVwidHJhaWwudG9uZSA9PT0gJ2xlYWRlcidcIlxuICAgICAgICAgICAgICBbY2xhc3MuaXMtY2hhcmFjdGVyLXRhcmdldF09XCJ0cmFpbC50b25lID09PSAnY2hhcmFjdGVyJ1wiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwteF09XCJ0cmFpbC5mcm9tWFwiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwteV09XCJ0cmFpbC5mcm9tWVwiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbWlkLXhdPVwidHJhaWwubWlkWFwiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbWlkLXldPVwidHJhaWwubWlkWVwiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbGVuZ3RoXT1cInRyYWlsLmxlbmd0aFwiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtYW5nbGVdPVwidHJhaWwuYW5nbGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBmb3IgKGltcGFjdCBvZiBpbXBhY3RFdmVudHMoKTsgdHJhY2sgaW1wYWN0LmlkKSB7XG4gICAgICAgICAgICA8dmFsLW1pbmktZ2FtZS1zY29yZS1wb3AgW3Byb3BzXT1cImltcGFjdFBvcFByb3BzKGltcGFjdClcIiAvPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKGNvbWJhdENhbGxvdXQoKTsgYXMgY2FsbG91dCkge1xuICAgICAgICAgICAgPHZhbC1taW5pLWdhbWUtY2FsbG91dCBbcHJvcHNdPVwiY2FsbG91dFwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLXNpZGUgY2hyaXN0aWFuaXR5LXBsYXllci1zaWRlLS1vcHBvbmVudFwiPlxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrIGNocmlzdGlhbml0eS1wbGF5ZXItcmFjay0tb3Bwb25lbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLXpvbmVcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZVwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1QMlwiIFtjbGFzcy5pcy1lbXB0eS16b25lXT1cIiF0b3BPZmZlcmluZygnUDInKVwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJvcGVuT2ZmZXJpbmdzKCdQMicpXCI+XG4gICAgICAgICAgICAgICAgQGlmIChvZmZlcmluZ1N0YWNrKCdQMicpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktem9uZS1jYXJkLXN0YWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKG9mZmVyaW5nIG9mIG9mZmVyaW5nU3RhY2soJ1AyJyk7IHRyYWNrIG9mZmVyaW5nLmluc3RhbmNlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2FyZF09XCJvZmZlcmluZy5yZWFkeSA/IG9mZmVyaW5nUmVuZGVyQ2FyZChvZmZlcmluZykgOiBoaWRkZW5DYXJkUmVuZGVyQ2FyZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YXJpYW50XT1cIm9mZmVyaW5nLnJlYWR5ID8gJ2JhYnknIDogJ2JhY2snXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwiem9uZVN0YWNrVHJhbnNmb3JtKCRpbmRleCwgb2ZmZXJpbmdTdGFjaygnUDInKS5sZW5ndGgpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWVtcHR5LWNhcmQtc2xvdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdSZXNlcnZlJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyByZWFkeU9mZmVyaW5ncyhvcHBvbmVudCgpKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDxzbWFsbD57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0Jhc2UnKSB9fSB7eyB0b3RhbE9mZmVyaW5ncyhvcHBvbmVudCgpKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWF0dGFjay1kcm9wLXRhcmdldFwiXG4gICAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAgIGlkPVwiY2hyaXN0aWFuaXR5LW9wcG9uZW50LWxlYWRlci1kcm9wXCJcbiAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0Q29ubmVjdGVkVG9dPVwib3duQXR0YWNrZXJEcm9wU291cmNlSWRzKClcIlxuICAgICAgICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJjYW5Ecm9wT25PcHBvbmVudExlYWRlclwiXG4gICAgICAgICAgICAgIFtjZGtEcm9wTGlzdFNvcnRpbmdEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wT25PcHBvbmVudExlYWRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIlxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWxlYWRlci1QMlwiXG4gICAgICAgICAgICAgICAgdmFsTGlnaHRSaXBwbGVcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtdGFyZ2V0XT1cImlzT3Bwb25lbnRMZWFkZXJUYXJnZXQoKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLXByb3RlY3RlZC10YXJnZXRdPVwic2VsZWN0ZWRBdHRhY2tlcigpICYmIGhhc09wcG9uZW50R3VhcmRzKClcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1jb21iYXQtdGFyZ2V0XT1cImlzQ29tYmF0TGVhZGVyVGFyZ2V0KCdQMicpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3Bwb25lbnRMZWFkZXIoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJsZWFkZXJSZW5kZXJDYXJkKG9wcG9uZW50KCkpXCIgdmFyaWFudD1cImJvYXJkXCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1yYWNrLXNwYWNlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1iYXR0bGUtem9uZSBjaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUtLW9wcG9uZW50XCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktYmF0dGxlLVAyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlPcHBvbmVudEJhdHRsZScpXCI+XG4gICAgICAgICAgICBAZm9yIChzbG90IG9mIGJhdHRsZVNsb3RzKCdQMicpOyB0cmFjayBzbG90LnRyYWNrSWQpIHtcbiAgICAgICAgICAgICAgQGlmIChzbG90LmNhcmQpIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkIGNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiYmF0dGxlQ2FyZFRlc3RJZCgnUDInLCBzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAgICAgICBbaWRdPVwib3Bwb25lbnRUYXJnZXREcm9wSWQoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJvd25BdHRhY2tlckRyb3BTb3VyY2VJZHMoKVwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RFbnRlclByZWRpY2F0ZV09XCJjYW5Ecm9wT25PcHBvbmVudENoYXJhY3RlclwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RTb3J0aW5nRGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLXRhcmdldF09XCJpc09wcG9uZW50Q2hhcmFjdGVyVGFyZ2V0KHNsb3QuY2FyZClcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWNvbWJhdC10YXJnZXRdPVwiaXNDb21iYXRDaGFyYWN0ZXJUYXJnZXQoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BPbk9wcG9uZW50Q2hhcmFjdGVyKCRldmVudCwgc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3Bwb25lbnRDaGFyYWN0ZXIoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJjaGFyYWN0ZXJSZW5kZXJDYXJkKHNsb3QuY2FyZClcIiB2YXJpYW50PVwiYm9hcmRcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktc2xvdFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktc2hhcmVkLXpvbmVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eVNoYXJlZFpvbmUnKVwiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSBjaHJpc3RpYW5pdHktem9uZS1waWxlLS1oaXN0b3J5XCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktaGlzdG9yeS16b25lXCIgW2NsYXNzLmlzLWVtcHR5LXpvbmVdPVwiIXRvcEhpc3RvcnlDYXJkKClcIiBbY2xhc3MuaGFzLW5ldy1jYXJkXT1cImhpc3RvcnlQdWxzZSgpXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cIm9wZW5IaXN0b3J5KClcIj5cbiAgICAgICAgICAgIEBpZiAoaGlzdG9yeVN0YWNrKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXpvbmUtY2FyZC1zdGFja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGNhcmRJZCBvZiBoaXN0b3J5U3RhY2soKTsgdHJhY2sgY2FyZElkICsgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkXG4gICAgICAgICAgICAgICAgICAgIFtjYXJkXT1cImRlZmluaXRpb25Ub1JlbmRlckNhcmQoY2FyZERlZmluaXRpb24oY2FyZElkKSwgeyBzdGF0dXNUZXh0OiB0KCdjaHJpc3RpYW5pdHlIaXN0b3J5JykgfSlcIlxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiYmFieVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwiem9uZVN0YWNrVHJhbnNmb3JtKCRpbmRleCwgaGlzdG9yeVN0YWNrKCkubGVuZ3RoKVwiXG4gICAgICAgICAgICAgICAgICA+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktZW1wdHktY2FyZC1zbG90XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5SGlzdG9yeScpIH19PC9zcGFuPlxuICAgICAgICAgICAgPHN0cm9uZz57eyBnYW1lKCkuaGlzdG9yeVpvbmUubGVuZ3RoIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktem9uZS1waWxlIGNocmlzdGlhbml0eS16b25lLXBpbGUtLWRlY2tcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1kZWNrLXpvbmVcIiB2YWxMaWdodFJpcHBsZSBhcmlhLWxpdmU9XCJwb2xpdGVcIiAoY2xpY2spPVwiaW5zcGVjdERlY2soKVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktcGlsZS1jYXJkLWhpbnQgY2hyaXN0aWFuaXR5LXBpbGUtY2FyZC1oaW50LS1kZWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxpPjwvaT5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eURlY2snKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgZ2FtZSgpLnNoYXJlZERlY2subGVuZ3RoIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS16b25lLWNhcmQgY2hyaXN0aWFuaXR5LXpvbmUtY2FyZC0tcGxhY2UgY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvblwiXG4gICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1wbGFjZS16b25lXCJcbiAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICBpZD1cImNocmlzdGlhbml0eS1wbGFjZS1kcm9wXCJcbiAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIlsnY2hyaXN0aWFuaXR5LWhhbmQtc291cmNlJ11cIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwiY2FuRHJvcE9uUGxhY2VcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW2NsYXNzLmlzLWVtcHR5LXpvbmVdPVwiIWFjdGl2ZVBsYWNlQ2FyZCgpXCJcbiAgICAgICAgICAgIFtjbGFzcy5pcy1wbGF5LXRhcmdldF09XCJjYW5QbGFjZVNlbGVjdGVkUGxhY2UoKSB8fCBpc0RyYWdnaW5nUGxhY2UoKVwiXG4gICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wT25QbGFjZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJwbGF5U2VsZWN0ZWRQbGFjZU9ySW5zcGVjdCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKHBsYWNlU3RhY2soKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgQGlmIChhY3RpdmVQbGFjZUNhcmQoKTsgYXMgcGxhY2VDYXJkKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxhY2UtYmFja2Ryb3BcIiBbc3R5bGUuYmFja2dyb3VuZC1pbWFnZV09XCJwbGFjZUJhY2tkcm9wSW1hZ2UocGxhY2VDYXJkKVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXpvbmUtY2FyZC1zdGFja1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGNhcmRJZCBvZiBwbGFjZVN0YWNrKCk7IHRyYWNrIGNhcmRJZCArICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZFxuICAgICAgICAgICAgICAgICAgICBbY2FyZF09XCJkZWZpbml0aW9uVG9SZW5kZXJDYXJkKGNhcmREZWZpbml0aW9uKGNhcmRJZCksIHsgc3RhdHVzVGV4dDogdCgnY2hyaXN0aWFuaXR5UGxhY2UnKSB9KVwiXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJiYWJ5XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCJ6b25lU3RhY2tUcmFuc2Zvcm0oJGluZGV4LCBwbGFjZVN0YWNrKCkubGVuZ3RoKVwiXG4gICAgICAgICAgICAgICAgICA+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktZW1wdHktY2FyZC1zbG90XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5UGxhY2UnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgZ2FtZSgpLnBsYWNlWm9uZS5sZW5ndGggfX08L3N0cm9uZz5cbiAgICAgICAgICAgIEBpZiAoY2FuUGxhY2VTZWxlY3RlZFBsYWNlKCkgfHwgaXNEcmFnZ2luZ1BsYWNlKCkpIHtcbiAgICAgICAgICAgICAgPGVtPnt7IHQoJ2NocmlzdGlhbml0eVBsYXlIZXJlJykgfX08L2VtPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLXNpZGVcIj5cbiAgICAgICAgICA8c2VjdGlvblxuICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktYmF0dGxlLXpvbmVcIlxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktYmF0dGxlLVAxXCJcbiAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICBpZD1cImNocmlzdGlhbml0eS1wbGF5ZXItYmF0dGxlLXNvdXJjZVwiXG4gICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJhdHRhY2tUYXJnZXREcm9wSWRzKClcIlxuICAgICAgICAgICAgW2Nka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW2NsYXNzLmlzLXBsYWNpbmctY2FyZF09XCJjYW5QbGFjZVNlbGVjdGVkQ2hhcmFjdGVyKCkgfHwgaXNEcmFnZ2luZ0NoYXJhY3RlcigpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5WW91ckJhdHRsZScpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAZm9yIChzbG90IG9mIGJhdHRsZVNsb3RzKCdQMScpOyB0cmFjayBzbG90LnRyYWNrSWQpIHtcbiAgICAgICAgICAgICAgQGlmIChzbG90LmNhcmQpIHtcbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkIGNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiYmF0dGxlQ2FyZFRlc3RJZCgnUDEnLCBzbG90LmNhcmQpXCJcbiAgICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgICAgIFtjZGtEcmFnRGF0YV09XCJzbG90LmNhcmQuaW5zdGFuY2VJZFwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFjYW5EcmFnQXR0YWNrZXIoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgICB2YWxMaWdodFJpcHBsZVxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cInNlbGVjdGVkQXR0YWNrZXIoKT8uaW5zdGFuY2VJZCA9PT0gc2xvdC5jYXJkLmluc3RhbmNlSWRcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWV4aGF1c3RlZF09XCIhc2xvdC5jYXJkLmNhbkF0dGFja1wiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtcmVhZHktYXR0YWNrZXJdPVwiaXNPd25UdXJuKCkgJiYgc2xvdC5jYXJkLmNhbkF0dGFja1wiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtY29tYmF0LWF0dGFja2VyXT1cImlzQ29tYmF0QXR0YWNrZXIoc2xvdC5jYXJkKVwiXG4gICAgICAgICAgICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwic3RhcnREcmFnZ2luZ0F0dGFja2VyKHNsb3QuY2FyZClcIlxuICAgICAgICAgICAgICAgICAgKGNka0RyYWdFbmRlZCk9XCJlbmREcmFnZ2luZ0F0dGFja2VyKClcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEF0dGFja2VyKHNsb3QuY2FyZClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiY2hhcmFjdGVyUmVuZGVyQ2FyZChzbG90LmNhcmQpXCIgdmFyaWFudD1cImJvYXJkXCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgY2RrRHJhZ1ByZXZpZXc+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1kcmFnLXByZXZpZXdcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cImNoYXJhY3RlclJlbmRlckNhcmQoc2xvdC5jYXJkKVwiIHZhcmlhbnQ9XCJib2FyZFwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgY2RrRHJhZ1BsYWNlaG9sZGVyPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtZHJhZy1wbGFjZWhvbGRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1zbG90XCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cImJhdHRsZVNsb3RUZXN0SWQoJ1AxJywgJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAgICAgW2lkXT1cImJhdHRsZVNsb3REcm9wSWQoJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cIiRpbmRleFwiXG4gICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbJ2NocmlzdGlhbml0eS1oYW5kLXNvdXJjZSddXCJcbiAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImNhbkRyb3BPbkJhdHRsZVNsb3RcIlxuICAgICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldF09XCJjYW5QbGFjZVNlbGVjdGVkQ2hhcmFjdGVyKCkgfHwgaXNEcmFnZ2luZ0NoYXJhY3RlcigpXCJcbiAgICAgICAgICAgICAgICAgIHZhbExpZ2h0UmlwcGxlXG4gICAgICAgICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3BPbkJhdHRsZVNsb3QoJGV2ZW50LCAkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwbGF5U2VsZWN0ZWRDYXJkKCRpbmRleClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEBpZiAoY2FuUGxhY2VTZWxlY3RlZENoYXJhY3RlcigpIHx8IGlzRHJhZ2dpbmdDaGFyYWN0ZXIoKSkge1xuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlQbGF5SGVyZScpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLXJhY2tcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLXpvbmVcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWRyb3AtdGFyZ2V0XCJcbiAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAgIGlkPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1kcm9wXCJcbiAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbJ2NocmlzdGlhbml0eS1oYW5kLXNvdXJjZSddXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaXMtcGxheS10YXJnZXRdPVwiY2FuUGxhY2VTZWxlY3RlZE9mZmVyaW5nKCkgfHwgaXNEcmFnZ2luZ09mZmVyaW5nKClcIlxuICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImNhbkRyb3BPbk9mZmVyaW5nc1wiXG4gICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcE9uT2ZmZXJpbmdzKCRldmVudClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlXCJcbiAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1QMVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtZW1wdHktem9uZV09XCIhdG9wT2ZmZXJpbmcoJ1AxJylcIlxuICAgICAgICAgICAgICAgICAgdmFsTGlnaHRSaXBwbGVcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPZmZlcmluZ1BpbGUoJ1AxJylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEBpZiAob2ZmZXJpbmdTdGFjaygnUDEnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktem9uZS1jYXJkLXN0YWNrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQGZvciAob2ZmZXJpbmcgb2Ygb2ZmZXJpbmdTdGFjaygnUDEnKTsgdHJhY2sgb2ZmZXJpbmcuaW5zdGFuY2VJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FyZF09XCJvZmZlcmluZy5yZWFkeSA/IG9mZmVyaW5nUmVuZGVyQ2FyZChvZmZlcmluZykgOiBoaWRkZW5DYXJkUmVuZGVyQ2FyZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhcmlhbnRdPVwib2ZmZXJpbmcucmVhZHkgPyAnYmFieScgOiAnYmFjaydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUudHJhbnNmb3JtXT1cInpvbmVTdGFja1RyYW5zZm9ybSgkaW5kZXgsIG9mZmVyaW5nU3RhY2soJ1AxJykubGVuZ3RoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktZW1wdHktY2FyZC1zbG90XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdSZXNlcnZlJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHJlYWR5T2ZmZXJpbmdzKHBsYXllcigpKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgPHNtYWxsPnt7IHQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQmFzZScpIH19IHt7IHRvdGFsT2ZmZXJpbmdzKHBsYXllcigpKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1sZWFkZXItY2FyZCBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktbGVhZGVyLVAxXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cImluc3BlY3RMZWFkZXIoJ1AxJylcIj5cbiAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJsZWFkZXJSZW5kZXJDYXJkKHBsYXllcigpKVwiIHZhcmlhbnQ9XCJib2FyZFwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXBsYXllci1jb21tYW5kXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktYXZhdGFyXCIgW3N0eWxlLmJhY2tncm91bmRdPVwicGxheWVyKCkuYXZhdGFyQ29sb3JcIj57eyBwbGF5ZXIoKS5hdmF0YXIgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyBwbGF5ZXIoKS5kaXNwbGF5TmFtZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oYW5kLXNoZWxmXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGFuZC1tZXRlclwiPlxuICAgICAgICAgIDxzcGFuPnt7IHQoJ2NocmlzdGlhbml0eUhhbmQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3Ryb25nPnt7IHBsYXllcigpLmhhbmQ/Lmxlbmd0aCA/PyAwIH19PC9zdHJvbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2VjdGlvblxuICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhhbmQtZmFuXCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1oYW5kLVAxXCJcbiAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgIGlkPVwiY2hyaXN0aWFuaXR5LWhhbmQtc291cmNlXCJcbiAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJkcm9wVGFyZ2V0SWRzKClcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5WW91ckhhbmQnKVwiXG4gICAgICAgICAgKHBvaW50ZXJsZWF2ZSk9XCJjbGVhckhvdmVyZWRIYW5kSW5kZXgoKVwiXG4gICAgICAgID5cbiAgICAgICAgICBAZm9yIChjYXJkSWQgb2YgcGxheWVyKCkuaGFuZCA/PyBbXTsgdHJhY2sgY2FyZElkICsgJGluZGV4KSB7XG4gICAgICAgICAgICBAbGV0IGNhcmQgPSBjYXJkRGVmaW5pdGlvbihjYXJkSWQpO1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJzZWxlY3RlZEhhbmRDYXJkKCkgPT09IGNhcmRJZFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5pcy1kcmFnZ2luZ109XCJkcmFnZ2luZ0NhcmRJZCgpID09PSBjYXJkSWRcIlxuICAgICAgICAgICAgICBbc3R5bGUuei1pbmRleF09XCJoYW5kQ2FyZFpJbmRleCgkaW5kZXgpXCJcbiAgICAgICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCJmYW5UcmFuc2Zvcm0oJGluZGV4LCBwbGF5ZXIoKS5oYW5kPy5sZW5ndGggPz8gMCwgZmFsc2UpXCJcbiAgICAgICAgICAgICAgKHBvaW50ZXJlbnRlcik9XCJzZXRIb3ZlcmVkSGFuZEluZGV4KCRpbmRleClcIlxuICAgICAgICAgICAgICAocG9pbnRlcmRvd24pPVwic2V0SG92ZXJlZEhhbmRJbmRleCgkaW5kZXgpXCJcbiAgICAgICAgICAgICAgKHBvaW50ZXJ1cCk9XCJyZWxlYXNlSG92ZXJlZEhhbmQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZCBjaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQgY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiaGFuZENhcmRUZXN0SWQoY2FyZElkLCAkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgICAgdmFsTGlnaHRSaXBwbGVcbiAgICAgICAgICAgICAgICBbY2RrRHJhZ0RhdGFdPVwiY2FyZElkXCJcbiAgICAgICAgICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFjYW5QbGF5KGNhcmQpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImhhbmRDYXJkQWN0aW9uTGFiZWwoY2FyZClcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJzZWxlY3RlZEhhbmRDYXJkKCkgPT09IGNhcmRJZFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLWRpc2FibGVkXT1cIiFjYW5QbGF5KGNhcmQpXCJcbiAgICAgICAgICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwic3RhcnREcmFnZ2luZ0NhcmQoY2FyZElkKVwiXG4gICAgICAgICAgICAgICAgKGNka0RyYWdFbmRlZCk9XCJlbmREcmFnZ2luZ0NhcmQoKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEhhbmRDYXJkKGNhcmRJZClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJkZWZpbml0aW9uVG9SZW5kZXJDYXJkKGNhcmQpXCIgdmFyaWFudD1cImJhYnlcIj48L3ZhbC1jaHJpc3RpYW5pdHktY2FyZD5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgY2RrRHJhZ1ByZXZpZXc+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtZHJhZy1wcmV2aWV3XCI+XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChjYXJkKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBjZGtEcmFnUGxhY2Vob2xkZXI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWNhcmQtZHJhZy1wbGFjZWhvbGRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaHJpc3RpYW5pdHktY2FyZC1leWVcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5UHJldmlld0NhcmQnKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImluc3BlY3RIYW5kQ2FyZChjYXJkSWQsIHRydWUpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChzZWxlY3RlZFByZXZpZXcoKSkge1xuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWJhY2tkcm9wXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlDbG9zZVByZXZpZXcnKVwiIChjbGljayk9XCJjbG9zZVByZXZpZXcoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YXNpZGVcbiAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsXCJcbiAgICAgICAgICBbY2xhc3MuaXMtaGlzdG9yeS1wcmV2aWV3XT1cImNhbk5hdmlnYXRlUHJldmlldygpXCJcbiAgICAgICAgICBbY2xhc3MuaXMtZ2FsbGVyeS1wcmV2aWV3XT1cInNlbGVjdGVkUHJldmlldygpPy5zb3VyY2UgPT09ICdnYWxsZXJ5J1wiXG4gICAgICAgICAgW2NsYXNzLmlzLXNsaWRpbmctcHJldmlvdXNdPVwicHJldmlld1NsaWRlRGlyZWN0aW9uKCkgPT09IC0xXCJcbiAgICAgICAgICBbY2xhc3MuaXMtc2xpZGluZy1uZXh0XT1cInByZXZpZXdTbGlkZURpcmVjdGlvbigpID09PSAxXCJcbiAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LXRvcGJhclwiPlxuICAgICAgICAgICAgQGlmIChwcmV2aWV3UG9zaXRpb25MYWJlbCgpOyBhcyBwb3NpdGlvbkxhYmVsKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctcG9zaXRpb25cIj57eyBwb3NpdGlvbkxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VQcmV2aWV3KClcIj5cbiAgICAgICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1zdGFnZVwiPlxuICAgICAgICAgICAgICBAaWYgKGNhbk5hdmlnYXRlUHJldmlldygpKSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LW5hdiBjaHJpc3RpYW5pdHktcHJldmlldy1uYXYtLXByZXZpb3VzXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5UHJldmlvdXNDYXJkJylcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlUHJldmlldygtMSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICZsdDtcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2IGNocmlzdGlhbml0eS1wcmV2aWV3LW5hdi0tbmV4dFwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eU5leHRDYXJkJylcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlUHJldmlldygxKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgJmd0O1xuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAoc2VsZWN0ZWRQcmV2aWV3TmVpZ2hib3JSZW5kZXJDYXJkKC0xKTsgYXMgcHJldmlvdXNDYXJkKSB7XG4gICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWdob3N0IGNocmlzdGlhbml0eS1wcmV2aWV3LWdob3N0LS1wcmV2aW91c1wiIFtjYXJkXT1cInByZXZpb3VzQ2FyZFwiIHZhcmlhbnQ9XCJmdWxsXCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmRcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXByZXZpZXctcm90YXRlLXhdPVwicHJldmlld1RpbHQoKS5yb3RhdGVYICsgJ2RlZydcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXByZXZpZXctcm90YXRlLXldPVwicHJldmlld1RpbHQoKS5yb3RhdGVZICsgJ2RlZydcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXByZXZpZXctc2hpZnQteF09XCJwcmV2aWV3VGlsdCgpLnNoaWZ0WCArICdweCdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXByZXZpZXctc2hpZnQteV09XCJwcmV2aWV3VGlsdCgpLnNoaWZ0WSArICdweCdcIlxuICAgICAgICAgICAgICAgIChwb2ludGVyZG93bik9XCJzdGFydFByZXZpZXdTd2lwZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAocG9pbnRlcm1vdmUpPVwidGlsdFByZXZpZXcoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHBvaW50ZXJ1cCk9XCJmaW5pc2hQcmV2aWV3U3dpcGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHBvaW50ZXJjYW5jZWwpPVwiY2FuY2VsUHJldmlld1N3aXBlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChwb2ludGVybGVhdmUpPVwicmVzZXRQcmV2aWV3VGlsdCgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAoc2VsZWN0ZWRQcmV2aWV3UmVuZGVyQ2FyZCgpOyBhcyBwcmV2aWV3Q2FyZCkge1xuICAgICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJwcmV2aWV3Q2FyZFwiIHZhcmlhbnQ9XCJmdWxsXCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgQGlmIChzZWxlY3RlZFByZXZpZXdOZWlnaGJvclJlbmRlckNhcmQoMSk7IGFzIG5leHRDYXJkKSB7XG4gICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWdob3N0IGNocmlzdGlhbml0eS1wcmV2aWV3LWdob3N0LS1uZXh0XCIgW2NhcmRdPVwibmV4dENhcmRcIiB2YXJpYW50PVwiZnVsbFwiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1zaWRlXCI+XG4gICAgICAgICAgICAgIEBpZiAocHJldmlld1J1bGUoKTsgYXMgcnVsZSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZS1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+aTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbD57eyB0KCdjaHJpc3RpYW5pdHlDYXJkUnVsZScpIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBydWxlLnRpdGxlIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDxwPnt7IHJ1bGUuYm9keSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKHNob3dQcmV2aWV3QWJpbGl0aWVzKCkpIHtcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzXCI+XG4gICAgICAgICAgICAgIDxoZWFkZXIgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbD57eyB0KCdjaHJpc3RpYW5pdHlBYmlsaXRpZXMnKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgICBAaWYgKHNlbGVjdGVkUHJldmlld0FiaWxpdHlQb3NpdGlvbkxhYmVsKCk7IGFzIGFiaWxpdHlQb3NpdGlvbkxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGFiaWxpdHlQb3NpdGlvbkxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoY2FuTmF2aWdhdGVQcmV2aWV3QWJpbGl0aWVzKCkpIHtcbiAgICAgICAgICAgICAgICAgIDxuYXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LW5hdlwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5QWJpbGl0aWVzJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5UHJldmlvdXNDYXJkJylcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVByZXZpZXdBYmlsaXR5KC0xKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAmbHQ7XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlOZXh0Q2FyZCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVQcmV2aWV3QWJpbGl0eSgxKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAmZ3Q7XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9uYXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgICAgICAgQGlmIChzaG93UHJldmlld0FiaWxpdHlUYWJzKCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzXCI+XG4gICAgICAgICAgICAgICAgICBAZm9yIChhYmlsaXR5IG9mIHByZXZpZXdBYmlsaXRpZXMoKTsgdHJhY2sgYWJpbGl0eS5pbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cInNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleCgpID09PSBhYmlsaXR5LmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UHJldmlld0FiaWxpdHkoYWJpbGl0eS5pbmRleClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3sgYWJpbGl0eS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAaWYgKHNlbGVjdGVkUHJldmlld0FiaWxpdHkoKTsgYXMgYWJpbGl0eSkge1xuICAgICAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPVwiY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IGFiaWxpdHkudGl0bGUgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXNjcm9sbFwiPlxuICAgICAgICAgICAgICAgICAgICA8cD57eyBhYmlsaXR5LmJvZHkgfX08L3A+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgICAgICAgPGZvb3RlciBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNocmlzdGlhbml0eS1wcmV2aWV3LXVzZS1hYmlsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFhYmlsaXR5LmNhblVzZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1c2VTZWxlY3RlZFByZXZpZXdBYmlsaXR5KClcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyB0KCdjaHJpc3RpYW5pdHlVc2VBYmlsaXR5JykgfX1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZm9vdGVyPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2FzaWRlPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHNlbGVjdGVkSW5mbygpOyBhcyBpbmZvKSB7XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWluZm8tYmFja2Ryb3BcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2Nsb3NlJylcIiAoY2xpY2spPVwiY2xvc2VJbmZvKClcIj48L2J1dHRvbj5cbiAgICAgICAgPGFzaWRlIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWluZm8tcGFuZWxcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2UgY2hyaXN0aWFuaXR5LWluZm8tY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VJbmZvKClcIj5cbiAgICAgICAgICAgIHt7IHQoJ2Nsb3NlJykgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaHJpc3RpYW5pdHktcnVsZS1ub3RlLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5pPC9zcGFuPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHNtYWxsPnt7IGluZm8uZXllYnJvdyB9fTwvc21hbGw+XG4gICAgICAgICAgICAgIDxoMj57eyBpbmZvLnRpdGxlIH19PC9oMj5cbiAgICAgICAgICAgICAgPHN0cm9uZz57eyBpbmZvLm1ldGEgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPHA+e3sgaW5mby5ib2R5IH19PC9wPlxuICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgQGZvciAoZmFjdCBvZiBpbmZvLmZhY3RzOyB0cmFjayBmYWN0KSB7XG4gICAgICAgICAgICAgICAgICA8bGk+e3sgZmFjdCB9fTwvbGk+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXNpZGU+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc2NyZWVuKCkgPT09ICd0YWJsZScpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktYWN0aW9uc1wiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LWFjdGlvbnNcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICAgICAgICA8cCBjbGFzcz1cImNocmlzdGlhbml0eS1zci1vbmx5XCIgZGF0YS10ZXN0aWQ9XCJjaHJpc3RpYW5pdHktc3RhdHVzXCI+e3sgc3RhdHVzVGV4dCgpIH19PC9wPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LXByaW1hcnktYWN0aW9uXCIgW2Rpc2FibGVkXT1cInR1dG9yaWFsUGhhc2UoKSAhPT0gJ2luX3Byb2dyZXNzJyB8fCBzZWxlY3RlZEFjdGlvbkRpc2FibGVkKClcIiAoY2xpY2spPVwicGxheVNlbGVjdGVkQ2FyZCgpXCI+XG4gICAgICAgICAgICB7eyBzZWxlY3RlZEFjdGlvbkxhYmVsKCkgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHNob3dIaXN0b3J5KCkpIHtcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlzdG9yeS1iYWNrZHJvcFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5Q2xvc2VIaXN0b3J5JylcIiAoY2xpY2spPVwiY2xvc2VIaXN0b3J5KClcIj48L2J1dHRvbj5cbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXJcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlclwiPlxuICAgICAgICAgIDxoZWFkZXI+XG4gICAgICAgICAgICA8aDI+e3sgdCgnY2hyaXN0aWFuaXR5SGlzdG9yeScpIH19PC9oMj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZ2FtZSgpLmhpc3Rvcnlab25lLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlSGlzdG9yeSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICAgIEBpZiAoZ2FtZSgpLmhpc3Rvcnlab25lLmxlbmd0aCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWRcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWRcIj5cbiAgICAgICAgICAgICAgQGZvciAoY2FyZElkIG9mIGdhbWUoKS5oaXN0b3J5Wm9uZTsgdHJhY2sgY2FyZElkICsgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgQGxldCBjYXJkID0gY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1nYWxsZXJ5LWNhcmQtYnV0dG9uIGNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b25cIiBbYXR0ci5kYXRhLXRlc3RpZF09XCJoaXN0b3J5Q2FyZFRlc3RJZChjYXJkSWQsICRpbmRleClcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwiaW5zcGVjdEhpc3RvcnlDYXJkKGNhcmRJZClcIj5cbiAgICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChjYXJkKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPHA+e3sgdCgnY2hyaXN0aWFuaXR5SGlzdG9yeUVtcHR5JykgfX08L3A+XG4gICAgICAgICAgfVxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc2hvd1BsYWNlKCkpIHtcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktaGlzdG9yeS1iYWNrZHJvcFwiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY2hyaXN0aWFuaXR5Q2xvc2VIaXN0b3J5JylcIiAoY2xpY2spPVwiY2xvc2VQbGFjZSgpXCI+PC9idXR0b24+XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGNocmlzdGlhbml0eS1wbGFjZS1kcmF3ZXJcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1wbGFjZS1kcmF3ZXJcIj5cbiAgICAgICAgICA8aGVhZGVyPlxuICAgICAgICAgICAgPGgyPnt7IHQoJ2NocmlzdGlhbml0eVBsYWNlJykgfX08L2gyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1kaWFsb2ctYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBnYW1lKCkucGxhY2Vab25lLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlUGxhY2UoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2Nsb3NlJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZFwiIGRhdGEtdGVzdGlkPVwiY2hyaXN0aWFuaXR5LXBsYWNlLWdyaWRcIj5cbiAgICAgICAgICAgIEBmb3IgKGNhcmRJZCBvZiBnYW1lKCkucGxhY2Vab25lOyB0cmFjayBjYXJkSWQgKyAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZ2FsbGVyeS1jYXJkLWJ1dHRvbiBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCIgW2F0dHIuZGF0YS10ZXN0aWRdPVwiJ2NocmlzdGlhbml0eS1wbGFjZS1jYXJkLScgKyAkaW5kZXhcIiB2YWxMaWdodFJpcHBsZSAoY2xpY2spPVwiaW5zcGVjdFBsYWNlQ2FyZChjYXJkSWQpXCI+XG4gICAgICAgICAgICAgICAgPHZhbC1jaHJpc3RpYW5pdHktY2FyZCBbY2FyZF09XCJkZWZpbml0aW9uVG9SZW5kZXJDYXJkKGNhcmREZWZpbml0aW9uKGNhcmRJZCksIHsgc3RhdHVzVGV4dDogdCgnY2hyaXN0aWFuaXR5UGxhY2UnKSB9KVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc2hvd0dhbGxlcnkoKSkge1xuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWJhY2tkcm9wIGNocmlzdGlhbml0eS1nYWxsZXJ5LWJhY2tkcm9wXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjaHJpc3RpYW5pdHlDbG9zZUdhbGxlcnknKVwiIChjbGljayk9XCJjbG9zZUdhbGxlcnkoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBjaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXJcIiBkYXRhLXRlc3RpZD1cImNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlclwiPlxuICAgICAgICAgIDxoZWFkZXI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8aDI+e3sgdCgnY2hyaXN0aWFuaXR5R2FsbGVyeScpIH19PC9oMj5cbiAgICAgICAgICAgICAgPHA+e3sgZ2FsbGVyeUVkaXRpb25MYWJlbCgpIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LWRpYWxvZy1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGdhbGxlcnlDYXJkcygpLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZGlhbG9nLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlR2FsbGVyeSgpXCI+XG4gICAgICAgICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9sc1wiPlxuICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlHYWxsZXJ5U2VhcmNoJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwic2VhcmNoXCIgW3ZhbHVlXT1cImdhbGxlcnlTZWFyY2goKVwiIChpbnB1dCk9XCJzZXRHYWxsZXJ5U2VhcmNoKCRldmVudClcIiBbcGxhY2Vob2xkZXJdPVwidCgnY2hyaXN0aWFuaXR5R2FsbGVyeVNlYXJjaFBsYWNlaG9sZGVyJylcIiAvPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgdCgnY2hyaXN0aWFuaXR5R2FsbGVyeUZpbHRlcicpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c2VsZWN0IFt2YWx1ZV09XCJnYWxsZXJ5VHlwZSgpXCIgKGNoYW5nZSk9XCJzZXRHYWxsZXJ5VHlwZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIGdhbGxlcnlUeXBlT3B0aW9ucygpOyB0cmFjayBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImlzLWFjdGl2ZVwiIHZhbExpZ2h0UmlwcGxlPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiZ2FsbGVyeUVkaXRpb25JY29uKClcIiBhbHQ9XCJcIiAvPlxuICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlHZW5lc2lzRWRpdGlvbicpIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWRcIj5cbiAgICAgICAgICAgIEBmb3IgKGNhcmQgb2YgZ2FsbGVyeUNhcmRzKCk7IHRyYWNrIGNhcmQuaWQpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktZ2FsbGVyeS1jYXJkLWJ1dHRvbiBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCIgdmFsTGlnaHRSaXBwbGUgKGNsaWNrKT1cImluc3BlY3RHYWxsZXJ5Q2FyZChjYXJkLmlkKVwiPlxuICAgICAgICAgICAgICAgIDx2YWwtY2hyaXN0aWFuaXR5LWNhcmQgW2NhcmRdPVwiZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChjYXJkKVwiIHZhcmlhbnQ9XCJiYWJ5XCI+PC92YWwtY2hyaXN0aWFuaXR5LWNhcmQ+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfSBAZW1wdHkge1xuICAgICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlHYWxsZXJ5RW1wdHknKSB9fTwvcD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKG9mZmVyaW5nc1NlYXQoKSkge1xuICAgICAgICBAbGV0IG9mZmVyaW5nUGxheWVyID0gZ2FtZSgpLnBsYXllcnNbb2ZmZXJpbmdzU2VhdCgpIV07XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2hyaXN0aWFuaXR5LWhpc3RvcnktYmFja2Ryb3BcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2NocmlzdGlhbml0eUNsb3NlT2ZmZXJpbmdzJylcIiAoY2xpY2spPVwiY2xvc2VPZmZlcmluZ3MoKVwiPjwvYnV0dG9uPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLWRyYXdlclwiIFthdHRyLmRhdGEtdGVzdGlkXT1cIm9mZmVyaW5nc0RyYXdlclRlc3RJZChvZmZlcmluZ3NTZWF0KCkhKVwiPlxuICAgICAgICAgIDxoZWFkZXI+XG4gICAgICAgICAgICA8aDI+e3sgdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdzJykgfX08L2gyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1kaWFsb2ctYWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1Jlc2VydmUnKSB9fSB7eyByZWFkeU9mZmVyaW5ncyhvZmZlcmluZ1BsYXllcikgfX0gwrcge3sgdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdCYXNlJykgfX0ge3sgdG90YWxPZmZlcmluZ3Mob2ZmZXJpbmdQbGF5ZXIpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VPZmZlcmluZ3MoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ2Nsb3NlJykgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPmk8L3NwYW4+XG4gICAgICAgICAgICA8cD57eyB0KCdjaHJpc3RpYW5pdHlPZmZlcmluZ3NSdWxlQm9keScpIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0XCIgW2F0dHIuZGF0YS10ZXN0aWRdPVwib2ZmZXJpbmdMaXN0VGVzdElkKG9mZmVyaW5nc1NlYXQoKSEpXCI+XG4gICAgICAgICAgICAgIEBmb3IgKG9mZmVyaW5nIG9mIG9mZmVyaW5nUGxheWVyLm9mZmVyaW5nczsgdHJhY2sgb2ZmZXJpbmcuaW5zdGFuY2VJZCkge1xuICAgICAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPVwiY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvd1wiIFtjbGFzcy5pcy1leGhhdXN0ZWRdPVwiIW9mZmVyaW5nLnJlYWR5XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBjaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uXCIgW2F0dHIuZGF0YS10ZXN0aWRdPVwib2ZmZXJpbmdDYXJkVGVzdElkKG9mZmVyaW5nKVwiIHZhbExpZ2h0UmlwcGxlIChjbGljayk9XCJpbnNwZWN0T2ZmZXJpbmcob2ZmZXJpbmcpXCI+XG4gICAgICAgICAgICAgICAgICA8dmFsLWNocmlzdGlhbml0eS1jYXJkIFtjYXJkXT1cIm9mZmVyaW5nLnJlYWR5ID8gb2ZmZXJpbmdSZW5kZXJDYXJkKG9mZmVyaW5nKSA6IGhpZGRlbkNhcmRSZW5kZXJDYXJkKClcIiBbdmFyaWFudF09XCJvZmZlcmluZy5yZWFkeSA/ICdiYWJ5JyA6ICdiYWNrJ1wiPjwvdmFsLWNocmlzdGlhbml0eS1jYXJkPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IG9mZmVyaW5nLnJlYWR5ID8gdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdSZWFkeScpIDogdCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdFeGhhdXN0ZWQnKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgPHA+e3sgb2ZmZXJpbmdBYmlsaXR5VGV4dChvZmZlcmluZykgfX08L3A+XG4gICAgICAgICAgICAgICAgICBAaWYgKG9mZmVyaW5nLmFiaWxpdHlOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJvZmZlcmluZ1VzZUJ1dHRvblRlc3RJZChvZmZlcmluZylcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY2FuVXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nLCBvZmZlcmluZ3NTZWF0KCkhKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInVzZU9mZmVyaW5nQWJpbGl0eShvZmZlcmluZywgb2ZmZXJpbmdzU2VhdCgpISlcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3sgdCgnY2hyaXN0aWFuaXR5VXNlQWJpbGl0eScpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cbiAgICA8L21haW4+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rOiB2YXIoLS12YWwtdGV4dC1jb2xvciwgIzFmMjkzMyk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLXN1cmZhY2U6ICNmZmZmZmY7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLXBhcmNobWVudDogI2VmZjZmZjtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtb2xpdmU6ICMxZDRlZDg7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQ6ICMyNTYzZWI7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtc29mdDogcmdiYSgzNywgOTksIDIzNSwgMC4xNik7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtcmluZzogcmdiYSgzNywgOTksIDIzNSwgMC40NCk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdsb3c6IHJnYmEoMzcsIDk5LCAyMzUsIDAuMjQpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1czogIzI1NjNlYjtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93OiByZ2JhKDM3LCA5OSwgMjM1LCAwLjE1KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93LXN0cm9uZzogcmdiYSgzNywgOTksIDIzNSwgMC4yNik7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0OiA1IC8gNy40NTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTYsIDQyLCA2NywgMC4xNiksIHJnYmEoMTYsIDQyLCA2NywgMC4wMykpLFxuICAgICAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsICNkYmVhZmUgMCAwLjMzcmVtLCAjZmZmZmZmIDAuMzNyZW0gMC42NnJlbSk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNhcmQtYmFjay1zb2Z0OlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTYsIDQyLCA2NywgMC4xMSksIHJnYmEoMTYsIDQyLCA2NywgMC4wMikpLFxuICAgICAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsICNkYmVhZmUgMCAwLjMzcmVtLCAjZmZmZmZmIDAuMzNyZW0gMC42NnJlbSk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IHZhcigtLXZhbC1taW5pLWdhbWVzLWZvbnQtc2l6ZSwgMXJlbSk7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBvdmVyZmxvdy14OiBjbGlwO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5mb250LXNtYWxsKSB7XG4gICAgICAgIC0tdmFsLW1pbmktZ2FtZXMtZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmZvbnQtbGFyZ2UpIHtcbiAgICAgICAgLS12YWwtbWluaS1nYW1lcy1mb250LXNpemU6IDEuMTg3NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zaGVsbCB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBwYWRkaW5nOiBjbGFtcCgwLjY1cmVtLCAxLjh2dywgMS4xNXJlbSk7XG4gICAgICAgIG92ZXJmbG93LXg6IGNsaXA7XG4gICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaGFzLW1vZGFsLW9wZW4ge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDBkdmg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaGFzLW1vZGFsLW9wZW4gLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmOm5vdCguY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50KSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMS41cmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zaGVsbC5pcy1wcmVwYXJpbmcge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogY2xhbXAoMC43NXJlbSwgMS44dncsIDEuMTVyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNoZWxsLmlzLXByZXBhcmluZyAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwLFxuICAgICAgLmNocmlzdGlhbml0eS1zaGVsbC5pcy1wcmVwYXJpbmcgLmNocmlzdGlhbml0eS10dXJuLWJhbm5lcixcbiAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaXMtcHJlcGFyaW5nIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZixcbiAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaXMtcHJlcGFyaW5nIC5jaHJpc3RpYW5pdHktYWN0aW9ucyxcbiAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaXMtcHJlcGFyaW5nIC5jaHJpc3RpYW5pdHktZW5kLXR1cm4sXG4gICAgICAuY2hyaXN0aWFuaXR5LXNoZWxsLmlzLXByZXBhcmluZyAuY2hyaXN0aWFuaXR5LWltcGFjdC1sYXllcixcbiAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaXMtcHJlcGFyaW5nIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUsXG4gICAgICAuY2hyaXN0aWFuaXR5LXNoZWxsLmlzLXByZXBhcmluZyAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zaGVsbC5pcy1wcmVwYXJpbmcgLmNocmlzdGlhbml0eS10YWJsZSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IG1pbigzNHJlbSwgY2FsYygxMDBkdmggLSAycmVtKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyLFxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyX19zdW1tYXJ5LFxuICAgICAgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAwLjc1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhlYWRlciBoMSxcbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCxcbiAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5IGgyLFxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyIGgxIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjM1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNyLW9ubHkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXItYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1vcGVuIHtcbiAgICAgICAgbWluLWhlaWdodDogMi4ycmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNzVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkLXJpbmcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDIzOSwgMjQ2LCAyNTUsIDAuOTgpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTgpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDIwJSAwJSwgdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtc29mdCksIHRyYW5zcGFyZW50IDQyJSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNTVyZW0gMS4ycmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoIHtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDM0cmVtLCBjYWxjKDEwMGR2aCAtIDhyZW0pKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNywgOTksIDIzNSwgMC4xOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuOXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSAxOCUsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTYpLCB0cmFuc3BhcmVudCAyMnJlbSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyMzksIDI0NiwgMjU1LCAwLjkzKSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk3KSksXG4gICAgICAgICAgdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYmFjay1zb2Z0KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxLjJyZW0gMy4ycmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxLjJyZW07XG4gICAgICAgIHBhZGRpbmc6IDIuNXJlbSAxLjI1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAwLjc0cmVtKTtcbiAgICAgICAgcGxhY2UtY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6IDAuNTVyZW07XG4gICAgICAgIHdpZHRoOiA1LjhyZW07XG4gICAgICAgIGhlaWdodDogNS44cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNTAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjEyKSwgdHJhbnNwYXJlbnQgNTUlKSxcbiAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjIpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDAuNTVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpLFxuICAgICAgICAgIDAgMXJlbSAycmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaF9fbWFyazo6YmVmb3JlLFxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2hfX21hcms6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDAuNDJyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS1sb2FkZXItcmluZyAxODAwbXMgZWFzZS1vdXQgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrOjphZnRlciB7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogNDgwbXM7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrIHNwYW4ge1xuICAgICAgICB3aWR0aDogMC43NHJlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjc0cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWZvY3VzKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuODVyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4yMik7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWxvYWRlci1kb3QgOTYwbXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrIHNwYW46bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxNDBtcztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2hfX21hcmsgc3BhbjpudGgtY2hpbGQoMykge1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDI4MG1zO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGNocmlzdGlhbml0eS1sb2FkZXItZG90IHtcbiAgICAgICAgMCUsXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDAuMzg7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDAuODIpO1xuICAgICAgICB9XG5cbiAgICAgICAgNDUlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC4yMnJlbSkgc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktbG9hZGVyLXJpbmcge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMC40ODtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNzIpO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2ggc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NvcHkgc3BhbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtb2xpdmUpO1xuICAgICAgICBmb250LXNpemU6IDAuNzZyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoIGgyLFxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydCBoMixcbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnQgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2ggaDIge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS42NXJlbSwgN3Z3LCAyLjdyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2ggcCB7XG4gICAgICAgIG1heC13aWR0aDogMjZyZW07XG4gICAgICAgIG1hcmdpbjogMC41NXJlbSBhdXRvIDA7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjgpO1xuICAgICAgICBmb250LXNpemU6IDAuOTZyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDM0cmVtLCBjYWxjKDEwMGR2aCAtIDhyZW0pKTtcbiAgICAgICAgcGFkZGluZzogY2xhbXAoMC4xNXJlbSwgMS4ydncsIDAuNTVyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19oZXJvIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMTJyZW0sIDE4cmVtKTtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jb3B5IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDM2cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0IGgyIHtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjZyZW0sIDZ2dywgMi41cmVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NvcHkgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42OCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19mYW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEzcmVtO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fZmFuIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDUuN3JlbSwgMTJ2dywgNy4ycmVtKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDkyJTtcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDFyZW0gMS41cmVtIHJnYmEoODIsIDY0LCAyOCwgMC4xOCkpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAwLjc1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBhcnRpY2xlLFxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgYXJ0aWNsZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgICAgIHBhZGRpbmc6IDAuOTVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Mik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC43NXJlbSAxLjdyZW0gcmdiYSg4MiwgNjQsIDI4LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgYXJ0aWNsZSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDExcmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDEuMDVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX3N0YXR1cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19zdGF0dXMgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUgPiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgbWluLWhlaWdodDogMS44NXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjYycmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjIyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCAyNDYsIDI1NSwgMC44OCk7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzIpO1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4NTA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpO1xuICAgICAgICBnYXA6IDAuNTVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUge1xuICAgICAgICBtaW4taGVpZ2h0OiA4LjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC43Mik7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDAuODI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45MnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJpbWFyeS1hY3Rpb24sXG4gICAgICAuY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb24ge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgICAgICBtaW4taGVpZ2h0OiAyLjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC45cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmltYXJ5LWFjdGlvbiB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDQyLCA2NywgMC4xNik7XG4gICAgICAgIGJhY2tncm91bmQ6ICMxMDJhNDM7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb24ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1yaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXBhcmNobWVudCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oZWFkZXIgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktdHVybiBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktaGlkZGVuLWhhbmQgc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktZGVjayBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1wbGFjZSBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1waWxlIHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlciBzcGFuIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42NCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXIsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncyxcbiAgICAgIC5jaHJpc3RpYW5pdHktaGlkZGVuLWhhbmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXBpbGUsXG4gICAgICAuY2hyaXN0aWFuaXR5LWRlY2ssXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYWNlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjE1cmVtO1xuICAgICAgICBtaW4td2lkdGg6IDUuMjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNTVyZW0gMC42NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXR1cm4uaXMtb3duLXR1cm4ge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTgsIDEyOCwgMTA4LCAwLjM1KTtcbiAgICAgICAgYmFja2dyb3VuZDogI2VjZmRmNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgcGFkZGluZzogMC40NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXItLW9wcG9uZW50IHtcbiAgICAgICAgZGlyZWN0aW9uOiBydGw7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyLS1vcHBvbmVudCBkaXYge1xuICAgICAgICBkaXJlY3Rpb246IGx0cjtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgc21hbGwge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1wbGF5ZXIgc21hbGwsXG4gICAgICAuY2hyaXN0aWFuaXR5LXNjb3JlYm9hcmQgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IDAuNzJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiA0LjJyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC41NXJlbTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEpO1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLWJhbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICAgICAgICBnYXA6IDAuN3JlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMC41OHJlbSAwLjcycmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NCksIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC44MikpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjY1cmVtIDEuMjVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLWJhbm5lci5pcy1vd24tdHVybiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNywgOTksIDIzNSwgMC4yOCk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjc1cmVtIDEuNDVyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4xMiksXG4gICAgICAgICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMzcsIDk5LCAyMzUsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXR1cm4tYmFubmVyLmlzLXJpdmFsLXR1cm4ge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTgwLCA4MywgOSwgMC4yNCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdHVybi1iYW5uZXIuaXMtZmluaXNoZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMjIsIDE2MywgNzQsIDAuMyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdHVybi1iYW5uZXIgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU2KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXR1cm4tYmFubmVyIHN0cm9uZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMXJlbSwgMS41dncsIDEuMjVyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS10dXJuLWJhbm5lciBwIHtcbiAgICAgICAgbWFyZ2luOiAwLjEycmVtIDAgMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktdHVybi1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9wdGlvbnMtYnV0dG9uLFxuICAgICAgLmNocmlzdGlhbml0eS1vcHRpb25zLW1lbnUgYnV0dG9uIHtcbiAgICAgICAgbWluLWhlaWdodDogMi4xNXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE0KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9wdGlvbnMtYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogMCAwLjc4cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9wdGlvbnMtbWVudSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDAuNTVyZW07XG4gICAgICAgIHRvcDogY2FsYygxMDAlICsgMC4zNXJlbSk7XG4gICAgICAgIHotaW5kZXg6IDE4O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIG1pbi13aWR0aDogOS41cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjQ1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTgpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDFyZW0gMnJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9wdGlvbnMtbWVudSBidXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjU1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9wdGlvbnMtbWVudSBidXR0b246ZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjQ1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXRhYmxlIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IGNsYW1wKDAuNTVyZW0sIDEuNHZ3LCAwLjlyZW0pO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIHBhZGRpbmc6IGNsYW1wKDAuNjVyZW0sIDEuNXZ3LCAxLjA1cmVtKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC45NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSA0NCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSwgdHJhbnNwYXJlbnQgNDQlKSxcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjYzhkZGY3LCAjYjlkNGYxKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KSxcbiAgICAgICAgICBpbnNldCAwIDEuNHJlbSAzcmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNik7XG4gICAgICAgIG92ZXJmbG93LXg6IGNsaXA7XG4gICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2V0dXAtcGFuZWwsXG4gICAgICAuY2hyaXN0aWFuaXR5LXJlc3VsdC1wYW5lbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDAuOHJlbTtcbiAgICAgICAgei1pbmRleDogMTQ7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDAuODVyZW07XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjlyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk2KSwgcmdiYSgyMzksIDI0NiwgMjU1LCAwLjk0KSksXG4gICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk0KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxLjI1cmVtIDIuNHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTgpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2V0dXAtcGFuZWwgPiBkaXY6bm90KC5jaHJpc3RpYW5pdHktc2V0dXAtY29pbiksXG4gICAgICAuY2hyaXN0aWFuaXR5LXJlc3VsdC1wYW5lbCA+IGRpdjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXgtd2lkdGg6IG1pbigxMDAlLCAzNHJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2V0dXAtcGFuZWwgLmNocmlzdGlhbml0eS1wcmltYXJ5LWFjdGlvbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcmVzdWx0LXBhbmVsIC5jaHJpc3RpYW5pdHktcHJpbWFyeS1hY3Rpb24ge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zZXR1cC1wYW5lbC0tY29pbiB7XG4gICAgICAgIGdhcDogY2xhbXAoMC44NXJlbSwgM3ZoLCAxLjM1cmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zZXR1cC1wYW5lbC0tbGVhZGVyLXBpY2sge1xuICAgICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGdhcDogY2xhbXAoMC43cmVtLCAydmgsIDFyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLWNvaW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBjbGFtcCg0LjZyZW0sIDE4dncsIDYuMnJlbSk7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzNCUgMjglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSksIHRyYW5zcGFyZW50IDIyJSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmZjZhMywgI2ZmZDIxYSA0MiUsICNiODg0MDQgMTAwJSk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAxLjA1cmVtIDEuOXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTgpLFxuICAgICAgICAgIGluc2V0IDAgMCAwIDAuMzJyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpLFxuICAgICAgICAgIGluc2V0IC0wLjZyZW0gLTAuN3JlbSAxcmVtIHJnYmEoOTgsIDcwLCA3LCAwLjIpO1xuICAgICAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS1jb2luLXNwaW4gMTgwMG1zIGN1YmljLWJlemllcigwLjQ1LCAwLCAwLjIsIDEpIGluZmluaXRlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLWNvaW46OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAtMC42NXJlbTtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjMyKSwgdHJhbnNwYXJlbnQgNjIlKTtcbiAgICAgICAgZmlsdGVyOiBibHVyKDAuMTVyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLWNvaW46OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDAuMzRyZW07XG4gICAgICAgIGJvcmRlcjogMC4xNnJlbSBzb2xpZCByZ2JhKDEyMCwgNzgsIDAsIDAuMjQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMC4wNnJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2V0dXAtY29pbiBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogNTIlO1xuICAgICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBjb2xvcjogcmdiYSgxNiwgNDIsIDY3LCAwLjg0KTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjY1cmVtLCA2dncsIDIuMjVyZW0pO1xuICAgICAgICBmb250LXdlaWdodDogMTAwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2V0dXAtY29pbiBzcGFuOmZpcnN0LWNoaWxkOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnSic7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2V0dXAtY29pbiBzcGFuOmxhc3QtY2hpbGQge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zZXR1cC1jb2luIHNwYW46bGFzdC1jaGlsZDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ1InO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLWNvaW4uaXMtcml2YWwtd29uIHtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtOTAwbXM7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LWNvaW4tc3BpbiB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZykgdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDM4JSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKDU0MGRlZykgdHJhbnNsYXRlWSgtMC4zNXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICA2MiUge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWSg3MjBkZWcpIHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgIH1cblxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMTA4MGRlZykgdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLXBhbmVsID4gZGl2Om5vdCguY2hyaXN0aWFuaXR5LXNldHVwLWNvaW4pID4gc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcmVzdWx0LXBhbmVsID4gc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjc2KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjcycmVtO1xuICAgICAgICBmb250LXdlaWdodDogMTAwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zZXR1cC1wYW5lbCBoMixcbiAgICAgIC5jaHJpc3RpYW5pdHktcmVzdWx0LXBhbmVsIGgyIHtcbiAgICAgICAgbWFyZ2luOiAwLjE4cmVtIDAgMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuNDVyZW0sIDN2dywgMi4zNXJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLXBhbmVsIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LXJlc3VsdC1wYW5lbCBwIHtcbiAgICAgICAgbWF4LXdpZHRoOiAzMXJlbTtcbiAgICAgICAgbWFyZ2luOiAwLjM1cmVtIGF1dG8gMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcmVzdWx0LXBhbmVsID4gZGl2Omxhc3QtY2hpbGQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6IDAuNTVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1tZXRlciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4zOHJlbTtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCAyOHJlbSk7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNjgpO1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1tZXRlciBpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMC4zNHJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cyk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjQwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgOS42cmVtKSk7XG4gICAgICAgIGdhcDogY2xhbXAoMC42cmVtLCAydncsIDAuOXJlbSk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCAyMXJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1vcHRpb24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnI7XG4gICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzdGFydDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjQ4cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuODZyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg2KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjcyKSksXG4gICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc4KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjc1cmVtIDEuNXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMDgpO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGJvcmRlci1jb2xvciAxODBtcyBlYXNlLFxuICAgICAgICAgIGJveC1zaGFkb3cgMTgwbXMgZWFzZSxcbiAgICAgICAgICBiYWNrZ3JvdW5kIDE4MG1zIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1vcHRpb24uaXMtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzcsIDk5LCAyMzUsIDAuNDgpO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC45NCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NikpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Mik7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjk1cmVtIDEuNzVyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4xNCksXG4gICAgICAgICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMzcsIDk5LCAyMzUsIDAuMTQpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA4LjI1cmVtKTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1jYXJkIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBmaWx0ZXIgMTgwbXMgZWFzZSxcbiAgICAgICAgICB0cmFuc2Zvcm0gMTgwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLW9wdGlvbiA+IGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC40MnJlbTtcbiAgICAgICAgYWxpZ24tY29udGVudDogZW5kO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLW9wdGlvbiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuOHJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwLjE4cmVtIDAuNDZyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgMjQ2LCAyNTUsIDAuNzQpO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjY4KTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjYycmVtLCAyLjN2dywgMC43MnJlbSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1kZXRhaWwge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjU1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjIyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCAyNDYsIDI1NSwgMC45Mik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtY2FyZDpob3ZlciB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtY2FyZDpmb2N1cy12aXNpYmxlIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC4xMnJlbSk7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwLjc1cmVtIDEuMjVyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4yMikpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWltcGFjdC1sYXllciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDMwO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwteDogNTAlO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwteTogNzIlO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbWlkLXg6IDUwJTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLW1pZC15OiA1MCU7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1sZW5ndGg6IDM0JTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWFuZ2xlOiAtOTBkZWc7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk2KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWdsb3c6IHJnYmEoOTYsIDE2NSwgMjUwLCAwLjU2KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWhpdDogcmdiYSgyMjAsIDM4LCAzOCwgMC40Mik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLmlzLWxlYWRlci10YXJnZXQge1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1nbG93OiByZ2JhKDI1MCwgMjA0LCAyMSwgMC41Mik7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1oaXQ6IHJnYmEoMjUwLCAyMDQsIDIxLCAwLjM4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwuaXMtY2hhcmFjdGVyLXRhcmdldCB7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1jb2xvcjogcmdiYSgyMTksIDIzNCwgMjU0LCAwLjk4KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWdsb3c6IHJnYmEoOTYsIDE2NSwgMjUwLCAwLjU4KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWhpdDogcmdiYSgyMjAsIDM4LCAzOCwgMC4zOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsOjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbWlkLXgpO1xuICAgICAgICB0b3A6IHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbWlkLXkpO1xuICAgICAgICB3aWR0aDogY2xhbXAoMi44cmVtLCA5dncsIDUuNHJlbSk7XG4gICAgICAgIGhlaWdodDogY2xhbXAoMi44cmVtLCA5dncsIDUuNHJlbSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43MiksIHRyYW5zcGFyZW50IDI4JSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1oaXQpLCB0cmFuc3BhcmVudCA2MiUpO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC41OCk7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWNvbWJhdC1idXJzdCA4ODBtcyBlYXNlLW91dCBib3RoO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbCA+IHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwteCk7XG4gICAgICAgIHRvcDogdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC15KTtcbiAgICAgICAgd2lkdGg6IHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtbGVuZ3RoKTtcbiAgICAgICAgaGVpZ2h0OiAwLjM2cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAgNSUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45MikgNDIlLCB2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWNvbG9yKSA3MiUsIHJnYmEoOTYsIDE2NSwgMjUwLCAwLjcyKSksXG4gICAgICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCAwLjdyZW0sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NikgMC43cmVtIDAuOTJyZW0pO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMCAwLjcycmVtIHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtZ2xvdyksXG4gICAgICAgICAgMCAwIDEuNDVyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1nbG93KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSh2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWFuZ2xlKSkgc2NhbGVYKDApO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDUwJTtcbiAgICAgICAgYW5pbWF0aW9uOiBjaHJpc3RpYW5pdHktY29tYmF0LWFycm93LXRyYWlsIDg0MG1zIGVhc2Utb3V0IGJvdGg7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsID4gc3Bhbjo6YWZ0ZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICByaWdodDogLTAuMThyZW07XG4gICAgICAgIHdpZHRoOiAwLjk1cmVtO1xuICAgICAgICBoZWlnaHQ6IDAuOTVyZW07XG4gICAgICAgIGJvcmRlci10b3A6IDAuMjhyZW0gc29saWQgdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1jb2xvcik7XG4gICAgICAgIGJvcmRlci1yaWdodDogMC4yOHJlbSBzb2xpZCB2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWNvbG9yKTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDAuNDVyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1nbG93KSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGNocmlzdGlhbml0eS1jb21iYXQtYXJyb3ctdHJhaWwge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKHZhcigtLWNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwtYW5nbGUpKSBzY2FsZVgoMCk7XG4gICAgICAgIH1cblxuICAgICAgICAyNCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSh2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWFuZ2xlKSkgc2NhbGVYKDAuNTIpO1xuICAgICAgICB9XG5cbiAgICAgICAgNjYlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUodmFyKC0tY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbC1hbmdsZSkpIHNjYWxlWCgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSh2YXIoLS1jaHJpc3RpYW5pdHktY29tYmF0LXRyYWlsLWFuZ2xlKSkgc2NhbGVYKDEuMDQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LWNvbWJhdC1idXJzdCB7XG4gICAgICAgIDAlLFxuICAgICAgICA0MiUge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC41OCkgcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgNTglIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDAuOTgpIHJvdGF0ZSg0ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS40Mikgcm90YXRlKDEyZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICAuY2hyaXN0aWFuaXR5LWNvbWJhdC10cmFpbCxcbiAgICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWw6OmJlZm9yZSxcbiAgICAgICAgLmNocmlzdGlhbml0eS1jb21iYXQtdHJhaWwgPiBzcGFuLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtYXR0YWNrZXIgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtdGFyZ2V0IHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLWNvbWJhdC10YXJnZXQgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGwuaXMtc2xpZGluZy1wcmV2aW91cyAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbC5pcy1zbGlkaW5nLW5leHQgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LXNldHVwLWNvaW4sXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrOjpiZWZvcmUsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3BsYXNoX19tYXJrOjphZnRlcixcbiAgICAgICAgLmNocmlzdGlhbml0eS1zcGxhc2hfX21hcmsgc3BhbiB7XG4gICAgICAgICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBwYWRkaW5nOiAwLjM1cmVtIDAuM3JlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yOCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNCkpLFxuICAgICAgICAgIHJnYmEoNzQsIDEyMiwgMTgwLCAwLjA4KTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoN3JlbSwgMWZyKSBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMy43NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZS0tb3Bwb25lbnQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDdyZW0sIDFmcik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjY1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIHtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktYmF0dGxlLWNhcmQtd2lkdGg6IGNsYW1wKDUuN3JlbSwgMTAuNXZ3LCA3LjlyZW0pO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCB2YXIoLS1jaHJpc3RpYW5pdHktYmF0dGxlLWNhcmQtd2lkdGgpKTtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIG1pbi1oZWlnaHQ6IGNsYW1wKDEwcmVtLCAxOXZ3LCAxMi40cmVtKTtcbiAgICAgICAgcGFkZGluZzogMC41NXJlbSAwLjRyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQyKSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KSksXG4gICAgICAgICAgcmdiYSgzMSwgNzksIDEzNywgMC4wOCk7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgYmFja2dyb3VuZCAxNjBtcyBlYXNlLFxuICAgICAgICAgIGJveC1zaGFkb3cgMTYwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZS5pcy1wbGFjaW5nLWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTAsIDI0MCwgMC45NiksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NCkpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Nik7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgaW5zZXQgMCAwIDAgMC4xNHJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1zb2Z0KSxcbiAgICAgICAgICAwIDAuOHJlbSAxLjdyZW0gcmdiYSg5NSwgMTExLCA0MiwgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUge1xuICAgICAgICBwYWRkaW5nOiAwLjU1cmVtIDAuNHJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzQpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikpLFxuICAgICAgICAgIHJnYmEoMzEsIDc5LCAxMzcsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWVuZC10dXJuLFxuICAgICAgLmNocmlzdGlhbml0eS1hY3Rpb25zIGJ1dHRvbixcbiAgICAgIC5jaHJpc3RpYW5pdHktcGlsZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLS10YXJnZXQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtaW4taGVpZ2h0OiA1LjhyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjVyZW0gMS4yNXJlbSByZ2JhKDM2LCA0OCwgNjgsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQgc3BhbiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZCBzdHJvbmcge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgICAgICAgcGFkZGluZzogMC4xNXJlbSAwLjM1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2VkZjJmNztcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMCAwIDAuMThyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtc29mdCksXG4gICAgICAgICAgMCAwLjg1cmVtIDEuNHJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLmlzLWRpc2FibGVkLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLmlzLWV4aGF1c3RlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC5pcy10YXJnZXQge1xuICAgICAgICBib3JkZXItY29sb3I6ICNkYzI2MjY7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZHMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLWF1dG8tZmxvdzogY29sdW1uO1xuICAgICAgICBncmlkLWF1dG8tY29sdW1uczogMC43cmVtO1xuICAgICAgICBnYXA6IDAuMTZyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBlbmQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuMDVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZHMgaSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMC42NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjk1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE2LCA0MiwgNjcsIDAuMjIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjE4cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmRzIGkuaXMtdXNlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNjYmQ1ZTE7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNsb3Qge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCB2YXIoLS1jaHJpc3RpYW5pdHktYmF0dGxlLWNhcmQtd2lkdGgpKTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0KTtcbiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoMzYsIDQ4LCA2OCwgMC4yMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNjI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtcmluZyk7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1MCwgMjQwLCAwLjkyKSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjgyKSksXG4gICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICAgICAgICBjb2xvcjogIzVkNDMwNTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjEycmVtIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjIpLFxuICAgICAgICAgIDAgMC43cmVtIDEuMjVyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXNoYWRvdyk7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LXRhcmdldC1wdWxzZSAxNDUwbXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQ6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwLjM1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4yMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4xKSwgdHJhbnNwYXJlbnQgNDYlKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSA0MiUsIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nbG93KSwgdHJhbnNwYXJlbnQgNTglKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBwYWRkaW5nOiAwLjE2cmVtIDAuNDRyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzgpO1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LXRhcmdldC1wdWxzZSB7XG4gICAgICAgIDAlLFxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgICAgaW5zZXQgMCAwIDAgMC4xMnJlbSByZ2JhKDIxNCwgMTYyLCAyOSwgMC4yKSxcbiAgICAgICAgICAgIDAgMC43cmVtIDEuMjVyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXNoYWRvdyk7XG4gICAgICAgIH1cblxuICAgICAgICA1MCUge1xuICAgICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICBpbnNldCAwIDAgMCAwLjE2cmVtIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjM0KSxcbiAgICAgICAgICAgIDAgMC45cmVtIDEuNjVyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXNoYWRvdy1zdHJvbmcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtYXV0by1jb2x1bW5zOiBtaW5tYXgoNnJlbSwgOHJlbSk7XG4gICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgICAgIGdhcDogMC41NXJlbTtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyB7XG4gICAgICAgIHBhZGRpbmc6IDAuNzVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyBidXR0b24sXG4gICAgICAuY2hyaXN0aWFuaXR5LWVuZC10dXJuIHtcbiAgICAgICAgbWluLWhlaWdodDogMi40cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyBidXR0b246bm90KDpkaXNhYmxlZCksXG4gICAgICAuY2hyaXN0aWFuaXR5LWVuZC10dXJuOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzEwMmE0MztcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyBidXR0b24ge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjhyZW0gMS43NXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMjIpLFxuICAgICAgICAgIGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktYWN0aW9ucyBidXR0b246ZGlzYWJsZWQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWVuZC10dXJuIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjhyZW0gMS43NXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMjIpLFxuICAgICAgICAgIGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZW5kLXR1cm46ZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjQ2KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcyKTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5IHtcbiAgICAgICAgcGFkZGluZzogMC43NXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWZhbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwLjhyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjVyZW0gMC4yNXJlbSAyLjFyZW07XG4gICAgICAgIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgei1pbmRleDogMTI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEycmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMS4xNXJlbTtcbiAgICAgICAgcGFkZGluZzogMS40NXJlbSAwLjI1cmVtIDFyZW07XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50IHtcbiAgICAgICAgei1pbmRleDogODtcbiAgICAgICAgbWluLWhlaWdodDogNi44NXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZzogMC40NXJlbSAwLjI1cmVtIDAuODVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50IHtcbiAgICAgICAgbWluLWhlaWdodDogNS45cmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC43NXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtZmFuLS1vcHBvbmVudCAuY2hyaXN0aWFuaXR5LWhpZGRlbi1jYXJkLWJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiBjbGFtcCgzLjdyZW0sIDEydncsIDQuOXJlbSk7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYXNwZWN0KTtcbiAgICAgICAgbWFyZ2luLWlubGluZTogLTAuOXJlbTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDEyMCU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50IC5jaHJpc3RpYW5pdHktaGlkZGVuLWNhcmQtYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1mYW4tLW9wcG9uZW50IC5jaHJpc3RpYW5pdHktaGlkZGVuLWNhcmQtYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtbWluaSxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLFxuICAgICAgLmNocmlzdGlhbml0eS1lbmQtdHVybiB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcikgYXV0byBhdXRvO1xuICAgICAgICBnYXA6IDAuMjhyZW07XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgICAgIHdpZHRoOiBjbGFtcCg0LjlyZW0sIDE3dncsIDcuMXJlbSk7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBwYWRkaW5nOiAwLjQ4cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTE1JTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICB0cmFuc2Zvcm0gMTYwbXMgZWFzZSxcbiAgICAgICAgICBib3gtc2hhZG93IDE2MG1zIGVhc2UsXG4gICAgICAgICAgYm9yZGVyLWNvbG9yIDE2MG1zIGVhc2U7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC41cmVtIDEuMjVyZW0gcmdiYSgzNiwgNDgsIDY4LCAwLjEpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24gPiB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNhcmQtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNi44cmVtKTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNhcmQtYnV0dG9uID4gdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbixcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uIHtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b246aG92ZXIgdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXNlbGVjdGVkIHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXNlbGVjdGVkIHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXRhcmdldCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtdGFyZ2V0IHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGZpbHRlcjpcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAgMC40NXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjQ1KSlcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAuNTVyZW0gMXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjIyKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhdHRsZS5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXJlYWR5LWF0dGFja2VyIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGZpbHRlcjpcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAgMC4yNHJlbSByZ2JhKDIyLCAxNjMsIDc0LCAwLjMyKSlcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAuNDVyZW0gMC44cmVtIHJnYmEoMjIsIDE2MywgNzQsIDAuMTYpKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtc2VsZWN0ZWQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuMjhyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1zZWxlY3RlZCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBmaWx0ZXI6XG4gICAgICAgICAgZHJvcC1zaGFkb3coMCAwIDAuNHJlbSByZ2JhKDI1MCwgMjA0LCAyMSwgMC41MikpXG4gICAgICAgICAgZHJvcC1zaGFkb3coMCAwLjY1cmVtIDFyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4yNCkpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtYXR0YWNrZXIge1xuICAgICAgICB6LWluZGV4OiA4O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtY29tYmF0LWF0dGFja2VyIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWNvbWJhdC1sdW5nZSA5ODBtcyBjdWJpYy1iZXppZXIoMC4yLCAwLjc4LCAwLjIsIDEpIGJvdGg7XG4gICAgICAgIGZpbHRlcjpcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDAgMC41cmVtIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjcyKSlcbiAgICAgICAgICBkcm9wLXNoYWRvdygwIDFyZW0gMS40cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4yOCkpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtdGFyZ2V0IHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbi5pcy1jb21iYXQtdGFyZ2V0IHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LWNvbWJhdC1pbXBhY3QgOTgwbXMgZWFzZS1vdXQgYm90aDtcbiAgICAgICAgZmlsdGVyOlxuICAgICAgICAgIGRyb3Atc2hhZG93KDAgMCAwLjVyZW0gcmdiYSgyMjAsIDM4LCAzOCwgMC40OCkpXG4gICAgICAgICAgZHJvcC1zaGFkb3coMCAwLjc1cmVtIDEuMXJlbSByZ2JhKDIyMCwgMzgsIDM4LCAwLjE4KSk7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LWNvbWJhdC1sdW5nZSB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApIHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDI0JSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMS40cmVtLCAwKSByb3RhdGUoLTRkZWcpIHNjYWxlKDEuMDgpO1xuICAgICAgICB9XG5cbiAgICAgICAgNTIlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC00LjlyZW0sIDApIHJvdGF0ZSg3ZGVnKSBzY2FsZSgxLjEyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDY4JSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMy42cmVtLCAwKSByb3RhdGUoLTNkZWcpIHNjYWxlKDEuMDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoMGRlZykgc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktY29tYmF0LWltcGFjdCB7XG4gICAgICAgIDAlLFxuICAgICAgICA0MiUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgc2NhbGUoMSk7XG4gICAgICAgIH1cblxuICAgICAgICA1NCUge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMC4xNnJlbSwgLTAuMTJyZW0sIDApIHJvdGF0ZSgyZGVnKSBzY2FsZSgxLjA0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIDY0JSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMC4xNHJlbSwgMC4xcmVtLCAwKSByb3RhdGUoLTJkZWcpIHNjYWxlKDAuOTgpO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSByb3RhdGUoMGRlZykgc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uLmlzLXByb3RlY3RlZC10YXJnZXQge1xuICAgICAgICBvcGFjaXR5OiAwLjgyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24uaXMtcHJvdGVjdGVkLXRhcmdldCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwLjIyKSBkcm9wLXNoYWRvdygwIDAgMC4yOHJlbSByZ2JhKDEwMCwgMTE2LCAxMzksIDAuMjYpKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcikgYXV0byBhdXRvO1xuICAgICAgICBnYXA6IDAuMjhyZW07XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDAuNDhyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk4KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAxNSUgMCUsIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjEyKSwgdHJhbnNwYXJlbnQgNDQlKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDAuNXJlbSAxLjI1cmVtIHJnYmEoMzYsIDQ4LCA2OCwgMC4xKSxcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjE4cmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42Mik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG87XG4gICAgICAgIGdhcDogMC4xNnJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1oZWFkZXIgc21hbGwge1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjY0KTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjUycmVtLCAxLjV2dywgMC42OHJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzdHJvbmcge1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgICAgYWxpZ24tc2VsZjogc3RhcnQ7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMC44MnJlbSwgMi41dncsIDEuMDVyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wMjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzdHJvbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1oZWFkZXIgc3Ryb25nIHtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBjbGlwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzbWFsbCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWhhbmQgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWFydCA+IHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgbWF4LXdpZHRoOiA4OCU7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBjbGlwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1oZWFkZXIgc3BhbiB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMSAvIHNwYW4gMjtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAxLjNyZW07XG4gICAgICAgIGhlaWdodDogMS4zcmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuMjJyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZkOTFhO1xuICAgICAgICBjb2xvcjogIzI0MzA0NDtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIC0wLjA4cmVtIDAgcmdiYSg4MiwgNjQsIDI4LCAwLjE4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzcGFuLmlzLW9mZmVyaW5nLXBpcHMsXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1jb3N0LmlzLW9mZmVyaW5nLXBpcHMsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgc3Bhbi5pcy1vZmZlcmluZy1waXBzIHtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjE0cmVtO1xuICAgICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDAgMC4yOHJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWhlYWRlciBzcGFuLmlzLW9mZmVyaW5nLXBpcHMgaSxcbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWNvc3QuaXMtb2ZmZXJpbmctcGlwcyBpLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHNwYW4uaXMtb2ZmZXJpbmctcGlwcyBpLFxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtcGlwcyBpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAwLjcycmVtO1xuICAgICAgICBoZWlnaHQ6IDAuNzJyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzQlIDI4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpIDAgMC4xMnJlbSwgdHJhbnNwYXJlbnQgMC4xM3JlbSksXG4gICAgICAgICAgI2ZmZDkxYTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIC0wLjA4cmVtIDAgcmdiYSg4MiwgNjQsIDI4LCAwLjE4KSxcbiAgICAgICAgICAwIDAuMTJyZW0gMC4yNHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1hcnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzZyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg5NSwgMTExLCA0MiwgMC4xOCksIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjE0KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgMTglLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzIpLCB0cmFuc3BhcmVudCA0OCUpLFxuICAgICAgICAgICNkYmU3ZWY7XG4gICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDM2LCA0OCwgNjgsIDAuMDgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtYXJ0ID4gc3BhbiB7XG4gICAgICAgIG1heC13aWR0aDogNzglO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzNiwgNDgsIDY4LCAwLjQ4KTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjgycmVtLCAyLjJ2dywgMS4wNXJlbSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjAyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtYXJ0IHNtYWxsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwLjI4cmVtO1xuICAgICAgICBtYXgtd2lkdGg6IDc4JTtcbiAgICAgICAgcGFkZGluZzogMC4xcmVtIDAuMzRyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4IDAgMCA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjY2KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjQ4cmVtO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWVmZmVjdCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAwLjFyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuNDVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuMjRyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuMzRyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNzAlLCByZ2JhKDM2LCA0OCwgNjgsIDAuMDYpLCB0cmFuc3BhcmVudCA0NCUpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1lZmZlY3Qgc3Ryb25nIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBlbmQ7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgcGFkZGluZzogMC4xMnJlbSAwLjMycmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2VkZjJmNztcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjY2cmVtLCAydncsIDAuODJyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWVmZmVjdCBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjcyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjU4cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWZvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAwLjIycmVtO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjUyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjQ2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLS1iYXR0bGUge1xuICAgICAgICBnYXA6IDAuMjJyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNDJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS0tYmF0dGxlIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1hcnQge1xuICAgICAgICBtaW4taGVpZ2h0OiAyLjZyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS0tbGVhZGVyIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS1hcnQge1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTQpLCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4xNikpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDE4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc4KSwgdHJhbnNwYXJlbnQgNDglKSxcbiAgICAgICAgICAjZTdlZWY4O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtLWxpc3Qge1xuICAgICAgICB3aWR0aDogY2xhbXAoNC40cmVtLCAyMnZ3LCA1LjhyZW0pO1xuICAgICAgICBwYWRkaW5nOiAwLjM4cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtLWxpc3QgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWFydCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWFyZ2luLWlubGluZTogLTAuNDJyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTE1JTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICB0cmFuc2Zvcm0gMTYwbXMgZWFzZSxcbiAgICAgICAgICBmaWx0ZXIgMTYwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcDpob3ZlcixcbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXAuaXMtc2VsZWN0ZWQsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwLmlzLWRyYWdnaW5nIHtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcDpob3ZlciAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kLFxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcC5pcy1zZWxlY3RlZCAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kLFxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWNhcmQtd3JhcC5pcy1kcmFnZ2luZyAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZCk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwIDAgMC4xMnJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1zb2Z0KSxcbiAgICAgICAgICAwIDFyZW0gMnJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjVyZW0pIHNjYWxlKDEuMDQ1KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZCB7XG4gICAgICAgIGN1cnNvcjogZ3JhYjtcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0taGFuZDphY3RpdmUge1xuICAgICAgICBjdXJzb3I6IGdyYWJiaW5nO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kLmNkay1kcmFnLWRpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWRyYWctcHJldmlldyxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQuY2RrLWRyYWctcHJldmlldyB7XG4gICAgICAgIHdpZHRoOiBjbGFtcCg0LjlyZW0sIDE3dncsIDcuMXJlbSk7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwIDAgMC4xNnJlbSByZ2JhKDI1NSwgMjQ0LCAxOTQsIDAuNjgpLFxuICAgICAgICAgIDAgMS41cmVtIDNyZW0gdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLXNoYWRvdy1zdHJvbmcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyZGVnKSBzY2FsZSgxLjAzKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWRyYWctcHJldmlldyB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWRyYWctcGxhY2Vob2xkZXIsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLmNkay1kcmFnLXBsYWNlaG9sZGVyIHtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDQuOXJlbSwgMTd2dywgNy4xcmVtKTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBhc3BlY3QtcmF0aW86IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWFzcGVjdCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjEyKTtcbiAgICAgICAgb3BhY2l0eTogMC4yMjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1zbG90LmNkay1kcm9wLWxpc3QtZHJhZ2dpbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWRyb3AtdGFyZ2V0LmNkay1kcm9wLWxpc3QtZHJhZ2dpbmcge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1nb2xkLXJpbmcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNsb3QuY2RrLWRyb3AtbGlzdC1yZWNlaXZpbmcsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWRyb3AtdGFyZ2V0LmNkay1kcm9wLWxpc3QtcmVjZWl2aW5nIHtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjE4cmVtIHJnYmEoMjE0LCAxNjIsIDI5LCAwLjM0KSxcbiAgICAgICAgICAwIDFyZW0gMS45cmVtIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3ctc3Ryb25nKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWV5ZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDUwJTtcbiAgICAgICAgYm90dG9tOiAwLjM4cmVtO1xuICAgICAgICB3aWR0aDogMi4xNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjU1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWZvY3VzKSA1MiUsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC41NXJlbSAxLjFyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjE0KTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCAtMC4ycmVtKSBzY2FsZSgwLjkyKTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBvcGFjaXR5IDE0MG1zIGVhc2UsXG4gICAgICAgICAgdHJhbnNmb3JtIDE0MG1zIGVhc2UsXG4gICAgICAgICAgYm9yZGVyLWNvbG9yIDE0MG1zIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1leWU6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHdpZHRoOiAxLjFyZW07XG4gICAgICAgIGhlaWdodDogMS4xcmVtO1xuICAgICAgICBib3JkZXI6IDAuMTJyZW0gc29saWQgdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWZvY3VzKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogODIlIDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1leWU6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgd2lkdGg6IDAuNDJyZW07XG4gICAgICAgIGhlaWdodDogMC40MnJlbTtcbiAgICAgICAgYm9yZGVyOiAwLjA5cmVtIHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzUlIDMyJSwgI2ZmZmZmZiAwIDAuMDZyZW0sIHRyYW5zcGFyZW50IDAuMDdyZW0pLFxuICAgICAgICAgIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwOmhvdmVyIC5jaHJpc3RpYW5pdHktY2FyZC1leWUsXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtY2FyZC13cmFwLmlzLXNlbGVjdGVkIC5jaHJpc3RpYW5pdHktY2FyZC1leWUsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZXllOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIDApIHNjYWxlKDEpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWRyb3AtdGFyZ2V0IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA2LjQ1cmVtKTtcbiAgICAgICAgaGVpZ2h0OiA4LjA1cmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiA4LjA1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42NHJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBib3JkZXItY29sb3IgMTYwbXMgZWFzZSxcbiAgICAgICAgICBib3gtc2hhZG93IDE2MG1zIGVhc2UsXG4gICAgICAgICAgYmFja2dyb3VuZCAxNjBtcyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWRyb3AtdGFyZ2V0LmlzLXBsYXktdGFyZ2V0IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1yaW5nKTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjUwLCAyNDAsIDAuOTYpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTQpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDgyJSAxNCUsIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjI4KSAwIDAuN3JlbSwgdHJhbnNwYXJlbnQgMC43MnJlbSk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgaW5zZXQgMCAwIDAgMC4xMnJlbSByZ2JhKDIxNCwgMTYyLCAyOSwgMC4yNCksXG4gICAgICAgICAgMCAwLjhyZW0gMS41NXJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93KTtcbiAgICAgICAgYW5pbWF0aW9uOiBjaHJpc3RpYW5pdHktdGFyZ2V0LXB1bHNlIDE0NTBtcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1kcm9wLXRhcmdldCA+IC5jZGstZHJhZy1wbGFjZWhvbGRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1mcmFtZS0tYmFjayxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQtLWJhY2sge1xuICAgICAgICB3aWR0aDogY2xhbXAoNHJlbSwgMTR2dywgNS43cmVtKTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwLjU1cmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuOHJlbSAxLjU1cmVtIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNCk7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAtMTglO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLS1iYWNrOjpiZWZvcmUsXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYWNrOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMC41cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE2LCA0MiwgNjcsIDAuMTIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjM4cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpKTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMC4xMnJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1iYXR0bGUge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCB2YXIoLS1jaHJpc3RpYW5pdHktYmF0dGxlLWNhcmQtd2lkdGgpKTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBtYXJnaW4taW5saW5lOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkID4gc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1taW5pID4gc3BhbixcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgPiBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZCA+IHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IHNwYW4sXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0YXJ0O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZCA+IHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1taW5pID4gc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkID4gc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2FyZCA+IHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzdHJvbmcge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIGp1c3RpZnktc2VsZjogZW5kO1xuICAgICAgICBhbGlnbi1zZWxmOiBlbmQ7XG4gICAgICAgIHBhZGRpbmc6IDAuMTVyZW0gMC4zNXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlZGYyZjc7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoNS4zcmVtLCA2LjlyZW0pIG1pbm1heCg2LjRyZW0sIDFmcikgbWlubWF4KDQuOXJlbSwgNi41cmVtKTtcbiAgICAgICAgZ2FwOiAwLjY1cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogZW5kO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItcmFjay0tb3Bwb25lbnQge1xuICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICByaWdodDogMC4zNXJlbTtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgICAgIGdhcDogMC4yNXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogMS43cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjE4cmVtIDAuNDZyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjhyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyLS1vcHBvbmVudCB7XG4gICAgICAgIHRvcDogMC4xNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyIHNwYW4ge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY4cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3Ryb25nIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjg2cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWNvbW1hbmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSB7XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0YXJ0O1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc2KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjc0cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZS0tb3Bwb25lbnQge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxheWVyLWJhZGdlIHN0cm9uZyB7XG4gICAgICAgIG1heC13aWR0aDogNi41cmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1hdmF0YXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMS44NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjg1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuOXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTYpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy16b25lIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA3LjVyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtbWluaSxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgbWluLWhlaWdodDogNC45cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjQ4cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcikgYXV0byBhdXRvO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCgyLjZyZW0sIDFmcikgYXV0bztcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RyZXRjaDtcbiAgICAgICAgZ2FwOiAwLjMycmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWNhcmQtbWluaSB7XG4gICAgICAgIHdpZHRoOiAzLjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIDcuMzVyZW0pO1xuICAgICAgICBoZWlnaHQ6IDkuMDVyZW07XG4gICAgICAgIG1heC1oZWlnaHQ6IDkuMDVyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuODZyZW0gMC44MnJlbSAwLjc4cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmZmZmZmYsICNmOGZhZmMpLFxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjE4KSwgdHJhbnNwYXJlbnQgNDIlKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQtc3RhY2sge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGluc2V0OiAwO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLXN0YWNrLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQgLmNocmlzdGlhbml0eS16b25lLWNhcmQtc3RhY2ssXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZC1zdGFjayB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLXN0YWNrIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxLjcycmVtO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHdpZHRoOiBjbGFtcCgzLjc1cmVtLCA3LjN2dywgNC44NXJlbSk7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwLjRyZW0gMC43NXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTQpKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLXN0YWNrIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIHRvcDogMS44MnJlbTtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDMuMjVyZW0sIDYuMnZ3LCA0LjFyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZC0tcGxhY2UgLmNocmlzdGlhbml0eS16b25lLWNhcmQtc3RhY2sgdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgdG9wOiAxLjQ1cmVtO1xuICAgICAgICB3aWR0aDogY2xhbXAoNC4wNXJlbSwgNy42dncsIDUuMjVyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWRyb3AtdGFyZ2V0IC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHNwYW46bm90KC5jaHJpc3RpYW5pdHktZW1wdHktY2FyZC1zbG90KTpub3QoLmNocmlzdGlhbml0eS1waWxlLWNhcmQtaGludCk6bm90KC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLXN0YWNrKSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwLjcycmVtO1xuICAgICAgICByaWdodDogMC43NnJlbTtcbiAgICAgICAgbGVmdDogMC43NnJlbTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdHJldGNoO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzIpO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDAuNzRyZW0sIDEuOXZ3LCAwLjg2cmVtKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzdHJvbmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwLjU4cmVtO1xuICAgICAgICBib3R0b206IDAuNjRyZW07XG4gICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIG1pbi13aWR0aDogMS43cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjEzcmVtIDAuMzhyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzNywgMjQyLCAyNDcsIDAuOTIpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDk1MDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuNzVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjEyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc21hbGwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMC43OHJlbTtcbiAgICAgICAgbGVmdDogMC42OHJlbTtcbiAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyLjdyZW0pO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjU4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODUwO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktc2xvdCA+IC5jZGstZHJhZy1wbGFjZWhvbGRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGlsZS1jYXJkLWhpbnQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMi4zNXJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB3aWR0aDogY2xhbXAoMi43cmVtLCA2LjR2dywgMy40cmVtKTtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE2LCA0MiwgNjcsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjM0cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NiksIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgMTglLCByZ2JhKDI1MCwgMjA0LCAyMSwgMC4yNiksIHRyYW5zcGFyZW50IDQ0JSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoLTJkZWcpO1xuICAgICAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMC40MnJlbSAwLjhyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjE0KSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGlsZS1jYXJkLWhpbnQgaSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwLjM4cmVtO1xuICAgICAgICByaWdodDogMC4zOHJlbTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAwLjcycmVtO1xuICAgICAgICBoZWlnaHQ6IDAuNzJyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzQlIDI4JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpIDAgMC4xMnJlbSwgdHJhbnNwYXJlbnQgMC4xM3JlbSksXG4gICAgICAgICAgI2ZmZDkxYTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIC0wLjA4cmVtIDAgcmdiYSg4MiwgNjQsIDI4LCAwLjE4KSxcbiAgICAgICAgICAwIDAuMTJyZW0gMC4yNHJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YmVmb3JlLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNhcmQge1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICB3aWR0aDogY2xhbXAoNi42NXJlbSwgMTAuOHZ3LCA4Ljg1cmVtKTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWF0dGFjay1kcm9wLXRhcmdldCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJhY2stc3BhY2VyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIHZhcigtLWNocmlzdGlhbml0eS1iYXR0bGUtY2FyZC13aWR0aCkpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDQuM3JlbSwgMWZyKSk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBnYXA6IGNsYW1wKDAuNTVyZW0sIDEuMnZ3LCAwLjlyZW0pO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiA4LjRyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuOTJyZW0gMC44MnJlbSAwLjc4cmVtO1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMzYsIDQ4LCA2OCwgMC4wOCk7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjU0KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjM2KSksXG4gICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQtLXBsYWNlIHtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzIpLCByZ2JhKDIzOSwgMjQ2LCAyNTUsIDAuNSkpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNjIlIDM0JSwgcmdiYSgzNywgOTksIDIzNSwgMC4xOCksIHRyYW5zcGFyZW50IDUyJSksXG4gICAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wbGFjZS1iYWNrZHJvcCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgb3BhY2l0eTogMC41MjtcbiAgICAgICAgZmlsdGVyOiBibHVyKDEuM3JlbSkgc2F0dXJhdGUoMS4yOCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLS1wbGFjZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjgpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDQyJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KSwgdHJhbnNwYXJlbnQgNTQlKTtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDAuNDJyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXBsYWNlLXRva2VuIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDIuMThyZW07XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IGNsYW1wKDMuMnJlbSwgNy4ydncsIDQuNDVyZW0pO1xuICAgICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDM1JSAyNCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45MiksIHRyYW5zcGFyZW50IDM4JSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpLCByZ2JhKDIzOSwgMjQ2LCAyNTUsIDAuNzIpKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDAuNjVyZW0gMS4xcmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xNiksXG4gICAgICAgICAgaW5zZXQgMCAwIDAgMC4xOHJlbSByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDQpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcGxhY2UtdG9rZW4gaW1nIHtcbiAgICAgICAgd2lkdGg6IDQ4JTtcbiAgICAgICAgaGVpZ2h0OiA0OCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwLjE4cmVtIDAuMjRyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjE0KSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIHtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCA5OTlweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpLFxuICAgICAgICAgIDAgMC40NXJlbSAxcmVtIHJnYmEoMTYsIDQyLCA2NywgMC4wNik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLmlzLXBsYXktdGFyZ2V0IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjM4KTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCA5OTlweCByZ2JhKDM3LCA5OSwgMjM1LCAwLjA4KSxcbiAgICAgICAgICAwIDAgMCAwLjE4cmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZS0taGlzdG9yeS5oYXMtbmV3LWNhcmQge1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS1oaXN0b3J5LXB1bHNlIDkwMG1zIGVhc2Utb3V0IGJvdGg7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgY2hyaXN0aWFuaXR5LWhpc3RvcnktcHVsc2Uge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAgIGluc2V0IDAgMCAwIDk5OXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMiksXG4gICAgICAgICAgICAwIDAgMCAwIHJnYmEoMzcsIDk5LCAyMzUsIDApO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cblxuICAgICAgICAyOCUge1xuICAgICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICBpbnNldCAwIDAgMCA5OTlweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTYpLFxuICAgICAgICAgICAgMCAwIDAgMC4yNXJlbSByZ2JhKDM3LCA5OSwgMjM1LCAwLjE4KTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDI1KTtcbiAgICAgICAgfVxuXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgICBpbnNldCAwIDAgMCA5OTlweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpLFxuICAgICAgICAgICAgMCAwIDAgMCByZ2JhKDM3LCA5OSwgMjM1LCAwKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gdmFsLWNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMS44NXJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICB3aWR0aDogY2xhbXAoNC4xNXJlbSwgNy41dncsIDUuMzVyZW0pO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKC0yZGVnKTtcbiAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAuMzVyZW0gMC43NXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMTIpKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQtLXBsYWNlID4gdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgdG9wOiAxLjU1cmVtO1xuICAgICAgICB3aWR0aDogY2xhbXAoNC40cmVtLCA3Ljh2dywgNS44NXJlbSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoMmRlZyk7XG4gICAgICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwLjY1cmVtIDEuMXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMikpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZS0tZGVjayA+IHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoM2RlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIC5jaHJpc3RpYW5pdHktcGlsZS1jYXJkLWhpbnQge1xuICAgICAgICB0b3A6IDEuODVyZW07XG4gICAgICAgIHdpZHRoOiBjbGFtcCgzLjc1cmVtLCA3LjR2dywgNC44NXJlbSk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNiwgNDIsIDY3LCAwLjE0KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSgtMmRlZyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLS1kZWNrIC5jaHJpc3RpYW5pdHktcGlsZS1jYXJkLWhpbnQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSgzZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUtLWRlY2sgLmNocmlzdGlhbml0eS1waWxlLWNhcmQtaGludCBpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUtLWhpc3RvcnkgLmNocmlzdGlhbml0eS1waWxlLWNhcmQtaGludCB7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk2KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjkpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSAxOCUsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTgpLCB0cmFuc3BhcmVudCA0NCUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IHNwYW46bm90KC5jaHJpc3RpYW5pdHktZW1wdHktY2FyZC1zbG90KTpub3QoLmNocmlzdGlhbml0eS1wbGFjZS10b2tlbik6bm90KC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLXN0YWNrKSxcbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlID4gc3Bhbjpub3QoLmNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3QpOm5vdCguY2hyaXN0aWFuaXR5LXBpbGUtY2FyZC1oaW50KTpub3QoLmNocmlzdGlhbml0eS16b25lLWNhcmQtc3RhY2spIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDAuNzJyZW07XG4gICAgICAgIGxlZnQ6IDAuODJyZW07XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMS41NXJlbSk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuODQpO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDAuNzZyZW0sIDIuNXZ3LCAwLjkycmVtKTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Ryb25nLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzdHJvbmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwLjQ1cmVtO1xuICAgICAgICBib3R0b206IDAuNDVyZW07XG4gICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgIG1pbi13aWR0aDogMS42NXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4xMnJlbSAwLjRyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42NCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzNywgMjQyLCAyNDcsIDAuOTIpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDk1MDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuNzVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjEyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBlbSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgcGFkZGluZzogMC4xMnJlbSAwLjM4cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzNywgOTksIDIzNSwgMC4xMik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpO1xuICAgICAgICBmb250LXNpemU6IDAuNjhyZW07XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLWNhcmQtLXBsYWNlID4gc3Ryb25nIHtcbiAgICAgICAgcmlnaHQ6IDAuNDVyZW07XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMS44NXJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IGNsYW1wKDQuMTVyZW0sIDcuNXZ3LCA1LjM1cmVtKTtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBib3JkZXI6IDFweCBkYXNoZWQgcmdiYSgxNiwgNDIsIDY3LCAwLjIyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4zNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM2KTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YmVmb3JlLFxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxLjk1cmVtO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgIHdpZHRoOiBjbGFtcCgzLjVyZW0sIDcuMnZ3LCA0LjQ1cmVtKTtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1hc3BlY3QpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE2LCA0MiwgNjcsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjM1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTQpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygtNTAlICsgMC4yMnJlbSkpIHJvdGF0ZSg0ZGVnKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2hyaXN0aWFuaXR5LWNhcmQtYmFjayk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC01MCUgLSAwLjIycmVtKSkgdHJhbnNsYXRlWSgwLjE2cmVtKSByb3RhdGUoLTNkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZS5pcy1lbXB0eS16b25lOjpiZWZvcmUsXG4gICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZS5pcy1lbXB0eS16b25lOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbCB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgei1pbmRleDogMTAwMjA7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICAgICAgICBnYXA6IDAuNTVyZW07XG4gICAgICAgIHdpZHRoOiBtaW4oNTZyZW0sIGNhbGMoMTAwdncgLSAxLjI1cmVtKSk7XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwZHZoIC0gNC4yNXJlbSk7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuICAgICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGw6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsLmlzLWhpc3RvcnktcHJldmlldyB7XG4gICAgICAgIHdpZHRoOiBtaW4oNTZyZW0sIGNhbGMoMTAwdncgLSAxLjI1cmVtKSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy10b3BiYXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZ2FwOiAwLjY1cmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAyLjA1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctcG9zaXRpb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogMnJlbTtcbiAgICAgICAgbWluLXdpZHRoOiAzLjE1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNjJyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzIpO1xuICAgICAgICBmb250LXNpemU6IDAuNzZyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC40NXJlbSAxcmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IG1pbigxOS4yNXJlbSwgY2FsYyg1OGR2aCAtIDIuNHJlbSksIGNhbGMoMTAwdncgLSA2LjJyZW0pKTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDIuMnJlbSB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZ2xvdyk7XG4gICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOlxuICAgICAgICAgIHRyYW5zbGF0ZSh2YXIoLS1wcmV2aWV3LXNoaWZ0LXgsIDBweCksIHZhcigtLXByZXZpZXctc2hpZnQteSwgMHB4KSlcbiAgICAgICAgICBwZXJzcGVjdGl2ZSg0OHJlbSlcbiAgICAgICAgICByb3RhdGVYKHZhcigtLXByZXZpZXctcm90YXRlLXgsIDBkZWcpKVxuICAgICAgICAgIHJvdGF0ZVkodmFyKC0tcHJldmlldy1yb3RhdGUteSwgMGRlZykpO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTQwbXMgZWFzZS1vdXQ7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoMTNyZW0sIDE3cmVtKTtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctc3RhZ2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIDMxcmVtKTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWlubGluZTogNC40cmVtO1xuICAgICAgICBwZXJzcGVjdGl2ZTogNTJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1zdGFnZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDEwJSAyLjM1cmVtO1xuICAgICAgICB6LWluZGV4OiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNiksIHRyYW5zcGFyZW50IDU4JSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgzNywgOTksIDIzNSwgMC4xKSwgdHJhbnNwYXJlbnQpO1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHdpZHRoOiBtaW4oMTNyZW0sIGNhbGMoNDJkdmggLSAzcmVtKSwgMzR2dyk7XG4gICAgICAgIG9wYWNpdHk6IDAuMzQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBmaWx0ZXI6IGJsdXIoMC4wMnJlbSkgc2F0dXJhdGUoMC45KTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDM2MG1zIGN1YmljLWJlemllcigwLjIsIDAuODQsIDAuMjIsIDEpLCBvcGFjaXR5IDM2MG1zIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1naG9zdC0tcHJldmlvdXMge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTg2JSkgcm90YXRlWSgyMmRlZykgcm90YXRlKC00ZGVnKSBzY2FsZSgwLjgpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctZ2hvc3QtLW5leHQge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoODYlKSByb3RhdGVZKC0yMmRlZykgcm90YXRlKDRkZWcpIHNjYWxlKDAuOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbC5pcy1zbGlkaW5nLXByZXZpb3VzIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCB7XG4gICAgICAgIGFuaW1hdGlvbjogY2hyaXN0aWFuaXR5LXByZXZpZXctc2xpZGUtcHJldmlvdXMgMzYwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC44NCwgMC4yMiwgMSkgYm90aDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLXNoZWxsLmlzLXNsaWRpbmctbmV4dCAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQge1xuICAgICAgICBhbmltYXRpb246IGNocmlzdGlhbml0eS1wcmV2aWV3LXNsaWRlLW5leHQgMzYwbXMgY3ViaWMtYmV6aWVyKDAuMiwgMC44NCwgMC4yMiwgMSkgYm90aDtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBjaHJpc3RpYW5pdHktcHJldmlldy1zbGlkZS1wcmV2aW91cyB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGModmFyKC0tcHJldmlldy1zaGlmdC14LCAwcHgpIC0gNC4ycmVtKSwgdmFyKC0tcHJldmlldy1zaGlmdC15LCAwcHgpKSBwZXJzcGVjdGl2ZSg0OHJlbSkgcm90YXRlWCh2YXIoLS1wcmV2aWV3LXJvdGF0ZS14LCAwZGVnKSkgcm90YXRlWShjYWxjKHZhcigtLXByZXZpZXctcm90YXRlLXksIDBkZWcpICsgMTBkZWcpKSBzY2FsZSgwLjkyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDU4JSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUodmFyKC0tcHJldmlldy1zaGlmdC14LCAwcHgpLCB2YXIoLS1wcmV2aWV3LXNoaWZ0LXksIDBweCkpIHBlcnNwZWN0aXZlKDQ4cmVtKSByb3RhdGVYKHZhcigtLXByZXZpZXctcm90YXRlLXgsIDBkZWcpKSByb3RhdGVZKHZhcigtLXByZXZpZXctcm90YXRlLXksIDBkZWcpKSBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIGNocmlzdGlhbml0eS1wcmV2aWV3LXNsaWRlLW5leHQge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKHZhcigtLXByZXZpZXctc2hpZnQteCwgMHB4KSArIDQuMnJlbSksIHZhcigtLXByZXZpZXctc2hpZnQteSwgMHB4KSkgcGVyc3BlY3RpdmUoNDhyZW0pIHJvdGF0ZVgodmFyKC0tcHJldmlldy1yb3RhdGUteCwgMGRlZykpIHJvdGF0ZVkoY2FsYyh2YXIoLS1wcmV2aWV3LXJvdGF0ZS15LCAwZGVnKSAtIDEwZGVnKSkgc2NhbGUoMC45Mik7XG4gICAgICAgIH1cblxuICAgICAgICA1OCUge1xuICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKHZhcigtLXByZXZpZXctc2hpZnQteCwgMHB4KSwgdmFyKC0tcHJldmlldy1zaGlmdC15LCAwcHgpKSBwZXJzcGVjdGl2ZSg0OHJlbSkgcm90YXRlWCh2YXIoLS1wcmV2aWV3LXJvdGF0ZS14LCAwZGVnKSkgcm90YXRlWSh2YXIoLS1wcmV2aWV3LXJvdGF0ZS15LCAwZGVnKSkgc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXNpZGUge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCB2YWwtY2hyaXN0aWFuaXR5LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1zaGVsbC5pcy1nYWxsZXJ5LXByZXZpZXcgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkIHtcbiAgICAgICAgd2lkdGg6IG1pbigyMC40cmVtLCBjYWxjKDYyZHZoIC0gMi4ycmVtKSwgY2FsYygxMDB2dyAtIDUuNHJlbSkpO1xuICAgICAgfVxuXG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICAgICAgICBnYXA6IDAuNDJyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWhlYWRlciBzdHJvbmcge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogY2xpcDtcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuMjVyZW0sIDV2dywgMS44NXJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA0O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC10eXBlLWljb24sXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1jb3N0IHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXR5cGUtaWNvbiB7XG4gICAgICAgIHdpZHRoOiAxLjZyZW07XG4gICAgICAgIGhlaWdodDogMS42cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDUwJSwgcmdiYSg5NSwgMTExLCA0MiwgMC43MikgMCAwLjIycmVtLCB0cmFuc3BhcmVudCAwLjI0cmVtKSxcbiAgICAgICAgICByZ2JhKDM2LCA0OCwgNjgsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXR5cGUtaWNvbiBpbWcge1xuICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1jb3N0IHtcbiAgICAgICAgbWluLXdpZHRoOiAyLjFyZW07XG4gICAgICAgIGhlaWdodDogMi4xcmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuMzZyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmQ5MWE7XG4gICAgICAgIGNvbG9yOiAjMjQzMDQ0O1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMC4xMnJlbSAwIHJnYmEoODIsIDY0LCAyOCwgMC4xOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWFydCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogOXJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC40OHJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDk1LCAxMTEsIDQyLCAwLjIpLCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4xNikpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDI1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc2KSwgdHJhbnNwYXJlbnQgNDIlKSxcbiAgICAgICAgICAjZGJlN2VmO1xuICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgzNiwgNDgsIDY4LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtYXJ0IGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1hcnQgPiBzcGFuIHtcbiAgICAgICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgICAgIGNvbG9yOiByZ2JhKDM2LCA0OCwgNjgsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IGNsYW1wKDEuMXJlbSwgNXZ3LCAxLjhyZW0pO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1hcnQgc21hbGwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDAuNTVyZW07XG4gICAgICAgIG1pbi13aWR0aDogNXJlbTtcbiAgICAgICAgcGFkZGluZzogMC4xNnJlbSAwLjQ4cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweCAwIDAgOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjNyZW0gMC44cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xMik7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNzQpO1xuICAgICAgICBmb250LXNpemU6IDAuNjhyZW07XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC12ZXJzZSxcbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4zMnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtdmVyc2UgcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtdmVyc2Uge1xuICAgICAgICBjb2xvcjogIzE3MTkyMztcbiAgICAgICAgZm9udC1mYW1pbHk6IEdlb3JnaWEsICdUaW1lcyBOZXcgUm9tYW4nLCBzZXJpZjtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjcycmVtLCAyLjd2dywgMC44NnJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXZlcnNlIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYWxpZ24tY29udGVudDogc3RhcnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDdyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNnJlbSAwLjdyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNDVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgNzIlLCByZ2JhKDM2LCA0OCwgNjgsIDAuMDcpLCB0cmFuc3BhcmVudCAzNCUpLFxuICAgICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Nik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXN0YXRzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAxLjM1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1zdGF0cyBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1zdGF0cyAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1waXBzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gICAgICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgICAgIGdhcDogMC4ycmVtO1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtZWZmZWN0ID4gZGl2Omxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4xMnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtZWZmZWN0ID4gZGl2Omxhc3Qtb2YtdHlwZSBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLWVmZmVjdCBwIHtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgwLjc4cmVtLCAyLjl2dywgMC45MnJlbSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZnVsbC1jYXJkLXJhcml0eSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwLjYycmVtO1xuICAgICAgICByaWdodDogMC42MnJlbTtcbiAgICAgICAgd2lkdGg6IDAuNDZyZW07XG4gICAgICAgIGhlaWdodDogMC40NnJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4xMnJlbTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1yYXJpdHkuaXMtbm9ybWFsIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzNhODBlOTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtcmFyaXR5LmlzLWdvb2Qge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjNGVlOTNhO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZ1bGwtY2FyZC1yYXJpdHkuaXMtdmVyeS1nb29kIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2U5Y2UzYTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIGF1dG8gbWlubWF4KDAsIDFmcikgYXV0bztcbiAgICAgICAgZ2FwOiAwLjM0cmVtO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjY4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjU4cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mdWxsLWNhcmQtZm9vdGVyIHNwYW4ge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2Uge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDJyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC42cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTQpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc4KTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNDVyZW0gMXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB6LWluZGV4OiA3O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMi41NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjU1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjI4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk4KSwgcmdiYSgyMzksIDI0NiwgMjU1LCAwLjk0KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzNSUgMjAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE4KSwgdHJhbnNwYXJlbnQgNTIlKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cyk7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICBmb250LXdlaWdodDogMTAwMDtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDAuNzVyZW0gMS40cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xNCksXG4gICAgICAgICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgzNywgOTksIDIzNSwgMC40Mik7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjk1cmVtIDEuNjVyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjE4KSxcbiAgICAgICAgICAwIDAgMCAwLjE2cmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMDgpLFxuICAgICAgICAgIGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNjIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2LS1wcmV2aW91cyB7XG4gICAgICAgIGxlZnQ6IDAuNnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdi0tbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAwLjZyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1iYWNrZHJvcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1iYWNrZHJvcCxcbiAgICAgIC5jaHJpc3RpYW5pdHktaW5mby1iYWNrZHJvcCB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjY0KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWJhY2tkcm9wIHtcbiAgICAgICAgei1pbmRleDogMTAwMTA7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigwLjEycmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1pbmZvLWJhY2tkcm9wIHtcbiAgICAgICAgei1pbmRleDogNTA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaW5mby1wYW5lbCB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgei1pbmRleDogNTE7XG4gICAgICAgIHdpZHRoOiBtaW4oMzFyZW0sIGNhbGMoMTAwdncgLSAxLjI1cmVtKSk7XG4gICAgICAgIG1heC1oZWlnaHQ6IG1pbigzNHJlbSwgY2FsYygxMDB2aCAtIDJyZW0pKTtcbiAgICAgICAgcGFkZGluZy10b3A6IDIuMzVyZW07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWluZm8tY2xvc2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDAuMTVyZW07XG4gICAgICAgIHotaW5kZXg6IDI7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICBnYXA6IDAuODVyZW07XG4gICAgICAgIG1heC1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuOXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTcpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTcpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDglIDAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjEpLCB0cmFuc3BhcmVudCAzOCUpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIDAgMS4ycmVtIDIuNnJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMjQpLFxuICAgICAgICAgIGluc2V0IDAgMCAwIDAuMjVyZW0gcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUyKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAyLjFyZW07XG4gICAgICAgIGhlaWdodDogMi4xcmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cykgMTIlLCAjZmZmZmZmKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtZm9jdXMpIDI0JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBoMiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc21hbGwge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjYyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBoMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuMThyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCA3dncsIDIuMnJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzdHJvbmcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjU1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjIycmVtIDAuNTVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWRmMmY3O1xuICAgICAgICBmb250LXNpemU6IDAuOTJyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHAge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHVsIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjQ1cmVtO1xuICAgICAgICBtYXJnaW46IDAuOHJlbSAwIDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS4wNXJlbTtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43OCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQgPiBzbWFsbCxcbiAgICAgIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCA+IHNwYW4ge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjY0KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkID4gc3Ryb25nIHtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjU1cmVtLCA4dncsIDIuMzVyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkID4gcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYWxpZ24tc2VsZjogZW5kO1xuICAgICAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiA0O1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgICAgICBtYXgtaGVpZ2h0OiBtaW4oMThyZW0sIDU0ZHZoKTtcbiAgICAgICAgcGFkZGluZzogMC42OHJlbSAwLjc2cmVtO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg4KSwgcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjgyKSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4JSAwJSwgcmdiYSgzNywgOTksIDIzNSwgMC4wNyksIHRyYW5zcGFyZW50IDQ0JSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC41NXJlbSAxLjJyZW0gcmdiYSgxNiwgNDIsIDY3LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG8gbWlubWF4KDQuNXJlbSwgMWZyKSBhdXRvO1xuICAgICAgICBnYXA6IDAuNXJlbTtcbiAgICAgICAgbWF4LWhlaWdodDogbWluKDE1cmVtLCAzNGR2aCk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAuNzJyZW0gMC43OHJlbSAwLjc4cmVtO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM3LCA5OSwgMjM1LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTcpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTcpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDglIDAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjEpLCB0cmFuc3BhcmVudCA0NCUpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNzVyZW0gMS42cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4xMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMtaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IDAuN3JlbTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLWhlYWRlciA+IGRpdiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4xcmVtO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgc21hbGwsXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLWhlYWRlciBzcGFuLFxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZCBzdHJvbmcge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgc21hbGwge1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjU4KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY4cmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLWhlYWRlciBzcGFuIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktbmF2IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktbmF2IGJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxLjg1cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuODVyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg4KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cyk7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDk1MDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjg1cmVtIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTQpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAwLjM0cmVtO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyBidXR0b24ge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAxLjg1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNThyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyMzcsIDI0MiwgMjQ3LCAwLjgyKTtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43Nik7XG4gICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLmlzLXNlbGVjdGVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjMyKTtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cykgMTQlLCAjZmZmZmZmKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cyk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQuNXJlbTtcbiAgICAgICAgZ2FwOiAwLjM0cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjU1cmVtIDAuNjJyZW07XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xNik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNjJyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41OCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQgc3Ryb25nIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC45KTtcbiAgICAgICAgZm9udC1zaXplOiAwLjgycmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTUwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktc2Nyb2xsIHtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC4yNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43NCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zMjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgYWxpZ24tc2VsZjogZW5kO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctdXNlLWFiaWxpdHkge1xuICAgICAgICBtaW4taGVpZ2h0OiAycmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNzJyZW07XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cyk7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC41NXJlbSAxLjFyZW0gcmdiYSgzNywgOTksIDIzNSwgMC4yMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy11c2UtYWJpbGl0eTpkaXNhYmxlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNik7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNSk7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgc21hbGwsXG4gICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHN0cm9uZyxcbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBzbWFsbCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDMxLCA0MSwgNTEsIDAuNTgpO1xuICAgICAgICBmb250LXNpemU6IDAuNjhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgc3Ryb25nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuMDhyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMC45MnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMC4yMnJlbTtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43NCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzI7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA1MnJlbSkge1xuICAgICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGwge1xuICAgICAgICAgIHdpZHRoOiBtaW4oNThyZW0sIGNhbGMoMTAwdncgLSAzcmVtKSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICB3aWR0aDogbWluKDIzLjRyZW0sIGNhbGMoNjlkdmggLSA1Ljg1cmVtKSwgMjVyZW0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1MS45OXJlbSkge1xuICAgICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGwge1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIGdhcDogMC40cmVtO1xuICAgICAgICAgIHdpZHRoOiBtaW4oY2FsYygxMDB2dyAtIDAuOXJlbSksIDI0cmVtKTtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDEuMTVyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWNvbnRlbnQge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctc2lkZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1zdGFnZSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDMuNTVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQge1xuICAgICAgICAgIHdpZHRoOiBtaW4oMTYuNXJlbSwgY2FsYyg2NmR2aCAtIDcuNHJlbSksIGNhbGMoMTAwdncgLSA2LjM1cmVtKSk7XG4gICAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtc2hlbGwuaXMtZ2FsbGVyeS1wcmV2aWV3IC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZCB7XG4gICAgICAgICAgd2lkdGg6IG1pbigxNy4yNXJlbSwgY2FsYyg3MGR2aCAtIDcuMnJlbSksIGNhbGMoMTAwdncgLSA1Ljc1cmVtKSk7XG4gICAgICAgIH1cblxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1naG9zdCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IG1pbig3LjFyZW0sIGNhbGMoMzBkdmggLSA0cmVtKSwgMjR2dyk7XG4gICAgICAgICAgb3BhY2l0eTogMC4yNDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1naG9zdC0tcHJldmlvdXMge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTE4JSkgcm90YXRlWSgyNGRlZykgcm90YXRlKC01ZGVnKSBzY2FsZSgwLjc4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1naG9zdC0tbmV4dCB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDExOCUpIHJvdGF0ZVkoLTI0ZGVnKSByb3RhdGUoNWRlZykgc2NhbGUoMC43OCk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2Uge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOXJlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDAuNThyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAwLjcycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdiB7XG4gICAgICAgICAgd2lkdGg6IDIuMnJlbTtcbiAgICAgICAgICBoZWlnaHQ6IDIuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYtLXByZXZpb3VzIHtcbiAgICAgICAgICBsZWZ0OiAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdi0tbmV4dCB7XG4gICAgICAgICAgcmlnaHQ6IDAuMzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byBtaW5tYXgoNC43cmVtLCAxZnIpIGF1dG87XG4gICAgICAgICAgbWF4LWhlaWdodDogbWluKDEzLjVyZW0sIDM0ZHZoKTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjYycmVtIDAuN3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMge1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjAycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZCB7XG4gICAgICAgICAgbWluLWhlaWdodDogNC43cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNDhyZW0gMC41NHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgcCB7XG4gICAgICAgICAgZm9udC1zaXplOiAwLjc4cmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI0O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wcmV2aWV3LXVzZS1hYmlsaXR5IHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxLjk1cmVtO1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwLjY4cmVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1iYWNrZHJvcCB7XG4gICAgICAgIHotaW5kZXg6IDQwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktYmFja2Ryb3Age1xuICAgICAgICB6LWluZGV4OiAxMDAwMDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjcyKTtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDAuMTRyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgYm90dG9tOiBtYXgoMC41cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHotaW5kZXg6IDQxO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGdhcDogMC43NXJlbTtcbiAgICAgICAgd2lkdGg6IG1pbihjYWxjKDEwMHZ3IC0gMXJlbSksIDQ0cmVtKTtcbiAgICAgICAgbWluLWhlaWdodDogbWluKDE4cmVtLCBjYWxjKDEwMGR2aCAtIDFyZW0pKTtcbiAgICAgICAgbWF4LWhlaWdodDogbWluKDMycmVtLCBjYWxjKDEwMGR2aCAtIDJyZW0pKTtcbiAgICAgICAgcGFkZGluZzogMC44cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM2LCA0OCwgNjgsIDAuMTYpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTgpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDEuNXJlbSA0cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4yOCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBoZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGdhcDogMC43NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBoMixcbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBoZWFkZXIgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMS44NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjg1cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2VkZjJmNztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1kaWFsb2ctYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2Uge1xuICAgICAgICBtaW4taGVpZ2h0OiAxLjg1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNjJyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xNCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjc4KTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjc2cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC44cmVtIHJnYmEoMTYsIDQyLCA2NywgMC4wOCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoNS40cmVtLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAwLjU1cmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIHNjcm9sbGJhci1jb2xvcjogcmdiYSgzNiwgNDgsIDY4LCAwLjMyKSByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNzIpO1xuICAgICAgICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGU7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbSAwLjFyZW0gMC4yNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgIHdpZHRoOiAwLjY1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43Mik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBib3JkZXI6IDAuMTRyZW0gc29saWQgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzYsIDQ4LCA2OCwgMC4zMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLWRyYXdlciB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICB3aWR0aDogbWluKGNhbGMoMTAwdncgLSAxcmVtKSwgNDhyZW0pO1xuICAgICAgICBtaW4taGVpZ2h0OiBtaW4oMjByZW0sIGNhbGMoMTAwZHZoIC0gMXJlbSkpO1xuICAgICAgICBtYXgtaGVpZ2h0OiBtaW4oMzRyZW0sIGNhbGMoMTAwZHZoIC0gMnJlbSkpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICBnYXA6IDAuNjVyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICAgICAgcGFkZGluZzogMC43MnJlbSAwLjhyZW07XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzYsIDQ4LCA2OCwgMC4xMik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuN3JlbTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTYpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTYpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDglIDAlLCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4xMiksIHRyYW5zcGFyZW50IDQyJSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLW5vdGUgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43Nik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC42cmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIHNjcm9sbGJhci1jb2xvcjogcmdiYSgzNiwgNDgsIDY4LCAwLjMyKSByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNzIpO1xuICAgICAgICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGU7XG4gICAgICAgIHBhZGRpbmc6IDAuMXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCg1LjRyZW0sIDYuNXJlbSkgbWlubWF4KDAsIDFmcik7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMC40NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjEyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cuaXMtZXhoYXVzdGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC42ODtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG8gYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDAxO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwZHZ3O1xuICAgICAgICBoZWlnaHQ6IDEwMGR2aDtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMDBkdmg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMGR2aDtcbiAgICAgICAgcGFkZGluZzpcbiAgICAgICAgICBtYXgoMXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC10b3ApKVxuICAgICAgICAgIG1heCgxcmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSlcbiAgICAgICAgICBtYXgoMXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKVxuICAgICAgICAgIG1heCgxcmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45OSksIHJnYmEoMjM5LCAyNDYsIDI1NSwgMC45OSkpLFxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMTYlIDAlLCByZ2JhKDM3LCA5OSwgMjM1LCAwLjEyKSwgdHJhbnNwYXJlbnQgNDIlKTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIGhlYWRlciA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogMC4xNXJlbTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIGhlYWRlciBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBtaW5tYXgoOC41cmVtLCAxM3JlbSk7XG4gICAgICAgIGdhcDogMC42NXJlbTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMjVyZW07XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGlucHV0LFxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIHNlbGVjdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuMzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAgMC43NXJlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNiwgNDgsIDY4LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC42NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWVkaXRpb24tc3RyaXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDAuNDVyZW07XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWVkaXRpb24tc3RyaXAgYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogMi4zNXJlbTtcbiAgICAgICAgcGFkZGluZzogMCAwLjc1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIxNCwgMTYyLCAyOSwgMC4zOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtcGFyY2htZW50KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIGltZyB7XG4gICAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICAgIGhlaWdodDogMS4ycmVtO1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDguMnJlbSwgOS4xcmVtKSk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBzdGFydDtcbiAgICAgICAgZ2FwOiAwLjk1cmVtO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHNjcm9sbGJhci1jb2xvcjogcmdiYSgzNiwgNDgsIDY4LCAwLjMyKSByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNzIpO1xuICAgICAgICBzY3JvbGxiYXItZ3V0dGVyOiBzdGFibGU7XG4gICAgICAgIHBhZGRpbmc6IDAuMzVyZW0gMC4xNXJlbSAwLjY1cmVtO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY2FyZC1idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgd2lkdGg6IDAuNjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNzIpO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBib3JkZXI6IDAuMTRyZW0gc29saWQgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcyKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzYsIDQ4LCA2OCwgMC4zMik7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIG1pbm1heCgwLCAxZnIpIGF1dG87XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XG4gICAgICAgIGdhcDogMC4yNnJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDcuN3JlbTtcbiAgICAgICAgcGFkZGluZzogMC41OHJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTYpLCByZ2JhKDI0OCwgMjUwLCAyNTIsIDAuOTYpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDc4JSAxNCUsIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjc4KSAwIDAuNDJyZW0sIHRyYW5zcGFyZW50IDAuNDRyZW0pO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNDVyZW0gMXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMSk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBzbWFsbCB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41OCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC42MnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgc3Ryb25nIHtcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIGFsaWduLXNlbGY6IHN0YXJ0O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuMXJlbTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44OHJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHNwYW4ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwLjQycmVtO1xuICAgICAgICBib3R0b206IDAuNDJyZW07XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogMS41NXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjU1cmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuMjhyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZWRmMmY3O1xuICAgICAgICBmb250LXNpemU6IDAuODJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctY2FyZCBlbSB7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxLjlyZW0pO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogcmdiYSgzMSwgNDEsIDUxLCAwLjYyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjY0cmVtO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkIHAsXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvdyBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQgcCB7XG4gICAgICAgIGFsaWduLXNlbGY6IGVuZDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC42NCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgPiBkaXYge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXJvdyA+IGRpdiBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC43Mik7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgPiBkaXYgYnV0dG9uIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAgICAgbWluLWhlaWdodDogMi4ycmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuN3JlbTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNiwgNDIsIDY3LCAwLjE2KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTAyYTQzO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3cgPiBkaXYgYnV0dG9uOmRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2UyZThmMDtcbiAgICAgICAgY29sb3I6IHJnYmEoMzEsIDQxLCA1MSwgMC41OCk7XG4gICAgICB9XG5cbiAgICAgIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkIC5jaHJpc3RpYW5pdHktcmVuZGVyLWNhcmQtYnV0dG9uIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNi40cmVtKTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQgLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24ge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA4LjdyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtaGVhZGVyIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMC43NHJlbSwgMC44NXZ3LCAwLjlyZW0pO1xuICAgICAgfVxuXG4gICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCAuY2hyaXN0aWFuaXR5LWNhcmQtZnJhbWUtaGVhZGVyIHNtYWxsLFxuICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQgLmNocmlzdGlhbml0eS1jYXJkLWZyYW1lLWZvb3RlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC40NHJlbTtcbiAgICAgIH1cblxuICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkLmNocmlzdGlhbml0eS1yZW5kZXItY2FyZC1idXR0b24ge1xuICAgICAgICB3aWR0aDogbWluKDEwMCUsIDUuOHJlbSk7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgYnV0dG9uOmRpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgb3BhY2l0eTogMC41NTtcbiAgICAgIH1cblxuICAgICAgYnV0dG9uOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAwLjE4NzVyZW0gc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1cykgMjQlLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjEyNXJlbTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyayksXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkge1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1pbms6IHZhcigtLWlvbi10ZXh0LWNvbG9yLCAjZTVlZGY4KTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc3VyZmFjZTogIzExMTgyNztcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtcGFyY2htZW50OiAjMTMyMjNhO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1vbGl2ZTogIzkzYzVmZDtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZDogIzYwYTVmYTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ29sZC1zb2Z0OiByZ2JhKDk2LCAxNjUsIDI1MCwgMC4xOCk7XG4gICAgICAgIC0tY2hyaXN0aWFuaXR5LXRoZW1lLWdvbGQtcmluZzogcmdiYSgxNDcsIDE5NywgMjUzLCAwLjQyKTtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtZ2xvdzogcmdiYSg5NiwgMTY1LCAyNTAsIDAuMjQpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1mb2N1czogIzkzYzVmZDtcbiAgICAgICAgLS1jaHJpc3RpYW5pdHktdGhlbWUtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMzQpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS10aGVtZS1zaGFkb3ctc3Ryb25nOiByZ2JhKDAsIDAsIDAsIDAuNDgpO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jYXJkLWJhY2s6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxNDcsIDE5NywgMjUzLCAwLjIpLCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpKSxcbiAgICAgICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMWUzYTVmIDAgMC4zM3JlbSwgIzBmMTcyYSAwLjMzcmVtIDAuNjZyZW0pO1xuICAgICAgICAtLWNocmlzdGlhbml0eS1jYXJkLWJhY2stc29mdDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDE0NywgMTk3LCAyNTMsIDAuMTUpLCByZ2JhKDE1LCAyMywgNDIsIDAuMDYpKSxcbiAgICAgICAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjMWUzYTVmIDAgMC4zM3JlbSwgIzBmMTcyYSAwLjMzcmVtIDAuNjZyZW0pO1xuICAgICAgICBjb2xvci1zY2hlbWU6IGRhcms7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1vcGVuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LW9wZW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LW9wZW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LW9wZW4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1vcGVuLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zZWNvbmRhcnktYWN0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zZWNvbmRhcnktYWN0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2Vjb25kYXJ5LWFjdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXNlY29uZGFyeS1hY3Rpb24sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc2Vjb25kYXJ5LWFjdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZWRpdGlvbi1zdHJpcCBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWVkaXRpb24tc3RyaXAgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZWRpdGlvbi1zdHJpcCBidXR0b24ge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ3LCAxOTcsIDI1MywgMC4zNik7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgzMCwgNTgsIDk1LCAwLjgyKSwgcmdiYSgxNSwgMjMsIDQyLCAwLjg4KSksXG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAyMCUgMCUsIHJnYmEoOTYsIDE2NSwgMjUwLCAwLjE2KSwgdHJhbnNwYXJlbnQgNDIlKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNocmlzdGlhbml0eS10aGVtZS1pbmspO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNTVyZW0gMS4ycmVtIHJnYmEoMCwgMCwgMCwgMC4yNCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc3BsYXNoLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zcGxhc2gsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zcGxhc2gsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zcGxhc2gsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc3BsYXNoIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0NywgMTk3LCAyNTMsIDAuMjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNTAlIDE4JSwgcmdiYSg5NiwgMTY1LCAyNTAsIDAuMTYpLCB0cmFuc3BhcmVudCAyMnJlbSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxNSwgMjMsIDQyLCAwLjg4KSwgcmdiYSg3LCAxNywgMzEsIDAuOTcpKSxcbiAgICAgICAgICB2YXIoLS1jaHJpc3RpYW5pdHktY2FyZC1iYWNrLXNvZnQpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDEuMnJlbSAzLjJyZW0gcmdiYSgwLCAwLCAwLCAwLjI4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIGFydGljbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBhcnRpY2xlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBhcnRpY2xlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgYXJ0aWNsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fc3RhdHVzIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19zdGF0dXMgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19zdGF0dXMgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19zdGF0dXMgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zdGFydF9fc3RhdHVzIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIGFydGljbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBhcnRpY2xlID4gc3BhbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNjgpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuNzVyZW0gMS43cmVtIHJnYmEoMCwgMCwgMCwgMC4yMik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc3BsYXNoIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNwbGFzaCBwLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3BsYXNoIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zcGxhc2ggcCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zcGxhc2ggcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NvcHkgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NvcHkgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jb3B5IHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY29weSBwLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jb3B5IHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19jYXJkcyBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc3RhcnRfX2NhcmRzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zdGFydF9fbW9kZXMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXN0YXJ0X19tb2RlcyBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oZWFkZXIgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGVhZGVyIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGVhZGVyIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc2NvcmVib2FyZCBzcGFuIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43NCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktdHVybixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktdHVybixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXR1cm4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS10dXJuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXR1cm4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWxlYWRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktbGVhZGVyLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktbGVhZGVyLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktbGVhZGVyLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWxlYWRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3MsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3MsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3MsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oaWRkZW4taGFuZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlkZGVuLWhhbmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaWRkZW4taGFuZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpZGRlbi1oYW5kLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWhpZGRlbi1oYW5kLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXBpbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZGVjayxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZGVjayxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWRlY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1kZWNrLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWRlY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYWNlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wbGFjZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYWNlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcGxhY2UsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcGxhY2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktbWF0Y2gtc3RyaXAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWFjdGlvbnMsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWFjdGlvbnMsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1hY3Rpb25zLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktYWN0aW9ucyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1hY3Rpb25zLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnksXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGlzdG9yeSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE4KTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjgyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS10dXJuLmlzLW93bi10dXJuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS10dXJuLmlzLW93bi10dXJuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktdHVybi5pcy1vd24tdHVybixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXR1cm4uaXMtb3duLXR1cm4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktdHVybi5pcy1vd24tdHVybiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg0NSwgMjEyLCAxOTEsIDAuMzYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDIwLCA4MywgNzYsIDAuMzYpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXRhYmxlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS10YWJsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXRhYmxlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktdGFibGUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktdGFibGUge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMTAyMzNkLCAjMGIxNzI4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcGxheWVyLXNpZGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wbGF5ZXItc2lkZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYXllci1zaWRlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXBsYXllci1zaWRlIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjM0KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zaGFyZWQtem9uZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXNoYXJlZC16b25lIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjU4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZS5pcy1wbGFjaW5nLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLmlzLXBsYWNpbmctY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLmlzLXBsYWNpbmctY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lLmlzLXBsYWNpbmctY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1iYXR0bGUtem9uZS5pcy1wbGFjaW5nLWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMzAsIDU4LCA5NSwgMC44MiksIHJnYmEoMTUsIDIzLCA0MiwgMC43MikpLFxuICAgICAgICAgIHJnYmEoMTUsIDIzLCA0MiwgMC41OCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zbG90LFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc2xvdCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1zbG90IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMjQpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNTQpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0LFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQge1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgzNywgOTksIDIzNSwgMC4yNCksIHJnYmEoMTUsIDIzLCA0MiwgMC43OCkpLFxuICAgICAgICAgIHJnYmEoMTUsIDIzLCA0MiwgMC43NCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktc2xvdC0tcGxheS10YXJnZXQgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1zbG90LS1wbGF5LXRhcmdldCBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXNsb3QtLXBsYXktdGFyZ2V0IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1jYXJkIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktY2FyZCBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktY2FyZCBzdHJvbmcge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDMwLCA0MSwgNTksIDAuOTIpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS16b25lLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjI0KTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE3LCAyNCwgMzksIDAuOTYpLCByZ2JhKDE1LCAyMywgNDIsIDAuOTQpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDE0JSAwJSwgcmdiYSg5NiwgMTY1LCAyNTAsIDAuMTIpLCB0cmFuc3BhcmVudCA0MiUpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICAgIGJveC1zaGFkb3c6XG4gICAgICAgICAgMCAwLjU1cmVtIDEuMjVyZW0gcmdiYSgwLCAwLCAwLCAwLjI4KSxcbiAgICAgICAgICBpbnNldCAwIDAgMCAwLjEycmVtIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlID4gc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXBsYXllci1iYWRnZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wbGF5ZXItYmFkZ2Uge1xuICAgICAgICBjb2xvcjogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjc4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc21hbGwge1xuICAgICAgICBjb2xvcjogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjYyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS16b25lLWNhcmQgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkID4gc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSA+IHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1oYW5kLW1ldGVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC44OCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwLjM1cmVtIDAuOHJlbSByZ2JhKDAsIDAsIDAsIDAuMjgpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGFuZC1tZXRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNyk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YmVmb3JlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjpiZWZvcmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjpiZWZvcmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjpiZWZvcmUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YmVmb3JlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmJlZm9yZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjpiZWZvcmUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmJlZm9yZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YmVmb3JlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC45Mik7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjg1cmVtIHJnYmEoMCwgMCwgMCwgMC4yNik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YWZ0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGU6OmFmdGVyLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZTo6YWZ0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjphZnRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlOjphZnRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjphZnRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjphZnRlcixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YWZ0ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS16b25lLXBpbGU6OmFmdGVyLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZTo6YWZ0ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4yMik7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNocmlzdGlhbml0eS1jYXJkLWJhY2spO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuMzVyZW0gMC44NXJlbSByZ2JhKDAsIDAsIDAsIDAuMjYpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWVuZC10dXJuOmRpc2FibGVkLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1lbmQtdHVybjpkaXNhYmxlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWVuZC10dXJuOmRpc2FibGVkLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZW5kLXR1cm46ZGlzYWJsZWQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZW5kLXR1cm46ZGlzYWJsZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xNik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC40Nik7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNDIpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlcixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE4KTtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE1LCAyMywgNDIsIDAuOTYpLCByZ2JhKDE3LCAyNCwgMzksIDAuOTYpKSxcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDglIDAlLCByZ2JhKDk2LCAxNjUsIDI1MCwgMC4xMiksIHRyYW5zcGFyZW50IDQwJSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMS41cmVtIDRyZW0gcmdiYSgwLCAwLCAwLCAwLjQyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWRpYWxvZy1jbG9zZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWRpYWxvZy1jbG9zZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWRpYWxvZy1jbG9zZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1kaWFsb2ctY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWZsb2F0aW5nLWNhcmQtY2xvc2UsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWNsb3NlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZmxvYXRpbmctY2FyZC1jbG9zZSxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1mbG9hdGluZy1jYXJkLWNsb3NlLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXBvc2l0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXBvc2l0aW9uLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1wb3NpdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcG9zaXRpb24sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1wb3NpdGlvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctbmF2LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1uYXYsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LW5hdixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LW5hdiBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1uYXYgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LW5hdiBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktbmF2IGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktbmF2IGJ1dHRvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktdGFicyBidXR0b24sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMjIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuOTQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY2hyaXN0aWFuaXR5LXRoZW1lLWluayk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMC4zNXJlbSAwLjhyZW0gcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIGJ1dHRvbi5pcy1zZWxlY3RlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLmlzLXNlbGVjdGVkLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLmlzLXNlbGVjdGVkLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LXRhYnMgYnV0dG9uLmlzLXNlbGVjdGVkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS10YWJzIGJ1dHRvbi5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSg5NiwgMTY1LCAyNTAsIDAuMzgpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDM3LCA5OSwgMjM1LCAwLjIyKTtcbiAgICAgICAgY29sb3I6IHJnYmEoMjE5LCAyMzQsIDI1NCwgMC45NCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy11c2UtYWJpbGl0eTpkaXNhYmxlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy11c2UtYWJpbGl0eTpkaXNhYmxlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctdXNlLWFiaWxpdHk6ZGlzYWJsZWQsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXVzZS1hYmlsaXR5OmRpc2FibGVkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctdXNlLWFiaWxpdHk6ZGlzYWJsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDUxLCA2NSwgODUsIDAuNzgpO1xuICAgICAgICBjb2xvcjogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjQ4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdHktY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMTYpO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNDIpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXR5LWNhcmQgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0eS1jYXJkIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMtaGVhZGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzLWhlYWRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMtaGVhZGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcy1oZWFkZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcy1oZWFkZXIgc3BhbiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuODIpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGhlYWRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWRyYXdlciBoZWFkZXIgc3BhbixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZHJhd2VyIGhlYWRlciBzcGFuLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgaGVhZGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1kcmF3ZXIgaGVhZGVyIHNwYW4sXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzdHJvbmcsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc3Ryb25nLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHN0cm9uZyxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc3Ryb25nIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgzMCwgNDEsIDU5LCAwLjkyKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyBzbWFsbCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHNtYWxsLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgc21hbGwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIGhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciBoZWFkZXIgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZHJhd2VyIGhlYWRlciBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXIgaGVhZGVyIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXIgaGVhZGVyIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgbGFiZWwsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgbGFiZWwsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGxhYmVsLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBsYWJlbCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGxhYmVsIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC42OCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHVsLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgdWwsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgdWwsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUgdWwsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlIHVsLFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1hYmlsaXRpZXMgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LWFiaWxpdGllcyBwLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctYWJpbGl0aWVzIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlIHAsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSBwLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLW5vdGUgcCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSBwIHtcbiAgICAgICAgY29sb3I6IHJnYmEoMjI2LCAyMzIsIDI0MCwgMC44KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGlucHV0LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGlucHV0LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBpbnB1dCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgaW5wdXQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBpbnB1dCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBzZWxlY3QsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgc2VsZWN0LFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBzZWxlY3QsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIHNlbGVjdCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIHNlbGVjdCxcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93LFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3csXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3csXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1yb3csXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93LFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1ub3RlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC43OCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jaHJpc3RpYW5pdHktdGhlbWUtaW5rKTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3QsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3QsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0LFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0LFxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQsXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1wcmV2aWV3LXJ1bGUtbm90ZSxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LXByZXZpZXctcnVsZS1ub3RlLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktcHJldmlldy1ydWxlLW5vdGUge1xuICAgICAgICBzY3JvbGxiYXItY29sb3I6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC41NCkgcmdiYSgxNSwgMjMsIDQyLCAwLjg2KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvbixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktcnVsZS1ub3RlLWljb24sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1ydWxlLW5vdGUtaWNvbixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZS1pY29uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LXJ1bGUtbm90ZS1pY29uIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSg5NiwgMTY1LCAyNTAsIDAuMTYpO1xuICAgICAgICBjb2xvcjogI2JmZGJmZTtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMTQ3LCAxOTcsIDI1MywgMC4yMik7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KC5kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2ssXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLFxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjg2KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dCguZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dCguaW9uLXBhbGV0dGUtZGFyaykgLmNocmlzdGlhbml0eS1oaXN0b3J5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuY2hyaXN0aWFuaXR5LWhpc3RvcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5jaHJpc3RpYW5pdHktaGlzdG9yeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmNocmlzdGlhbml0eS1vZmZlcmluZy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoLmRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoLmlvbi1wYWxldHRlLWRhcmspIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYixcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWdyaWQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEoMTUsIDIzLCA0MiwgMC44Nik7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC41NCk7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zaGVsbCB7XG4gICAgICAgICAgcGFkZGluZzpcbiAgICAgICAgICAgIG1heCgwLjc1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkpXG4gICAgICAgICAgICBtYXgoMC43NXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpXG4gICAgICAgICAgICAxMC40NXJlbVxuICAgICAgICAgICAgbWF4KDAuNzVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zaGVsbC5pcy1wcmVwYXJpbmcge1xuICAgICAgICAgIHBhZGRpbmc6XG4gICAgICAgICAgICBtYXgoMC43NXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC10b3ApKVxuICAgICAgICAgICAgbWF4KDAuNzVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKVxuICAgICAgICAgICAgbWF4KDAuNzVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSlcbiAgICAgICAgICAgIG1heCgwLjc1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2hlbGwuaXMtcHJlcGFyaW5nIC5jaHJpc3RpYW5pdHktdGFibGUge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwZHZoIC0gbWF4KDEuNXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC10b3ApICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMge1xuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICByaWdodDogbWF4KDAuNnJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgICAgIGJvdHRvbTogY2FsYyhtYXgoMC43NXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKSArIDcuNDVyZW0pO1xuICAgICAgICAgIHotaW5kZXg6IDgwO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWFjdGlvbnMgYnV0dG9uIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAyLjE1cmVtO1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwLjdyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhlYWRlcixcbiAgICAgICAgLmNocmlzdGlhbml0eS1tYXRjaC1zdHJpcCxcbiAgICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXJfX3N1bW1hcnkge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogbWF4KDAuNXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogbWF4KDAuNXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhlYWRlcixcbiAgICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXJfX3N1bW1hcnksXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXN0cmlwIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgICAgICAgZ2FwOiAwLjM1cmVtO1xuICAgICAgICAgIHBhZGRpbmc6IDAuMzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXR1cm4tYmFubmVyIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjU1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS10dXJuLWFjdGlvbnMge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZW5kLXR1cm4ge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDIuMTVyZW07XG4gICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDAuN3JlbTtcbiAgICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktb3B0aW9ucy1idXR0b24ge1xuICAgICAgICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW9wdGlvbnMtbWVudSB7XG4gICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgbGVmdDogMC41NXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2V0dXAtcGFuZWwsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcmVzdWx0LXBhbmVsIHtcbiAgICAgICAgICBpbnNldDogMC41NXJlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjdyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jaG9pY2UtZ3JpZCB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDguMXJlbSkpO1xuICAgICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgMTdyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLW9wdGlvbiB7XG4gICAgICAgICAgcGFkZGluZzogMC4zOHJlbTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwLjc4cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1sZWFkZXItY2hvaWNlLWNhcmQge1xuICAgICAgICAgIHdpZHRoOiBtaW4oMTAwJSwgNy4xcmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1vcHRpb24gc3BhbiB7XG4gICAgICAgICAgbWluLWhlaWdodDogMS42NXJlbTtcbiAgICAgICAgICBwYWRkaW5nLWlubGluZTogMC4zNHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktbGVhZGVyLWNob2ljZS1kZXRhaWwge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDEuOXJlbTtcbiAgICAgICAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktbWF0Y2gtcGxheWVyIHtcbiAgICAgICAgICBnYXA6IDAuMzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW1hdGNoLXBsYXllciBzbWFsbCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGVhZGVyLWFjdGlvbnMge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fY2FyZHMge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXN0YXJ0X19oZXJvIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fZmFuIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zdGFydF9fZmFuIHZhbC1jaHJpc3RpYW5pdHktY2FyZCB7XG4gICAgICAgICAgd2lkdGg6IGNsYW1wKDUuMnJlbSwgMjJ2dywgNi40cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc3RhcnRfX21vZGVzIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXNwbGFzaCB7XG4gICAgICAgICAgbWluLWhlaWdodDogbWluKDMwcmVtLCBjYWxjKDEwMGR2aCAtIDdyZW0pKTtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBtYXgoMC42NXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogbWF4KDAuNjVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zdGFydCB7XG4gICAgICAgICAgbWluLWhlaWdodDogbWluKDMwcmVtLCBjYWxjKDEwMGR2aCAtIDdyZW0pKTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHtcbiAgICAgICAgICBtaW4td2lkdGg6IDMuNjVyZW07XG4gICAgICAgICAgcGFkZGluZzogMCAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zY29yZWJvYXJkIHN0cm9uZyB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS10YWJsZSB7XG4gICAgICAgICAgZ2FwOiAwLjM1cmVtO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgcGFkZGluZzogMC40NXJlbTtcbiAgICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXBsYXllci1zaWRlIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDAuM3JlbSAwLjI1cmVtO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIHtcbiAgICAgICAgICAtLWNocmlzdGlhbml0eS1iYXR0bGUtY2FyZC13aWR0aDogbWluKDUuNDVyZW0sIDEwMCUpO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgICBnYXA6IGNsYW1wKDAuMjVyZW0sIDEuNXZ3LCAwLjRyZW0pO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA3LjQ1cmVtO1xuICAgICAgICAgIHBhZGRpbmctaW5saW5lOiAwLjI4cmVtO1xuICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktYmF0dGxlLXpvbmUgLmNocmlzdGlhbml0eS1jYXJkLXByZXZpZXctY2FyZC0tYmF0dGxlLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWJhdHRsZS16b25lIC5jaHJpc3RpYW5pdHktc2xvdCB7XG4gICAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA1LjQ1cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZjpub3QoLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmLS1vcHBvbmVudCkge1xuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB6LWluZGV4OiA1MjtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDkuNTVyZW07XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6XG4gICAgICAgICAgICAwLjdyZW0gbWF4KDAuMzVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKVxuICAgICAgICAgICAgbWF4KDAuNTVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSlcbiAgICAgICAgICAgIG1heCgwLjM1cmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LWxlZnQpKTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyMzksIDI0NiwgMjU1LCAwKSwgcmdiYSgyMTksIDIzNCwgMjU0LCAwLjk2KSAxOCUsIHJnYmEoMjE5LCAyMzQsIDI1NCwgMC45OCkpLFxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgMCUsIHJnYmEoMzcsIDk5LCAyMzUsIDAuMTQpLCB0cmFuc3BhcmVudCA1OCUpO1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmOm5vdCguY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50KSAuY2hyaXN0aWFuaXR5LWhhbmQtZmFuLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGY6bm90KC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZi0tb3Bwb25lbnQpIC5jaHJpc3RpYW5pdHktaGFuZC1jYXJkLXdyYXAge1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmOm5vdCguY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50KSAuY2hyaXN0aWFuaXR5LWhhbmQtbWV0ZXIge1xuICAgICAgICAgIHRvcDogMC4xNXJlbTtcbiAgICAgICAgICByaWdodDogbWF4KDAuNTVyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktaGFuZC1zaGVsZjpub3QoLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmLS1vcHBvbmVudCkgLmNocmlzdGlhbml0eS1oYW5kLWZhbiB7XG4gICAgICAgICAgbWluLWhlaWdodDogOC44NXJlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjI1cmVtIDAuMjVyZW0gMS4xcmVtO1xuICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLXNoZWxmOm5vdCguY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50KSAuY2hyaXN0aWFuaXR5LWNhcmQtcHJldmlldy1jYXJkLS1oYW5kIHtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoNC4zNXJlbSwgMjB2dywgNS42NXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtc2hlbGYtLW9wcG9uZW50IHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA1LjU1cmVtO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMC40cmVtO1xuICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjM1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItcmFjayB7XG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgNS41NXJlbSkgbWlubWF4KDAsIDFmcikgbWlubWF4KDAsIDUuNDVyZW0pO1xuICAgICAgICAgIGdhcDogY2xhbXAoMC4zNXJlbSwgMnZ3LCAwLjVyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1wbGF5ZXItcmFjazpub3QoLmNocmlzdGlhbml0eS1wbGF5ZXItcmFjay0tb3Bwb25lbnQpIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmdzLXpvbmUge1xuICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICBsZWZ0OiBtYXgoMC42NXJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgICAgICAgYm90dG9tOiBjYWxjKDkuNjVyZW0gKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO1xuICAgICAgICAgIHotaW5kZXg6IDQ5O1xuICAgICAgICAgIHdpZHRoOiBtaW4oNS42NXJlbSwgMjR2dyk7XG4gICAgICAgICAgbWluLXdpZHRoOiA1LjE1cmVtO1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgICBmaWx0ZXIgMTYwbXMgZWFzZSxcbiAgICAgICAgICAgIHRyYW5zZm9ybSAxNjBtcyBlYXNlLFxuICAgICAgICAgICAgei1pbmRleCAxNjBtcyBlYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zaGVsbC5pcy1vZmZlcmluZy1kcm9wLWFjdGl2ZSAuY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrOm5vdCguY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrLS1vcHBvbmVudCkgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtem9uZSB7XG4gICAgICAgICAgei1pbmRleDogNzI7XG4gICAgICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAuODVyZW0gMS40NXJlbSByZ2JhKDE2LCA0MiwgNjcsIDAuMjQpKTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuMjJyZW0pIHNjYWxlKDEuMDMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1zaGVsbC5oYXMtbW9kYWwtb3BlbiAuY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrOm5vdCguY2hyaXN0aWFuaXR5LXBsYXllci1yYWNrLS1vcHBvbmVudCkgLmNocmlzdGlhbml0eS1vZmZlcmluZ3Mtem9uZSB7XG4gICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktc2hhcmVkLXpvbmUge1xuICAgICAgICAgIGdhcDogMC40NXJlbTtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1jYXJkLFxuICAgICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtcGlsZSB7XG4gICAgICAgICAgbWluLWhlaWdodDogNi4zNXJlbTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjY4cmVtIDAuNThyZW0gMC41NXJlbTtcbiAgICAgICAgICBnYXA6IDAuMjRyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LXpvbmUtY2FyZCA+IHZhbC1jaHJpc3RpYW5pdHktY2FyZCxcbiAgICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUgPiB2YWwtY2hyaXN0aWFuaXR5LWNhcmQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlIC5jaHJpc3RpYW5pdHktcGlsZS1jYXJkLWhpbnQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcGxhY2UtdG9rZW4sXG4gICAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjpiZWZvcmUsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktem9uZS1waWxlOjphZnRlcixcbiAgICAgICAgLmNocmlzdGlhbml0eS1lbXB0eS1jYXJkLXNsb3Qge1xuICAgICAgICAgIHdpZHRoOiBjbGFtcCgzcmVtLCAxNnZ3LCAzLjc1cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcGlsZSB7XG4gICAgICAgICAgaGVpZ2h0OiA3LjU1cmVtO1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDcuNTVyZW07XG4gICAgICAgICAgcGFkZGluZzogMC42MnJlbSAwLjU0cmVtIDAuNTJyZW07XG4gICAgICAgICAgZ2FwOiAwLjI0cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1kcm9wLXRhcmdldCB7XG4gICAgICAgICAgd2lkdGg6IG1pbigxMDAlLCA2LjM1cmVtKTtcbiAgICAgICAgICBoZWlnaHQ6IDcuNTVyZW07XG4gICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgICBtYXgtaGVpZ2h0OiA3LjU1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1waWxlLWNhcmQtaGludCB7XG4gICAgICAgICAgdG9wOiAycmVtO1xuICAgICAgICAgIHdpZHRoOiBjbGFtcCgyLjI1cmVtLCAxMC41dncsIDIuOHJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgLmNocmlzdGlhbml0eS16b25lLWNhcmQtc3RhY2sgdmFsLWNocmlzdGlhbml0eS1jYXJkIHtcbiAgICAgICAgICB0b3A6IDEuNzJyZW07XG4gICAgICAgICAgd2lkdGg6IGNsYW1wKDIuODVyZW0sIDE0dncsIDMuNDVyZW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS16b25lLXBpbGUgLmNocmlzdGlhbml0eS1waWxlLWNhcmQtaGludCB7XG4gICAgICAgICAgdG9wOiAxLjc4cmVtO1xuICAgICAgICAgIHdpZHRoOiBjbGFtcCgzcmVtLCAxNnZ3LCAzLjc1cmVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktcGxhY2UtdG9rZW4ge1xuICAgICAgICAgIHRvcDogMnJlbTtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoMi44NXJlbSwgMTV2dywgMy41NXJlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLXBpbGUgPiBzbWFsbCB7XG4gICAgICAgICAgYm90dG9tOiAwLjY0cmVtO1xuICAgICAgICAgIGxlZnQ6IDAuNThyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAwLjU2cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1vZmZlcmluZy1waWxlID4gc3Ryb25nIHtcbiAgICAgICAgICByaWdodDogMC40OHJlbTtcbiAgICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktY2FyZC1wcmV2aWV3LWNhcmQge1xuICAgICAgICAgIHdpZHRoOiBjbGFtcCg0LjJyZW0sIDIwdncsIDUuN3JlbSk7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWxlYWRlci1jYXJkIHtcbiAgICAgICAgICB3aWR0aDogY2xhbXAoNS4xNXJlbSwgMjJ2dywgNi4zNXJlbSk7XG4gICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktb2ZmZXJpbmctcm93IHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCg1cmVtLCA1LjhyZW0pIG1pbm1heCgwLCAxZnIpO1xuICAgICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciB7XG4gICAgICAgICAgZ2FwOiAwLjZyZW07XG4gICAgICAgICAgcGFkZGluZzpcbiAgICAgICAgICAgIG1heCgwLjcycmVtLCBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkpXG4gICAgICAgICAgICBtYXgoMC43MnJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpXG4gICAgICAgICAgICBtYXgoMC43MnJlbSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKVxuICAgICAgICAgICAgbWF4KDAuNzJyZW0sIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWRyYXdlciBoZWFkZXIge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1kcmF3ZXIgaDIge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjA1O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1nYWxsZXJ5LWNvbnRyb2xzIGxhYmVsIHtcbiAgICAgICAgICBnYXA6IDAuMThyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktY29udHJvbHMgaW5wdXQsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1jb250cm9scyBzZWxlY3QsXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1lZGl0aW9uLXN0cmlwIGJ1dHRvbiB7XG4gICAgICAgICAgbWluLWhlaWdodDogMi4wNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaHJpc3RpYW5pdHktZ2FsbGVyeS1ncmlkIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgY2xhbXAoNi4zNXJlbSwgMjh2dywgNy4xNXJlbSkpKTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBnYXA6IGNsYW1wKDAuNTVyZW0sIDIuMnZ3LCAwLjcycmVtKTtcbiAgICAgICAgICBzY3JvbGxiYXItZ3V0dGVyOiBhdXRvO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNDJyZW0gMCAwLjhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWdhbGxlcnktZ3JpZCAuY2hyaXN0aWFuaXR5LXJlbmRlci1jYXJkLWJ1dHRvbiB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWNhcmQge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDcuMjVyZW07XG4gICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNocmlzdGlhbml0eS1oYW5kLWZhbi0tb3Bwb25lbnQge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDQuNzVyZW07XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMzVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuY2hyaXN0aWFuaXR5LWhhbmQtZmFuLS1vcHBvbmVudCAuY2hyaXN0aWFuaXR5LWhpZGRlbi1jYXJkLWJ1dHRvbiB7XG4gICAgICAgICAgd2lkdGg6IGNsYW1wKDMuMXJlbSwgMTR2dywgMy45cmVtKTtcbiAgICAgICAgICBtYXJnaW4taW5saW5lOiAtMC42NXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENocmlzdGlhbml0eUdhbWVDb21wb25lbnQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IGJvb3RTdGFydGVkQXQgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgcHJpdmF0ZSBib3RUdXJuVGltZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpbXBhY3RFdmVudFNlcXVlbmNlID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBpbXBhY3RUaW1lcnMgPSBuZXcgU2V0PG51bWJlcj4oKTtcbiAgcHJpdmF0ZSBjb21iYXRSZXNvbHV0aW9uVGltZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBjb21iYXRDbGVhclRpbWVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgY29tYmF0VHJhaWxDbGVhclRpbWVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgbGVhZGVyQ2hvaWNlVGltZXI6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2FtZSA9IHNpZ25hbDxDaHJpc3RpYW5pdHlHYW1lU3RhdGU+KHN0cnVjdHVyZWRDbG9uZShTVEFSVElOR19HQU1FKSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzY3JlZW4gPSBzaWduYWw8Q2hyaXN0aWFuaXR5U2NyZWVuPignc3BsYXNoJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0dXRvcmlhbFBoYXNlID0gc2lnbmFsPENocmlzdGlhbml0eVR1dG9yaWFsUGhhc2U+KCdjb2luJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0dXRvcmlhbFNldHVwID0gc2lnbmFsPENocmlzdGlhbml0eVR1dG9yaWFsU2V0dXAgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkVHV0b3JpYWxMZWFkZXJJZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxlYWRlckNob2ljZVNlY29uZHMgPSBzaWduYWwoVFVUT1JJQUxfTEVBREVSX0NIT0lDRV9TRUNPTkRTKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dPcHRpb25zID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhdGFsb2dMb2FkU3RhdGUgPSBzaWduYWw8Q2hyaXN0aWFuaXR5Q2F0YWxvZ0xvYWRTdGF0ZT4oJ2xvYWRpbmcnKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkSGFuZENhcmQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZEF0dGFja2VyID0gc2lnbmFsPENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFByZXZpZXcgPSBzaWduYWw8Q2hyaXN0aWFuaXR5Q2FyZFByZXZpZXcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkSW5mbyA9IHNpZ25hbDxDaHJpc3RpYW5pdHlJbmZvUGFuZWwgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZXZpZXdUaWx0ID0gc2lnbmFsPENocmlzdGlhbml0eVByZXZpZXdUaWx0PihDSFJJU1RJQU5JVFlfUFJFVklFV19ORVVUUkFMX1RJTFQpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4ID0gc2lnbmFsKDApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJldmlld1NsaWRlRGlyZWN0aW9uID0gc2lnbmFsPDAgfCAtMSB8IDE+KDApO1xuICBwcml2YXRlIHByZXZpZXdTd2lwZVN0YXJ0OiB7IHBvaW50ZXJJZDogbnVtYmVyOyBzdGFydFg6IG51bWJlcjsgc3RhcnRZOiBudW1iZXIgfSB8IG51bGwgPSBudWxsO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaG92ZXJlZEhhbmRJbmRleCA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyYWdnaW5nQ2FyZElkID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHJhZ2dpbmdBdHRhY2tlckluc3RhbmNlSWQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBoaXN0b3J5UHVsc2UgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd0hpc3RvcnkgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hvd1BsYWNlID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3dHYWxsZXJ5ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9mZmVyaW5nc1NlYXQgPSBzaWduYWw8Q2hyaXN0aWFuaXR5U2VhdCB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW1wYWN0RXZlbnRzID0gc2lnbmFsPENocmlzdGlhbml0eUltcGFjdEV2ZW50W10+KFtdKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbWJhdEFuaW1hdGlvbiA9IHNpZ25hbDxDaHJpc3RpYW5pdHlDb21iYXRBbmltYXRpb24gfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbWJhdFRyYWlsID0gc2lnbmFsPENocmlzdGlhbml0eUNvbWJhdFRyYWlsIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjYXJkQ2F0YWxvZyA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbj4+KFNUQVJURVJfQ0FSRFMpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWxsQ2F0YWxvZ0NhcmRzID0gc2lnbmFsPENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uW10+KE9iamVjdC52YWx1ZXMoU1RBUlRFUl9DQVJEUykpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2F0YWxvZ0xvYWRlZCA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBnYWxsZXJ5U2VhcmNoID0gc2lnbmFsKCcnKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGdhbGxlcnlUeXBlID0gc2lnbmFsPENocmlzdGlhbml0eUdhbGxlcnlUeXBlRmlsdGVyPignYWxsJyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBsZWFkZXJDaG9pY2VUb3RhbFNlY29uZHMgPSBUVVRPUklBTF9MRUFERVJfQ0hPSUNFX1NFQ09ORFM7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbkRyb3BPbkJhdHRsZVNsb3QgPSAoZHJhZzogQ2RrRHJhZzxzdHJpbmc+KTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oZHJhZy5kYXRhKTtcbiAgICByZXR1cm4gY2FyZC50eXBlID09PSAnY2hhcmFjdGVyJyAmJiB0aGlzLmNhblBsYXkoY2FyZCk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbkRyb3BPbk9mZmVyaW5ncyA9IChkcmFnOiBDZGtEcmFnPHN0cmluZz4pOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihkcmFnLmRhdGEpO1xuICAgIHJldHVybiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgJiYgdGhpcy5jYW5QbGF5KGNhcmQpO1xuICB9O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25QbGFjZSA9IChkcmFnOiBDZGtEcmFnPHN0cmluZz4pOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihkcmFnLmRhdGEpO1xuICAgIHJldHVybiBjYXJkLnR5cGUgPT09ICdwbGFjZScgJiYgdGhpcy5jYW5QbGF5KGNhcmQpO1xuICB9O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5Ecm9wT25PcHBvbmVudENoYXJhY3RlciA9IChkcmFnOiBDZGtEcmFnPHN0cmluZz4pOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkQXR0YWNrZXJJbnN0YW5jZShkcmFnLmRhdGEpICYmIHRoaXMub3Bwb25lbnQoKS5iYXR0bGVab25lLmxlbmd0aCA+IDA7XG4gIH07XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbkRyb3BPbk9wcG9uZW50TGVhZGVyID0gKGRyYWc6IENka0RyYWc8c3RyaW5nPik6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRBdHRhY2tlckluc3RhbmNlKGRyYWcuZGF0YSkgJiYgIXRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGxheWVyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5nYW1lKCkucGxheWVycy5QMSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBvcHBvbmVudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZ2FtZSgpLnBsYXllcnMuUDIpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VycmVudFBsYXllciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZ2FtZSgpLnBsYXllcnNbdGhpcy5nYW1lKCkudHVybk93bmVyXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpc093blR1cm4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdhbWUoKS5zdGF0dXMgPT09ICdpbl9wcm9ncmVzcycgJiYgdGhpcy5nYW1lKCkudHVybk93bmVyID09PSAnUDEnKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHR1cm5CYW5uZXJUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5nYW1lKCkuc3RhdHVzID09PSAnZmluaXNoZWQnKSByZXR1cm4gdGhpcy5yZXN1bHRUaXRsZSgpO1xuICAgIHJldHVybiB0aGlzLmlzT3duVHVybigpID8gdGhpcy50KCdjaHJpc3RpYW5pdHlZb3VyVHVybicpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlSaXZhbFR1cm4nKTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0dXJuQmFubmVyQm9keSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5nYW1lKCkuc3RhdHVzID09PSAnZmluaXNoZWQnKSByZXR1cm4gdGhpcy5yZXN1bHRCb2R5KCk7XG4gICAgcmV0dXJuIHRoaXMuaXNPd25UdXJuKCkgPyB0aGlzLnQoJ2NocmlzdGlhbml0eVlvdXJUdXJuQm9keScpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlSaXZhbFR1cm5Cb2R5Jyk7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVzdWx0VGl0bGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgd2lubmVyID0gdGhpcy53aW5uZXJTZWF0KCk7XG4gICAgaWYgKCF3aW5uZXIpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUdhbWVGaW5pc2hlZCcpO1xuICAgIHJldHVybiB3aW5uZXIgPT09ICdQMScgPyB0aGlzLnQoJ2NocmlzdGlhbml0eVZpY3RvcnlUaXRsZScpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlEZWZlYXRUaXRsZScpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlc3VsdEJvZHkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgd2lubmVyID0gdGhpcy53aW5uZXJTZWF0KCk7XG4gICAgaWYgKCF3aW5uZXIpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUdhbWVGaW5pc2hlZEJvZHknKTtcbiAgICByZXR1cm4gd2lubmVyID09PSAnUDEnID8gdGhpcy50KCdjaHJpc3RpYW5pdHlWaWN0b3J5Qm9keScpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlEZWZlYXRCb2R5Jyk7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2V0dXBUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzZXR1cCA9IHRoaXMudHV0b3JpYWxTZXR1cCgpO1xuICAgIGlmICghc2V0dXApIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVByZXBhcmluZ01hdGNoJyk7XG4gICAgaWYgKHRoaXMudHV0b3JpYWxQaGFzZSgpID09PSAnY29pbicpIHtcbiAgICAgIHJldHVybiBzZXR1cC5jb2luV2lubmVyID09PSAnUDEnID8gdGhpcy50KCdjaHJpc3RpYW5pdHlDb2luWW91V29uJykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNvaW5SaXZhbFdvbicpO1xuICAgIH1cbiAgICByZXR1cm4gc2V0dXAubGVhZGVyUGlja2VyID09PSAnUDEnID8gdGhpcy50KCdjaHJpc3RpYW5pdHlDaG9vc2VMZWFkZXJUaXRsZScpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlSaXZhbENob29zZXNMZWFkZXJUaXRsZScpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNldHVwQm9keSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBzZXR1cCA9IHRoaXMudHV0b3JpYWxTZXR1cCgpO1xuICAgIGlmICghc2V0dXApIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVByZXBhcmluZ01hdGNoQm9keScpO1xuICAgIGNvbnN0IGZpcnN0UGxheWVyTmFtZSA9IHNldHVwLmZpcnN0UGxheWVyID09PSAnUDEnID8gdGhpcy5wbGF5ZXIoKS5kaXNwbGF5TmFtZSA6IHRoaXMub3Bwb25lbnQoKS5kaXNwbGF5TmFtZTtcbiAgICBpZiAodGhpcy50dXRvcmlhbFBoYXNlKCkgPT09ICdjb2luJykge1xuICAgICAgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5Q29pblJlc3VsdEJvZHknKS5yZXBsYWNlKCd7cGxheWVyfScsIGZpcnN0UGxheWVyTmFtZSk7XG4gICAgfVxuICAgIGlmIChzZXR1cC5sZWFkZXJQaWNrZXIgPT09ICdQMScpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUNob29zZUxlYWRlckJvZHknKTtcbiAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlSaXZhbENob29zZXNMZWFkZXJCb2R5Jyk7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2lubmVyU2VhdCA9IGNvbXB1dGVkPENocmlzdGlhbml0eVNlYXQgfCBudWxsPigoKSA9PiB7XG4gICAgY29uc3QgZ2FtZSA9IHRoaXMuZ2FtZSgpO1xuICAgIGlmIChnYW1lLnN0YXR1cyAhPT0gJ2ZpbmlzaGVkJykgcmV0dXJuIG51bGw7XG4gICAgaWYgKGdhbWUucGxheWVycy5QMS5sZWFkZXJIcCA8PSAwKSByZXR1cm4gJ1AyJztcbiAgICBpZiAoZ2FtZS5wbGF5ZXJzLlAyLmxlYWRlckhwIDw9IDApIHJldHVybiAnUDEnO1xuICAgIHJldHVybiBnYW1lLnBsYXllcnMuUDEubGVhZGVySHAgPj0gZ2FtZS5wbGF5ZXJzLlAyLmxlYWRlckhwID8gJ1AxJyA6ICdQMic7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFzT3Bwb25lbnRHdWFyZHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wcG9uZW50KCkuYmF0dGxlWm9uZS5sZW5ndGggPiAwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wcG9uZW50SGFuZENvdW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHBvbmVudCgpLmhhbmRDb3VudCA/PyB0aGlzLm9wcG9uZW50KCkuaGFuZD8ubGVuZ3RoID8/IDApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2FsbGVyeUNhcmRzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5nYWxsZXJ5U2VhcmNoKCkudHJpbSgpLnRvTG93ZXJDYXNlKCkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJyk7XG4gICAgY29uc3QgdHlwZSA9IHRoaXMuZ2FsbGVyeVR5cGUoKTtcbiAgICByZXR1cm4gdGhpcy5hbGxDYXRhbG9nQ2FyZHMoKVxuICAgICAgLmZpbHRlcihjYXJkID0+IHRoaXMuaXNDbGFzc2ljR2FsbGVyeUNhcmQoY2FyZCkpXG4gICAgICAuZmlsdGVyKGNhcmQgPT4gdHlwZSA9PT0gJ2FsbCcgfHwgY2FyZC50eXBlID09PSB0eXBlKVxuICAgICAgLmZpbHRlcihjYXJkID0+IHtcbiAgICAgICAgaWYgKCFxdWVyeSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGNvbnN0IHRleHQgPSB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKTtcbiAgICAgICAgY29uc3QgaGF5c3RhY2sgPSBbdGV4dC5uYW1lLCBjYXJkLnR5cGUsIHRleHQuc2NyaXB0dXJlLCB0ZXh0LmFiaWxpdHlOYW1lLCB0ZXh0LmFiaWxpdHlUZXh0LCB0ZXh0LnZlcnNlVGV4dF1cbiAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgLmpvaW4oJyAnKVxuICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xuICAgICAgICByZXR1cm4gaGF5c3RhY2suaW5jbHVkZXMocXVlcnkpO1xuICAgICAgfSlcbiAgICAgIC5zb3J0KChsZWZ0LCByaWdodCkgPT4gdGhpcy5jYXJkU29ydEtleShsZWZ0KS5sb2NhbGVDb21wYXJlKHRoaXMuY2FyZFNvcnRLZXkocmlnaHQpLCAnZXMnKSk7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2FsbGVyeUVkaXRpb25MYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb3VudCA9IHRoaXMuYWxsQ2F0YWxvZ0NhcmRzKCkuZmlsdGVyKGNhcmQgPT4gdGhpcy5pc0NsYXNzaWNHYWxsZXJ5Q2FyZChjYXJkKSkubGVuZ3RoO1xuICAgIHJldHVybiBgJHt0aGlzLnQoJ2NocmlzdGlhbml0eUdlbmVzaXNFZGl0aW9uJyl9IMK3ICR7Y291bnR9ICR7dGhpcy50KCdjaHJpc3RpYW5pdHlDYXJkcycpfWA7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2FsbGVyeUVkaXRpb25JY29uID0gY29tcHV0ZWQoKCkgPT4gR0VORVNJU19JQ09OX1VSTCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBnYWxsZXJ5VHlwZU9wdGlvbnMgPSBjb21wdXRlZDxBcnJheTx7IHZhbHVlOiBDaHJpc3RpYW5pdHlHYWxsZXJ5VHlwZUZpbHRlcjsgbGFiZWw6IHN0cmluZyB9Pj4oKCkgPT4gW1xuICAgIHsgdmFsdWU6ICdhbGwnLCBsYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlBbGxDYXJkcycpIH0sXG4gICAgeyB2YWx1ZTogJ2xlYWRlcicsIGxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSB9LFxuICAgIHsgdmFsdWU6ICdvZmZlcmluZycsIGxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQ2FyZCcpIH0sXG4gICAgeyB2YWx1ZTogJ2NoYXJhY3RlcicsIGxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlckNhcmQnKSB9LFxuICAgIHsgdmFsdWU6ICd3aXNkb20nLCBsYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlXaXNkb21DYXJkJykgfSxcbiAgICB7IHZhbHVlOiAnYWN0aW9uJywgbGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5QWN0aW9uQ2FyZCcpIH0sXG4gICAgeyB2YWx1ZTogJ3Rvb2wnLCBsYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlUb29sQ2FyZCcpIH0sXG4gICAgeyB2YWx1ZTogJ3BsYWNlJywgbGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VDYXJkJykgfSxcbiAgICB7IHZhbHVlOiAnZXZlbnQnLCBsYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlFdmVudENhcmQnKSB9LFxuICBdKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc01vZGFsT3ZlcmxheSA9IGNvbXB1dGVkKCgpID0+XG4gICAgISF0aGlzLnNlbGVjdGVkUHJldmlldygpXG4gICAgfHwgISF0aGlzLnNlbGVjdGVkSW5mbygpXG4gICAgfHwgdGhpcy5zaG93SGlzdG9yeSgpXG4gICAgfHwgdGhpcy5zaG93UGxhY2UoKVxuICAgIHx8IHRoaXMuc2hvd0dhbGxlcnkoKVxuICAgIHx8ICEhdGhpcy5vZmZlcmluZ3NTZWF0KClcbiAgKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZXZpZXdDYXJvdXNlbEl0ZW1zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jdXJyZW50UHJldmlld0Nhcm91c2VsSXRlbXMoKSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjYW5OYXZpZ2F0ZVByZXZpZXcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByZXZpZXdDYXJvdXNlbEl0ZW1zKCkubGVuZ3RoID4gMSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBwcmV2aWV3UG9zaXRpb25MYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMucHJldmlld0Nhcm91c2VsSXRlbXMoKTtcbiAgICBpZiAoaXRlbXMubGVuZ3RoIDwgMikgcmV0dXJuICcnO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jdXJyZW50UHJldmlld0Nhcm91c2VsSW5kZXgoaXRlbXMpO1xuICAgIGlmIChpbmRleCA8IDApIHJldHVybiAnJztcbiAgICByZXR1cm4gYCR7aW5kZXggKyAxfS8ke2l0ZW1zLmxlbmd0aH1gO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZXZpZXdBYmlsaXRpZXMgPSBjb21wdXRlZDxDaHJpc3RpYW5pdHlQcmV2aWV3QWJpbGl0eVtdPigoKSA9PiB7XG4gICAgY29uc3QgcHJldmlldyA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3Q2FyZCgpO1xuICAgIGlmICghcHJldmlldyB8fCAhY2FyZCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKTtcbiAgICBjb25zdCBhYmlsaXRpZXMgPSB0ZXh0LmFiaWxpdGllcz8ubGVuZ3RoXG4gICAgICA/IHRleHQuYWJpbGl0aWVzLm1hcCgoYWJpbGl0eSwgaW5kZXgpID0+ICh7XG4gICAgICAgIGluZGV4LFxuICAgICAgICB0aXRsZTogYWJpbGl0eS5uYW1lID8/IHRoaXMudCgnY2hyaXN0aWFuaXR5QWJpbGl0eScpLFxuICAgICAgICBib2R5OiBhYmlsaXR5LnRleHQgPz8gJycsXG4gICAgICAgIGNhblVzZTogdGhpcy5jYW5Vc2VQcmV2aWV3QWJpbGl0eShpbmRleCksXG4gICAgICB9KSlcbiAgICAgIDogdGV4dC5hYmlsaXR5TmFtZSB8fCB0ZXh0LmFiaWxpdHlUZXh0XG4gICAgICAgID8gW3tcbiAgICAgICAgICBpbmRleDogMCxcbiAgICAgICAgICB0aXRsZTogdGV4dC5hYmlsaXR5TmFtZSA/PyB0aGlzLnQoJ2NocmlzdGlhbml0eUFiaWxpdHknKSxcbiAgICAgICAgICBib2R5OiB0ZXh0LmFiaWxpdHlUZXh0ID8/ICcnLFxuICAgICAgICAgIGNhblVzZTogdGhpcy5jYW5Vc2VQcmV2aWV3QWJpbGl0eSgwKSxcbiAgICAgICAgfV1cbiAgICAgIDogW3tcbiAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgIHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eU5vQWJpbGl0eVRpdGxlJyksXG4gICAgICAgIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5Tm9BYmlsaXR5Qm9keScpLFxuICAgICAgICBjYW5Vc2U6IGZhbHNlLFxuICAgICAgfV07XG4gICAgcmV0dXJuIGFiaWxpdGllcztcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93UHJldmlld0FiaWxpdHlUYWJzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGFiaWxpdGllcyA9IHRoaXMucHJldmlld0FiaWxpdGllcygpO1xuICAgIHJldHVybiBhYmlsaXRpZXMubGVuZ3RoID4gMVxuICAgICAgfHwgIXRoaXMuaXNQcmV2aWV3QWJpbGl0eVBsYWNlaG9sZGVyKGFiaWxpdGllc1swXSlcbiAgICAgICAgJiYgKGFiaWxpdGllc1swXT8udGl0bGUgPz8gJycpICE9PSB0aGlzLnQoJ2NocmlzdGlhbml0eUFiaWxpdHknKTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzaG93UHJldmlld0FiaWxpdGllcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBwcmV2aWV3ID0gdGhpcy5zZWxlY3RlZFByZXZpZXcoKTtcbiAgICBpZiAoIXByZXZpZXcpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBoYXNSZWFsQWJpbGl0eSA9IHRoaXMucHJldmlld0FiaWxpdGllcygpLnNvbWUoYWJpbGl0eSA9PiAhdGhpcy5pc1ByZXZpZXdBYmlsaXR5UGxhY2Vob2xkZXIoYWJpbGl0eSkpO1xuICAgIGlmICghaGFzUmVhbEFiaWxpdHkpIHJldHVybiBmYWxzZTtcbiAgICBpZiAocHJldmlldy5zb3VyY2UgPT09ICdvZmZlcmluZ3MnIHx8IHByZXZpZXcuc291cmNlID09PSAncGxhY2UnKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAocHJldmlldy5zb3VyY2UgIT09ICdib2FyZCcpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5zZWxlY3RlZFByZXZpZXdDYXJkKCk7XG4gICAgcmV0dXJuIGNhcmQ/LnR5cGUgPT09ICdjaGFyYWN0ZXInIHx8IGNhcmQ/LnR5cGUgPT09ICdsZWFkZXInO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbk5hdmlnYXRlUHJldmlld0FiaWxpdGllcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJldmlld0FiaWxpdGllcygpLmxlbmd0aCA+IDEpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eVBvc2l0aW9uTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgYWJpbGl0aWVzID0gdGhpcy5wcmV2aWV3QWJpbGl0aWVzKCk7XG4gICAgaWYgKGFiaWxpdGllcy5sZW5ndGggPCAyKSByZXR1cm4gJyc7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IGFiaWxpdGllcy5maW5kSW5kZXgoYWJpbGl0eSA9PiBhYmlsaXR5LmluZGV4ID09PSB0aGlzLnNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleCgpKTtcbiAgICByZXR1cm4gYCR7c2VsZWN0ZWRJbmRleCA+PSAwID8gc2VsZWN0ZWRJbmRleCArIDEgOiAxfS8ke2FiaWxpdGllcy5sZW5ndGh9YDtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZFByZXZpZXdBYmlsaXR5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGFiaWxpdGllcyA9IHRoaXMucHJldmlld0FiaWxpdGllcygpO1xuICAgIGlmICghYWJpbGl0aWVzLmxlbmd0aCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGFiaWxpdGllcy5maW5kKGFiaWxpdHkgPT4gYWJpbGl0eS5pbmRleCA9PT0gdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXgoKSkgPz8gYWJpbGl0aWVzWzBdO1xuICB9KTtcblxuICBwcml2YXRlIGlzUHJldmlld0FiaWxpdHlQbGFjZWhvbGRlcihhYmlsaXR5OiBDaHJpc3RpYW5pdHlQcmV2aWV3QWJpbGl0eSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhYmlsaXR5Py50aXRsZSA9PT0gdGhpcy50KCdjaHJpc3RpYW5pdHlOb0FiaWxpdHlUaXRsZScpICYmICFhYmlsaXR5LmNhblVzZTtcbiAgfVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tYmF0Q2FsbG91dCA9IGNvbXB1dGVkPE1pbmlHYW1lQ2FsbG91dE1ldGFkYXRhIHwgbnVsbD4oKCkgPT4ge1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IHRoaXMuY29tYmF0QW5pbWF0aW9uKCk7XG4gICAgaWYgKCFhbmltYXRpb24pIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGF0dGFja2VyID0gdGhpcy5jb21iYXRBbmltYXRpb25BdHRhY2tlcihhbmltYXRpb24pO1xuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuY29tYmF0QW5pbWF0aW9uVGFyZ2V0TGFiZWwoYW5pbWF0aW9uKTtcbiAgICBjb25zdCB0aXRsZSA9IGF0dGFja2VyID8gYXR0YWNrZXIubmFtZSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5QXR0YWNrJyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlLFxuICAgICAgYm9keTogYCR7dGhpcy50KCdjaHJpc3RpYW5pdHlBdHRhY2snKX0gJHt0YXJnZXR9YCxcbiAgICAgIGltcGFjdDogYW5pbWF0aW9uLnRhcmdldCA9PT0gJ2xlYWRlcicgPyB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyQ2FyZCcpLFxuICAgICAgaWNvbjogJz4nLFxuICAgICAgdG9uZVJnYjogYW5pbWF0aW9uLnRhcmdldCA9PT0gJ2xlYWRlcicgPyAnMjUwLCAyMDQsIDIxJyA6ICc5NiwgMTY1LCAyNTAnLFxuICAgICAgZHVyYXRpb25NczogOTgwLFxuICAgICAgdmFyaWFudDogYW5pbWF0aW9uLnRhcmdldCA9PT0gJ2xlYWRlcicgPyAnd2FybmluZycgOiAnY2FwdHVyZScsXG4gICAgfTtcbiAgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzcGxhc2hTdGF0dXNUZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5jYXRhbG9nTG9hZFN0YXRlKCk7XG4gICAgaWYgKHN0YXRlID09PSAncmVhZHknKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlTcGxhc2hSZWFkeScpO1xuICAgIGlmIChzdGF0ZSA9PT0gJ2ZhbGxiYWNrJykgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5U3BsYXNoRmFsbGJhY2snKTtcbiAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlTcGxhc2hMb2FkaW5nJyk7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhcnRGZWF0dXJlZENhcmRzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNhcmRzID0gdGhpcy5hbGxDYXRhbG9nQ2FyZHMoKTtcbiAgICBjb25zdCBwcmVmZXJyZWQgPSBbJ0dFTi0wMDknLCAnR0VOLTAxMycsICdHRU4tMDMyJ11cbiAgICAgIC5tYXAoaWQgPT4gdGhpcy5jYXJkQ2F0YWxvZygpW2lkXSlcbiAgICAgIC5maWx0ZXIoKGNhcmQpOiBjYXJkIGlzIENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uID0+ICEhY2FyZCk7XG4gICAgcmV0dXJuIChwcmVmZXJyZWQubGVuZ3RoID8gcHJlZmVycmVkIDogY2FyZHMuc2xpY2UoMCwgMykpLnNsaWNlKDAsIDMpO1xuICB9KTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZ1dHVyZU1vZGVzID0gY29tcHV0ZWQoKCkgPT4gW1xuICAgIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5U29sb0JvdE1vZGUnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlTb2xvQm90TW9kZUJvZHknKSB9LFxuICAgIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5VHdvUGxheWVyTW9kZScpLCBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eVR3b1BsYXllck1vZGVCb2R5JykgfSxcbiAgICB7IHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eU9uZURldmljZU1vZGUnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlPbmVEZXZpY2VNb2RlQm9keScpIH0sXG4gICAgeyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlTcGVjdGF0b3JNb2RlJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5U3BlY3RhdG9yTW9kZUJvZHknKSB9LFxuICBdKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkQ2FyZERlZmluaXRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkSGFuZENhcmQoKTtcbiAgICByZXR1cm4gc2VsZWN0ZWQgPyB0aGlzLmNhcmREZWZpbml0aW9uKHNlbGVjdGVkKSA6IG51bGw7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRQcmV2aWV3Q2FyZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLnNlbGVjdGVkUHJldmlldygpPy5jYXJkSWQ7XG4gICAgcmV0dXJuIGNhcmRJZCA/IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKSA6IG51bGw7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0ZWRQcmV2aWV3UmVuZGVyQ2FyZCA9IGNvbXB1dGVkPENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbCB8IG51bGw+KCgpID0+IHtcbiAgICBjb25zdCBwcmV2aWV3ID0gdGhpcy5zZWxlY3RlZFByZXZpZXcoKTtcbiAgICBpZiAoIXByZXZpZXcpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLnNlbGVjdGVkUHJldmlld0NhcmQoKTtcbiAgICBpZiAoY2FyZCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChjYXJkLCB7XG4gICAgICAgIHN0YXR1c1RleHQ6IHByZXZpZXcuYm9keSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAocHJldmlldy5leWVicm93ID09PSB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSkge1xuICAgICAgY29uc3QgW2N1cnJlbnRIcCwgbWF4SHBdID0gcHJldmlldy5tZXRhLnNwbGl0KCcvJykubWFwKHZhbHVlID0+IE51bWJlcih2YWx1ZSkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGBsZWFkZXItJHtwcmV2aWV3LnRpdGxlLnRvTG93ZXJDYXNlKCl9YCxcbiAgICAgICAgbmFtZTogcHJldmlldy50aXRsZSxcbiAgICAgICAgdHlwZTogJ2xlYWRlcicsXG4gICAgICAgIHR5cGVMYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksXG4gICAgICAgIGN1cnJlbnRIcDogTnVtYmVyLmlzRmluaXRlKGN1cnJlbnRIcCkgPyBjdXJyZW50SHAgOiB1bmRlZmluZWQsXG4gICAgICAgIG1heEhwOiBOdW1iZXIuaXNGaW5pdGUobWF4SHApID8gbWF4SHAgOiB1bmRlZmluZWQsXG4gICAgICAgIGxpZmU6IE51bWJlci5pc0Zpbml0ZShjdXJyZW50SHApID8gY3VycmVudEhwIDogdW5kZWZpbmVkLFxuICAgICAgICBhYmlsaXR5TmFtZTogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksXG4gICAgICAgIGFiaWxpdHlUZXh0OiBwcmV2aWV3LmJvZHksXG4gICAgICAgIHZlcnNlVGV4dDogcHJldmlldy5ib2R5LFxuICAgICAgICBlZGl0aW9uOiAnTVZQJyxcbiAgICAgICAgY29sbGVjdG9yTnVtYmVyOiAnTElERVInLFxuICAgICAgICB5ZWFyOiAnMjAyNicsXG4gICAgICAgIGF1dGhvcjogJ01WUCcsXG4gICAgICAgIHJhcml0eTogJ2xlZ2VuZGFyeScsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGBwcmV2aWV3LSR7cHJldmlldy50aXRsZS50b0xvd2VyQ2FzZSgpfWAsXG4gICAgICBuYW1lOiBwcmV2aWV3LnRpdGxlLFxuICAgICAgdHlwZTogdGhpcy5wcmV2aWV3UmVuZGVyVHlwZShwcmV2aWV3LmV5ZWJyb3cpLFxuICAgICAgdHlwZUxhYmVsOiBwcmV2aWV3LmV5ZWJyb3csXG4gICAgICBhYmlsaXR5TmFtZTogcHJldmlldy5leWVicm93LFxuICAgICAgYWJpbGl0eVRleHQ6IHByZXZpZXcuYm9keSxcbiAgICAgIHZlcnNlVGV4dDogcHJldmlldy5ib2R5LFxuICAgICAgZWRpdGlvbjogJ01WUCcsXG4gICAgICBjb2xsZWN0b3JOdW1iZXI6IHByZXZpZXcuZXllYnJvdyxcbiAgICAgIHllYXI6ICcyMDI2JyxcbiAgICAgIGF1dGhvcjogJ01WUCcsXG4gICAgICByYXJpdHk6ICdub3JtYWwnLFxuICAgIH07XG4gIH0pO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRQcmV2aWV3TmVpZ2hib3JSZW5kZXJDYXJkKGRpcmVjdGlvbjogLTEgfCAxKTogQ2hyaXN0aWFuaXR5Q2FyZFJlbmRlck1vZGVsIHwgbnVsbCB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnByZXZpZXdDYXJvdXNlbEl0ZW1zKCk7XG4gICAgaWYgKGl0ZW1zLmxlbmd0aCA8IDIpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuY3VycmVudFByZXZpZXdDYXJvdXNlbEluZGV4KGl0ZW1zKTtcbiAgICBpZiAoY3VycmVudEluZGV4IDwgMCkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgbmV4dEluZGV4ID0gKGN1cnJlbnRJbmRleCArIGRpcmVjdGlvbiArIGl0ZW1zLmxlbmd0aCkgJSBpdGVtcy5sZW5ndGg7XG4gICAgY29uc3QgaXRlbSA9IGl0ZW1zW25leHRJbmRleF07XG4gICAgaWYgKGl0ZW0ua2luZCA9PT0gJ2hpc3RvcnknKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uVG9SZW5kZXJDYXJkKHRoaXMuY2FyZERlZmluaXRpb24oaXRlbS5jYXJkSWQpLCB7IHN0YXR1c1RleHQ6IHRoaXMudCgnY2hyaXN0aWFuaXR5SGlzdG9yeScpIH0pO1xuICAgIH1cbiAgICBpZiAoaXRlbS5raW5kID09PSAnaGFuZCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmluaXRpb25Ub1JlbmRlckNhcmQodGhpcy5jYXJkRGVmaW5pdGlvbihpdGVtLmNhcmRJZCkpO1xuICAgIH1cbiAgICBpZiAoaXRlbS5raW5kID09PSAncGxhY2UnKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uVG9SZW5kZXJDYXJkKHRoaXMuY2FyZERlZmluaXRpb24oaXRlbS5jYXJkSWQpLCB7IHN0YXR1c1RleHQ6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2UnKSB9KTtcbiAgICB9XG4gICAgaWYgKGl0ZW0ua2luZCA9PT0gJ2dhbGxlcnknKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uVG9SZW5kZXJDYXJkKHRoaXMuY2FyZERlZmluaXRpb24oaXRlbS5jYXJkSWQpKTtcbiAgICB9XG4gICAgaWYgKGl0ZW0ua2luZCA9PT0gJ2xlYWRlci1jaG9pY2UnKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uVG9SZW5kZXJDYXJkKHRoaXMuY2FyZERlZmluaXRpb24oaXRlbS5jYXJkSWQpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMub2ZmZXJpbmdSZW5kZXJDYXJkKGl0ZW0ub2ZmZXJpbmcpO1xuICB9XG4gIHByb3RlY3RlZCByZWFkb25seSBwcmV2aWV3UnVsZSA9IGNvbXB1dGVkPENocmlzdGlhbml0eVByZXZpZXdSdWxlIHwgbnVsbD4oKCkgPT4ge1xuICAgIGNvbnN0IHByZXZpZXcgPSB0aGlzLnNlbGVjdGVkUHJldmlldygpO1xuICAgIGlmICghcHJldmlldykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3Q2FyZCgpO1xuICAgIGlmIChjYXJkPy50eXBlID09PSAnb2ZmZXJpbmcnKSB7XG4gICAgICByZXR1cm4geyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ1J1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgaWYgKGNhcmQ/LnR5cGUgPT09ICdjaGFyYWN0ZXInKSB7XG4gICAgICByZXR1cm4geyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJDYXJkJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyUnVsZUJvZHknKSB9O1xuICAgIH1cbiAgICBpZiAoY2FyZD8udHlwZSA9PT0gJ3dpc2RvbScpIHtcbiAgICAgIHJldHVybiB7IHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eVdpc2RvbUNhcmQnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlXaXNkb21SdWxlQm9keScpIH07XG4gICAgfVxuICAgIGlmIChjYXJkPy50eXBlID09PSAnYWN0aW9uJykge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5QWN0aW9uQ2FyZCcpLCBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eUFjdGlvblJ1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgaWYgKGNhcmQ/LnR5cGUgPT09ICd0b29sJykge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5VG9vbENhcmQnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlUb29sUnVsZUJvZHknKSB9O1xuICAgIH1cbiAgICBpZiAoY2FyZD8udHlwZSA9PT0gJ3BsYWNlJykge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VDYXJkJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VSdWxlQm9keScpIH07XG4gICAgfVxuICAgIGlmIChjYXJkPy50eXBlID09PSAnZXZlbnQnKSB7XG4gICAgICByZXR1cm4geyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlFdmVudENhcmQnKSwgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlFdmVudFJ1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgaWYgKGNhcmQ/LnR5cGUgPT09ICdsZWFkZXInKSB7XG4gICAgICByZXR1cm4geyB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyUnVsZUJvZHknKSB9O1xuICAgIH1cbiAgICBpZiAocHJldmlldy5leWVicm93ID09PSB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSkge1xuICAgICAgcmV0dXJuIHsgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLCBib2R5OiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlclJ1bGVCb2R5JykgfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH0pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhdHVzVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy50dXRvcmlhbFBoYXNlKCkgPT09ICdjb2luJyB8fCB0aGlzLnR1dG9yaWFsUGhhc2UoKSA9PT0gJ2xlYWRlcl9waWNrJykge1xuICAgICAgcmV0dXJuIHRoaXMuc2V0dXBUaXRsZSgpO1xuICAgIH1cbiAgICBjb25zdCB3aW5uZXIgPSB0aGlzLndpbm5lclNlYXQoKTtcbiAgICBpZiAod2lubmVyKSB7XG4gICAgICByZXR1cm4gd2lubmVyID09PSAnUDEnID8gdGhpcy50KCdjaHJpc3RpYW5pdHlZb3VXaW4nKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5T3Bwb25lbnRXaW5zJyk7XG4gICAgfVxuICAgIGNvbnN0IGF0dGFja2VyID0gdGhpcy5zZWxlY3RlZEF0dGFja2VyKCk7XG4gICAgY29uc3QgaGFuZENhcmQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICBpZiAoIXRoaXMuaXNPd25UdXJuKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVdhaXRUdXJuJyk7XG4gICAgfVxuICAgIGlmIChhdHRhY2tlcikge1xuICAgICAgcmV0dXJuIHRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKSA/IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hvb3NlQ2hhcmFjdGVyVGFyZ2V0JykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNob29zZVRhcmdldCcpO1xuICAgIH1cbiAgICBpZiAoaGFuZENhcmQpIHtcbiAgICAgIGlmICghdGhpcy5jYW5QbGF5KGhhbmRDYXJkKSkge1xuICAgICAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlOZWVkT2ZmZXJpbmdzJyk7XG4gICAgICB9XG4gICAgICBpZiAoaGFuZENhcmQudHlwZSA9PT0gJ3BsYWNlJykge1xuICAgICAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlDaG9vc2VQbGFjZVNsb3QnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYW5kQ2FyZC50eXBlID09PSAnb2ZmZXJpbmcnID8gdGhpcy50KCdjaHJpc3RpYW5pdHlQbGFjZU9mZmVyaW5nJykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNob29zZVNsb3QnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hvb3NlQ2FyZCcpO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnTWluaUdhbWVzJywgTUlOSV9HQU1FU19JMThOKTtcbiAgICBlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmhhc01vZGFsT3ZlcmxheSgpKSByZXR1cm47XG4gICAgICBjb25zdCBwcmV2aW91c092ZXJmbG93ID0gdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93O1xuICAgICAgY29uc3QgcHJldmlvdXNPdmVyc2Nyb2xsID0gdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJzY3JvbGxCZWhhdmlvcjtcbiAgICAgIGNvbnN0IHByZXZpb3VzUG9zaXRpb24gPSB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucG9zaXRpb247XG4gICAgICBjb25zdCBwcmV2aW91c1RvcCA9IHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS50b3A7XG4gICAgICBjb25zdCBwcmV2aW91c1dpZHRoID0gdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoO1xuICAgICAgY29uc3Qgc2Nyb2xsWSA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgY29uc3Qgc2Nyb2xsSG9zdCA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5taW5pLWdhbWUtcGFnZS1zaGVsbCcpO1xuICAgICAgY29uc3Qgc2Nyb2xsSG9zdFRvcCA9IHNjcm9sbEhvc3Q/LnNjcm9sbFRvcCA/PyAwO1xuICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yID0gJ2NvbnRhaW4nO1xuICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS50b3AgPSBgLSR7c2Nyb2xsWX1weGA7XG4gICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgICBvbkNsZWFudXAoKCkgPT4ge1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSBwcmV2aW91c092ZXJmbG93O1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcnNjcm9sbEJlaGF2aW9yID0gcHJldmlvdXNPdmVyc2Nyb2xsO1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUucG9zaXRpb24gPSBwcmV2aW91c1Bvc2l0aW9uO1xuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuc3R5bGUudG9wID0gcHJldmlvdXNUb3A7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9IHByZXZpb3VzV2lkdGg7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogc2Nyb2xsWSwgbGVmdDogMCwgYmVoYXZpb3I6ICdhdXRvJyB9KTtcbiAgICAgICAgaWYgKHNjcm9sbEhvc3QpIHtcbiAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHNjcm9sbEhvc3Quc2Nyb2xsVG8oeyB0b3A6IHNjcm9sbEhvc3RUb3AsIGxlZnQ6IDAsIGJlaGF2aW9yOiAnYXV0bycgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zY3JlZW4oKSA9PT0gJ3RhYmxlJyAmJiB0aGlzLmdhbWUoKS5zdGF0dXMgPT09ICdmaW5pc2hlZCcpIHtcbiAgICAgICAgdGhpcy50dXRvcmlhbFBoYXNlLnNldCgnZmluaXNoZWQnKTtcbiAgICAgICAgdGhpcy5jbGVhckJvdFR1cm4oKTtcbiAgICAgICAgdGhpcy5jbGVhckxlYWRlckNob2ljZVRpbWVyKCk7XG4gICAgICB9XG4gICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgdGltZXIgb2YgdGhpcy5pbXBhY3RUaW1lcnMpIHtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICB9XG4gICAgICB0aGlzLmltcGFjdFRpbWVycy5jbGVhcigpO1xuICAgICAgdGhpcy5jbGVhckNvbWJhdFRpbWVycygpO1xuICAgICAgdGhpcy5jbGVhckxlYWRlckNob2ljZVRpbWVyKCk7XG4gICAgfSk7XG4gICAgdm9pZCB0aGlzLmxvYWRHZW5lc2lzQ2F0YWxvZygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgJ01pbmlHYW1lcycpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkR2VuZXNpc0NhdGFsb2coKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgbGV0IGxvYWRlZCA9IGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKEdFTkVTSVNfQ0FUQUxPR19VUkwpO1xuICAgICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGNvbnN0IGNhdGFsb2cgPSBhd2FpdCByZXNwb25zZS5qc29uKCkgYXMgQ2hyaXN0aWFuaXR5RWRpdGlvbkNhdGFsb2c7XG4gICAgICAgIGNvbnN0IGNhcmRzID0gKGNhdGFsb2cuY2FyZHMgPz8gW10pLm1hcChjYXJkID0+IHRoaXMubm9ybWFsaXplQ2F0YWxvZ0NhcmQoY2FyZCwgY2F0YWxvZykpO1xuICAgICAgICBpZiAoY2FyZHMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5jYXJkQ2F0YWxvZy5zZXQoT2JqZWN0LmZyb21FbnRyaWVzKGNhcmRzLm1hcChjYXJkID0+IFtjYXJkLmlkLCBjYXJkXSkpKTtcbiAgICAgICAgICB0aGlzLmFsbENhdGFsb2dDYXJkcy5zZXQoY2FyZHMpO1xuICAgICAgICAgIHRoaXMuY2F0YWxvZ0xvYWRlZC5zZXQodHJ1ZSk7XG4gICAgICAgICAgdGhpcy5nYW1lLnNldCh0aGlzLmNyZWF0ZVR1dG9yaWFsR2FtZShjYXJkcykpO1xuICAgICAgICAgIGxvYWRlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKCdDaHJpc3RpYW5pdHkgY2F0YWxvZyBjb3VsZCBub3QgYmUgbG9hZGVkLiBGYWxsaW5nIGJhY2sgdG8gc3RhcnRlciBjYXJkcy4nLCBlcnJvcik7XG4gICAgfVxuICAgIHRoaXMuY2F0YWxvZ0xvYWRTdGF0ZS5zZXQobG9hZGVkID8gJ3JlYWR5JyA6ICdmYWxsYmFjaycpO1xuICAgIHRoaXMuZmluaXNoU3BsYXNoKCk7XG4gIH1cblxuICBwcml2YXRlIGZpbmlzaFNwbGFzaCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbGFwc2VkID0gcGVyZm9ybWFuY2Uubm93KCkgLSB0aGlzLmJvb3RTdGFydGVkQXQ7XG4gICAgY29uc3QgcmVtYWluaW5nID0gTWF0aC5tYXgoMCwgU1BMQVNIX01JTl9EVVJBVElPTl9NUyAtIGVsYXBzZWQpO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnNjcmVlbigpID09PSAnc3BsYXNoJykge1xuICAgICAgICB0aGlzLnNjcmVlbi5zZXQoJ2hvbWUnKTtcbiAgICAgIH1cbiAgICB9LCByZW1haW5pbmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVDYXRhbG9nQ2FyZChjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiwgY2F0YWxvZzogQ2hyaXN0aWFuaXR5RWRpdGlvbkNhdGFsb2cpOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZWRpdGlvbkljb24gPSBjYXJkLmVkaXRpb25JY29uID8/IGNhdGFsb2cuZWRpdGlvbj8uaWNvbiA/PyBHRU5FU0lTX0lDT05fVVJMO1xuICAgIGNvbnN0IHZlcnNlVGV4dCA9IGNhcmQudmVyc2VUZXh0ID8/IGNhcmQuYmlibGU/LnRleHQ7XG4gICAgY29uc3Qgc2NyaXB0dXJlID0gY2FyZC5zY3JpcHR1cmUgPz8gdGhpcy5mb3JtYXRTY3JpcHR1cmUoY2FyZC5iaWJsZSk7XG4gICAgY29uc3Qgb2ZmZXJpbmdWYWx1ZSA9IGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyA/IGNhcmQub2ZmZXJpbmdWYWx1ZSA/PyBjYXJkLmxpZmUgPz8gY2FyZC5jb3N0ID8/IDEgOiBjYXJkLm9mZmVyaW5nVmFsdWU7XG4gICAgY29uc3QgbGlmZSA9IGNhcmQudHlwZSA9PT0gJ2xlYWRlcidcbiAgICAgID8gY2FyZC5sZWFkZXJMaWZlID8/IGNhcmQubGlmZSA/PyAxMFxuICAgICAgOiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZydcbiAgICAgICAgPyBvZmZlcmluZ1ZhbHVlXG4gICAgICAgIDogY2FyZC5saWZlID8/IDA7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNhcmQsXG4gICAgICBjb3N0OiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgPyAwIDogY2FyZC5jb3N0ID8/IDAsXG4gICAgICBvZmZlcmluZ1ZhbHVlLFxuICAgICAgbGlmZSxcbiAgICAgIGxlYWRlckxpZmU6IGNhcmQudHlwZSA9PT0gJ2xlYWRlcicgPyBjYXJkLmxlYWRlckxpZmUgPz8gbGlmZSA6IGNhcmQubGVhZGVyTGlmZSxcbiAgICAgIGF0dGFjazogY2FyZC50eXBlID09PSAnY2hhcmFjdGVyJyA/IGNhcmQuYXR0YWNrID8/IDAgOiBjYXJkLmF0dGFjayxcbiAgICAgIGFiaWxpdHlOYW1lOiBjYXJkLmFiaWxpdHlOYW1lID8/IGNhcmQuYWJpbGl0aWVzPy5bMF0/Lm5hbWUsXG4gICAgICBhYmlsaXR5VGV4dDogY2FyZC5hYmlsaXR5VGV4dCA/PyBjYXJkLmFiaWxpdGllcz8uWzBdPy50ZXh0LFxuICAgICAgdmVyc2VUZXh0LFxuICAgICAgc2NyaXB0dXJlLFxuICAgICAgZWRpdGlvbjogY2FyZC5lZGl0aW9uID8/IGNhdGFsb2cuZWRpdGlvbj8uaWQgPz8gJ0dFTicsXG4gICAgICBlZGl0aW9uTnVtYmVyOiBjYXJkLmVkaXRpb25OdW1iZXIgPz8gY2F0YWxvZy5lZGl0aW9uPy5udW1iZXIsXG4gICAgICBlZGl0aW9uSWNvbixcbiAgICAgIGltYWdlVXJsOiBjYXJkLmltYWdlVXJsID8/IGNhcmQuYXJ0Py5pbWFnZVVybCxcbiAgICAgIGF1dGhvcjogY2FyZC5hdXRob3IgPz8gY2FyZC5hcnQ/LmFydGlzdENyZWRpdCxcbiAgICAgIHllYXI6IGNhcmQueWVhciA/PyAnMjAyNicsXG4gICAgICBmcm9udFRlbXBsYXRlOiBjYXJkLmZyb250VGVtcGxhdGUgPz8gJ2dlbmVzaXMtY2xhc3NpYycsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0U2NyaXB0dXJlKGJpYmxlPzogQ2hyaXN0aWFuaXR5Q2FyZEJpYmxlUmVmZXJlbmNlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIWJpYmxlPy5ib29rIHx8ICFiaWJsZS5yZWZlcmVuY2UpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGAke2JpYmxlLmJvb2t9ICR7YmlibGUucmVmZXJlbmNlfSR7YmlibGUudmVyc2lvbiA/IGAgJHtiaWJsZS52ZXJzaW9ufWAgOiAnJ31gO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUdXRvcmlhbEdhbWUoXG4gICAgY2FyZHM6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uW10sXG4gICAgb3B0aW9uczoge1xuICAgICAgcGxheWVyTGVhZGVySWQ/OiBzdHJpbmc7XG4gICAgICBvcHBvbmVudExlYWRlcklkPzogc3RyaW5nO1xuICAgICAgZmlyc3RQbGF5ZXI/OiBDaHJpc3RpYW5pdHlTZWF0O1xuICAgICAgc2VlZD86IG51bWJlcjtcbiAgICB9ID0ge30sXG4gICk6IENocmlzdGlhbml0eUdhbWVTdGF0ZSB7XG4gICAgY29uc3QgbGVhZGVycyA9IHRoaXMudHV0b3JpYWxMZWFkZXJDYXJkcyhjYXJkcyk7XG4gICAgY29uc3QgcGxheWVyTGVhZGVyID0gdGhpcy5jYXJkQnlJZChvcHRpb25zLnBsYXllckxlYWRlcklkKSA/PyB0aGlzLmZpbmRDYXJkKGxlYWRlcnMsICdBZMOhbicpID8/IGxlYWRlcnNbMF07XG4gICAgY29uc3Qgb3Bwb25lbnRMZWFkZXIgPSB0aGlzLmNhcmRCeUlkKG9wdGlvbnMub3Bwb25lbnRMZWFkZXJJZCkgPz8gdGhpcy5maW5kQ2FyZChsZWFkZXJzLCAnTm/DqScpID8/IGxlYWRlcnMuZmluZChjYXJkID0+IGNhcmQuaWQgIT09IHBsYXllckxlYWRlcj8uaWQpID8/IGxlYWRlcnNbMF07XG4gICAgY29uc3Qgb2ZmZXJpbmdzID0gY2FyZHMuZmlsdGVyKGNhcmQgPT4gY2FyZC50eXBlID09PSAnb2ZmZXJpbmcnICYmIHRoaXMuaXNDbGFzc2ljR2FsbGVyeUNhcmQoY2FyZCkpLnNsaWNlKDAsIFRVVE9SSUFMX09GRkVSSU5HX0xJTUlUKTtcbiAgICBjb25zdCBwbGFjZXMgPSBjYXJkcy5maWx0ZXIoY2FyZCA9PiBjYXJkLnR5cGUgPT09ICdwbGFjZScpO1xuICAgIGNvbnN0IGNoYXJhY3RlcnMgPSBjYXJkc1xuICAgICAgLmZpbHRlcihjYXJkID0+IGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicgJiYgdGhpcy5pc0NsYXNzaWNHYWxsZXJ5Q2FyZChjYXJkKSAmJiAoY2FyZC5jb3N0ID8/IDApIDw9IDQgJiYgKGNhcmQuYXR0YWNrID8/IDApID49IDAgJiYgKGNhcmQubGlmZSA/PyAwKSA+IDApXG4gICAgICAuc2xpY2UoMCwgVFVUT1JJQUxfQ0hBUkFDVEVSX0xJTUlUKTtcbiAgICBjb25zdCB0dXRvcmlhbERlY2sgPSBbXG4gICAgICAuLi5vZmZlcmluZ3MsXG4gICAgICAuLi5jaGFyYWN0ZXJzLFxuICAgICAgLi4ub2ZmZXJpbmdzLFxuICAgICAgLi4uY2hhcmFjdGVycy5zbGljZSgwLCA2KSxcbiAgICBdLnNsaWNlKDAsIDI4KTtcbiAgICBjb25zdCBzaHVmZmxlZERlY2sgPSB0aGlzLnByZXBhcmVUdXRvcmlhbE9wZW5pbmdEZWNrKHRoaXMuc2h1ZmZsZUNhcmRzKHR1dG9yaWFsRGVjaywgb3B0aW9ucy5zZWVkID8/IFRVVE9SSUFMX1NFRUQpKTtcbiAgICBjb25zdCBwbGF5ZXJIYW5kID0gc2h1ZmZsZWREZWNrLnNsaWNlKDAsIFRVVE9SSUFMX09QRU5JTkdfSEFORF9TSVpFKS5tYXAoY2FyZCA9PiBjYXJkLmlkKTtcbiAgICBjb25zdCBvcHBvbmVudEhhbmQgPSBzaHVmZmxlZERlY2suc2xpY2UoVFVUT1JJQUxfT1BFTklOR19IQU5EX1NJWkUsIFRVVE9SSUFMX09QRU5JTkdfSEFORF9TSVpFICogMikubWFwKGNhcmQgPT4gY2FyZC5pZCk7XG4gICAgY29uc3Qgc2hhcmVkRGVjayA9IHNodWZmbGVkRGVjay5zbGljZShUVVRPUklBTF9PUEVOSU5HX0hBTkRfU0laRSAqIDIpLm1hcChjYXJkID0+IGNhcmQuaWQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0cnVjdHVyZWRDbG9uZShTVEFSVElOR19HQU1FKSxcbiAgICAgIHN0YXR1czogJ2luX3Byb2dyZXNzJyxcbiAgICAgIHR1cm5Pd25lcjogb3B0aW9ucy5maXJzdFBsYXllciA/PyAnUDEnLFxuICAgICAgdHVybkNvdW50OiAxLFxuICAgICAgbWF0Y2hTY29yZTogeyBQMTogMCwgUDI6IDAgfSxcbiAgICAgIHNoYXJlZERlY2ssXG4gICAgICBwbGFjZVpvbmU6IHBsYWNlc1swXSA/IFtwbGFjZXNbMF0uaWRdIDogW10sXG4gICAgICBoaXN0b3J5Wm9uZTogW10sXG4gICAgICBwbGF5ZXJzOiB7XG4gICAgICAgIFAxOiB0aGlzLmNyZWF0ZVR1dG9yaWFsUGxheWVyKCdQMScsIHBsYXllckxlYWRlciwgcGxheWVySGFuZCwgW10pLFxuICAgICAgICBQMjogdGhpcy5jcmVhdGVUdXRvcmlhbFBsYXllcignUDInLCBvcHBvbmVudExlYWRlciwgb3Bwb25lbnRIYW5kLCBbXSksXG4gICAgICB9LFxuICAgICAgbG9nOiBbXG4gICAgICAgIGAke3RoaXMudCgnY2hyaXN0aWFuaXR5VHVybk9mJyl9ICR7KG9wdGlvbnMuZmlyc3RQbGF5ZXIgPz8gJ1AxJykgPT09ICdQMScgPyBTVEFSVElOR19HQU1FLnBsYXllcnMuUDEuZGlzcGxheU5hbWUgOiBTVEFSVElOR19HQU1FLnBsYXllcnMuUDIuZGlzcGxheU5hbWV9LmAsXG4gICAgICAgIHRoaXMudCgnY2hyaXN0aWFuaXR5VHV0b3JpYWxMb2FkZWQnKSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVHV0b3JpYWxQbGF5ZXIoXG4gICAgc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCxcbiAgICBsZWFkZXI6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uIHwgdW5kZWZpbmVkLFxuICAgIGhhbmQ6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgIGJhdHRsZVpvbmU6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlW10sXG4gICk6IENocmlzdGlhbml0eVBsYXllclN0YXRlIHtcbiAgICBjb25zdCBiYXNlID0gU1RBUlRJTkdfR0FNRS5wbGF5ZXJzW3NlYXRdO1xuICAgIGNvbnN0IGxlYWRlckxpZmUgPSBsZWFkZXI/LmxlYWRlckxpZmUgPz8gbGVhZGVyPy5saWZlID8/IGJhc2UubGVhZGVyTWF4SHA7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0cnVjdHVyZWRDbG9uZShiYXNlKSxcbiAgICAgIGxlYWRlckNhcmRJZDogbGVhZGVyPy5pZCxcbiAgICAgIGxlYWRlck5hbWU6IGxlYWRlciA/IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGxlYWRlcikubmFtZSA6IGJhc2UubGVhZGVyTmFtZSxcbiAgICAgIGxlYWRlckhwOiBsZWFkZXJMaWZlLFxuICAgICAgbGVhZGVyTWF4SHA6IGxlYWRlckxpZmUsXG4gICAgICBvZmZlcmluZ3M6IFtdLFxuICAgICAgb2ZmZXJpbmdQbGF5ZWRUaGlzVHVybjogZmFsc2UsXG4gICAgICBoYW5kLFxuICAgICAgaGFuZENvdW50OiBoYW5kID8gdW5kZWZpbmVkIDogNCxcbiAgICAgIGJhdHRsZVpvbmUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT2ZmZXJpbmdJbnN0YW5jZShjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbiwgc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCwgaW5zdGFuY2VJZDogc3RyaW5nKTogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSB7XG4gICAgY29uc3QgdmFsdWUgPSBjYXJkLm9mZmVyaW5nVmFsdWUgPz8gY2FyZC5saWZlID8/IDE7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluc3RhbmNlSWQsXG4gICAgICBjYXJkSWQ6IGNhcmQuaWQsXG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKS5uYW1lLFxuICAgICAgb3duZXI6IHNlYXQsXG4gICAgICByZWFkeTogdHJ1ZSxcbiAgICAgIHZhbHVlLFxuICAgICAgYWJpbGl0eU5hbWU6IGNhcmQuYWJpbGl0eU5hbWUsXG4gICAgICBhYmlsaXR5VGV4dDogY2FyZC5hYmlsaXR5VGV4dCxcbiAgICAgIGFiaWxpdHlDb3N0OiBjYXJkLmFiaWxpdHlDb3N0LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNoYXJhY3Rlckluc3RhbmNlKGNhcmQ6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uLCBzZWF0OiBDaHJpc3RpYW5pdHlTZWF0LCBzbG90OiBudW1iZXIsIGluc3RhbmNlSWQ6IHN0cmluZyk6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlIHtcbiAgICBjb25zdCBsaWZlID0gY2FyZC5saWZlID8/IDE7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluc3RhbmNlSWQsXG4gICAgICBjYXJkSWQ6IGNhcmQuaWQsXG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKS5uYW1lLFxuICAgICAgb3duZXI6IHNlYXQsXG4gICAgICBjb250cm9sbGVyOiBzZWF0LFxuICAgICAgc2xvdCxcbiAgICAgIGF0dGFjazogY2FyZC5hdHRhY2sgPz8gMCxcbiAgICAgIGN1cnJlbnRIcDogbGlmZSxcbiAgICAgIG1heEhwOiBsaWZlLFxuICAgICAgY2FuQXR0YWNrOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kQ2FyZChjYXJkczogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXSwgbmFtZVBhcnQ6IHN0cmluZyk6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gY2FyZHMuZmluZChjYXJkID0+IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhuYW1lUGFydC50b0xvd2VyQ2FzZSgpKSk7XG4gIH1cblxuICBwcml2YXRlIGNhcmRCeUlkKGNhcmRJZDogc3RyaW5nIHwgdW5kZWZpbmVkKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBjYXJkSWQgPyB0aGlzLmNhcmRDYXRhbG9nKClbY2FyZElkXSA/PyBTVEFSVEVSX0NBUkRTW2NhcmRJZF0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHR1dG9yaWFsTGVhZGVyQ2FyZHMoY2FyZHM6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uW10pOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbltdIHtcbiAgICBjb25zdCBsZWFkZXJzID0gY2FyZHNcbiAgICAgIC5maWx0ZXIoY2FyZCA9PiBjYXJkLnR5cGUgPT09ICdsZWFkZXInICYmIHRoaXMuaXNDbGFzc2ljR2FsbGVyeUNhcmQoY2FyZCkpXG4gICAgICAuc29ydCgobGVmdCwgcmlnaHQpID0+IHRoaXMuY2FyZFNvcnRLZXkobGVmdCkubG9jYWxlQ29tcGFyZSh0aGlzLmNhcmRTb3J0S2V5KHJpZ2h0KSwgJ2VzJykpO1xuICAgIGlmIChsZWFkZXJzLmxlbmd0aCA+PSAyKSByZXR1cm4gbGVhZGVycy5zbGljZSgwLCA0KTtcbiAgICByZXR1cm4gY2FyZHMuZmlsdGVyKGNhcmQgPT4gY2FyZC50eXBlID09PSAnbGVhZGVyJykuc2xpY2UoMCwgNCk7XG4gIH1cblxuICBwcml2YXRlIHNodWZmbGVDYXJkcyhjYXJkczogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXSwgc2VlZDogbnVtYmVyKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gWy4uLmNhcmRzXTtcbiAgICBsZXQgc3RhdGUgPSBzZWVkID4+PiAwO1xuICAgIGZvciAobGV0IGluZGV4ID0gcmVzdWx0Lmxlbmd0aCAtIDE7IGluZGV4ID4gMDsgaW5kZXgtLSkge1xuICAgICAgc3RhdGUgPSAoc3RhdGUgKiAxNjY0NTI1ICsgMTAxMzkwNDIyMykgPj4+IDA7XG4gICAgICBjb25zdCBzd2FwSW5kZXggPSBzdGF0ZSAlIChpbmRleCArIDEpO1xuICAgICAgW3Jlc3VsdFtpbmRleF0sIHJlc3VsdFtzd2FwSW5kZXhdXSA9IFtyZXN1bHRbc3dhcEluZGV4XSwgcmVzdWx0W2luZGV4XV07XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVUdXRvcmlhbE9wZW5pbmdEZWNrKGNhcmRzOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbltdKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb25bXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gWy4uLmNhcmRzXTtcbiAgICB0aGlzLmVuc3VyZU9wZW5pbmdPZmZlcmluZyhyZXN1bHQsIDAsIFRVVE9SSUFMX09QRU5JTkdfSEFORF9TSVpFKTtcbiAgICB0aGlzLmVuc3VyZU9wZW5pbmdPZmZlcmluZyhyZXN1bHQsIFRVVE9SSUFMX09QRU5JTkdfSEFORF9TSVpFLCBUVVRPUklBTF9PUEVOSU5HX0hBTkRfU0laRSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlT3BlbmluZ09mZmVyaW5nKGNhcmRzOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbltdLCBzdGFydDogbnVtYmVyLCBzaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBoYW5kID0gY2FyZHMuc2xpY2Uoc3RhcnQsIHN0YXJ0ICsgc2l6ZSk7XG4gICAgaWYgKGhhbmQuc29tZShjYXJkID0+IGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJykpIHJldHVybjtcbiAgICBjb25zdCBvZmZlcmluZ0luZGV4ID0gY2FyZHMuZmluZEluZGV4KChjYXJkLCBpbmRleCkgPT4gaW5kZXggPj0gc3RhcnQgKyBzaXplICYmIGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJyk7XG4gICAgaWYgKG9mZmVyaW5nSW5kZXggPCAwKSByZXR1cm47XG4gICAgW2NhcmRzW3N0YXJ0XSwgY2FyZHNbb2ZmZXJpbmdJbmRleF1dID0gW2NhcmRzW29mZmVyaW5nSW5kZXhdLCBjYXJkc1tzdGFydF1dO1xuICB9XG5cbiAgcHJpdmF0ZSBjYXJkU29ydEtleShjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbik6IHN0cmluZyB7XG4gICAgY29uc3QgY29sbGVjdG9yID0gY2FyZC5jb2xsZWN0b3JOdW1iZXIgPz8gY2FyZC5pZDtcbiAgICByZXR1cm4gYCR7Y2FyZC5lZGl0aW9uID8/ICcnfS0ke2NvbGxlY3Rvci5wYWRTdGFydCg4LCAnMCcpfS0ke3RoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpLm5hbWV9YDtcbiAgfVxuXG4gIHByaXZhdGUgaXNDbGFzc2ljR2FsbGVyeUNhcmQoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKGNhcmQuZnJvbnRUZW1wbGF0ZSA/PyAnZ2VuZXNpcy1jbGFzc2ljJykgPT09ICdnZW5lc2lzLWNsYXNzaWMnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhcmREZWZpbml0aW9uKGNhcmRJZDogc3RyaW5nKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24ge1xuICAgIHJldHVybiB0aGlzLmNhcmRDYXRhbG9nKClbY2FyZElkXSA/PyBTVEFSVEVSX0NBUkRTW2NhcmRJZF0gPz8gU1RBUlRFUl9DQVJEU1sncF9zY291dCddO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2xhdGVkQ2FyZFRleHQoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBDaHJpc3RpYW5pdHlSZXNvbHZlZENhcmRUZXh0IHtcbiAgICBjb25zdCBsYW5nID0gdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCB0cmFuc2xhdGlvbiA9IGNhcmQuaTE4bj8uW2xhbmddID8/IGNhcmQuaTE4bj8uWydlcyddO1xuICAgIGNvbnN0IHByaW1hcnlBYmlsaXR5ID0gdHJhbnNsYXRpb24/LmFiaWxpdGllcz8uWzBdID8/IGNhcmQuYWJpbGl0aWVzPy5bMF07XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRyYW5zbGF0aW9uPy5uYW1lID8/IGNhcmQubmFtZSxcbiAgICAgIGZ1bGxOYW1lOiB0cmFuc2xhdGlvbj8uZnVsbE5hbWUgPz8gY2FyZC5mdWxsTmFtZSxcbiAgICAgIHZlcnNlVGV4dDogdHJhbnNsYXRpb24/LnZlcnNlVGV4dCA/PyBjYXJkLnZlcnNlVGV4dCxcbiAgICAgIHNjcmlwdHVyZTogdHJhbnNsYXRpb24/LnNjcmlwdHVyZSA/PyBjYXJkLnNjcmlwdHVyZSxcbiAgICAgIGFiaWxpdHlOYW1lOiB0cmFuc2xhdGlvbj8uYWJpbGl0eU5hbWUgPz8gcHJpbWFyeUFiaWxpdHk/Lm5hbWUgPz8gY2FyZC5hYmlsaXR5TmFtZSxcbiAgICAgIGFiaWxpdHlUZXh0OiB0cmFuc2xhdGlvbj8uYWJpbGl0eVRleHQgPz8gcHJpbWFyeUFiaWxpdHk/LnRleHQgPz8gY2FyZC5hYmlsaXR5VGV4dCxcbiAgICAgIGFiaWxpdGllczogdHJhbnNsYXRpb24/LmFiaWxpdGllcyA/PyBjYXJkLmFiaWxpdGllcyxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhcmREaXNwbGF5TmFtZShjYXJkSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKSkubmFtZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwbGF5ZXJMZWFkZXJEaXNwbGF5TmFtZShwbGF5ZXI6IENocmlzdGlhbml0eVBsYXllclN0YXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGxheWVyLmxlYWRlckNhcmRJZCA/IHRoaXMuY2FyZERpc3BsYXlOYW1lKHBsYXllci5sZWFkZXJDYXJkSWQpIDogcGxheWVyLmxlYWRlck5hbWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2F0YWxvZ1N0YXR1c0xhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmNhdGFsb2dMb2FkU3RhdGUoKTtcbiAgICBpZiAoc3RhdGUgPT09ICdyZWFkeScpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eUNhdGFsb2dSZWFkeScpO1xuICAgIGlmIChzdGF0ZSA9PT0gJ2ZhbGxiYWNrJykgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5Q2F0YWxvZ0ZhbGxiYWNrJyk7XG4gICAgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5Q2F0YWxvZ0xvYWRpbmcnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydEZlYXR1cmVkQ2FyZFRyYW5zZm9ybShpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cmFuc2Zvcm1zID0gW1xuICAgICAgJ3RyYW5zbGF0ZVgoLTEuNHJlbSkgcm90YXRlKC05ZGVnKScsXG4gICAgICAndHJhbnNsYXRlWSgtMC41NXJlbSkgcm90YXRlKDJkZWcpJyxcbiAgICAgICd0cmFuc2xhdGVYKDEuNHJlbSkgcm90YXRlKDEwZGVnKScsXG4gICAgXTtcbiAgICByZXR1cm4gdHJhbnNmb3Jtc1tpbmRleF0gPz8gJ25vbmUnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhcmRUeXBlTGFiZWwoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IGxhYmVsczogUmVjb3JkPENocmlzdGlhbml0eUNhcmRUeXBlLCBzdHJpbmc+ID0ge1xuICAgICAgYWN0aW9uOiB0aGlzLnQoJ2NocmlzdGlhbml0eUFjdGlvbkNhcmQnKSxcbiAgICAgIGNoYXJhY3RlcjogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJDYXJkJyksXG4gICAgICBldmVudDogdGhpcy50KCdjaHJpc3RpYW5pdHlFdmVudENhcmQnKSxcbiAgICAgIGxlYWRlcjogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksXG4gICAgICBvZmZlcmluZzogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSxcbiAgICAgIHBsYWNlOiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYWNlQ2FyZCcpLFxuICAgICAgdG9vbDogdGhpcy50KCdjaHJpc3RpYW5pdHlUb29sQ2FyZCcpLFxuICAgICAgd2lzZG9tOiB0aGlzLnQoJ2NocmlzdGlhbml0eVdpc2RvbUNhcmQnKSxcbiAgICB9O1xuICAgIHJldHVybiBsYWJlbHNbY2FyZC50eXBlXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZWZpbml0aW9uVG9SZW5kZXJDYXJkKFxuICAgIGNhcmQ6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uLFxuICAgIG92ZXJyaWRlczogUGFydGlhbDxDaHJpc3RpYW5pdHlDYXJkUmVuZGVyTW9kZWw+ID0ge30sXG4gICk6IENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbCB7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNhcmQpO1xuICAgIGNvbnN0IGJhc2U6IENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbCA9IHtcbiAgICAgIGlkOiBjYXJkLmlkLFxuICAgICAgbmFtZTogdGV4dC5uYW1lLFxuICAgICAgdHlwZTogY2FyZC50eXBlLFxuICAgICAgdHlwZUxhYmVsOiB0aGlzLmNhcmRUeXBlTGFiZWwoY2FyZCksXG4gICAgICBjb3N0OiBjYXJkLmNvc3QsXG4gICAgICBvZmZlcmluZ1ZhbHVlOiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgPyBjYXJkLm9mZmVyaW5nVmFsdWUgPz8gY2FyZC5saWZlIDogdW5kZWZpbmVkLFxuICAgICAgYXR0YWNrOiBjYXJkLnR5cGUgPT09ICdjaGFyYWN0ZXInID8gY2FyZC5hdHRhY2sgOiB1bmRlZmluZWQsXG4gICAgICBsaWZlOiBjYXJkLmxpZmUsXG4gICAgICBjdXJyZW50SHA6IGNhcmQubGlmZSxcbiAgICAgIG1heEhwOiBjYXJkLmxpZmUsXG4gICAgICBhYmlsaXR5TmFtZTogdGV4dC5hYmlsaXR5TmFtZSxcbiAgICAgIGFiaWxpdHlUZXh0OiB0ZXh0LmFiaWxpdHlUZXh0LFxuICAgICAgdmVyc2VUZXh0OiB0ZXh0LnZlcnNlVGV4dCxcbiAgICAgIHNjcmlwdHVyZTogdGV4dC5zY3JpcHR1cmUsXG4gICAgICBlZGl0aW9uOiBjYXJkLmVkaXRpb24sXG4gICAgICBjb2xsZWN0b3JOdW1iZXI6IGNhcmQuY29sbGVjdG9yTnVtYmVyLFxuICAgICAgZWRpdGlvbkljb246IGNhcmQuZWRpdGlvbkljb24gPz8gKGNhcmQuZWRpdGlvbiA9PT0gJ0dFTicgPyBHRU5FU0lTX0lDT05fVVJMIDogdW5kZWZpbmVkKSxcbiAgICAgIHllYXI6IGNhcmQueWVhcixcbiAgICAgIGF1dGhvcjogY2FyZC5hdXRob3IsXG4gICAgICByYXJpdHk6IGNhcmQucmFyaXR5LFxuICAgICAgaW1hZ2VVcmw6IGNhcmQuaW1hZ2VVcmwsXG4gICAgICBmcm9udFRlbXBsYXRlOiBjYXJkLmZyb250VGVtcGxhdGUgPz8gKGNhcmQuZWRpdGlvbiA9PT0gJ0dFTicgPyAnZ2VuZXNpcy1jbGFzc2ljJyA6IHVuZGVmaW5lZCksXG4gICAgICBiaWJsZUNyZWRpdDogdGhpcy5iaWJsZUNyZWRpdEZvckNhcmQoY2FyZCksXG4gICAgfTtcbiAgICByZXR1cm4geyAuLi5iYXNlLCAuLi5vdmVycmlkZXMgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwbGFjZUJhY2tkcm9wSW1hZ2UoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IGltYWdlVXJsID0gY2FyZC5pbWFnZVVybCA/PyBjYXJkLmFydD8uaW1hZ2VVcmw7XG4gICAgaWYgKCFpbWFnZVVybCkge1xuICAgICAgcmV0dXJuICdsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDEzLCAxNDgsIDEzNiwgMC43MiksIHJnYmEoMTI0LCA1OCwgMjM3LCAwLjUyKSA0OCUsIHJnYmEoMjUwLCAyMDQsIDIxLCAwLjQyKSknO1xuICAgIH1cbiAgICByZXR1cm4gYHVybChcIiR7aW1hZ2VVcmwucmVwbGFjZUFsbCgnXCInLCAnXFxcXFwiJyl9XCIpYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBoaWRkZW5DYXJkUmVuZGVyQ2FyZCgpOiBDaHJpc3RpYW5pdHlDYXJkUmVuZGVyTW9kZWwge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogJ2NocmlzdGlhbml0eS1oaWRkZW4tY2FyZCcsXG4gICAgICBuYW1lOiB0aGlzLnQoJ2NocmlzdGlhbml0eUhpZGRlbkNhcmQnKSxcbiAgICAgIHR5cGU6ICdldmVudCcsXG4gICAgICB0eXBlTGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5SGlkZGVuQ2FyZCcpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGJpYmxlQ3JlZGl0Rm9yQ2FyZChjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGNhcmQuYmlibGVDcmVkaXQpIHJldHVybiBjYXJkLmJpYmxlQ3JlZGl0O1xuICAgIGlmIChjYXJkLmJpYmxlPy52ZXJzaW9uID09PSAnTkJWJykge1xuICAgICAgcmV0dXJuICdOdWV2YSBCaWJsaWEgVml2YSDCqSAyMDA2LCAyMDA4IHBvciBCaWJsaWNhLCBJbmMuwq4gVXNhZG8gY29uIHBlcm1pc28gZGUgQmlibGljYSwgSW5jLsKuIFJlc2VydmFkb3MgdG9kb3MgbG9zIGRlcmVjaG9zIGVuIHRvZG8gZWwgbXVuZG8uJztcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZGVmYXVsdENhcmRCb2R5KHR5cGU6IENocmlzdGlhbml0eUNhcmRUeXBlKTogc3RyaW5nIHtcbiAgICBjb25zdCBib2RpZXM6IFJlY29yZDxDaHJpc3RpYW5pdHlDYXJkVHlwZSwgc3RyaW5nPiA9IHtcbiAgICAgIGFjdGlvbjogdGhpcy50KCdjaHJpc3RpYW5pdHlBY3Rpb25SdWxlQm9keScpLFxuICAgICAgY2hhcmFjdGVyOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlckJvZHknKSxcbiAgICAgIGV2ZW50OiB0aGlzLnQoJ2NocmlzdGlhbml0eUV2ZW50UnVsZUJvZHknKSxcbiAgICAgIGxlYWRlcjogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJCb2R5JyksXG4gICAgICBvZmZlcmluZzogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0JvZHknKSxcbiAgICAgIHBsYWNlOiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYWNlUnVsZUJvZHknKSxcbiAgICAgIHRvb2w6IHRoaXMudCgnY2hyaXN0aWFuaXR5VG9vbFJ1bGVCb2R5JyksXG4gICAgICB3aXNkb206IHRoaXMudCgnY2hyaXN0aWFuaXR5V2lzZG9tUnVsZUJvZHknKSxcbiAgICB9O1xuICAgIHJldHVybiBib2RpZXNbdHlwZV07XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hhcmFjdGVyUmVuZGVyQ2FyZChjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbCB7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZC5jYXJkSWQpO1xuICAgIHJldHVybiB0aGlzLmRlZmluaXRpb25Ub1JlbmRlckNhcmQoZGVmaW5pdGlvbiwge1xuICAgICAgaWQ6IGNhcmQuaW5zdGFuY2VJZCxcbiAgICAgIGF0dGFjazogY2FyZC5hdHRhY2ssXG4gICAgICBsaWZlOiBjYXJkLm1heEhwLFxuICAgICAgY3VycmVudEhwOiBjYXJkLmN1cnJlbnRIcCxcbiAgICAgIG1heEhwOiBjYXJkLm1heEhwLFxuICAgICAgc3RhdHVzVGV4dDogY2FyZC5jYW5BdHRhY2sgPyB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlclJlYWR5JykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlckV4aGF1c3RlZCcpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGxlYWRlclJlbmRlckNhcmQocGxheWVyOiBDaHJpc3RpYW5pdHlQbGF5ZXJTdGF0ZSk6IENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbCB7XG4gICAgaWYgKHBsYXllci5sZWFkZXJDYXJkSWQpIHtcbiAgICAgIGNvbnN0IGRlZmluaXRpb24gPSB0aGlzLmNhcmREZWZpbml0aW9uKHBsYXllci5sZWFkZXJDYXJkSWQpO1xuICAgICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChkZWZpbml0aW9uLCB7XG4gICAgICAgIGlkOiBgJHtwbGF5ZXIuc2VhdH0tbGVhZGVyYCxcbiAgICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoZGVmaW5pdGlvbikubmFtZSxcbiAgICAgICAgdHlwZTogJ2xlYWRlcicsXG4gICAgICAgIHR5cGVMYWJlbDogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyksXG4gICAgICAgIGxpZmU6IHBsYXllci5sZWFkZXJIcCxcbiAgICAgICAgY3VycmVudEhwOiBwbGF5ZXIubGVhZGVySHAsXG4gICAgICAgIG1heEhwOiBwbGF5ZXIubGVhZGVyTWF4SHAsXG4gICAgICAgIHN0YXR1c1RleHQ6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQm9keScpLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpZDogYCR7cGxheWVyLnNlYXR9LWxlYWRlcmAsXG4gICAgICBuYW1lOiBwbGF5ZXIubGVhZGVyTmFtZSxcbiAgICAgIHR5cGU6ICdsZWFkZXInLFxuICAgICAgdHlwZUxhYmVsOiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSxcbiAgICAgIGxpZmU6IHBsYXllci5sZWFkZXJIcCxcbiAgICAgIGN1cnJlbnRIcDogcGxheWVyLmxlYWRlckhwLFxuICAgICAgbWF4SHA6IHBsYXllci5sZWFkZXJNYXhIcCxcbiAgICAgIGFiaWxpdHlOYW1lOiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckNhcmQnKSxcbiAgICAgIGFiaWxpdHlUZXh0OiB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlckJvZHknKSxcbiAgICAgIHZlcnNlVGV4dDogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJCb2R5JyksXG4gICAgICBlZGl0aW9uOiAnTVZQJyxcbiAgICAgIGNvbGxlY3Rvck51bWJlcjogJ0xJREVSJyxcbiAgICAgIGVkaXRpb25JY29uOiBHRU5FU0lTX0lDT05fVVJMLFxuICAgICAgeWVhcjogJzIwMjYnLFxuICAgICAgYXV0aG9yOiAnTVZQJyxcbiAgICAgIHJhcml0eTogJ2xlZ2VuZGFyeScsXG4gICAgICBmcm9udFRlbXBsYXRlOiAnZ2VuZXNpcy1jbGFzc2ljJyxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIG9mZmVyaW5nUmVuZGVyQ2FyZChvZmZlcmluZzogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSk6IENocmlzdGlhbml0eUNhcmRSZW5kZXJNb2RlbCB7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXMuY2FyZERlZmluaXRpb24ob2ZmZXJpbmcuY2FyZElkKTtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoZGVmaW5pdGlvbik7XG4gICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvblRvUmVuZGVyQ2FyZChkZWZpbml0aW9uLCB7XG4gICAgICBpZDogb2ZmZXJpbmcuaW5zdGFuY2VJZCxcbiAgICAgIG5hbWU6IHRleHQubmFtZSxcbiAgICAgIHR5cGU6ICdvZmZlcmluZycsXG4gICAgICB0eXBlTGFiZWw6IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdDYXJkJyksXG4gICAgICBvZmZlcmluZ1ZhbHVlOiBvZmZlcmluZy52YWx1ZSxcbiAgICAgIGxpZmU6IG9mZmVyaW5nLnZhbHVlLFxuICAgICAgY3VycmVudEhwOiBvZmZlcmluZy52YWx1ZSxcbiAgICAgIG1heEhwOiBvZmZlcmluZy52YWx1ZSxcbiAgICAgIGFiaWxpdHlOYW1lOiB0ZXh0LmFiaWxpdHlOYW1lID8/IG9mZmVyaW5nLmFiaWxpdHlOYW1lLFxuICAgICAgYWJpbGl0eVRleHQ6IHRleHQuYWJpbGl0eVRleHQgPz8gb2ZmZXJpbmcuYWJpbGl0eVRleHQgPz8gdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ05vQWJpbGl0eScpLFxuICAgICAgc3RhdHVzVGV4dDogb2ZmZXJpbmcucmVhZHkgPyB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nUmVhZHknKSA6IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdFeGhhdXN0ZWQnKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJldmlld1JlbmRlclR5cGUodHlwZUxhYmVsOiBzdHJpbmcpOiBDaHJpc3RpYW5pdHlDYXJkUmVuZGVyVHlwZSB7XG4gICAgaWYgKHR5cGVMYWJlbCA9PT0gdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJykpIHJldHVybiAnbGVhZGVyJztcbiAgICBpZiAodHlwZUxhYmVsID09PSB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQ2FyZCcpKSByZXR1cm4gJ29mZmVyaW5nJztcbiAgICByZXR1cm4gJ2NoYXJhY3Rlcic7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FyZFR5cGVJY29uVXJsKGNhcmQ6IENocmlzdGlhbml0eUNhcmREZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jYXJkVHlwZUljb25VcmxGb3JUeXBlKGNhcmQudHlwZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJldmlld1R5cGVJY29uVXJsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcHJldmlldyA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk7XG4gICAgaWYgKHByZXZpZXc/LmV5ZWJyb3cgPT09IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpKSByZXR1cm4gdGhpcy5jYXJkVHlwZUljb25VcmxGb3JUeXBlKCdsZWFkZXInKTtcbiAgICBpZiAocHJldmlldz8uZXllYnJvdyA9PT0gdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0NhcmQnKSkgcmV0dXJuIHRoaXMuY2FyZFR5cGVJY29uVXJsRm9yVHlwZSgnb2ZmZXJpbmcnKTtcbiAgICByZXR1cm4gdGhpcy5jYXJkVHlwZUljb25VcmxGb3JUeXBlKCdjaGFyYWN0ZXInKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYXJkVHlwZUljb25VcmxGb3JUeXBlKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IHR5cGUudG9Mb3dlckNhc2UoKS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcbiAgICBjb25zdCBpY29uID0gbm9ybWFsaXplZCA9PT0gJ2xpZGVyJyA/ICdsZWFkZXInIDogbm9ybWFsaXplZCA9PT0gJ3BlcnNvbmFqZScgPyAnY2hhcmFjdGVyJyA6IG5vcm1hbGl6ZWQgPT09ICdvZnJlbmRhJyA/ICdvZmZlcmluZycgOiBub3JtYWxpemVkO1xuICAgIHJldHVybiBgYXNzZXRzL2dhbWVzL2NocmlzdGlhbml0eS9pY29ucy8ke2ljb259LnBuZ2A7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdQaXBzKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQpOiB1bmtub3duW10ge1xuICAgIGNvbnN0IGNvdW50ID0gTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShjb3VudCkgfHwgY291bnQgPD0gMCkgcmV0dXJuIFtdO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBNYXRoLm1pbihNYXRoLmZsb29yKGNvdW50KSwgNSkgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYmF0dGxlU2xvdHMoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IEFycmF5PHsgdHJhY2tJZDogc3RyaW5nOyBjYXJkPzogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UgfT4ge1xuICAgIGNvbnN0IGNhcmRzID0gdGhpcy5nYW1lKCkucGxheWVyc1tzZWF0XS5iYXR0bGVab25lO1xuICAgIGNvbnN0IHBvc2l0aW9uZWRDYXJkcyA9IG5ldyBNYXA8bnVtYmVyLCBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZT4oKTtcbiAgICBjYXJkcy5mb3JFYWNoKChjYXJkLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qgc2xvdCA9IE51bWJlci5pc0ludGVnZXIoY2FyZC5zbG90KSA/IGNhcmQuc2xvdCA/PyBpbmRleCA6IGluZGV4O1xuICAgICAgaWYgKHNsb3QgPj0gMCAmJiBzbG90IDwgNCAmJiAhcG9zaXRpb25lZENhcmRzLmhhcyhzbG90KSkge1xuICAgICAgICBwb3NpdGlvbmVkQ2FyZHMuc2V0KHNsb3QsIGNhcmQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiA0IH0sIChfLCBpbmRleCkgPT4gKHtcbiAgICAgIHRyYWNrSWQ6IHBvc2l0aW9uZWRDYXJkcy5nZXQoaW5kZXgpPy5pbnN0YW5jZUlkID8/IGAke3NlYXR9LWVtcHR5LSR7aW5kZXh9YCxcbiAgICAgIGNhcmQ6IHBvc2l0aW9uZWRDYXJkcy5nZXQoaW5kZXgpLFxuICAgIH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBiYXR0bGVTbG90RHJvcElkKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LWJhdHRsZS1zbG90LSR7aW5kZXh9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBkcm9wVGFyZ2V0SWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWydjaHJpc3RpYW5pdHktb2ZmZXJpbmdzLWRyb3AnLCAnY2hyaXN0aWFuaXR5LXBsYWNlLWRyb3AnLCAuLi50aGlzLmJhdHRsZVNsb3RzKCdQMScpLm1hcCgoXywgaW5kZXgpID0+IHRoaXMuYmF0dGxlU2xvdERyb3BJZChpbmRleCkpXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvd25BdHRhY2tlckRyb3BTb3VyY2VJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbJ2NocmlzdGlhbml0eS1wbGF5ZXItYmF0dGxlLXNvdXJjZSddO1xuICB9XG5cbiAgcHJvdGVjdGVkIGF0dGFja1RhcmdldERyb3BJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbJ2NocmlzdGlhbml0eS1vcHBvbmVudC1sZWFkZXItZHJvcCcsIC4uLnRoaXMub3Bwb25lbnQoKS5iYXR0bGVab25lLm1hcChjYXJkID0+IHRoaXMub3Bwb25lbnRUYXJnZXREcm9wSWQoY2FyZCkpXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvcHBvbmVudFRhcmdldERyb3BJZChjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjaHJpc3RpYW5pdHktb3Bwb25lbnQtdGFyZ2V0LSR7Y2FyZC5pbnN0YW5jZUlkfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9wSGlzdG9yeUNhcmQoKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24gfCBudWxsIHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLmdhbWUoKS5oaXN0b3J5Wm9uZS5hdCgtMSk7XG4gICAgcmV0dXJuIGNhcmRJZCA/IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKSA6IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGlzdG9yeVN0YWNrKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5nYW1lKCkuaGlzdG9yeVpvbmUuc2xpY2UoLTMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvcE9mZmVyaW5nKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZ2FtZSgpLnBsYXllcnNbc2VhdF0ub2ZmZXJpbmdzLmF0KC0xKSA/PyBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9mZmVyaW5nU3RhY2soc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2FtZSgpLnBsYXllcnNbc2VhdF0ub2ZmZXJpbmdzLnNsaWNlKC0zKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY3RpdmVQbGFjZUNhcmQoKTogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24gfCBudWxsIHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLmdhbWUoKS5wbGFjZVpvbmVbMF07XG4gICAgcmV0dXJuIGNhcmRJZCA/IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKSA6IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGxhY2VTdGFjaygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2FtZSgpLnBsYWNlWm9uZS5zbGljZSgtMyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgem9uZVN0YWNrVHJhbnNmb3JtKGluZGV4OiBudW1iZXIsIHRvdGFsOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNlbnRlciA9ICh0b3RhbCAtIDEpIC8gMjtcbiAgICBjb25zdCBvZmZzZXQgPSBpbmRleCAtIGNlbnRlcjtcbiAgICBjb25zdCB4ID0gb2Zmc2V0ICogMC41MjtcbiAgICBjb25zdCB5ID0gTWF0aC5hYnMob2Zmc2V0KSAqIDAuMTQ7XG4gICAgY29uc3Qgcm90YXRpb24gPSBvZmZzZXQgKiA1O1xuICAgIHJldHVybiBgdHJhbnNsYXRlWChjYWxjKC01MCUgKyAke3h9cmVtKSkgdHJhbnNsYXRlWSgke3l9cmVtKSByb3RhdGUoJHtyb3RhdGlvbn1kZWcpYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc09wcG9uZW50TGVhZGVyVGFyZ2V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuc2VsZWN0ZWRBdHRhY2tlcigpICYmICF0aGlzLmhhc09wcG9uZW50R3VhcmRzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNPcHBvbmVudENoYXJhY3RlclRhcmdldChjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIWNhcmQgJiYgISF0aGlzLnNlbGVjdGVkQXR0YWNrZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoaWRkZW5IYW5kQ2FyZHMoY291bnQ6IG51bWJlcik6IHVua25vd25bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IGNvdW50IH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZhblRyYW5zZm9ybShpbmRleDogbnVtYmVyLCB0b3RhbDogbnVtYmVyLCBvcHBvbmVudDogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgaWYgKHRvdGFsIDw9IDEpIHJldHVybiAnbm9uZSc7XG4gICAgY29uc3QgY2VudGVyID0gKHRvdGFsIC0gMSkgLyAyO1xuICAgIGNvbnN0IG9mZnNldCA9IGluZGV4IC0gY2VudGVyO1xuICAgIGNvbnN0IHJvdGF0ZSA9IG9mZnNldCAqIChvcHBvbmVudCA/IDYgOiA1KTtcbiAgICBjb25zdCBsaWZ0ID0gTWF0aC5hYnMob2Zmc2V0KSAqIDAuMjU7XG4gICAgY29uc3QgaG92ZXJMaWZ0ID0gb3Bwb25lbnQgPyAwIDogdGhpcy5oYW5kV2F2ZUxpZnQoaW5kZXgpO1xuICAgIGNvbnN0IHNjYWxlID0gb3Bwb25lbnQgPyAxIDogdGhpcy5oYW5kV2F2ZVNjYWxlKGluZGV4KTtcbiAgICBjb25zdCBmYW5MaWZ0ID0gb3Bwb25lbnQgPyBNYXRoLmFicyhvZmZzZXQpICogMC4yMiA6IGxpZnQgKyBob3ZlckxpZnQ7XG4gICAgY29uc3QgZmFuU3ByZWFkID0gb3Bwb25lbnQgPyBvZmZzZXQgKiAwLjAyIDogMDtcbiAgICByZXR1cm4gYHRyYW5zbGF0ZSgke2ZhblNwcmVhZH1yZW0sICR7ZmFuTGlmdH1yZW0pIHJvdGF0ZSgke3JvdGF0ZX1kZWcpIHNjYWxlKCR7c2NhbGV9KWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZENhcmRaSW5kZXgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaG92ZXJlZCA9IHRoaXMuaG92ZXJlZEhhbmRJbmRleCgpO1xuICAgIGlmIChob3ZlcmVkID09PSBudWxsKSByZXR1cm4gMjtcbiAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKGluZGV4IC0gaG92ZXJlZCk7XG4gICAgcmV0dXJuIE1hdGgubWF4KDIsIDggLSBkaXN0YW5jZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0SG92ZXJlZEhhbmRJbmRleChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5ob3ZlcmVkSGFuZEluZGV4LnNldChpbmRleCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJIb3ZlcmVkSGFuZEluZGV4KCk6IHZvaWQge1xuICAgIHRoaXMuaG92ZXJlZEhhbmRJbmRleC5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVsZWFzZUhvdmVyZWRIYW5kKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgIT09ICdtb3VzZScpIHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xlYXJIb3ZlcmVkSGFuZEluZGV4KCksIDE4MCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kV2F2ZUxpZnQoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaG92ZXJlZCA9IHRoaXMuaG92ZXJlZEhhbmRJbmRleCgpO1xuICAgIGlmIChob3ZlcmVkID09PSBudWxsKSByZXR1cm4gMDtcbiAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKGluZGV4IC0gaG92ZXJlZCk7XG4gICAgaWYgKGRpc3RhbmNlID09PSAwKSByZXR1cm4gLTEuMTU7XG4gICAgaWYgKGRpc3RhbmNlID09PSAxKSByZXR1cm4gLTAuNTg7XG4gICAgaWYgKGRpc3RhbmNlID09PSAyKSByZXR1cm4gLTAuMjI7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBwcml2YXRlIGhhbmRXYXZlU2NhbGUoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaG92ZXJlZCA9IHRoaXMuaG92ZXJlZEhhbmRJbmRleCgpO1xuICAgIGlmIChob3ZlcmVkID09PSBudWxsKSByZXR1cm4gMTtcbiAgICBjb25zdCBkaXN0YW5jZSA9IE1hdGguYWJzKGluZGV4IC0gaG92ZXJlZCk7XG4gICAgaWYgKGRpc3RhbmNlID09PSAwKSByZXR1cm4gMS4wNjtcbiAgICBpZiAoZGlzdGFuY2UgPT09IDEpIHJldHVybiAxLjAzO1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWR5T2ZmZXJpbmdzKHBsYXllcjogQ2hyaXN0aWFuaXR5UGxheWVyU3RhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiByZWFkeU9mZmVyaW5ncyhwbGF5ZXIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRvdGFsT2ZmZXJpbmdzKHBsYXllcjogQ2hyaXN0aWFuaXR5UGxheWVyU3RhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0b3RhbE9mZmVyaW5ncyhwbGF5ZXIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhblBsYXkoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy50dXRvcmlhbFBoYXNlKCkgIT09ICdpbl9wcm9ncmVzcycpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gY2FuUGxheUNhcmQodGhpcy5nYW1lKCksICdQMScsIGNhcmQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRDYXJkQWN0aW9uTGFiZWwoY2FyZDogQ2hyaXN0aWFuaXR5Q2FyZERlZmluaXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLnQoJ2NocmlzdGlhbml0eVNlbGVjdENhcmQnKX06ICR7dGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoY2FyZCkubmFtZX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRDYXJkVGVzdElkKGNhcmRJZDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNocmlzdGlhbml0eS1oYW5kLWNhcmQtJHtpbmRleH0tJHt0aGlzLnRlc3RJZFBhcnQoY2FyZElkKX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJhdHRsZUNhcmRUZXN0SWQoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCwgY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LWJhdHRsZS1jYXJkLSR7c2VhdH0tJHt0aGlzLnRlc3RJZFBhcnQoY2FyZC5pbnN0YW5jZUlkKX1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJhdHRsZVNsb3RUZXN0SWQoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjaHJpc3RpYW5pdHktYmF0dGxlLXNsb3QtJHtzZWF0fS0ke2luZGV4fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGlzdG9yeUNhcmRUZXN0SWQoY2FyZElkOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LWhpc3RvcnktY2FyZC0ke2luZGV4fS0ke3RoaXMudGVzdElkUGFydChjYXJkSWQpfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdzRHJhd2VyVGVzdElkKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LW9mZmVyaW5ncy1kcmF3ZXItJHtzZWF0fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdMaXN0VGVzdElkKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LW9mZmVyaW5nLWxpc3QtJHtzZWF0fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdDYXJkVGVzdElkKG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNocmlzdGlhbml0eS1vZmZlcmluZy1jYXJkLSR7b2ZmZXJpbmcub3duZXJ9LSR7dGhpcy50ZXN0SWRQYXJ0KG9mZmVyaW5nLmluc3RhbmNlSWQpfWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdVc2VCdXR0b25UZXN0SWQob2ZmZXJpbmc6IENocmlzdGlhbml0eU9mZmVyaW5nSW5zdGFuY2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY2hyaXN0aWFuaXR5LXVzZS1vZmZlcmluZy0ke29mZmVyaW5nLm93bmVyfS0ke3RoaXMudGVzdElkUGFydChvZmZlcmluZy5pbnN0YW5jZUlkKX1gO1xuICB9XG5cbiAgcHJpdmF0ZSB0ZXN0SWRQYXJ0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05XSsvZywgJy0nKS5yZXBsYWNlKC9eLXwtJC9nLCAnJykuc2xpY2UoMCwgNDgpIHx8ICdpdGVtJztcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5QbGF5U2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkSGFuZENhcmQoKTtcbiAgICByZXR1cm4gISFzZWxlY3RlZCAmJiB0aGlzLmNhblBsYXkodGhpcy5jYXJkRGVmaW5pdGlvbihzZWxlY3RlZCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkQWN0aW9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRDYXJkRGVmaW5pdGlvbigpO1xuICAgIGlmICghc2VsZWN0ZWQpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYXlDYXJkJyk7XG4gICAgaWYgKHNlbGVjdGVkLnR5cGUgPT09ICdvZmZlcmluZycpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYXlPZmZlcmluZycpO1xuICAgIGlmIChzZWxlY3RlZC50eXBlID09PSAnY2hhcmFjdGVyJykgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5UGxheUNoYXJhY3RlcicpO1xuICAgIGlmIChzZWxlY3RlZC50eXBlID09PSAncGxhY2UnKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlQbGF5UGxhY2UnKTtcbiAgICByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlQbGF5Q2FyZCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkQWN0aW9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkQ2FyZERlZmluaXRpb24oKTtcbiAgICByZXR1cm4gIXNlbGVjdGVkIHx8IHNlbGVjdGVkLnR5cGUgPT09ICdvZmZlcmluZycgfHwgIXRoaXMuY2FuUGxheShzZWxlY3RlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuUGxhY2VTZWxlY3RlZENoYXJhY3RlcigpOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRDYXJkRGVmaW5pdGlvbigpO1xuICAgIHJldHVybiAhIXNlbGVjdGVkICYmIHNlbGVjdGVkLnR5cGUgPT09ICdjaGFyYWN0ZXInICYmIHRoaXMuY2FuUGxheShzZWxlY3RlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuUGxhY2VTZWxlY3RlZE9mZmVyaW5nKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZENhcmREZWZpbml0aW9uKCk7XG4gICAgcmV0dXJuICEhc2VsZWN0ZWQgJiYgc2VsZWN0ZWQudHlwZSA9PT0gJ29mZmVyaW5nJyAmJiB0aGlzLmNhblBsYXkoc2VsZWN0ZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhblBsYWNlU2VsZWN0ZWRQbGFjZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRDYXJkRGVmaW5pdGlvbigpO1xuICAgIHJldHVybiAhIXNlbGVjdGVkICYmIHNlbGVjdGVkLnR5cGUgPT09ICdwbGFjZScgJiYgdGhpcy5jYW5QbGF5KHNlbGVjdGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0RyYWdnaW5nQ2hhcmFjdGVyKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNhcmRJZCA9IHRoaXMuZHJhZ2dpbmdDYXJkSWQoKTtcbiAgICBpZiAoIWNhcmRJZCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKGNhcmRJZCk7XG4gICAgcmV0dXJuIGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicgJiYgdGhpcy5jYW5QbGF5KGNhcmQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRHJhZ2dpbmdPZmZlcmluZygpOiBib29sZWFuIHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLmRyYWdnaW5nQ2FyZElkKCk7XG4gICAgaWYgKCFjYXJkSWQpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpO1xuICAgIHJldHVybiBjYXJkLnR5cGUgPT09ICdvZmZlcmluZycgJiYgdGhpcy5jYW5QbGF5KGNhcmQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzRHJhZ2dpbmdQbGFjZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBjYXJkSWQgPSB0aGlzLmRyYWdnaW5nQ2FyZElkKCk7XG4gICAgaWYgKCFjYXJkSWQpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpO1xuICAgIHJldHVybiBjYXJkLnR5cGUgPT09ICdwbGFjZScgJiYgdGhpcy5jYW5QbGF5KGNhcmQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN0YXJ0RHJhZ2dpbmdDYXJkKGNhcmRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KGNhcmRJZCk7XG4gICAgdGhpcy5kcmFnZ2luZ0NhcmRJZC5zZXQoY2FyZElkKTtcbiAgICB0aGlzLmNsb3NlUHJldmlldygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVuZERyYWdnaW5nQ2FyZCgpOiB2b2lkIHtcbiAgICB0aGlzLmRyYWdnaW5nQ2FyZElkLnNldChudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYW5EcmFnQXR0YWNrZXIoY2FyZDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nYW1lKCkuc3RhdHVzID09PSAnaW5fcHJvZ3Jlc3MnICYmIHRoaXMuaXNPd25UdXJuKCkgJiYgY2FyZC5jYW5BdHRhY2sgJiYgIXRoaXMuY29tYmF0QW5pbWF0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RhcnREcmFnZ2luZ0F0dGFja2VyKGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhbkRyYWdBdHRhY2tlcihjYXJkKSkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQobnVsbCk7XG4gICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KGNhcmQpO1xuICAgIHRoaXMuZHJhZ2dpbmdBdHRhY2tlckluc3RhbmNlSWQuc2V0KGNhcmQuaW5zdGFuY2VJZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW5kRHJhZ2dpbmdBdHRhY2tlcigpOiB2b2lkIHtcbiAgICB0aGlzLmRyYWdnaW5nQXR0YWNrZXJJbnN0YW5jZUlkLnNldChudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkcm9wT25CYXR0bGVTbG90KGV2ZW50OiBDZGtEcmFnRHJvcDxudW1iZXIsIHVua25vd24sIHN0cmluZz4sIHNsb3RJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oZXZlbnQuaXRlbS5kYXRhKTtcbiAgICBpZiAoY2FyZC50eXBlICE9PSAnY2hhcmFjdGVyJykgcmV0dXJuO1xuICAgIHRoaXMucGxheUNhcmRGcm9tSGFuZChldmVudC5pdGVtLmRhdGEsIHNsb3RJbmRleCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZHJvcE9uT2ZmZXJpbmdzKGV2ZW50OiBDZGtEcmFnRHJvcDx1bmtub3duLCB1bmtub3duLCBzdHJpbmc+KTogdm9pZCB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oZXZlbnQuaXRlbS5kYXRhKTtcbiAgICBpZiAoY2FyZC50eXBlICE9PSAnb2ZmZXJpbmcnKSByZXR1cm47XG4gICAgdGhpcy5wbGF5Q2FyZEZyb21IYW5kKGV2ZW50Lml0ZW0uZGF0YSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZHJvcE9uUGxhY2UoZXZlbnQ6IENka0RyYWdEcm9wPHVua25vd24sIHVua25vd24sIHN0cmluZz4pOiB2b2lkIHtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihldmVudC5pdGVtLmRhdGEpO1xuICAgIGlmIChjYXJkLnR5cGUgIT09ICdwbGFjZScpIHJldHVybjtcbiAgICB0aGlzLnBsYXlDYXJkRnJvbUhhbmQoZXZlbnQuaXRlbS5kYXRhKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwbGF5U2VsZWN0ZWRQbGFjZU9ySW5zcGVjdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYW5QbGFjZVNlbGVjdGVkUGxhY2UoKSkge1xuICAgICAgdGhpcy5wbGF5U2VsZWN0ZWRDYXJkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5zcGVjdFBsYWNlWm9uZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3BPbk9wcG9uZW50Q2hhcmFjdGVyKGV2ZW50OiBDZGtEcmFnRHJvcDx1bmtub3duLCB1bmtub3duLCBzdHJpbmc+LCB0YXJnZXQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWRBdHRhY2tlckluc3RhbmNlKGV2ZW50Lml0ZW0uZGF0YSkpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KHRoaXMucGxheWVyKCkuYmF0dGxlWm9uZS5maW5kKGNhcmQgPT4gY2FyZC5pbnN0YW5jZUlkID09PSBldmVudC5pdGVtLmRhdGEpID8/IG51bGwpO1xuICAgIHRoaXMuYXR0YWNrQ2hhcmFjdGVyKHRhcmdldCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZHJvcE9uT3Bwb25lbnRMZWFkZXIoZXZlbnQ6IENka0RyYWdEcm9wPHVua25vd24sIHVua25vd24sIHN0cmluZz4pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZEF0dGFja2VySW5zdGFuY2UoZXZlbnQuaXRlbS5kYXRhKSB8fCB0aGlzLmhhc09wcG9uZW50R3VhcmRzKCkpIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KHRoaXMucGxheWVyKCkuYmF0dGxlWm9uZS5maW5kKGNhcmQgPT4gY2FyZC5pbnN0YW5jZUlkID09PSBldmVudC5pdGVtLmRhdGEpID8/IG51bGwpO1xuICAgIHRoaXMuYXR0YWNrTGVhZGVyKCk7XG4gIH1cblxuICBwcml2YXRlIGlzVmFsaWRBdHRhY2tlckluc3RhbmNlKGluc3RhbmNlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdhbWUoKS5zdGF0dXMgPT09ICdpbl9wcm9ncmVzcydcbiAgICAgICYmIHRoaXMuaXNPd25UdXJuKClcbiAgICAgICYmICF0aGlzLmNvbWJhdEFuaW1hdGlvbigpXG4gICAgICAmJiB0aGlzLnBsYXllcigpLmJhdHRsZVpvbmUuc29tZShjYXJkID0+IGNhcmQuaW5zdGFuY2VJZCA9PT0gaW5zdGFuY2VJZCAmJiBjYXJkLmNhbkF0dGFjayk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0SGFuZENhcmQoY2FyZElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB3YXNTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZCgpID09PSBjYXJkSWQ7XG4gICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KHdhc1NlbGVjdGVkID8gbnVsbCA6IGNhcmRJZCk7XG4gICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwbGF5U2VsZWN0ZWRDYXJkKHNsb3RJbmRleD86IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGNhcmRJZCA9IHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZCgpO1xuICAgIGlmICghY2FyZElkKSByZXR1cm47XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICBjb25zdCByZXNvbHZlZFNsb3RJbmRleCA9IGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicgJiYgc2xvdEluZGV4ID09PSB1bmRlZmluZWRcbiAgICAgID8gdGhpcy5maXJzdEF2YWlsYWJsZUJhdHRsZVNsb3RJbmRleCgpXG4gICAgICA6IHNsb3RJbmRleDtcbiAgICB0aGlzLnBsYXlDYXJkRnJvbUhhbmQoY2FyZElkLCByZXNvbHZlZFNsb3RJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIGZpcnN0QXZhaWxhYmxlQmF0dGxlU2xvdEluZGV4KCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmJhdHRsZVNsb3RzKCdQMScpLmZpbmRJbmRleChzbG90ID0+ICFzbG90LmNhcmQpO1xuICAgIHJldHVybiBpbmRleCA+PSAwID8gaW5kZXggOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGxheUNhcmRGcm9tSGFuZChjYXJkSWQ6IHN0cmluZywgc2xvdEluZGV4PzogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY2FyZCA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZElkKTtcbiAgICBpZiAoIXRoaXMuY2FuUGxheShjYXJkKSkgcmV0dXJuO1xuICAgIGxldCBwbGF5ZWRPZmZlcmluZ1ZhbHVlID0gMDtcbiAgICBsZXQgc3BlbnRPZmZlcmluZ3MgPSAwO1xuXG4gICAgdGhpcy5nYW1lLnVwZGF0ZShnYW1lID0+IHtcbiAgICAgIGNvbnN0IGhpc3RvcnlCZWZvcmUgPSBnYW1lLmhpc3Rvcnlab25lLmxlbmd0aDtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHBsYXlDaHJpc3RpYW5pdHlDYXJkRnJvbUhhbmQoZ2FtZSwgJ1AxJywgY2FyZCwge1xuICAgICAgICBzbG90SW5kZXgsXG4gICAgICAgIGRpc3BsYXlOYW1lOiB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKS5uYW1lLFxuICAgICAgfSk7XG4gICAgICBwbGF5ZWRPZmZlcmluZ1ZhbHVlID0gcmVzdWx0LnBsYXllZE9mZmVyaW5nVmFsdWU7XG4gICAgICBzcGVudE9mZmVyaW5ncyA9IHJlc3VsdC5zcGVudE9mZmVyaW5ncztcbiAgICAgIGlmIChyZXN1bHQuZ2FtZS5oaXN0b3J5Wm9uZS5sZW5ndGggPiBoaXN0b3J5QmVmb3JlKSB7XG4gICAgICAgIHRoaXMudHJpZ2dlckhpc3RvcnlQdWxzZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdC5nYW1lO1xuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRIYW5kQ2FyZC5zZXQobnVsbCk7XG4gICAgdGhpcy5kcmFnZ2luZ0NhcmRJZC5zZXQobnVsbCk7XG4gICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgICBpZiAocGxheWVkT2ZmZXJpbmdWYWx1ZSA+IDApIHtcbiAgICAgIHRoaXMucHVzaEltcGFjdEV2ZW50KHsgdGV4dDogYCske3BsYXllZE9mZmVyaW5nVmFsdWV9YCwgdG9uZTogJ3Jlc291cmNlJywgc2VhdDogJ1AxJywgdGFyZ2V0OiAnb2ZmZXJpbmdzJyB9KTtcbiAgICB9IGVsc2UgaWYgKHNwZW50T2ZmZXJpbmdzID4gMCkge1xuICAgICAgdGhpcy5wdXNoSW1wYWN0RXZlbnQoeyB0ZXh0OiBgLSR7c3BlbnRPZmZlcmluZ3N9YCwgdG9uZTogJ3Jlc291cmNlJywgc2VhdDogJ1AxJywgdGFyZ2V0OiAnb2ZmZXJpbmdzJyB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT2ZmZXJpbmdQaWxlKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiB2b2lkIHtcbiAgICBpZiAoc2VhdCA9PT0gJ1AxJyAmJiB0aGlzLmNhblBsYWNlU2VsZWN0ZWRPZmZlcmluZygpKSB7XG4gICAgICB0aGlzLnBsYXlTZWxlY3RlZENhcmQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vcGVuT2ZmZXJpbmdzKHNlYXQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdEF0dGFja2VyKGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICBpZiAodGhpcy5nYW1lKCkuc3RhdHVzICE9PSAnaW5fcHJvZ3Jlc3MnIHx8ICF0aGlzLmlzT3duVHVybigpIHx8ICFjYXJkLmNhbkF0dGFjaykge1xuICAgICAgdGhpcy5pbnNwZWN0Q2hhcmFjdGVyKGNhcmQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNsb3NlUHJldmlldygpO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQodGhpcy5zZWxlY3RlZEF0dGFja2VyKCk/Lmluc3RhbmNlSWQgPT09IGNhcmQuaW5zdGFuY2VJZCA/IG51bGwgOiBjYXJkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPcHBvbmVudENoYXJhY3RlcihjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQXR0YWNrZXIoKSkge1xuICAgICAgdGhpcy5hdHRhY2tDaGFyYWN0ZXIoY2FyZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5zcGVjdENoYXJhY3RlcihjYXJkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPcHBvbmVudExlYWRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEF0dGFja2VyKCkgJiYgIXRoaXMuaGFzT3Bwb25lbnRHdWFyZHMoKSkge1xuICAgICAgdGhpcy5hdHRhY2tMZWFkZXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnNwZWN0TGVhZGVyKCdQMicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGF0dGFja0xlYWRlcigpOiB2b2lkIHtcbiAgICBjb25zdCBhdHRhY2tlciA9IHRoaXMuc2VsZWN0ZWRBdHRhY2tlcigpO1xuICAgIGlmICghYXR0YWNrZXIpIHJldHVybjtcbiAgICBpZiAodGhpcy5nYW1lKCkuc3RhdHVzICE9PSAnaW5fcHJvZ3Jlc3MnIHx8IHRoaXMuY29tYmF0QW5pbWF0aW9uKCkpIHJldHVybjtcbiAgICBpZiAodGhpcy5oYXNPcHBvbmVudEd1YXJkcygpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQoe1xuICAgICAgICB0aXRsZTogdGhpcy5vcHBvbmVudCgpLmxlYWRlck5hbWUsXG4gICAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLFxuICAgICAgICBtZXRhOiBgJHt0aGlzLm9wcG9uZW50KCkubGVhZGVySHB9LyR7dGhpcy5vcHBvbmVudCgpLmxlYWRlck1heEhwfWAsXG4gICAgICAgIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyUHJvdGVjdGVkJyksXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdGFydENvbWJhdEFuaW1hdGlvbih7IGF0dGFja2VySW5zdGFuY2VJZDogYXR0YWNrZXIuaW5zdGFuY2VJZCwgYXR0YWNrZXJTZWF0OiAnUDEnLCB0YXJnZXRTZWF0OiAnUDInLCB0YXJnZXQ6ICdsZWFkZXInIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5jb21iYXRSZXNvbHV0aW9uVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBsZXQgZGFtYWdlID0gMDtcbiAgICAgIHRoaXMuZ2FtZS51cGRhdGUoZ2FtZSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc29sdmVBdHRhY2tMZWFkZXIoZ2FtZSwgJ1AxJywgYXR0YWNrZXIuaW5zdGFuY2VJZCwgdGhpcy5ydWxlTWVzc2FnZXMoKSk7XG4gICAgICAgIGRhbWFnZSA9IHJlc3VsdC50YXJnZXREYW1hZ2U7XG4gICAgICAgIHJldHVybiByZXN1bHQuZ2FtZTtcbiAgICAgIH0pO1xuICAgICAgaWYgKGRhbWFnZSA+IDApIHtcbiAgICAgICAgdGhpcy5wdXNoSW1wYWN0RXZlbnQoeyB0ZXh0OiBgLSR7ZGFtYWdlfWAsIHRvbmU6ICdkYW1hZ2UnLCBzZWF0OiAnUDInLCB0YXJnZXQ6ICdsZWFkZXInIH0pO1xuICAgICAgfVxuICAgIH0sIDUyMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXR0YWNrQ2hhcmFjdGVyKHRhcmdldDogQ2hyaXN0aWFuaXR5Q2hhcmFjdGVySW5zdGFuY2UpOiB2b2lkIHtcbiAgICBjb25zdCBhdHRhY2tlciA9IHRoaXMuc2VsZWN0ZWRBdHRhY2tlcigpO1xuICAgIGlmICghYXR0YWNrZXIpIHJldHVybjtcbiAgICBpZiAodGhpcy5nYW1lKCkuc3RhdHVzICE9PSAnaW5fcHJvZ3Jlc3MnIHx8IHRoaXMuY29tYmF0QW5pbWF0aW9uKCkpIHJldHVybjtcbiAgICB0aGlzLnN0YXJ0Q29tYmF0QW5pbWF0aW9uKHtcbiAgICAgIGF0dGFja2VySW5zdGFuY2VJZDogYXR0YWNrZXIuaW5zdGFuY2VJZCxcbiAgICAgIGF0dGFja2VyU2VhdDogJ1AxJyxcbiAgICAgIHRhcmdldEluc3RhbmNlSWQ6IHRhcmdldC5pbnN0YW5jZUlkLFxuICAgICAgdGFyZ2V0U2VhdDogJ1AyJyxcbiAgICAgIHRhcmdldDogJ2NoYXJhY3RlcicsXG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY3RlZEF0dGFja2VyLnNldChudWxsKTtcbiAgICB0aGlzLmNvbWJhdFJlc29sdXRpb25UaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGxldCBhdHRhY2tlckRhbWFnZSA9IDA7XG4gICAgICBsZXQgdGFyZ2V0RGFtYWdlID0gMDtcbiAgICAgIHRoaXMuZ2FtZS51cGRhdGUoZ2FtZSA9PiB7XG4gICAgICAgIGNvbnN0IGhpc3RvcnlCZWZvcmUgPSBnYW1lLmhpc3Rvcnlab25lLmxlbmd0aDtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVzb2x2ZUF0dGFja0NoYXJhY3RlcihnYW1lLCAnUDEnLCBhdHRhY2tlci5pbnN0YW5jZUlkLCB0YXJnZXQuaW5zdGFuY2VJZCwgdGhpcy5ydWxlTWVzc2FnZXMoKSk7XG4gICAgICAgIGF0dGFja2VyRGFtYWdlID0gcmVzdWx0LmF0dGFja2VyRGFtYWdlO1xuICAgICAgICB0YXJnZXREYW1hZ2UgPSByZXN1bHQudGFyZ2V0RGFtYWdlO1xuICAgICAgICBpZiAocmVzdWx0LmdhbWUuaGlzdG9yeVpvbmUubGVuZ3RoID4gaGlzdG9yeUJlZm9yZSkge1xuICAgICAgICAgIHRoaXMudHJpZ2dlckhpc3RvcnlQdWxzZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQuZ2FtZTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgaW1wYWN0czogQXJyYXk8T21pdDxDaHJpc3RpYW5pdHlJbXBhY3RFdmVudCwgJ2lkJz4+ID0gW107XG4gICAgICBpZiAodGFyZ2V0RGFtYWdlID4gMCkgaW1wYWN0cy5wdXNoKHsgdGV4dDogYC0ke3RhcmdldERhbWFnZX1gLCB0b25lOiAnZGFtYWdlJywgc2VhdDogJ1AyJywgdGFyZ2V0OiAnYmF0dGxlJyB9KTtcbiAgICAgIGlmIChhdHRhY2tlckRhbWFnZSA+IDApIGltcGFjdHMucHVzaCh7IHRleHQ6IGAtJHthdHRhY2tlckRhbWFnZX1gLCB0b25lOiAnZGFtYWdlJywgc2VhdDogJ1AxJywgdGFyZ2V0OiAnYmF0dGxlJyB9KTtcbiAgICAgIHRoaXMucHVzaEltcGFjdEV2ZW50cyhpbXBhY3RzKTtcbiAgICB9LCA1MjApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVuZFR1cm4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ2FtZSgpLnN0YXR1cyAhPT0gJ2luX3Byb2dyZXNzJykgcmV0dXJuO1xuICAgIGlmICh0aGlzLmNvbWJhdEFuaW1hdGlvbigpKSByZXR1cm47XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5nYW1lLnVwZGF0ZShnYW1lID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBzdHJ1Y3R1cmVkQ2xvbmUoZ2FtZSk7XG4gICAgICBjb25zdCBsb2cgPSBhZHZhbmNlVHVybihuZXh0LCB0aGlzLnJ1bGVNZXNzYWdlcygpKTtcbiAgICAgIG5leHQucmV2aXNpb24rKztcbiAgICAgIG5leHQubG9nID0gWy4uLmxvZywgLi4ubmV4dC5sb2ddLnNsaWNlKDAsIDQpO1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfSk7XG4gICAgdGhpcy5zY2hlZHVsZUJvdFR1cm5JZk5lZWRlZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0TW9jaygpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQm90VHVybigpO1xuICAgIHRoaXMuY2xlYXJDb21iYXRUaW1lcnMoKTtcbiAgICB0aGlzLmNsZWFyTGVhZGVyQ2hvaWNlVGltZXIoKTtcbiAgICB0aGlzLmNvbWJhdEFuaW1hdGlvbi5zZXQobnVsbCk7XG4gICAgdGhpcy5jb21iYXRUcmFpbC5zZXQobnVsbCk7XG4gICAgdGhpcy5nYW1lLnNldCh0aGlzLmNhdGFsb2dMb2FkZWQoKSA/IHRoaXMuY3JlYXRlVHV0b3JpYWxHYW1lKHRoaXMuYWxsQ2F0YWxvZ0NhcmRzKCkpIDogc3RydWN0dXJlZENsb25lKFNUQVJUSU5HX0dBTUUpKTtcbiAgICB0aGlzLnR1dG9yaWFsUGhhc2Uuc2V0KCdjb2luJyk7XG4gICAgdGhpcy50dXRvcmlhbFNldHVwLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkVHV0b3JpYWxMZWFkZXJJZC5zZXQobnVsbCk7XG4gICAgdGhpcy5sZWFkZXJDaG9pY2VTZWNvbmRzLnNldChUVVRPUklBTF9MRUFERVJfQ0hPSUNFX1NFQ09ORFMpO1xuICAgIHRoaXMuc2hvd09wdGlvbnMuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICB0aGlzLnNob3dIaXN0b3J5LnNldChmYWxzZSk7XG4gICAgdGhpcy5zaG93UGxhY2Uuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNob3dHYWxsZXJ5LnNldChmYWxzZSk7XG4gICAgdGhpcy5vZmZlcmluZ3NTZWF0LnNldChudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydFR1dG9yaWFsKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJCb3RUdXJuKCk7XG4gICAgdGhpcy5jbGVhckNvbWJhdFRpbWVycygpO1xuICAgIHRoaXMuY2xlYXJMZWFkZXJDaG9pY2VUaW1lcigpO1xuICAgIHRoaXMucmVzZXRUcmFuc2llbnRUYWJsZVN0YXRlKCk7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLmNyZWF0ZVR1dG9yaWFsU2V0dXAoKTtcbiAgICB0aGlzLnR1dG9yaWFsU2V0dXAuc2V0KHNldHVwKTtcbiAgICB0aGlzLnNlbGVjdGVkVHV0b3JpYWxMZWFkZXJJZC5zZXQoc2V0dXAubGVhZGVyUGlja2VyID09PSAnUDEnID8gc2V0dXAuYXZhaWxhYmxlTGVhZGVyc1swXSA/PyBudWxsIDogbnVsbCk7XG4gICAgdGhpcy5sZWFkZXJDaG9pY2VTZWNvbmRzLnNldChUVVRPUklBTF9MRUFERVJfQ0hPSUNFX1NFQ09ORFMpO1xuICAgIHRoaXMudHV0b3JpYWxQaGFzZS5zZXQoJ2NvaW4nKTtcbiAgICB0aGlzLnNjcmVlbi5zZXQoJ3RhYmxlJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29udGludWVBZnRlckNvaW4oKTogdm9pZCB7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLnR1dG9yaWFsU2V0dXAoKTtcbiAgICBpZiAoIXNldHVwKSByZXR1cm47XG4gICAgaWYgKHRoaXMudHV0b3JpYWxQaGFzZSgpID09PSAnY29pbicpIHtcbiAgICAgIHRoaXMudHV0b3JpYWxQaGFzZS5zZXQoJ2xlYWRlcl9waWNrJyk7XG4gICAgICBpZiAoc2V0dXAuYXZhaWxhYmxlTGVhZGVycy5sZW5ndGggPCAyKSB7XG4gICAgICAgIHRoaXMuc3RhcnRUdXRvcmlhbE1hdGNoKHNldHVwKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHNldHVwLmxlYWRlclBpY2tlciA9PT0gJ1AyJykge1xuICAgICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmNob29zZVJpdmFsVHV0b3JpYWxMZWFkZXIoKSwgNTIwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUdXRvcmlhbExlYWRlcklkLnNldCh0aGlzLnNlbGVjdGVkVHV0b3JpYWxMZWFkZXJJZCgpID8/IHNldHVwLmF2YWlsYWJsZUxlYWRlcnNbMF0gPz8gbnVsbCk7XG4gICAgICAgIHRoaXMuc3RhcnRMZWFkZXJDaG9pY2VUaW1lcigpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy50dXRvcmlhbFBoYXNlKCkgPT09ICdsZWFkZXJfcGljaycgJiYgc2V0dXAubGVhZGVyUGlja2VyID09PSAnUDInKSB7XG4gICAgICB0aGlzLmNob29zZVJpdmFsVHV0b3JpYWxMZWFkZXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMudHV0b3JpYWxQaGFzZSgpID09PSAnbGVhZGVyX3BpY2snICYmIHNldHVwLmF2YWlsYWJsZUxlYWRlcnMubGVuZ3RoIDwgMikge1xuICAgICAgdGhpcy5zdGFydFR1dG9yaWFsTWF0Y2goc2V0dXApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjaG9vc2VUdXRvcmlhbExlYWRlcihsZWFkZXJJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLnR1dG9yaWFsU2V0dXAoKTtcbiAgICBpZiAoIXNldHVwIHx8IHNldHVwLmxlYWRlclBpY2tlciAhPT0gJ1AxJykgcmV0dXJuO1xuICAgIHRoaXMuY2xlYXJMZWFkZXJDaG9pY2VUaW1lcigpO1xuICAgIGNvbnN0IG9wcG9uZW50TGVhZGVySWQgPSBzZXR1cC5hdmFpbGFibGVMZWFkZXJzLmZpbmQoY2FuZGlkYXRlID0+IGNhbmRpZGF0ZSAhPT0gbGVhZGVySWQpID8/IHNldHVwLmF2YWlsYWJsZUxlYWRlcnNbMF07XG4gICAgdGhpcy5zdGFydFR1dG9yaWFsTWF0Y2goe1xuICAgICAgLi4uc2V0dXAsXG4gICAgICBwbGF5ZXJMZWFkZXJJZDogbGVhZGVySWQsXG4gICAgICBvcHBvbmVudExlYWRlcklkLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdFR1dG9yaWFsTGVhZGVyKGxlYWRlcklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBzZXR1cCA9IHRoaXMudHV0b3JpYWxTZXR1cCgpO1xuICAgIGlmICghc2V0dXAgfHwgc2V0dXAubGVhZGVyUGlja2VyICE9PSAnUDEnIHx8ICFzZXR1cC5hdmFpbGFibGVMZWFkZXJzLmluY2x1ZGVzKGxlYWRlcklkKSkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0ZWRUdXRvcmlhbExlYWRlcklkLnNldChsZWFkZXJJZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlybVR1dG9yaWFsTGVhZGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IHNldHVwID0gdGhpcy50dXRvcmlhbFNldHVwKCk7XG4gICAgaWYgKCFzZXR1cCB8fCBzZXR1cC5sZWFkZXJQaWNrZXIgIT09ICdQMScpIHJldHVybjtcbiAgICB0aGlzLmNob29zZVR1dG9yaWFsTGVhZGVyKHRoaXMuc2VsZWN0ZWRUdXRvcmlhbExlYWRlcklkKCkgPz8gc2V0dXAuYXZhaWxhYmxlTGVhZGVyc1swXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdExlYWRlckNob2ljZShsZWFkZXJJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLnR1dG9yaWFsU2V0dXAoKTtcbiAgICBpZiAoIXNldHVwPy5hdmFpbGFibGVMZWFkZXJzLmluY2x1ZGVzKGxlYWRlcklkKSkgcmV0dXJuO1xuICAgIHRoaXMuc2VsZWN0VHV0b3JpYWxMZWFkZXIobGVhZGVySWQpO1xuICAgIHRoaXMuaW5zcGVjdEhhbmRDYXJkKGxlYWRlcklkKTtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy51cGRhdGUocHJldmlldyA9PiBwcmV2aWV3ID8geyAuLi5wcmV2aWV3LCBzb3VyY2U6ICdsZWFkZXItY2hvaWNlJyB9IDogcHJldmlldyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlT3B0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dPcHRpb25zLnVwZGF0ZSh2YWx1ZSA9PiAhdmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc3RhcnRUdXRvcmlhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0VHV0b3JpYWwoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNpZ25UdXRvcmlhbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5nYW1lKCkuc3RhdHVzID09PSAnZmluaXNoZWQnKSByZXR1cm47XG4gICAgdGhpcy5jbGVhckJvdFR1cm4oKTtcbiAgICB0aGlzLmNsZWFyQ29tYmF0VGltZXJzKCk7XG4gICAgdGhpcy5jbGVhckxlYWRlckNob2ljZVRpbWVyKCk7XG4gICAgdGhpcy50dXRvcmlhbFBoYXNlLnNldCgnZmluaXNoZWQnKTtcbiAgICB0aGlzLnNob3dPcHRpb25zLnNldChmYWxzZSk7XG4gICAgdGhpcy5nYW1lLnVwZGF0ZShnYW1lID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBzdHJ1Y3R1cmVkQ2xvbmUoZ2FtZSk7XG4gICAgICBuZXh0LnN0YXR1cyA9ICdmaW5pc2hlZCc7XG4gICAgICBuZXh0LnBsYXllcnMuUDEubGVhZGVySHAgPSAwO1xuICAgICAgbmV4dC5tYXRjaFNjb3JlLlAyICs9IDE7XG4gICAgICBuZXh0LnJldmlzaW9uKys7XG4gICAgICBuZXh0LmxvZyA9IFt0aGlzLnQoJ2NocmlzdGlhbml0eVJlc2lnbmVkTG9nJyksIC4uLm5leHQubG9nXS5zbGljZSgwLCA0KTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJldHVyblRvQ2hyaXN0aWFuaXR5SG9tZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQm90VHVybigpO1xuICAgIHRoaXMuY2xlYXJDb21iYXRUaW1lcnMoKTtcbiAgICB0aGlzLmNsZWFyTGVhZGVyQ2hvaWNlVGltZXIoKTtcbiAgICB0aGlzLnJlc2V0VHJhbnNpZW50VGFibGVTdGF0ZSgpO1xuICAgIHRoaXMuc2hvd09wdGlvbnMuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNjcmVlbi5zZXQoJ2hvbWUnKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRMZWFkZXJDaG9pY2VUaW1lcigpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyTGVhZGVyQ2hvaWNlVGltZXIoKTtcbiAgICB0aGlzLmxlYWRlckNob2ljZVNlY29uZHMuc2V0KFRVVE9SSUFMX0xFQURFUl9DSE9JQ0VfU0VDT05EUyk7XG4gICAgdGhpcy5sZWFkZXJDaG9pY2VUaW1lciA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBjb25zdCBuZXh0U2Vjb25kcyA9IE1hdGgubWF4KDAsIHRoaXMubGVhZGVyQ2hvaWNlU2Vjb25kcygpIC0gMSk7XG4gICAgICB0aGlzLmxlYWRlckNob2ljZVNlY29uZHMuc2V0KG5leHRTZWNvbmRzKTtcbiAgICAgIGlmIChuZXh0U2Vjb25kcyA+IDApIHJldHVybjtcbiAgICAgIHRoaXMuY2xlYXJMZWFkZXJDaG9pY2VUaW1lcigpO1xuICAgICAgdGhpcy5jb25maXJtVHV0b3JpYWxMZWFkZXIoKTtcbiAgICB9LCAxMDAwKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJMZWFkZXJDaG9pY2VUaW1lcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sZWFkZXJDaG9pY2VUaW1lciA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5sZWFkZXJDaG9pY2VUaW1lcik7XG4gICAgdGhpcy5sZWFkZXJDaG9pY2VUaW1lciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVHV0b3JpYWxTZXR1cCgpOiBDaHJpc3RpYW5pdHlUdXRvcmlhbFNldHVwIHtcbiAgICBjb25zdCBsZWFkZXJzID0gdGhpcy50dXRvcmlhbExlYWRlckNhcmRzKHRoaXMuYWxsQ2F0YWxvZ0NhcmRzKCkpLnNsaWNlKDAsIFRVVE9SSUFMX0xFQURFUl9DSE9JQ0VfQ09VTlQpO1xuICAgIGNvbnN0IGNvaW5XaW5uZXI6IENocmlzdGlhbml0eVNlYXQgPSBUVVRPUklBTF9TRUVEICUgMiA9PT0gMCA/ICdQMScgOiAnUDInO1xuICAgIGNvbnN0IGZpcnN0UGxheWVyOiBDaHJpc3RpYW5pdHlTZWF0ID0gY29pbldpbm5lciA9PT0gJ1AxJyA/ICdQMicgOiAnUDEnO1xuICAgIHJldHVybiB7XG4gICAgICBjb2luV2lubmVyLFxuICAgICAgbGVhZGVyUGlja2VyOiBjb2luV2lubmVyLFxuICAgICAgZmlyc3RQbGF5ZXIsXG4gICAgICBhdmFpbGFibGVMZWFkZXJzOiBsZWFkZXJzLm1hcChjYXJkID0+IGNhcmQuaWQpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNob29zZVJpdmFsVHV0b3JpYWxMZWFkZXIoKTogdm9pZCB7XG4gICAgY29uc3Qgc2V0dXAgPSB0aGlzLnR1dG9yaWFsU2V0dXAoKTtcbiAgICBpZiAoIXNldHVwIHx8IHNldHVwLmxlYWRlclBpY2tlciAhPT0gJ1AyJykgcmV0dXJuO1xuICAgIHRoaXMuY2xlYXJMZWFkZXJDaG9pY2VUaW1lcigpO1xuICAgIGNvbnN0IG9wcG9uZW50TGVhZGVySWQgPSB0aGlzLmZpbmRDYXJkKHNldHVwLmF2YWlsYWJsZUxlYWRlcnMubWFwKGlkID0+IHRoaXMuY2FyZERlZmluaXRpb24oaWQpKSwgJ05vw6knKT8uaWQgPz8gc2V0dXAuYXZhaWxhYmxlTGVhZGVyc1swXTtcbiAgICBjb25zdCBwbGF5ZXJMZWFkZXJJZCA9IHNldHVwLmF2YWlsYWJsZUxlYWRlcnMuZmluZChjYW5kaWRhdGUgPT4gY2FuZGlkYXRlICE9PSBvcHBvbmVudExlYWRlcklkKSA/PyBzZXR1cC5hdmFpbGFibGVMZWFkZXJzWzBdO1xuICAgIHRoaXMuc3RhcnRUdXRvcmlhbE1hdGNoKHtcbiAgICAgIC4uLnNldHVwLFxuICAgICAgcGxheWVyTGVhZGVySWQsXG4gICAgICBvcHBvbmVudExlYWRlcklkLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFR1dG9yaWFsTWF0Y2goc2V0dXA6IENocmlzdGlhbml0eVR1dG9yaWFsU2V0dXApOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyTGVhZGVyQ2hvaWNlVGltZXIoKTtcbiAgICB0aGlzLnJlc2V0VHJhbnNpZW50VGFibGVTdGF0ZSgpO1xuICAgIHRoaXMudHV0b3JpYWxTZXR1cC5zZXQoc2V0dXApO1xuICAgIHRoaXMudHV0b3JpYWxQaGFzZS5zZXQoJ2luX3Byb2dyZXNzJyk7XG4gICAgdGhpcy5nYW1lLnNldCh0aGlzLmNyZWF0ZVR1dG9yaWFsR2FtZSh0aGlzLmFsbENhdGFsb2dDYXJkcygpLCB7XG4gICAgICBwbGF5ZXJMZWFkZXJJZDogc2V0dXAucGxheWVyTGVhZGVySWQsXG4gICAgICBvcHBvbmVudExlYWRlcklkOiBzZXR1cC5vcHBvbmVudExlYWRlcklkLFxuICAgICAgZmlyc3RQbGF5ZXI6IHNldHVwLmZpcnN0UGxheWVyLFxuICAgICAgc2VlZDogVFVUT1JJQUxfU0VFRCxcbiAgICB9KSk7XG4gICAgdGhpcy5zY2hlZHVsZUJvdFR1cm5JZk5lZWRlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldFRyYW5zaWVudFRhYmxlU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5zaG93SGlzdG9yeS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd0dhbGxlcnkuc2V0KGZhbHNlKTtcbiAgICB0aGlzLm9mZmVyaW5nc1NlYXQuc2V0KG51bGwpO1xuICAgIHRoaXMuaW1wYWN0RXZlbnRzLnNldChbXSk7XG4gICAgdGhpcy5jb21iYXRBbmltYXRpb24uc2V0KG51bGwpO1xuICAgIHRoaXMuY29tYmF0VHJhaWwuc2V0KG51bGwpO1xuICAgIHRoaXMuZHJhZ2dpbmdDYXJkSWQuc2V0KG51bGwpO1xuICAgIHRoaXMuZHJhZ2dpbmdBdHRhY2tlckluc3RhbmNlSWQuc2V0KG51bGwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlUHJldmlldygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXguc2V0KDApO1xuICAgIHRoaXMucmVzZXRQcmV2aWV3VGlsdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlSW5mbygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3Blbk9mZmVyaW5ncyhzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICB0aGlzLnNob3dIaXN0b3J5LnNldChmYWxzZSk7XG4gICAgdGhpcy5zaG93UGxhY2Uuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNob3dHYWxsZXJ5LnNldChmYWxzZSk7XG4gICAgdGhpcy5vZmZlcmluZ3NTZWF0LnNldChzZWF0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvcGVuSGlzdG9yeSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KG51bGwpO1xuICAgIHRoaXMub2ZmZXJpbmdzU2VhdC5zZXQobnVsbCk7XG4gICAgdGhpcy5zaG93UGxhY2Uuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNob3dHYWxsZXJ5LnNldChmYWxzZSk7XG4gICAgdGhpcy5zaG93SGlzdG9yeS5zZXQodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3BlblBsYWNlKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5vZmZlcmluZ3NTZWF0LnNldChudWxsKTtcbiAgICB0aGlzLnNob3dIaXN0b3J5LnNldChmYWxzZSk7XG4gICAgdGhpcy5zaG93R2FsbGVyeS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd1BsYWNlLnNldCh0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZUhpc3RvcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93SGlzdG9yeS5zZXQoZmFsc2UpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUHJldmlldygpPy5zb3VyY2UgPT09ICdoaXN0b3J5Jykge1xuICAgICAgdGhpcy5jbG9zZVByZXZpZXcoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xvc2VQbGFjZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dQbGFjZS5zZXQoZmFsc2UpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUHJldmlldygpPy5zb3VyY2UgPT09ICdwbGFjZScpIHtcbiAgICAgIHRoaXMuY2xvc2VQcmV2aWV3KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlT2ZmZXJpbmdzKCk6IHZvaWQge1xuICAgIHRoaXMub2ZmZXJpbmdzU2VhdC5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3BlbkdhbGxlcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICB0aGlzLm9mZmVyaW5nc1NlYXQuc2V0KG51bGwpO1xuICAgIHRoaXMuc2hvd0hpc3Rvcnkuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNob3dQbGFjZS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd0dhbGxlcnkuc2V0KHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlR2FsbGVyeSgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dHYWxsZXJ5LnNldChmYWxzZSk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk/LnNvdXJjZSA9PT0gJ2dhbGxlcnknKSB7XG4gICAgICB0aGlzLmNsb3NlUHJldmlldygpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydFByZXZpZXdTd2lwZShldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhbk5hdmlnYXRlUHJldmlldygpKSByZXR1cm47XG4gICAgaWYgKGV2ZW50LnBvaW50ZXJUeXBlID09PSAnbW91c2UnICYmIGV2ZW50LmJ1dHRvbiAhPT0gMCkgcmV0dXJuO1xuICAgIHRoaXMucHJldmlld1N3aXBlU3RhcnQgPSB7IHBvaW50ZXJJZDogZXZlbnQucG9pbnRlcklkLCBzdGFydFg6IGV2ZW50LmNsaWVudFgsIHN0YXJ0WTogZXZlbnQuY2xpZW50WSB9O1xuICAgIChldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zZXRQb2ludGVyQ2FwdHVyZT8uKGV2ZW50LnBvaW50ZXJJZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmluaXNoUHJldmlld1N3aXBlKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzd2lwZSA9IHRoaXMucHJldmlld1N3aXBlU3RhcnQ7XG4gICAgaWYgKCFzd2lwZSB8fCBzd2lwZS5wb2ludGVySWQgIT09IGV2ZW50LnBvaW50ZXJJZCkgcmV0dXJuO1xuICAgIHRoaXMucHJldmlld1N3aXBlU3RhcnQgPSBudWxsO1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKHRhcmdldC5oYXNQb2ludGVyQ2FwdHVyZT8uKGV2ZW50LnBvaW50ZXJJZCkpIHRhcmdldC5yZWxlYXNlUG9pbnRlckNhcHR1cmUoZXZlbnQucG9pbnRlcklkKTtcblxuICAgIGNvbnN0IGRlbHRhWCA9IGV2ZW50LmNsaWVudFggLSBzd2lwZS5zdGFydFg7XG4gICAgY29uc3QgZGVsdGFZID0gZXZlbnQuY2xpZW50WSAtIHN3aXBlLnN0YXJ0WTtcbiAgICBjb25zdCBhYnNYID0gTWF0aC5hYnMoZGVsdGFYKTtcbiAgICBjb25zdCBhYnNZID0gTWF0aC5hYnMoZGVsdGFZKTtcbiAgICBpZiAoYWJzWCA8IDQ0IHx8IGFic1ggPCBhYnNZICogMS4zNSkgcmV0dXJuO1xuXG4gICAgdGhpcy5yZXNldFByZXZpZXdUaWx0KCk7XG4gICAgdGhpcy5uYXZpZ2F0ZVByZXZpZXcoZGVsdGFYIDwgMCA/IDEgOiAtMSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FuY2VsUHJldmlld1N3aXBlKGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmV2aWV3U3dpcGVTdGFydD8ucG9pbnRlcklkICE9PSBldmVudC5wb2ludGVySWQpIHJldHVybjtcbiAgICB0aGlzLnByZXZpZXdTd2lwZVN0YXJ0ID0gbnVsbDtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0YXJnZXQuaGFzUG9pbnRlckNhcHR1cmU/LihldmVudC5wb2ludGVySWQpKSB0YXJnZXQucmVsZWFzZVBvaW50ZXJDYXB0dXJlKGV2ZW50LnBvaW50ZXJJZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmF2aWdhdGVQcmV2aWV3KGRpcmVjdGlvbjogLTEgfCAxKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLnByZXZpZXdDYXJvdXNlbEl0ZW1zKCk7XG4gICAgaWYgKGl0ZW1zLmxlbmd0aCA8IDIpIHJldHVybjtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmN1cnJlbnRQcmV2aWV3Q2Fyb3VzZWxJbmRleChpdGVtcyk7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA8IDApIHJldHVybjtcbiAgICBjb25zdCBuZXh0SW5kZXggPSAoY3VycmVudEluZGV4ICsgZGlyZWN0aW9uICsgaXRlbXMubGVuZ3RoKSAlIGl0ZW1zLmxlbmd0aDtcbiAgICBjb25zdCBuZXh0SXRlbSA9IGl0ZW1zW25leHRJbmRleF07XG4gICAgdGhpcy5wcmV2aWV3U2xpZGVEaXJlY3Rpb24uc2V0KGRpcmVjdGlvbik7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdGhpcy5wcmV2aWV3U2xpZGVEaXJlY3Rpb24uc2V0KDApLCAzNjApO1xuICAgIGlmIChuZXh0SXRlbS5raW5kID09PSAnaGlzdG9yeScpIHtcbiAgICAgIHRoaXMuaW5zcGVjdEhpc3RvcnlDYXJkKG5leHRJdGVtLmNhcmRJZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChuZXh0SXRlbS5raW5kID09PSAnaGFuZCcpIHtcbiAgICAgIHRoaXMuaW5zcGVjdEhhbmRDYXJkKG5leHRJdGVtLmNhcmRJZCwgdHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChuZXh0SXRlbS5raW5kID09PSAncGxhY2UnKSB7XG4gICAgICB0aGlzLmluc3BlY3RQbGFjZUNhcmQobmV4dEl0ZW0uY2FyZElkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG5leHRJdGVtLmtpbmQgPT09ICdnYWxsZXJ5Jykge1xuICAgICAgdGhpcy5pbnNwZWN0R2FsbGVyeUNhcmQobmV4dEl0ZW0uY2FyZElkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG5leHRJdGVtLmtpbmQgPT09ICdsZWFkZXItY2hvaWNlJykge1xuICAgICAgdGhpcy5pbnNwZWN0TGVhZGVyQ2hvaWNlKG5leHRJdGVtLmNhcmRJZCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5zcGVjdE9mZmVyaW5nKG5leHRJdGVtLm9mZmVyaW5nKTtcbiAgfVxuXG4gIHByaXZhdGUgY3VycmVudFByZXZpZXdDYXJvdXNlbEl0ZW1zKCk6IEFycmF5PFxuICAgIHsga2luZDogJ2hpc3RvcnknOyBjYXJkSWQ6IHN0cmluZyB9XG4gICAgfCB7IGtpbmQ6ICdoYW5kJzsgY2FyZElkOiBzdHJpbmcgfVxuICAgIHwgeyBraW5kOiAncGxhY2UnOyBjYXJkSWQ6IHN0cmluZyB9XG4gICAgfCB7IGtpbmQ6ICdvZmZlcmluZyc7IG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlIH1cbiAgICB8IHsga2luZDogJ2dhbGxlcnknOyBjYXJkSWQ6IHN0cmluZyB9XG4gICAgfCB7IGtpbmQ6ICdsZWFkZXItY2hvaWNlJzsgY2FyZElkOiBzdHJpbmcgfVxuICA+IHtcbiAgICBjb25zdCBwcmV2aWV3ID0gdGhpcy5zZWxlY3RlZFByZXZpZXcoKTtcbiAgICBpZiAoIXByZXZpZXcpIHJldHVybiBbXTtcbiAgICBpZiAocHJldmlldy5zb3VyY2UgPT09ICdoaXN0b3J5JyAmJiB0aGlzLnNob3dIaXN0b3J5KCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdhbWUoKS5oaXN0b3J5Wm9uZS5tYXAoY2FyZElkID0+ICh7IGtpbmQ6ICdoaXN0b3J5JywgY2FyZElkIH0pKTtcbiAgICB9XG4gICAgaWYgKHByZXZpZXcuc291cmNlID09PSAnaGFuZCcpIHtcbiAgICAgIHJldHVybiAodGhpcy5wbGF5ZXIoKS5oYW5kID8/IFtdKS5tYXAoY2FyZElkID0+ICh7IGtpbmQ6ICdoYW5kJyBhcyBjb25zdCwgY2FyZElkIH0pKTtcbiAgICB9XG4gICAgaWYgKHByZXZpZXcuc291cmNlID09PSAncGxhY2UnICYmIHRoaXMuc2hvd1BsYWNlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdhbWUoKS5wbGFjZVpvbmUubWFwKGNhcmRJZCA9PiAoeyBraW5kOiAncGxhY2UnIGFzIGNvbnN0LCBjYXJkSWQgfSkpO1xuICAgIH1cbiAgICBpZiAocHJldmlldy5zb3VyY2UgPT09ICdvZmZlcmluZ3MnICYmIHByZXZpZXcuc2VhdCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2FtZSgpLnBsYXllcnNbcHJldmlldy5zZWF0XS5vZmZlcmluZ3MubWFwKG9mZmVyaW5nID0+ICh7IGtpbmQ6ICdvZmZlcmluZycsIG9mZmVyaW5nIH0pKTtcbiAgICB9XG4gICAgaWYgKHByZXZpZXcuc291cmNlID09PSAnZ2FsbGVyeScgJiYgdGhpcy5zaG93R2FsbGVyeSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nYWxsZXJ5Q2FyZHMoKS5tYXAoY2FyZCA9PiAoeyBraW5kOiAnZ2FsbGVyeScgYXMgY29uc3QsIGNhcmRJZDogY2FyZC5pZCB9KSk7XG4gICAgfVxuICAgIGlmIChwcmV2aWV3LnNvdXJjZSA9PT0gJ2xlYWRlci1jaG9pY2UnKSB7XG4gICAgICByZXR1cm4gdGhpcy50dXRvcmlhbFNldHVwKCk/LmF2YWlsYWJsZUxlYWRlcnMubWFwKGNhcmRJZCA9PiAoeyBraW5kOiAnbGVhZGVyLWNob2ljZScgYXMgY29uc3QsIGNhcmRJZCB9KSkgPz8gW107XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgY3VycmVudFByZXZpZXdDYXJvdXNlbEluZGV4KFxuICAgIGl0ZW1zOiBBcnJheTxcbiAgICAgIHsga2luZDogJ2hpc3RvcnknOyBjYXJkSWQ6IHN0cmluZyB9XG4gICAgICB8IHsga2luZDogJ2hhbmQnOyBjYXJkSWQ6IHN0cmluZyB9XG4gICAgICB8IHsga2luZDogJ3BsYWNlJzsgY2FyZElkOiBzdHJpbmcgfVxuICAgICAgfCB7IGtpbmQ6ICdvZmZlcmluZyc7IG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlIH1cbiAgICAgIHwgeyBraW5kOiAnZ2FsbGVyeSc7IGNhcmRJZDogc3RyaW5nIH1cbiAgICAgIHwgeyBraW5kOiAnbGVhZGVyLWNob2ljZSc7IGNhcmRJZDogc3RyaW5nIH1cbiAgICA+LFxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IHByZXZpZXcgPSB0aGlzLnNlbGVjdGVkUHJldmlldygpO1xuICAgIGlmICghcHJldmlldykgcmV0dXJuIC0xO1xuICAgIGlmIChwcmV2aWV3LnNvdXJjZSA9PT0gJ2hpc3RvcnknKSB7XG4gICAgICByZXR1cm4gaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5raW5kID09PSAnaGlzdG9yeScgJiYgaXRlbS5jYXJkSWQgPT09IHByZXZpZXcuY2FyZElkKTtcbiAgICB9XG4gICAgaWYgKHByZXZpZXcuc291cmNlID09PSAnaGFuZCcpIHtcbiAgICAgIHJldHVybiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmtpbmQgPT09ICdoYW5kJyAmJiBpdGVtLmNhcmRJZCA9PT0gcHJldmlldy5jYXJkSWQpO1xuICAgIH1cbiAgICBpZiAocHJldmlldy5zb3VyY2UgPT09ICdwbGFjZScpIHtcbiAgICAgIHJldHVybiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmtpbmQgPT09ICdwbGFjZScgJiYgaXRlbS5jYXJkSWQgPT09IHByZXZpZXcuY2FyZElkKTtcbiAgICB9XG4gICAgaWYgKHByZXZpZXcuc291cmNlID09PSAnb2ZmZXJpbmdzJykge1xuICAgICAgcmV0dXJuIGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0ua2luZCA9PT0gJ29mZmVyaW5nJyAmJiBpdGVtLm9mZmVyaW5nLmluc3RhbmNlSWQgPT09IHByZXZpZXcub2ZmZXJpbmdJbnN0YW5jZUlkKTtcbiAgICB9XG4gICAgaWYgKHByZXZpZXcuc291cmNlID09PSAnZ2FsbGVyeScpIHtcbiAgICAgIHJldHVybiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmtpbmQgPT09ICdnYWxsZXJ5JyAmJiBpdGVtLmNhcmRJZCA9PT0gcHJldmlldy5jYXJkSWQpO1xuICAgIH1cbiAgICBpZiAocHJldmlldy5zb3VyY2UgPT09ICdsZWFkZXItY2hvaWNlJykge1xuICAgICAgcmV0dXJuIGl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0ua2luZCA9PT0gJ2xlYWRlci1jaG9pY2UnICYmIGl0ZW0uY2FyZElkID09PSBwcmV2aWV3LmNhcmRJZCk7XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRHYWxsZXJ5U2VhcmNoKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZ2FsbGVyeVNlYXJjaC5zZXQoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0R2FsbGVyeVR5cGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5nYWxsZXJ5VHlwZS5zZXQoKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkudmFsdWUgYXMgQ2hyaXN0aWFuaXR5R2FsbGVyeVR5cGVGaWx0ZXIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRpbHRQcmV2aWV3KGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgIT09ICdtb3VzZScpIHJldHVybjtcbiAgICBjb25zdCBib3VuZHMgPSAoZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgeCA9IChldmVudC5jbGllbnRYIC0gYm91bmRzLmxlZnQpIC8gYm91bmRzLndpZHRoIC0gMC41O1xuICAgIGNvbnN0IHkgPSAoZXZlbnQuY2xpZW50WSAtIGJvdW5kcy50b3ApIC8gYm91bmRzLmhlaWdodCAtIDAuNTtcbiAgICB0aGlzLnByZXZpZXdUaWx0LnNldCh7XG4gICAgICByb3RhdGVYOiAteSAqIDcsXG4gICAgICByb3RhdGVZOiB4ICogNyxcbiAgICAgIHNoaWZ0WDogeCAqIDQsXG4gICAgICBzaGlmdFk6IHkgKiA0LFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0UHJldmlld1RpbHQoKTogdm9pZCB7XG4gICAgdGhpcy5wcmV2aWV3VGlsdC5zZXQoQ0hSSVNUSUFOSVRZX1BSRVZJRVdfTkVVVFJBTF9USUxUKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbXBhY3RQb3BQcm9wcyhpbXBhY3Q6IENocmlzdGlhbml0eUltcGFjdEV2ZW50KTogTWluaUdhbWVTY29yZVBvcE1ldGFkYXRhIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuaW1wYWN0UG9zaXRpb24oaW1wYWN0KTtcbiAgICByZXR1cm4ge1xuICAgICAgc2NvcmU6IGltcGFjdC50ZXh0LFxuICAgICAgbGFiZWw6IHRoaXMuaW1wYWN0TGFiZWwoaW1wYWN0KSxcbiAgICAgIHg6IHBvc2l0aW9uLngsXG4gICAgICB5OiBwb3NpdGlvbi55LFxuICAgICAgdG9uZVJnYjogdGhpcy5pbXBhY3RUb25lUmdiKGltcGFjdCksXG4gICAgICBkdXJhdGlvbk1zOiAxMTIwLFxuICAgICAgdmFyaWFudDogaW1wYWN0LnRvbmUgPT09ICdkYW1hZ2UnID8gJ3BlbmFsdHknIDogJ2JvbnVzJyxcbiAgICAgIGFyaWFMaXZlOiAncG9saXRlJyxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpbXBhY3RQb3NpdGlvbihpbXBhY3Q6IENocmlzdGlhbml0eUltcGFjdEV2ZW50KTogeyB4OiBzdHJpbmc7IHk6IHN0cmluZyB9IHtcbiAgICBpZiAoaW1wYWN0LnNlYXQgPT09ICdQMicgJiYgaW1wYWN0LnRhcmdldCA9PT0gJ2xlYWRlcicpIHJldHVybiB7IHg6ICc1MCUnLCB5OiAnMTAlJyB9O1xuICAgIGlmIChpbXBhY3Quc2VhdCA9PT0gJ1AyJyAmJiBpbXBhY3QudGFyZ2V0ID09PSAnYmF0dGxlJykgcmV0dXJuIHsgeDogJzUwJScsIHk6ICcyNyUnIH07XG4gICAgaWYgKGltcGFjdC5zZWF0ID09PSAnUDInICYmIGltcGFjdC50YXJnZXQgPT09ICdvZmZlcmluZ3MnKSByZXR1cm4geyB4OiAnMTElJywgeTogJzglJyB9O1xuICAgIGlmIChpbXBhY3Quc2VhdCA9PT0gJ1AxJyAmJiBpbXBhY3QudGFyZ2V0ID09PSAnYmF0dGxlJykgcmV0dXJuIHsgeDogJzUwJScsIHk6ICc2NyUnIH07XG4gICAgaWYgKGltcGFjdC5zZWF0ID09PSAnUDEnICYmIGltcGFjdC50YXJnZXQgPT09ICdsZWFkZXInKSByZXR1cm4geyB4OiAnNTAlJywgeTogJzg0JScgfTtcbiAgICBpZiAoaW1wYWN0LnNlYXQgPT09ICdQMScgJiYgaW1wYWN0LnRhcmdldCA9PT0gJ29mZmVyaW5ncycpIHJldHVybiB7IHg6ICcxMCUnLCB5OiAnODQlJyB9O1xuICAgIHJldHVybiB7IHg6ICc1MCUnLCB5OiAnNTAlJyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpbXBhY3RMYWJlbChpbXBhY3Q6IENocmlzdGlhbml0eUltcGFjdEV2ZW50KTogc3RyaW5nIHtcbiAgICBpZiAoaW1wYWN0LnRvbmUgPT09ICdyZXNvdXJjZScpIHJldHVybiB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5ncycpO1xuICAgIGlmIChpbXBhY3QudG9uZSA9PT0gJ2hlYWwnKSByZXR1cm4gdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJDYXJkJyk7XG4gICAgcmV0dXJuIHRoaXMudCgnY2hyaXN0aWFuaXR5RGFtYWdlJyk7XG4gIH1cblxuICBwcml2YXRlIGltcGFjdFRvbmVSZ2IoaW1wYWN0OiBDaHJpc3RpYW5pdHlJbXBhY3RFdmVudCk6IHN0cmluZyB7XG4gICAgaWYgKGltcGFjdC50b25lID09PSAnZGFtYWdlJykgcmV0dXJuICcyMjAsIDM4LCAzOCc7XG4gICAgaWYgKGltcGFjdC50b25lID09PSAnaGVhbCcpIHJldHVybiAnMjIsIDE2MywgNzQnO1xuICAgIHJldHVybiAnMzcsIDk5LCAyMzUnO1xuICB9XG5cbiAgcHJpdmF0ZSBwdXNoSW1wYWN0RXZlbnQoZXZlbnQ6IE9taXQ8Q2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQsICdpZCc+KTogdm9pZCB7XG4gICAgY29uc3QgaWQgPSArK3RoaXMuaW1wYWN0RXZlbnRTZXF1ZW5jZTtcbiAgICB0aGlzLmltcGFjdEV2ZW50cy51cGRhdGUoZXZlbnRzID0+IFsuLi5ldmVudHMsIHsgLi4uZXZlbnQsIGlkIH1dLnNsaWNlKC02KSk7XG4gICAgY29uc3QgdGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmltcGFjdFRpbWVycy5kZWxldGUodGltZXIpO1xuICAgICAgdGhpcy5pbXBhY3RFdmVudHMudXBkYXRlKGV2ZW50cyA9PiBldmVudHMuZmlsdGVyKGltcGFjdCA9PiBpbXBhY3QuaWQgIT09IGlkKSk7XG4gICAgfSwgMTEyMCk7XG4gICAgdGhpcy5pbXBhY3RUaW1lcnMuYWRkKHRpbWVyKTtcbiAgfVxuXG4gIHByaXZhdGUgcHVzaEltcGFjdEV2ZW50cyhldmVudHM6IEFycmF5PE9taXQ8Q2hyaXN0aWFuaXR5SW1wYWN0RXZlbnQsICdpZCc+Pik6IHZvaWQge1xuICAgIGZvciAoY29uc3QgZXZlbnQgb2YgZXZlbnRzKSB7XG4gICAgICB0aGlzLnB1c2hJbXBhY3RFdmVudChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb21iYXRBbmltYXRpb25BdHRhY2tlcihhbmltYXRpb246IENocmlzdGlhbml0eUNvbWJhdEFuaW1hdGlvbik6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZ2FtZSgpLnBsYXllcnNbYW5pbWF0aW9uLmF0dGFja2VyU2VhdF0uYmF0dGxlWm9uZS5maW5kKGNhcmQgPT4gY2FyZC5pbnN0YW5jZUlkID09PSBhbmltYXRpb24uYXR0YWNrZXJJbnN0YW5jZUlkKSA/PyBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21iYXRBbmltYXRpb25UYXJnZXRMYWJlbChhbmltYXRpb246IENocmlzdGlhbml0eUNvbWJhdEFuaW1hdGlvbik6IHN0cmluZyB7XG4gICAgaWYgKGFuaW1hdGlvbi50YXJnZXQgPT09ICdsZWFkZXInKSB7XG4gICAgICByZXR1cm4gdGhpcy5nYW1lKCkucGxheWVyc1thbmltYXRpb24udGFyZ2V0U2VhdF0ubGVhZGVyTmFtZTtcbiAgICB9XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5nYW1lKCkucGxheWVyc1thbmltYXRpb24udGFyZ2V0U2VhdF0uYmF0dGxlWm9uZS5maW5kKGNhcmQgPT4gY2FyZC5pbnN0YW5jZUlkID09PSBhbmltYXRpb24udGFyZ2V0SW5zdGFuY2VJZCk7XG4gICAgcmV0dXJuIHRhcmdldD8ubmFtZSA/PyB0aGlzLnQoJ2NocmlzdGlhbml0eUNoYXJhY3RlckNhcmQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0NvbWJhdEF0dGFja2VyKGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29tYmF0QW5pbWF0aW9uKCk/LmF0dGFja2VySW5zdGFuY2VJZCA9PT0gY2FyZC5pbnN0YW5jZUlkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzQ29tYmF0Q2hhcmFjdGVyVGFyZ2V0KGNhcmQ6IENocmlzdGlhbml0eUNoYXJhY3Rlckluc3RhbmNlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYW5pbWF0aW9uID0gdGhpcy5jb21iYXRBbmltYXRpb24oKTtcbiAgICByZXR1cm4gYW5pbWF0aW9uPy50YXJnZXQgPT09ICdjaGFyYWN0ZXInICYmIGFuaW1hdGlvbi50YXJnZXRJbnN0YW5jZUlkID09PSBjYXJkLmluc3RhbmNlSWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNDb21iYXRMZWFkZXJUYXJnZXQoc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IHRoaXMuY29tYmF0QW5pbWF0aW9uKCk7XG4gICAgcmV0dXJuIGFuaW1hdGlvbj8udGFyZ2V0ID09PSAnbGVhZGVyJyAmJiBhbmltYXRpb24udGFyZ2V0U2VhdCA9PT0gc2VhdDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRDb21iYXRBbmltYXRpb24oYW5pbWF0aW9uOiBDaHJpc3RpYW5pdHlDb21iYXRBbmltYXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQ29tYmF0VGltZXJzKCk7XG4gICAgdGhpcy5jb21iYXRBbmltYXRpb24uc2V0KGFuaW1hdGlvbik7XG4gICAgdGhpcy5jb21iYXRUcmFpbC5zZXQodGhpcy5jcmVhdGVDb21iYXRUcmFpbChhbmltYXRpb24pKTtcbiAgICB0aGlzLmNvbWJhdFRyYWlsQ2xlYXJUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY29tYmF0VHJhaWwuc2V0KG51bGwpO1xuICAgICAgdGhpcy5jb21iYXRUcmFpbENsZWFyVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfSwgODgwKTtcbiAgICB0aGlzLmNvbWJhdENsZWFyVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNvbWJhdEFuaW1hdGlvbi5zZXQobnVsbCk7XG4gICAgICB0aGlzLmNvbWJhdENsZWFyVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfSwgOTgwKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29tYmF0VHJhaWwoYW5pbWF0aW9uOiBDaHJpc3RpYW5pdHlDb21iYXRBbmltYXRpb24pOiBDaHJpc3RpYW5pdHlDb21iYXRUcmFpbCB7XG4gICAgY29uc3QgZnJvbSA9IHRoaXMuY29tYmF0QW5jaG9yKGFuaW1hdGlvbi5hdHRhY2tlclNlYXQsICdiYXR0bGUnKTtcbiAgICBjb25zdCB0byA9IHRoaXMuY29tYmF0QW5jaG9yKGFuaW1hdGlvbi50YXJnZXRTZWF0LCBhbmltYXRpb24udGFyZ2V0KTtcbiAgICBjb25zdCBkeCA9IHRvLnggLSBmcm9tLng7XG4gICAgY29uc3QgZHkgPSB0by55IC0gZnJvbS55O1xuICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWF4KDEyLCBNYXRoLmh5cG90KGR4LCBkeSkpO1xuICAgIGNvbnN0IGFuZ2xlID0gTWF0aC5hdGFuMihkeSwgZHgpICogMTgwIC8gTWF0aC5QSTtcbiAgICByZXR1cm4ge1xuICAgICAgZnJvbVg6IGAke2Zyb20ueH0lYCxcbiAgICAgIGZyb21ZOiBgJHtmcm9tLnl9JWAsXG4gICAgICBtaWRYOiBgJHt0by54fSVgLFxuICAgICAgbWlkWTogYCR7dG8ueX0lYCxcbiAgICAgIGxlbmd0aDogYCR7bGVuZ3RofSVgLFxuICAgICAgYW5nbGU6IGAke2FuZ2xlfWRlZ2AsXG4gICAgICB0b25lOiBhbmltYXRpb24udGFyZ2V0LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNvbWJhdEFuY2hvcihzZWF0OiBDaHJpc3RpYW5pdHlTZWF0LCB0YXJnZXQ6ICdsZWFkZXInIHwgJ2NoYXJhY3RlcicgfCAnYmF0dGxlJyk6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB7XG4gICAgaWYgKHNlYXQgPT09ICdQMicpIHtcbiAgICAgIGlmICh0YXJnZXQgPT09ICdsZWFkZXInKSByZXR1cm4geyB4OiA1MCwgeTogMTAgfTtcbiAgICAgIHJldHVybiB7IHg6IDUwLCB5OiAyOCB9O1xuICAgIH1cbiAgICBpZiAodGFyZ2V0ID09PSAnbGVhZGVyJykgcmV0dXJuIHsgeDogNTAsIHk6IDg0IH07XG4gICAgcmV0dXJuIHsgeDogNTAsIHk6IDY4IH07XG4gIH1cblxuICBwcml2YXRlIGNsZWFyQ29tYmF0VGltZXJzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbWJhdFJlc29sdXRpb25UaW1lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuY29tYmF0UmVzb2x1dGlvblRpbWVyKTtcbiAgICAgIHRoaXMuY29tYmF0UmVzb2x1dGlvblRpbWVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb21iYXRDbGVhclRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5jb21iYXRDbGVhclRpbWVyKTtcbiAgICAgIHRoaXMuY29tYmF0Q2xlYXJUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29tYmF0VHJhaWxDbGVhclRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5jb21iYXRUcmFpbENsZWFyVGltZXIpO1xuICAgICAgdGhpcy5jb21iYXRUcmFpbENsZWFyVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMuY29tYmF0VHJhaWwuc2V0KG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmlnZ2VySGlzdG9yeVB1bHNlKCk6IHZvaWQge1xuICAgIHRoaXMuaGlzdG9yeVB1bHNlLnNldChmYWxzZSk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdGhpcy5oaXN0b3J5UHVsc2Uuc2V0KHRydWUpLCAwKTtcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmhpc3RvcnlQdWxzZS5zZXQoZmFsc2UpLCA5MDApO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckJvdFR1cm4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYm90VHVyblRpbWVyID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuYm90VHVyblRpbWVyKTtcbiAgICB0aGlzLmJvdFR1cm5UaW1lciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgc2NoZWR1bGVCb3RUdXJuSWZOZWVkZWQoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckJvdFR1cm4oKTtcbiAgICBjb25zdCBnYW1lID0gdGhpcy5nYW1lKCk7XG4gICAgaWYgKHRoaXMuc2NyZWVuKCkgIT09ICd0YWJsZScgfHwgZ2FtZS5zdGF0dXMgIT09ICdpbl9wcm9ncmVzcycgfHwgZ2FtZS50dXJuT3duZXIgIT09ICdQMicpIHJldHVybjtcbiAgICB0aGlzLmJvdFR1cm5UaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYm90VHVyblRpbWVyID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5ydW5UdXRvcmlhbEJvdFR1cm4oKTtcbiAgICB9LCA1MjApO1xuICB9XG5cbiAgcHJpdmF0ZSBydW5UdXRvcmlhbEJvdFR1cm4oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEhhbmRDYXJkLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkQXR0YWNrZXIuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgY29uc3QgaW1wYWN0czogQXJyYXk8T21pdDxDaHJpc3RpYW5pdHlJbXBhY3RFdmVudCwgJ2lkJz4+ID0gW107XG4gICAgdGhpcy5nYW1lLnVwZGF0ZShnYW1lID0+IHtcbiAgICAgIGlmIChnYW1lLnN0YXR1cyAhPT0gJ2luX3Byb2dyZXNzJyB8fCBnYW1lLnR1cm5Pd25lciAhPT0gJ1AyJykgcmV0dXJuIGdhbWU7XG4gICAgICBjb25zdCBuZXh0ID0gc3RydWN0dXJlZENsb25lKGdhbWUpO1xuICAgICAgY29uc3QgaGlzdG9yeUJlZm9yZSA9IG5leHQuaGlzdG9yeVpvbmUubGVuZ3RoO1xuICAgICAgY29uc3QgbG9nOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgdGhpcy5yZXNvbHZlQm90UGxheXMobmV4dCwgbG9nKTtcbiAgICAgIHRoaXMucmVzb2x2ZUJvdEF0dGFjayhuZXh0LCBsb2csIGltcGFjdHMpO1xuICAgICAgaWYgKG5leHQuaGlzdG9yeVpvbmUubGVuZ3RoID4gaGlzdG9yeUJlZm9yZSkge1xuICAgICAgICB0aGlzLnRyaWdnZXJIaXN0b3J5UHVsc2UoKTtcbiAgICAgIH1cbiAgICAgIGV2YWx1YXRlVmljdG9yeShuZXh0LCBsb2csIHRoaXMucnVsZU1lc3NhZ2VzKCkpO1xuICAgICAgaWYgKG5leHQuc3RhdHVzID09PSAnaW5fcHJvZ3Jlc3MnKSB7XG4gICAgICAgIGxvZy5wdXNoKC4uLmFkdmFuY2VUdXJuKG5leHQsIHRoaXMucnVsZU1lc3NhZ2VzKCkpKTtcbiAgICAgIH1cbiAgICAgIG5leHQucmV2aXNpb24rKztcbiAgICAgIG5leHQubG9nID0gWy4uLmxvZywgLi4ubmV4dC5sb2ddLnNsaWNlKDAsIDQpO1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfSk7XG4gICAgdGhpcy5wdXNoSW1wYWN0RXZlbnRzKGltcGFjdHMpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlQm90UGxheXMoZ2FtZTogQ2hyaXN0aWFuaXR5R2FtZVN0YXRlLCBsb2c6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3QgYm90ID0gZ2FtZS5wbGF5ZXJzLlAyO1xuICAgIGNvbnN0IGhhbmQgPSBbLi4uKGJvdC5oYW5kID8/IFtdKV07XG4gICAgY29uc3Qgb2ZmZXJpbmdJZCA9IGhhbmQuZmluZChjYXJkSWQgPT4gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpLnR5cGUgPT09ICdvZmZlcmluZycgJiYgY2FuUGxheUNhcmQoZ2FtZSwgJ1AyJywgdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpKSk7XG4gICAgaWYgKG9mZmVyaW5nSWQpIHtcbiAgICAgIGNvbnN0IGNhcmQgPSB0aGlzLmNhcmREZWZpbml0aW9uKG9mZmVyaW5nSWQpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gcGxheUNocmlzdGlhbml0eUNhcmRGcm9tSGFuZChnYW1lLCAnUDInLCBjYXJkLCB7IGRpc3BsYXlOYW1lOiB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKS5uYW1lIH0pO1xuICAgICAgaWYgKHJlc3VsdC5wbGF5ZWQpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihnYW1lLCByZXN1bHQuZ2FtZSk7XG4gICAgICAgIGxvZy5wdXNoKC4uLnJlc3VsdC5sb2cpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHBsYXlhYmxlQ2hhcmFjdGVycyA9IFsuLi4oZ2FtZS5wbGF5ZXJzLlAyLmhhbmQgPz8gW10pXVxuICAgICAgLm1hcChjYXJkSWQgPT4gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpKVxuICAgICAgLmZpbHRlcihjYXJkID0+IGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicgJiYgY2FuUGxheUNhcmQoZ2FtZSwgJ1AyJywgY2FyZCkpXG4gICAgICAuc29ydCgobGVmdCwgcmlnaHQpID0+IChyaWdodC5hdHRhY2sgPz8gMCkgLSAobGVmdC5hdHRhY2sgPz8gMCkgfHwgKHJpZ2h0LmxpZmUgPz8gMCkgLSAobGVmdC5saWZlID8/IDApKTtcbiAgICBjb25zdCBjaGFyYWN0ZXIgPSBwbGF5YWJsZUNoYXJhY3RlcnNbMF07XG4gICAgaWYgKGNoYXJhY3Rlcikge1xuICAgICAgY29uc3QgcmVzdWx0ID0gcGxheUNocmlzdGlhbml0eUNhcmRGcm9tSGFuZChnYW1lLCAnUDInLCBjaGFyYWN0ZXIsIHtcbiAgICAgICAgZGlzcGxheU5hbWU6IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KGNoYXJhY3RlcikubmFtZSxcbiAgICAgIH0pO1xuICAgICAgaWYgKHJlc3VsdC5wbGF5ZWQpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihnYW1lLCByZXN1bHQuZ2FtZSk7XG4gICAgICAgIGxvZy5wdXNoKC4uLnJlc3VsdC5sb2cpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUJvdEF0dGFjayhcbiAgICBnYW1lOiBDaHJpc3RpYW5pdHlHYW1lU3RhdGUsXG4gICAgbG9nOiBzdHJpbmdbXSxcbiAgICBpbXBhY3RzOiBBcnJheTxPbWl0PENocmlzdGlhbml0eUltcGFjdEV2ZW50LCAnaWQnPj5cbiAgKTogdm9pZCB7XG4gICAgY29uc3QgYm90ID0gZ2FtZS5wbGF5ZXJzLlAyO1xuICAgIGNvbnN0IHBsYXllciA9IGdhbWUucGxheWVycy5QMTtcbiAgICBjb25zdCBhdHRhY2tlciA9IGJvdC5iYXR0bGVab25lXG4gICAgICAuZmlsdGVyKGNhcmQgPT4gY2FyZC5jYW5BdHRhY2sgJiYgY2FyZC5hdHRhY2sgPiAwKVxuICAgICAgLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiAobGVmdC5zbG90ID8/IDApIC0gKHJpZ2h0LnNsb3QgPz8gMCkpWzBdO1xuXG4gICAgaWYgKCFhdHRhY2tlcikge1xuICAgICAgbG9nLnB1c2godGhpcy50KCdjaHJpc3RpYW5pdHlCb3ROb0F0dGFja2VycycpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXQgPSBwbGF5ZXIuYmF0dGxlWm9uZVxuICAgICAgLmZpbHRlcihjYXJkID0+IGNhcmQuY3VycmVudEhwID4gMClcbiAgICAgIC5zb3J0KChsZWZ0LCByaWdodCkgPT4gbGVmdC5jdXJyZW50SHAgLSByaWdodC5jdXJyZW50SHAgfHwgKGxlZnQuc2xvdCA/PyAwKSAtIChyaWdodC5zbG90ID8/IDApKVswXTtcblxuICAgIGlmICh0YXJnZXQpIHtcbiAgICAgIGltcGFjdHMucHVzaCh7IHRleHQ6IGAtJHthdHRhY2tlci5hdHRhY2t9YCwgdG9uZTogJ2RhbWFnZScsIHNlYXQ6ICdQMScsIHRhcmdldDogJ2JhdHRsZScgfSk7XG4gICAgICBpbXBhY3RzLnB1c2goeyB0ZXh0OiBgLSR7dGFyZ2V0LmF0dGFja31gLCB0b25lOiAnZGFtYWdlJywgc2VhdDogJ1AyJywgdGFyZ2V0OiAnYmF0dGxlJyB9KTtcbiAgICAgIHRhcmdldC5jdXJyZW50SHAgLT0gYXR0YWNrZXIuYXR0YWNrO1xuICAgICAgYXR0YWNrZXIuY3VycmVudEhwIC09IHRhcmdldC5hdHRhY2s7XG4gICAgICBhdHRhY2tlci5jYW5BdHRhY2sgPSBmYWxzZTtcbiAgICAgIGxvZy5wdXNoKGAke2F0dGFja2VyLm5hbWV9ICR7dGhpcy50KCdjaHJpc3RpYW5pdHlDb21iYXRzQWdhaW5zdCcpfSAke3RhcmdldC5uYW1lfS5gKTtcbiAgICAgIGNsZWFudXBEZXN0cm95ZWQocGxheWVyLCBnYW1lKTtcbiAgICAgIGNsZWFudXBEZXN0cm95ZWQoYm90LCBnYW1lKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpbXBhY3RzLnB1c2goeyB0ZXh0OiBgLSR7YXR0YWNrZXIuYXR0YWNrfWAsIHRvbmU6ICdkYW1hZ2UnLCBzZWF0OiAnUDEnLCB0YXJnZXQ6ICdsZWFkZXInIH0pO1xuICAgIHBsYXllci5sZWFkZXJIcCA9IE1hdGgubWF4KDAsIHBsYXllci5sZWFkZXJIcCAtIGF0dGFja2VyLmF0dGFjayk7XG4gICAgYXR0YWNrZXIuY2FuQXR0YWNrID0gZmFsc2U7XG4gICAgbG9nLnB1c2goYCR7YXR0YWNrZXIubmFtZX0gJHt0aGlzLnQoJ2NocmlzdGlhbml0eUF0dGFja3NZb3VyTGVhZGVyJyl9YCk7XG4gIH1cblxuICBwcml2YXRlIHJ1bGVNZXNzYWdlcygpOiBDaHJpc3RpYW5pdHlSdWxlTWVzc2FnZXMge1xuICAgIHJldHVybiB7XG4gICAgICBhdHRhY2tzT3Bwb25lbnRMZWFkZXI6IHRoaXMudCgnY2hyaXN0aWFuaXR5QXR0YWNrc09wcG9uZW50TGVhZGVyJyksXG4gICAgICBhdHRhY2tzWW91ckxlYWRlcjogdGhpcy50KCdjaHJpc3RpYW5pdHlBdHRhY2tzWW91ckxlYWRlcicpLFxuICAgICAgY29tYmF0c0FnYWluc3Q6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q29tYmF0c0FnYWluc3QnKSxcbiAgICAgIGRyYXdzQ2FyZDogdGhpcy50KCdjaHJpc3RpYW5pdHlEcmF3c0NhcmQnKSxcbiAgICAgIGRlY2tJc0VtcHR5OiB0aGlzLnQoJ2NocmlzdGlhbml0eURlY2tJc0VtcHR5JyksXG4gICAgICB0dXJuT2Y6IHRoaXMudCgnY2hyaXN0aWFuaXR5VHVybk9mJyksXG4gICAgICB5b3VXaW46IHRoaXMudCgnY2hyaXN0aWFuaXR5WW91V2luJyksXG4gICAgICBvcHBvbmVudFdpbnM6IHRoaXMudCgnY2hyaXN0aWFuaXR5T3Bwb25lbnRXaW5zJyksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0TGVhZGVyKHNlYXQ6IENocmlzdGlhbml0eVNlYXQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXguc2V0KDApO1xuICAgIGNvbnN0IHBsYXllciA9IHRoaXMuZ2FtZSgpLnBsYXllcnNbc2VhdF07XG4gICAgY29uc3QgbGVhZGVyID0gcGxheWVyLmxlYWRlckNhcmRJZCA/IHRoaXMuY2FyZERlZmluaXRpb24ocGxheWVyLmxlYWRlckNhcmRJZCkgOiB1bmRlZmluZWQ7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KHtcbiAgICAgIHRpdGxlOiBsZWFkZXIgPyB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChsZWFkZXIpLm5hbWUgOiBwbGF5ZXIubGVhZGVyTmFtZSxcbiAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5TGVhZGVyQ2FyZCcpLFxuICAgICAgbWV0YTogYCR7cGxheWVyLmxlYWRlckhwfS8ke3BsYXllci5sZWFkZXJNYXhIcH1gLFxuICAgICAgYm9keTogc2VhdCA9PT0gJ1AyJyAmJiB0aGlzLmhhc09wcG9uZW50R3VhcmRzKCkgPyB0aGlzLnQoJ2NocmlzdGlhbml0eUxlYWRlclByb3RlY3RlZCcpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlMZWFkZXJCb2R5JyksXG4gICAgICBjYXJkSWQ6IHBsYXllci5sZWFkZXJDYXJkSWQsXG4gICAgICBzb3VyY2U6ICdib2FyZCcsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdE9mZmVyaW5nKG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4LnNldCgwKTtcbiAgICBjb25zdCBkZWZpbml0aW9uID0gdGhpcy5jYXJkRGVmaW5pdGlvbihvZmZlcmluZy5jYXJkSWQpO1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChkZWZpbml0aW9uKTtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQoe1xuICAgICAgdGl0bGU6IHRleHQubmFtZSxcbiAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdDYXJkJyksXG4gICAgICBtZXRhOiBvZmZlcmluZy5yZWFkeSA/IHRoaXMudCgnY2hyaXN0aWFuaXR5T2ZmZXJpbmdSZWFkeScpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ0V4aGF1c3RlZCcpLFxuICAgICAgYm9keTogdGV4dC5hYmlsaXR5VGV4dCA/PyBvZmZlcmluZy5hYmlsaXR5VGV4dCA/PyB0aGlzLnQoJ2NocmlzdGlhbml0eU9mZmVyaW5nQm9keScpLFxuICAgICAgY2FyZElkOiBvZmZlcmluZy5jYXJkSWQsXG4gICAgICBzb3VyY2U6ICdvZmZlcmluZ3MnLFxuICAgICAgc2VhdDogb2ZmZXJpbmcub3duZXIsXG4gICAgICBvZmZlcmluZ0luc3RhbmNlSWQ6IG9mZmVyaW5nLmluc3RhbmNlSWQsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb2ZmZXJpbmdBYmlsaXR5VGV4dChvZmZlcmluZzogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMudHJhbnNsYXRlZENhcmRUZXh0KHRoaXMuY2FyZERlZmluaXRpb24ob2ZmZXJpbmcuY2FyZElkKSk7XG4gICAgcmV0dXJuIHRleHQuYWJpbGl0eVRleHQgPz8gb2ZmZXJpbmcuYWJpbGl0eVRleHQgPz8gdGhpcy50KCdjaHJpc3RpYW5pdHlPZmZlcmluZ05vQWJpbGl0eScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNhblVzZU9mZmVyaW5nQWJpbGl0eShvZmZlcmluZzogQ2hyaXN0aWFuaXR5T2ZmZXJpbmdJbnN0YW5jZSwgc2VhdDogQ2hyaXN0aWFuaXR5U2VhdCk6IGJvb2xlYW4ge1xuICAgIGlmIChzZWF0ICE9PSAnUDEnKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIGNhblVzZUNocmlzdGlhbml0eU9mZmVyaW5nQWJpbGl0eSh0aGlzLmdhbWUoKSwgc2VhdCwgb2ZmZXJpbmcuaW5zdGFuY2VJZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlLCBzZWF0OiBDaHJpc3RpYW5pdHlTZWF0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhblVzZU9mZmVyaW5nQWJpbGl0eShvZmZlcmluZywgc2VhdCkpIHJldHVybjtcbiAgICBsZXQgbGVhZGVyRGFtYWdlID0gMDtcbiAgICBsZXQgcmVzZXJ2ZUdhaW4gPSAwO1xuICAgIHRoaXMuZ2FtZS51cGRhdGUoZ2FtZSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSByZXNvbHZlT2ZmZXJpbmdBYmlsaXR5KGdhbWUsIHNlYXQsIG9mZmVyaW5nLmluc3RhbmNlSWQsIHRoaXMucnVsZU1lc3NhZ2VzKCkpO1xuICAgICAgbGVhZGVyRGFtYWdlID0gcmVzdWx0LmxlYWRlckRhbWFnZTtcbiAgICAgIHJlc2VydmVHYWluID0gcmVzdWx0LnJlc2VydmVHYWluO1xuICAgICAgcmV0dXJuIHJlc3VsdC5nYW1lO1xuICAgIH0pO1xuICAgIGlmIChsZWFkZXJEYW1hZ2UgPiAwKSB7XG4gICAgICB0aGlzLnB1c2hJbXBhY3RFdmVudCh7IHRleHQ6IGAtJHtsZWFkZXJEYW1hZ2V9YCwgdG9uZTogJ2RhbWFnZScsIHNlYXQsIHRhcmdldDogJ2xlYWRlcicgfSk7XG4gICAgfVxuICAgIGlmIChyZXNlcnZlR2FpbiA+IDApIHtcbiAgICAgIHRoaXMucHVzaEltcGFjdEV2ZW50KHsgdGV4dDogYCske3Jlc2VydmVHYWlufWAsIHRvbmU6ICdyZXNvdXJjZScsIHNlYXQsIHRhcmdldDogJ29mZmVyaW5ncycgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdFByZXZpZXdBYmlsaXR5KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleC5zZXQoaW5kZXgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5hdmlnYXRlUHJldmlld0FiaWxpdHkoZGlyZWN0aW9uOiAtMSB8IDEpOiB2b2lkIHtcbiAgICBjb25zdCBhYmlsaXRpZXMgPSB0aGlzLnByZXZpZXdBYmlsaXRpZXMoKTtcbiAgICBpZiAoYWJpbGl0aWVzLmxlbmd0aCA8IDIpIHJldHVybjtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSBhYmlsaXRpZXMuZmluZEluZGV4KGFiaWxpdHkgPT4gYWJpbGl0eS5pbmRleCA9PT0gdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXgoKSk7XG4gICAgY29uc3QgbmV4dEluZGV4ID0gKE1hdGgubWF4KGN1cnJlbnRJbmRleCwgMCkgKyBkaXJlY3Rpb24gKyBhYmlsaXRpZXMubGVuZ3RoKSAlIGFiaWxpdGllcy5sZW5ndGg7XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXdBYmlsaXR5SW5kZXguc2V0KGFiaWxpdGllc1tuZXh0SW5kZXhdLmluZGV4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCB1c2VTZWxlY3RlZFByZXZpZXdBYmlsaXR5KCk6IHZvaWQge1xuICAgIGNvbnN0IG9mZmVyaW5nID0gdGhpcy5zZWxlY3RlZFByZXZpZXdPZmZlcmluZygpO1xuICAgIGlmICghb2ZmZXJpbmcpIHJldHVybjtcbiAgICBjb25zdCBzZWxlY3RlZEFiaWxpdHlJbmRleCA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4KCk7XG4gICAgdGhpcy51c2VPZmZlcmluZ0FiaWxpdHkob2ZmZXJpbmcsIG9mZmVyaW5nLm93bmVyKTtcbiAgICBjb25zdCBsaXZlT2ZmZXJpbmcgPSB0aGlzLmdhbWUoKS5wbGF5ZXJzW29mZmVyaW5nLm93bmVyXS5vZmZlcmluZ3MuZmluZChjYXJkID0+IGNhcmQuaW5zdGFuY2VJZCA9PT0gb2ZmZXJpbmcuaW5zdGFuY2VJZCk7XG4gICAgaWYgKGxpdmVPZmZlcmluZykge1xuICAgICAgdGhpcy5pbnNwZWN0T2ZmZXJpbmcobGl2ZU9mZmVyaW5nKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4LnNldChzZWxlY3RlZEFiaWxpdHlJbmRleCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZFByZXZpZXdPZmZlcmluZygpOiBDaHJpc3RpYW5pdHlPZmZlcmluZ0luc3RhbmNlIHwgbnVsbCB7XG4gICAgY29uc3QgcHJldmlldyA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3KCk7XG4gICAgaWYgKCFwcmV2aWV3Py5zZWF0IHx8ICFwcmV2aWV3Lm9mZmVyaW5nSW5zdGFuY2VJZCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMuZ2FtZSgpLnBsYXllcnNbcHJldmlldy5zZWF0XS5vZmZlcmluZ3MuZmluZChjYXJkID0+IGNhcmQuaW5zdGFuY2VJZCA9PT0gcHJldmlldy5vZmZlcmluZ0luc3RhbmNlSWQpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGNhblVzZVByZXZpZXdBYmlsaXR5KGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBjb25zdCBvZmZlcmluZyA9IHRoaXMuc2VsZWN0ZWRQcmV2aWV3T2ZmZXJpbmcoKTtcbiAgICBpZiAoIW9mZmVyaW5nIHx8IGluZGV4ICE9PSAwKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMuY2FuVXNlT2ZmZXJpbmdBYmlsaXR5KG9mZmVyaW5nLCBvZmZlcmluZy5vd25lcik7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdERlY2soKTogdm9pZCB7XG4gICAgY29uc3QgcmVtYWluaW5nQ2FyZHMgPSB0aGlzLmdhbWUoKS5zaGFyZWREZWNrLmxlbmd0aDtcbiAgICBjb25zdCBuZXh0Q2FyZCA9IHRoaXMuZ2FtZSgpLnNoYXJlZERlY2tbMF07XG4gICAgdGhpcy5zZWxlY3RlZFByZXZpZXcuc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldCh7XG4gICAgICB0aXRsZTogdGhpcy50KCdjaHJpc3RpYW5pdHlEZWNrJyksXG4gICAgICBleWVicm93OiB0aGlzLnQoJ2NocmlzdGlhbml0eVNoYXJlZFpvbmUnKSxcbiAgICAgIG1ldGE6IGAke3JlbWFpbmluZ0NhcmRzfSAke3JlbWFpbmluZ0NhcmRzID09PSAxID8gdGhpcy50KCdjaHJpc3RpYW5pdHlDYXJkUmVtYWluaW5nJykgOiB0aGlzLnQoJ2NocmlzdGlhbml0eUNhcmRzUmVtYWluaW5nJyl9YCxcbiAgICAgIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5RGVja0JvZHknKSxcbiAgICAgIGZhY3RzOiBbXG4gICAgICAgIHRoaXMudCgnY2hyaXN0aWFuaXR5RGVja1J1bGVTaGFyZWQnKSxcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlEZWNrUnVsZURyYXcnKSxcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlEZWNrUnVsZUVtcHR5JyksXG4gICAgICAgIG5leHRDYXJkID8gYCR7dGhpcy50KCdjaHJpc3RpYW5pdHlEZWNrTmV4dENhcmQnKX06ICR7dGhpcy5jYXJkRGlzcGxheU5hbWUobmV4dENhcmQpfWAgOiB0aGlzLnQoJ2NocmlzdGlhbml0eURlY2tOb05leHRDYXJkJyksXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluc3BlY3RQbGFjZVpvbmUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ2FtZSgpLnBsYWNlWm9uZS5sZW5ndGgpIHtcbiAgICAgIHRoaXMub3BlblBsYWNlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkSW5mby5zZXQoe1xuICAgICAgdGl0bGU6IHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2UnKSxcbiAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5U2hhcmVkWm9uZScpLFxuICAgICAgbWV0YTogdGhpcy50KCdjaHJpc3RpYW5pdHlFbXB0eScpLFxuICAgICAgYm9keTogdGhpcy50KCdjaHJpc3RpYW5pdHlQbGFjZVJ1bGVCb2R5JyksXG4gICAgICBmYWN0czogW1xuICAgICAgICB0aGlzLnQoJ2NocmlzdGlhbml0eVBsYWNlU2xvdFBsYXlhYmxlJyksXG4gICAgICAgIHRoaXMudCgnY2hyaXN0aWFuaXR5UGxhY2VPbmx5T25lJyksXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGluc3BlY3RQbGFjZUNhcmQoY2FyZElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmluc3BlY3RIYW5kQ2FyZChjYXJkSWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnVwZGF0ZShwcmV2aWV3ID0+IHByZXZpZXcgPyB7IC4uLnByZXZpZXcsIHNvdXJjZTogJ3BsYWNlJyB9IDogcHJldmlldyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdEhvd1RvUGxheSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlldy5zZXQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KHtcbiAgICAgIHRpdGxlOiB0aGlzLnQoJ2NocmlzdGlhbml0eUhvd1RvUGxheScpLFxuICAgICAgZXllYnJvdzogdGhpcy50KCdjaHJpc3RpYW5pdHlHZW5lc2lzRWRpdGlvbicpLFxuICAgICAgbWV0YTogdGhpcy50KCdjaHJpc3RpYW5pdHlUdXRvcmlhbE1vZGUnKSxcbiAgICAgIGJvZHk6IHRoaXMudCgnY2hyaXN0aWFuaXR5SG93VG9QbGF5SW50cm8nKSxcbiAgICAgIGZhY3RzOiBbXG4gICAgICAgIHRoaXMudCgnY2hyaXN0aWFuaXR5SG93VG9QbGF5R29hbCcpLFxuICAgICAgICB0aGlzLnQoJ2NocmlzdGlhbml0eUhvd1RvUGxheVR1cm4nKSxcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlIb3dUb1BsYXlPZmZlcmluZ3MnKSxcbiAgICAgICAgdGhpcy50KCdjaHJpc3RpYW5pdHlIb3dUb1BsYXlCYXR0bGUnKSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zcGVjdEhhbmRDYXJkKGNhcmRJZDogc3RyaW5nLCBmcm9tSGFuZCA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEluZm8uc2V0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3QWJpbGl0eUluZGV4LnNldCgwKTtcbiAgICBjb25zdCBjYXJkID0gdGhpcy5jYXJkRGVmaW5pdGlvbihjYXJkSWQpO1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLnRyYW5zbGF0ZWRDYXJkVGV4dChjYXJkKTtcbiAgICBpZiAoZnJvbUhhbmQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2tlci5zZXQobnVsbCk7XG4gICAgICB0aGlzLnNlbGVjdGVkSGFuZENhcmQuc2V0KGNhcmRJZCk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldCh7XG4gICAgICB0aXRsZTogdGV4dC5uYW1lLFxuICAgICAgZXllYnJvdzogdGhpcy5jYXJkVHlwZUxhYmVsKGNhcmQpLFxuICAgICAgbWV0YTogdGhpcy5jYXJkUHJldmlld01ldGEoY2FyZCksXG4gICAgICBib2R5OiB0ZXh0LmFiaWxpdHlUZXh0ID8/ICcnLFxuICAgICAgY2FyZElkLFxuICAgICAgc291cmNlOiBmcm9tSGFuZCA/ICdoYW5kJyA6ICdwaWxlJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0R2FsbGVyeUNhcmQoY2FyZElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmluc3BlY3RIYW5kQ2FyZChjYXJkSWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnVwZGF0ZShwcmV2aWV3ID0+IHByZXZpZXcgPyB7IC4uLnByZXZpZXcsIHNvdXJjZTogJ2dhbGxlcnknIH0gOiBwcmV2aWV3KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnNwZWN0SGlzdG9yeUNhcmQoY2FyZElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmluc3BlY3RIYW5kQ2FyZChjYXJkSWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnVwZGF0ZShwcmV2aWV3ID0+IHByZXZpZXcgPyB7IC4uLnByZXZpZXcsIHNvdXJjZTogJ2hpc3RvcnknIH0gOiBwcmV2aWV3KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zcGVjdENoYXJhY3RlcihjYXJkOiBDaHJpc3RpYW5pdHlDaGFyYWN0ZXJJbnN0YW5jZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmZvLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkUHJldmlld0FiaWxpdHlJbmRleC5zZXQoMCk7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXMuY2FyZERlZmluaXRpb24oY2FyZC5jYXJkSWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRQcmV2aWV3LnNldCh7XG4gICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVkQ2FyZFRleHQoZGVmaW5pdGlvbikubmFtZSxcbiAgICAgIGV5ZWJyb3c6IHRoaXMudCgnY2hyaXN0aWFuaXR5Q2hhcmFjdGVyQ2FyZCcpLFxuICAgICAgbWV0YTogYCR7Y2FyZC5hdHRhY2t9LyR7Y2FyZC5jdXJyZW50SHB9YCxcbiAgICAgIGJvZHk6IGNhcmQuY2FuQXR0YWNrID8gdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJSZWFkeScpIDogdGhpcy50KCdjaHJpc3RpYW5pdHlDaGFyYWN0ZXJFeGhhdXN0ZWQnKSxcbiAgICAgIGNhcmRJZDogY2FyZC5jYXJkSWQsXG4gICAgICBzb3VyY2U6ICdib2FyZCcsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNhcmRQcmV2aWV3TWV0YShjYXJkOiBDaHJpc3RpYW5pdHlDYXJkRGVmaW5pdGlvbik6IHN0cmluZyB7XG4gICAgaWYgKGNhcmQudHlwZSA9PT0gJ29mZmVyaW5nJykgcmV0dXJuIGAke2NhcmQub2ZmZXJpbmdWYWx1ZSA/PyBjYXJkLmxpZmUgPz8gMX1gO1xuICAgIGlmIChjYXJkLnR5cGUgPT09ICdsZWFkZXInKSByZXR1cm4gYCR7Y2FyZC5sZWFkZXJMaWZlID8/IGNhcmQubGlmZSA/PyAwfWA7XG4gICAgaWYgKGNhcmQudHlwZSA9PT0gJ2NoYXJhY3RlcicpIHJldHVybiBgJHt0aGlzLnQoJ2NocmlzdGlhbml0eUNvc3QnKX0gJHtjYXJkLmNvc3QgPz8gMH0gwrcgJHtjYXJkLmF0dGFjayA/PyAwfS8ke2NhcmQubGlmZSA/PyAwfWA7XG4gICAgaWYgKGNhcmQuY29zdCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gYCR7dGhpcy50KCdjaHJpc3RpYW5pdHlDb3N0Jyl9ICR7Y2FyZC5jb3N0fWA7XG4gICAgcmV0dXJuIGNhcmQuY29sbGVjdG9yTnVtYmVyID8/IGNhcmQuaWQ7XG4gIH1cblxufVxuIl19