valtech-components 2.0.687 → 2.0.688

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.
@@ -287,7 +287,7 @@ export class BottomNavComponent {
287
287
  }
288
288
  </div>
289
289
  </nav>
290
- `, isInline: true, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 64px;--bottom-nav-fab-size: 56px;--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 16px 16px;border-radius:28px;border-top:none;box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 28px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.04)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(16px + env(safe-area-inset-bottom,0))}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:24px;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:11px;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:24px;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:26px}@media (prefers-color-scheme: dark){.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 0, 0, 0),.8);border-top-color:#ffffff14}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000040}.bottom-nav--floating{box-shadow:0 4px 24px #0003,0 8px 32px #00000026}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff0f}.bottom-nav__fab{box-shadow:0 4px 14px #0006}.bottom-nav__fab:hover{box-shadow:0 6px 20px #00000080}}:host-context(.dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff0f}:host-context(.dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }] }); }
290
+ `, isInline: true, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 64px;--bottom-nav-fab-size: 56px;--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 16px 8px;border-radius:28px;border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08);box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 28px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(8px + env(safe-area-inset-bottom,0))}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:24px;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:11px;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:24px;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:26px}@media (prefers-color-scheme: dark){.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 0, 0, 0),.8);border-top-color:#ffffff14}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000040}.bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}.bottom-nav__fab{box-shadow:0 4px 14px #0006}.bottom-nav__fab:hover{box-shadow:0 6px 20px #00000080}}:host-context(.dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}:host-context(.dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }] }); }
291
291
  }
292
292
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BottomNavComponent, decorators: [{
293
293
  type: Component,
@@ -359,10 +359,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
359
359
  }
360
360
  </div>
361
361
  </nav>
362
- `, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 64px;--bottom-nav-fab-size: 56px;--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 16px 16px;border-radius:28px;border-top:none;box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 28px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.04)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(16px + env(safe-area-inset-bottom,0))}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:24px;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:11px;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:24px;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:26px}@media (prefers-color-scheme: dark){.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 0, 0, 0),.8);border-top-color:#ffffff14}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000040}.bottom-nav--floating{box-shadow:0 4px 24px #0003,0 8px 32px #00000026}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff0f}.bottom-nav__fab{box-shadow:0 4px 14px #0006}.bottom-nav__fab:hover{box-shadow:0 6px 20px #00000080}}:host-context(.dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff0f}:host-context(.dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"] }]
362
+ `, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 64px;--bottom-nav-fab-size: 56px;--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 16px 8px;border-radius:28px;border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08);box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 28px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(8px + env(safe-area-inset-bottom,0))}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:24px;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:11px;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:24px;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:26px}@media (prefers-color-scheme: dark){.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 0, 0, 0),.8);border-top-color:#ffffff14}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000040}.bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}.bottom-nav__fab{box-shadow:0 4px 14px #0006}.bottom-nav__fab:hover{box-shadow:0 6px 20px #00000080}}:host-context(.dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}:host-context(.dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"] }]
363
363
  }], propDecorators: { tabClick: [{
364
364
  type: Output
365
365
  }], fabClick: [{
366
366
  type: Output
367
367
  }] } });
368
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2JvdHRvbS1uYXYvYm90dG9tLW5hdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFJTCxtQkFBbUIsR0FDcEIsTUFBTSxTQUFTLENBQUM7QUFFakIsbUNBQW1DO0FBQ25DLE9BQU8sRUFDTCxJQUFJLEVBQ0osV0FBVyxFQUNYLE1BQU0sRUFDTixhQUFhLEVBQ2IsTUFBTSxFQUNOLGFBQWEsRUFDYixRQUFRLEVBQ1IsZUFBZSxFQUNmLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsR0FBRyxFQUNILFVBQVUsRUFDVixLQUFLLEVBQ0wsWUFBWSxFQUNaLElBQUksRUFDSixXQUFXLEVBQ1gsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixPQUFPLEVBQ1AsY0FBYyxFQUNkLElBQUksRUFDSixXQUFXLEVB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LENBQUM7UUFDRixJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLG1CQUFtQixLQUFLLEdBQUcsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQTVKVSxrQkFBa0I7bUdBQWxCLGtCQUFrQix1UUF2RW5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9FVCxrL01BckVTLFlBQVksb0hBQUUsT0FBTywySkFBRSxlQUFlOzs0RkF3RXJDLGtCQUFrQjtrQkEzRTlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxlQUFlLENBQUMsWUFDdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0VUOzhCQWFTLFFBQVE7c0JBQWpCLE1BQU07Z0JBR0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uSWNvbiwgSW9uUmlwcGxlRWZmZWN0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGZpbHRlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7XG4gIEJvdHRvbU5hdk1ldGFkYXRhLFxuICBCb3R0b21OYXZUYWIsXG4gIEJvdHRvbU5hdkNsaWNrRXZlbnQsXG4gIEJPVFRPTV9OQVZfREVGQVVMVFMsXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBSZWdpc3RlciBjb21tb24gbmF2aWdhdGlvbiBpY29uc1xuaW1wb3J0IHtcbiAgaG9tZSxcbiAgaG9tZU91dGxpbmUsXG4gIHNlYXJjaCxcbiAgc2VhcmNoT3V0bGluZSxcbiAgcGVyc29uLFxuICBwZXJzb25PdXRsaW5lLFxuICBzZXR0aW5ncyxcbiAgc2V0dGluZ3NPdXRsaW5lLFxuICBub3RpZmljYXRpb25zLFxuICBub3RpZmljYXRpb25zT3V0bGluZSxcbiAgYWRkLFxuICBhZGRPdXRsaW5lLFxuICBoZWFydCxcbiAgaGVhcnRPdXRsaW5lLFxuICBjYXJ0LFxuICBjYXJ0T3V0bGluZSxcbiAgY2hhdGJ1YmJsZSxcbiAgY2hhdGJ1YmJsZU91dGxpbmUsXG4gIGNvbXBhc3MsXG4gIGNvbXBhc3NPdXRsaW5lLFxuICBncmlkLFxuICBncmlkT3V0bGluZSxcbiAgbGlzdCxcbiAgbGlzdE91dGxpbmUsXG4gIGNhbGVuZGFyLFxuICBjYWxlbmRhck91dGxpbmUsXG4gIGZvbGRlcixcbiAgZm9sZGVyT3V0bGluZSxcbiAgZG9jdW1lbnRzLFxuICBkb2N1bWVudHNPdXRsaW5lLFxuICBzdGF0c0NoYXJ0LFxuICBzdGF0c0NoYXJ0T3V0bGluZSxcbn0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5hZGRJY29ucyh7XG4gIGhvbWUsXG4gIGhvbWVPdXRsaW5lLFxuICBzZWFyY2gsXG4gIHNlYXJjaE91dGxpbmUsXG4gIHBlcnNvbixcbiAgcGVyc29uT3V0bGluZSxcbiAgc2V0dGluZ3MsXG4gIHNldHRpbmdzT3V0bGluZSxcbiAgbm90aWZpY2F0aW9ucyxcbiAgbm90aWZpY2F0aW9uc091dGxpbmUsXG4gIGFkZCxcbiAgYWRkT3V0bGluZSxcbiAgaGVhcnQsXG4gIGhlYXJ0T3V0bGluZSxcbiAgY2FydCxcbiAgY2FydE91dGxpbmUsXG4gIGNoYXRidWJibGUsXG4gIGNoYXRidWJibGVPdXRsaW5lLFxuICBjb21wYXNzLFxuICBjb21wYXNzT3V0bGluZSxcbiAgZ3JpZCxcbiAgZ3JpZE91dGxpbmUsXG4gIGxpc3QsXG4gIGxpc3RPdXRsaW5lLFxuICBjYWxlbmRhcixcbiAgY2FsZW5kYXJPdXRsaW5lLFxuICBmb2xkZXIsXG4gIGZvbGRlck91dGxpbmUsXG4gIGRvY3VtZW50cyxcbiAgZG9jdW1lbnRzT3V0bGluZSxcbiAgc3RhdHNDaGFydCxcbiAgc3RhdHNDaGFydE91dGxpbmUsXG59KTtcblxuLyoqXG4gKiB2YWwtYm90dG9tLW5hdlxuICpcbiAqIEEgbW9kZXJuIGJvdHRvbSBuYXZpZ2F0aW9uIGJhciBjb21wb25lbnQgd2l0aCBzdXBwb3J0IGZvciB0YWJzLFxuICogb3B0aW9uYWwgY2VudHJhbCBGQUIgYnV0dG9uLCBiYWRnZXMsIGFuZCByb3V0ZS1iYXNlZCBhY3RpdmUgc3RhdGUgZGV0ZWN0aW9uLlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiBgYGBodG1sXG4gKiA8dmFsLWJvdHRvbS1uYXZcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICB0YWJzOiBbXG4gKiAgICAgICB7IHRva2VuOiAnaG9tZScsIGljb246IHsgZGVmYXVsdDogJ2hvbWUtb3V0bGluZScsIGFjdGl2ZTogJ2hvbWUnIH0sIGxhYmVsOiAnSG9tZScsIHJvdXRlOiAnL2FwcC9ob21lJyB9LFxuICogICAgICAgeyB0b2tlbjogJ3NldHRpbmdzJywgaWNvbjogeyBkZWZhdWx0OiAnc2V0dGluZ3Mtb3V0bGluZScsIGFjdGl2ZTogJ3NldHRpbmdzJyB9LCBsYWJlbDogJ1NldHRpbmdzJywgcm91dGU6ICcvYXBwL3NldHRpbmdzJyB9XG4gKiAgICAgXVxuICogICB9XCJcbiAqICAgKHRhYkNsaWNrKT1cIm9uVGFiQ2xpY2soJGV2ZW50KVwiXG4gKiAvPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgV2l0aCBpMThuIGFuZCB0cmFuc2x1Y2VudCB0aGVtZVxuICogYGBgaHRtbFxuICogPHZhbC1ib3R0b20tbmF2XG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgdGFiczogW1xuICogICAgICAgeyB0b2tlbjogJ2hvbWUnLCBpY29uOiB7IGRlZmF1bHQ6ICdob21lLW91dGxpbmUnIH0sIGxhYmVsS2V5OiAnbWVudUhvbWUnLCByb3V0ZTogJy9hcHAvaG9tZScgfSxcbiAqICAgICAgIHsgdG9rZW46ICdzZXR0aW5ncycsIGljb246IHsgZGVmYXVsdDogJ3NldHRpbmdzLW91dGxpbmUnIH0sIGxhYmVsS2V5OiAnbWVudVNldHRpbmdzJywgcm91dGU6ICcvYXBwL3NldHRpbmdzJyB9XG4gKiAgICAgXSxcbiAqICAgICBpMThuTmFtZXNwYWNlOiAnTWVudScsXG4gKiAgICAgdGhlbWU6IHsgdHJhbnNsdWNlbnQ6IHRydWUgfVxuICogICB9XCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWJvdHRvbS1uYXYnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25JY29uLCBJb25SaXBwbGVFZmZlY3RdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuYXZcbiAgICAgIGNsYXNzPVwiYm90dG9tLW5hdlwiXG4gICAgICBbY2xhc3MuYm90dG9tLW5hdi0tZWxldmF0ZWRdPVwiY29uZmlnKCkudGhlbWUuZWxldmF0ZWRcIlxuICAgICAgW2NsYXNzLmJvdHRvbS1uYXYtLXRyYW5zbHVjZW50XT1cImNvbmZpZygpLnRoZW1lLnRyYW5zbHVjZW50XCJcbiAgICAgIFtjbGFzcy5ib3R0b20tbmF2LS1mbG9hdGluZ109XCJjb25maWcoKS50aGVtZS5mbG9hdGluZ1wiXG4gICAgICBbY2xhc3MuYm90dG9tLW5hdi0tc2FmZS1hcmVhXT1cImNvbmZpZygpLnNhZmVBcmVhXCJcbiAgICAgIFtjbGFzcy5ib3R0b20tbmF2LS1oaWRlLWxhYmVsc109XCJjb25maWcoKS5oaWRlTGFiZWxzXCJcbiAgICAgIFtuZ1N0eWxlXT1cImdldFRoZW1lU3R5bGVzKClcIlxuICAgICAgcm9sZT1cIm5hdmlnYXRpb25cIlxuICAgICAgYXJpYS1sYWJlbD1cIkJvdHRvbSBuYXZpZ2F0aW9uXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLW5hdl9fY29udGFpbmVyXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgZGlzcGxheVRhYnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgQGlmIChpdGVtID09PSBudWxsICYmIGNvbmZpZygpLmZhYikge1xuICAgICAgICAgICAgPCEtLSBGQUIgQnV0dG9uIC0tPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJvdHRvbS1uYXZfX2ZhYlwiXG4gICAgICAgICAgICAgIFtjbGFzcy5ib3R0b20tbmF2X19mYWItLXNtYWxsXT1cImNvbmZpZygpLmZhYiEuc2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWZhYi1jb2xvcl09XCJyZXNvbHZlQ29sb3IoY29uZmlnKCkuZmFiIS5jb2xvciB8fCAncHJpbWFyeScpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRmFiQ2xpY2soKVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uZmlnKCkuZmFiIS5hcmlhTGFiZWwgfHwgJ0FjdGlvbiBidXR0b24nXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24tcmlwcGxlLWVmZmVjdD48L2lvbi1yaXBwbGUtZWZmZWN0PlxuICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiY29uZmlnKCkuZmFiIS5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH0gQGVsc2UgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIDwhLS0gVGFiIEl0ZW0gLS0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYm90dG9tLW5hdl9fdGFiXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmJvdHRvbS1uYXZfX3RhYi0tYWN0aXZlXT1cImlzQWN0aXZlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmJvdHRvbS1uYXZfX3RhYi0tZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtYW5pbWF0aW9uXT1cImNvbmZpZygpLmFuaW1hdGlvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvblRhYkNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmFyaWFMYWJlbCB8fCBnZXRMYWJlbChpdGVtKVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJpc0FjdGl2ZShpdGVtKSA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLXJpcHBsZS1lZmZlY3Q+PC9pb24tcmlwcGxlLWVmZmVjdD5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLW5hdl9fdGFiLWljb25cIj5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiZ2V0SWNvbihpdGVtKVwiPjwvaW9uLWljb24+XG5cbiAgICAgICAgICAgICAgICA8IS0tIEJhZGdlIC0tPlxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5iYWRnZSkge1xuICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJib3R0b20tbmF2X19iYWRnZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ib3R0b20tbmF2X19iYWRnZS0tZG90XT1cIml0ZW0uYmFkZ2UuZG90XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIml0ZW0uYmFkZ2UuY29sb3IgPyByZXNvbHZlQ29sb3IoaXRlbS5iYWRnZS5jb2xvcikgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaXRlbS5iYWRnZS5iYWNrZ3JvdW5kQ29sb3IgPyByZXNvbHZlQ29sb3IoaXRlbS5iYWRnZS5iYWNrZ3JvdW5kQ29sb3IpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWl0ZW0uYmFkZ2UuZG90ICYmIGl0ZW0uYmFkZ2UudGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uYmFkZ2UudGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICBAaWYgKCFjb25maWcoKS5oaWRlTGFiZWxzICYmIGdldExhYmVsKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3R0b20tbmF2X190YWItbGFiZWxcIj57eyBnZXRMYWJlbChpdGVtKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L25hdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYm90dG9tLW5hdi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCb3R0b21OYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgbmF2aWdhdGlvbiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKiBDb21wb25lbnQgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PEJvdHRvbU5hdk1ldGFkYXRhPih7IHRhYnM6IFtdIH0pO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYSB0YWIgaXMgY2xpY2tlZCAqL1xuICBAT3V0cHV0KCkgdGFiQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEJvdHRvbU5hdkNsaWNrRXZlbnQ+KCk7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgRkFCIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBmYWJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogQ3VycmVudCBhY3RpdmUgcm91dGUgc2lnbmFsIGZvciByZWFjdGl2ZSB1cGRhdGVzICovXG4gIHByaXZhdGUgY3VycmVudFJvdXRlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIC8qKiBNZXJnZWQgY29uZmlndXJhdGlvbiB3aXRoIGRlZmF1bHRzICovXG4gIGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgLi4uQk9UVE9NX05BVl9ERUZBVUxUUyxcbiAgICAuLi50aGlzLnByb3BzKCksXG4gICAgdGhlbWU6IHtcbiAgICAgIC4uLkJPVFRPTV9OQVZfREVGQVVMVFMudGhlbWUsXG4gICAgICAuLi50aGlzLnByb3BzKCkudGhlbWUsXG4gICAgfSxcbiAgfSkpO1xuXG4gIC8qKiBDb21wdXRlZCB0YWJzIHdpdGggRkFCIGluc2VydGVkIGlmIHByZXNlbnQgKi9cbiAgZGlzcGxheVRhYnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdGFicyA9IHRoaXMuY29uZmlnKCkudGFicztcbiAgICBjb25zdCBmYWIgPSB0aGlzLmNvbmZpZygpLmZhYjtcblxuICAgIGlmICghZmFiKSByZXR1cm4gdGFicztcblxuICAgIC8vIEluc2VydCBwbGFjZWhvbGRlciBhdCBjZW50ZXIgZm9yIEZBQiBwb3NpdGlvbmluZ1xuICAgIGNvbnN0IG1pZHBvaW50ID0gTWF0aC5mbG9vcih0YWJzLmxlbmd0aCAvIDIpO1xuICAgIHJldHVybiBbXG4gICAgICAuLi50YWJzLnNsaWNlKDAsIG1pZHBvaW50KSxcbiAgICAgIG51bGwgYXMgdW5rbm93biBhcyBCb3R0b21OYXZUYWIsIC8vIEZBQiBwbGFjZWhvbGRlclxuICAgICAgLi4udGFicy5zbGljZShtaWRwb2ludCksXG4gICAgXTtcbiAgfSk7XG5cbiAgLyoqIENoZWNrIGlmIGEgdGFiIGlzIGN1cnJlbnRseSBhY3RpdmUgKi9cbiAgaXNBY3RpdmUodGFiOiBCb3R0b21OYXZUYWIpOiBib29sZWFuIHtcbiAgICBjb25zdCByb3V0ZSA9IHRoaXMuY3VycmVudFJvdXRlKCk7XG4gICAgaWYgKCFyb3V0ZSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgLy8gQ2hlY2sgbWFpbiByb3V0ZVxuICAgIGNvbnN0IHRhYlJvdXRlID0gQXJyYXkuaXNBcnJheSh0YWIucm91dGUpID8gdGFiLnJvdXRlLmpvaW4oJy8nKSA6IHRhYi5yb3V0ZTtcbiAgICBpZiAocm91dGUuc3RhcnRzV2l0aCh0YWJSb3V0ZSkpIHJldHVybiB0cnVlO1xuXG4gICAgLy8gQ2hlY2sgYWRkaXRpb25hbCBhY3RpdmUgcm91dGVzXG4gICAgaWYgKHRhYi5hY3RpdmVSb3V0ZXMpIHtcbiAgICAgIHJldHVybiB0YWIuYWN0aXZlUm91dGVzLnNvbWUoKHIpID0+IHJvdXRlLnN0YXJ0c1dpdGgocikpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIGFwcHJvcHJpYXRlIGljb24gZm9yIGEgdGFiIGJhc2VkIG9uIGFjdGl2ZSBzdGF0ZSAqL1xuICBnZXRJY29uKHRhYjogQm90dG9tTmF2VGFiKTogc3RyaW5nIHtcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmlzQWN0aXZlKHRhYik7XG4gICAgaWYgKGFjdGl2ZSAmJiB0YWIuaWNvbi5hY3RpdmUpIHtcbiAgICAgIHJldHVybiB0YWIuaWNvbi5hY3RpdmU7XG4gICAgfVxuICAgIHJldHVybiB0YWIuaWNvbi5kZWZhdWx0O1xuICB9XG5cbiAgLyoqIEdldCB0cmFuc2xhdGVkIGxhYmVsIGZvciBhIHRhYiAqL1xuICBnZXRMYWJlbCh0YWI6IEJvdHRvbU5hdlRhYik6IHN0cmluZyB7XG4gICAgaWYgKHRhYi5sYWJlbCkgcmV0dXJuIHRhYi5sYWJlbDtcbiAgICBpZiAodGFiLmxhYmVsS2V5KSB7XG4gICAgICB0aGlzLmkxOG4ubGFuZygpOyAvLyBUcmFjayBsYW5ndWFnZSBjaGFuZ2VzIGZvciByZWFjdGl2aXR5XG4gICAgICByZXR1cm4gdGhpcy5pMThuLnQodGFiLmxhYmVsS2V5LCB0aGlzLmNvbmZpZygpLmkxOG5OYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvKiogR2V0IENTUyB2YXJpYWJsZXMgZm9yIHRoZW1pbmcgKi9cbiAgZ2V0VGhlbWVTdHlsZXMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgY29uc3QgdGhlbWUgPSB0aGlzLmNvbmZpZygpLnRoZW1lO1xuICAgIHJldHVybiB7XG4gICAgICAnLS1ib3R0b20tbmF2LWJnJzogdGhlbWUuYmFja2dyb3VuZCB8fCAnJyxcbiAgICAgICctLWJvdHRvbS1uYXYtYWN0aXZlJzogdGhpcy5yZXNvbHZlQ29sb3IodGhlbWUuYWN0aXZlQ29sb3IpLFxuICAgICAgJy0tYm90dG9tLW5hdi1pbmFjdGl2ZSc6IHRoaXMucmVzb2x2ZUNvbG9yKHRoZW1lLmluYWN0aXZlQ29sb3IpLFxuICAgICAgJy0tYm90dG9tLW5hdi1yYWRpdXMnOiB0aGVtZS5ib3JkZXJSYWRpdXMgfHwgJycsXG4gICAgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFNldCBpbml0aWFsIHJvdXRlXG4gICAgdGhpcy5jdXJyZW50Um91dGUuc2V0KHRoaXMucm91dGVyLnVybCk7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gcm91dGUgY2hhbmdlc1xuICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50Um91dGUuc2V0KChldmVudCBhcyBOYXZpZ2F0aW9uRW5kKS51cmxBZnRlclJlZGlyZWN0cyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqIEhhbmRsZSB0YWIgY2xpY2sgKi9cbiAgb25UYWJDbGljayh0YWI6IEJvdHRvbU5hdlRhYik6IHZvaWQge1xuICAgIGlmICh0YWIuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIC8vIEVtaXQgZXZlbnRcbiAgICB0aGlzLnRhYkNsaWNrLmVtaXQoe1xuICAgICAgdG9rZW46IHRhYi50b2tlbixcbiAgICAgIGlzRmFiOiBmYWxzZSxcbiAgICAgIHJvdXRlOiB0YWIucm91dGUsXG4gICAgfSk7XG5cbiAgICAvLyBOYXZpZ2F0ZVxuICAgIGNvbnN0IHJvdXRlID0gQXJyYXkuaXNBcnJheSh0YWIucm91dGUpID8gdGFiLnJvdXRlIDogW3RhYi5yb3V0ZV07XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUocm91dGUpO1xuICB9XG5cbiAgLyoqIEhhbmRsZSBGQUIgY2xpY2sgKi9cbiAgb25GYWJDbGljaygpOiB2b2lkIHtcbiAgICBjb25zdCBmYWIgPSB0aGlzLmNvbmZpZygpLmZhYjtcbiAgICBpZiAoIWZhYikgcmV0dXJuO1xuXG4gICAgLy8gRW1pdCBldmVudFxuICAgIHRoaXMuZmFiQ2xpY2suZW1pdCgpO1xuXG4gICAgLy8gTmF2aWdhdGUgaWYgcm91dGUgaXMgZGVmaW5lZCBhbmQgbm90IGFuIGFjdGlvbi1vbmx5IGJ1dHRvblxuICAgIGlmIChmYWIucm91dGUgJiYgIWZhYi5pc0FjdGlvbikge1xuICAgICAgY29uc3Qgcm91dGUgPSBBcnJheS5pc0FycmF5KGZhYi5yb3V0ZSkgPyBmYWIucm91dGUgOiBbZmFiLnJvdXRlXTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHJvdXRlKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVzb2x2ZSBJb25pYyBjb2xvciBuYW1lIHRvIENTUyB2YXJpYWJsZSAqL1xuICByZXNvbHZlQ29sb3IoY29sb3I/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghY29sb3IpIHJldHVybiAnJztcbiAgICBjb25zdCBpb25pY0NvbG9ycyA9IFtcbiAgICAgICdwcmltYXJ5JyxcbiAgICAgICdzZWNvbmRhcnknLFxuICAgICAgJ3RlcnRpYXJ5JyxcbiAgICAgICdzdWNjZXNzJyxcbiAgICAgICd3YXJuaW5nJyxcbiAgICAgICdkYW5nZXInLFxuICAgICAgJ2xpZ2h0JyxcbiAgICAgICdtZWRpdW0nLFxuICAgICAgJ2RhcmsnLFxuICAgIF07XG4gICAgaWYgKGlvbmljQ29sb3JzLmluY2x1ZGVzKGNvbG9yKSkge1xuICAgICAgcmV0dXJuIGB2YXIoLS1pb24tY29sb3ItJHtjb2xvcn0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGNvbG9yO1xuICB9XG59XG4iXX0=
368
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2JvdHRvbS1uYXYvYm90dG9tLW5hdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFJTCxtQkFBbUIsR0FDcEIsTUFBTSxTQUFTLENBQUM7QUFFakIsbUNBQW1DO0FBQ25DLE9BQU8sRUFDTCxJQUFJLEVBQ0osV0FBVyxFQUNYLE1BQU0sRUFDTixhQUFhLEVBQ2IsTUFBTSxFQUNOLGFBQWEsRUFDYixRQUFRLEVBQ1IsZUFBZSxFQUNmLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsR0FBRyxFQUNILFVBQVUsRUFDVixLQUFLLEVBQ0wsWUFBWSxFQUNaLElBQUksRUFDSixXQUFXLEVBQ1gsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixPQUFPLEVBQ1AsY0FBYyxFQUNkLElBQUksRUFDSixXQUFXLEVBQ1gsSUFBSSxFQUNKLFdBQVcsRUFDWCxRQUFRLEVBQ1IsZUFBZSxFQUNmLE1BQU0sRUFDTixhQUFhLEVBQ2IsU0FBUyxFQUNULGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsaUJBQWlCLEdBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7OztBQUV4QixRQUFRLENBQUM7SUFDUCxJQUFJO0lBQ0osV0FBVztJQUNYLE1BQU07SUFDTixhQUFhO0lBQ2IsTUFBTTtJQUNOLGFBQWE7SUFDYixRQUFRO0lBQ1IsZUFBZTtJQUNmLGFBQWE7SUFDYixvQkFBb0I7SUFDcEIsR0FBRztJQUNILFVBQVU7SUFDVixLQUFLO0lBQ0wsWUFBWTtJQUNaLElBQUk7SUFDSixXQUFXO0lBQ1gsVUFBVTtJQUNWLGlCQUFpQjtJQUNqQixPQUFPO0lBQ1AsY0FBYztJQUNkLElBQUk7SUFDSixXQUFXO0lBQ1gsSUFBSTtJQUNKLFdBQVc7SUFDWCxRQUFRO0lBQ1IsZUFBZTtJQUNmLE1BQU07SUFDTixhQUFhO0lBQ2IsU0FBUztJQUNULGdCQUFnQjtJQUNoQixVQUFVO0lBQ1YsaUJBQWlCO0NBQ2xCLENBQUMsQ0FBQztBQUVIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQTRFSCxNQUFNLE9BQU8sa0JBQWtCO0lBM0UvQjtRQTRFVSxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN2QyxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBR25DLDhCQUE4QjtRQUNyQixVQUFLLEdBQUcsS0FBSyxDQUFvQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXhELDBDQUEwQztRQUNoQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFFN0QsbURBQW1EO1FBQ3pDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTlDLHVEQUF1RDtRQUMvQyxpQkFBWSxHQUFHLE1BQU0sQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUUxQyx5Q0FBeUM7UUFDekMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLEdBQUcsbUJBQW1CO1lBQ3RCLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLEtBQUssRUFBRTtnQkFDTCxHQUFHLG1CQUFtQixDQUFDLEtBQUs7Z0JBQzVCLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUs7YUFDdEI7U0FDRixDQUFDLENBQUMsQ0FBQztRQUVKLGlEQUFpRDtRQUNqRCxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztZQUNoQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBRTlCLElBQUksQ0FBQyxHQUFHO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBRXRCLG1EQUFtRDtZQUNuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDN0MsT0FBTztnQkFDTCxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQztnQkFDMUIsSUFBK0IsRUFBRSxrQkFBa0I7Z0JBQ25ELEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7YUFDeEIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0tBbUhKO0lBakhDLHlDQUF5QztJQUN6QyxRQUFRLENBQUMsR0FBaUI7UUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFekIsbUJBQW1CO1FBQ25CLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUM1RSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFNUMsaUNBQWlDO1FBQ2pDLElBQUksR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3JCLE9BQU8sR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsK0RBQStEO0lBQy9ELE9BQU8sQ0FBQyxHQUFpQjtRQUN2QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDOUIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLFFBQVEsQ0FBQyxHQUFpQjtRQUN4QixJQUFJLEdBQUcsQ0FBQyxLQUFLO1lBQUUsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ2hDLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyx3Q0FBd0M7WUFDMUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsb0NBQW9DO0lBQ3BDLGNBQWM7UUFDWixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2xDLE9BQU87WUFDTCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLEVBQUU7WUFDekMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQzNELHVCQUF1QixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUMvRCxxQkFBcUIsRUFBRSxLQUFLLENBQUMsWUFBWSxJQUFJLEVBQUU7U0FDaEQsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sb0JBQW9CO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdkMsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDO2FBQ3ZELFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFFLEtBQXVCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsVUFBVSxDQUFDLEdBQWlCO1FBQzFCLElBQUksR0FBRyxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBRXpCLGFBQWE7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNqQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7WUFDaEIsS0FBSyxFQUFFLEtBQUs7WUFDWixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7U0FDakIsQ0FBQyxDQUFDO1FBRUgsV0FBVztRQUNYLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLFVBQVU7UUFDUixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDO1FBQzlCLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTztRQUVqQixhQUFhO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVyQiw2REFBNkQ7UUFDN0QsSUFBSSxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9CLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELCtDQUErQztJQUMvQyxZQUFZLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLFNBQVM7WUFDVCxXQUFXO1lBQ1gsVUFBVTtZQUNWLFNBQVM7WUFDVCxTQUFTO1lBQ1QsUUFBUTtZQUNSLE9BQU87WUFDUCxRQUFRO1lBQ1IsTUFBTTtTQUNQLENBQUM7UUFDRixJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLG1CQUFtQixLQUFLLEdBQUcsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQTVKVSxrQkFBa0I7bUdBQWxCLGtCQUFrQix1UUF2RW5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9FVCw0a05BckVTLFlBQVksb0hBQUUsT0FBTywySkFBRSxlQUFlOzs0RkF3RXJDLGtCQUFrQjtrQkEzRTlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxlQUFlLENBQUMsWUFDdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0VUOzhCQWFTLFFBQVE7c0JBQWpCLE1BQU07Z0JBR0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uSWNvbiwgSW9uUmlwcGxlRWZmZWN0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGZpbHRlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7XG4gIEJvdHRvbU5hdk1ldGFkYXRhLFxuICBCb3R0b21OYXZUYWIsXG4gIEJvdHRvbU5hdkNsaWNrRXZlbnQsXG4gIEJPVFRPTV9OQVZfREVGQVVMVFMsXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBSZWdpc3RlciBjb21tb24gbmF2aWdhdGlvbiBpY29uc1xuaW1wb3J0IHtcbiAgaG9tZSxcbiAgaG9tZU91dGxpbmUsXG4gIHNlYXJjaCxcbiAgc2VhcmNoT3V0bGluZSxcbiAgcGVyc29uLFxuICBwZXJzb25PdXRsaW5lLFxuICBzZXR0aW5ncyxcbiAgc2V0dGluZ3NPdXRsaW5lLFxuICBub3RpZmljYXRpb25zLFxuICBub3RpZmljYXRpb25zT3V0bGluZSxcbiAgYWRkLFxuICBhZGRPdXRsaW5lLFxuICBoZWFydCxcbiAgaGVhcnRPdXRsaW5lLFxuICBjYXJ0LFxuICBjYXJ0T3V0bGluZSxcbiAgY2hhdGJ1YmJsZSxcbiAgY2hhdGJ1YmJsZU91dGxpbmUsXG4gIGNvbXBhc3MsXG4gIGNvbXBhc3NPdXRsaW5lLFxuICBncmlkLFxuICBncmlkT3V0bGluZSxcbiAgbGlzdCxcbiAgbGlzdE91dGxpbmUsXG4gIGNhbGVuZGFyLFxuICBjYWxlbmRhck91dGxpbmUsXG4gIGZvbGRlcixcbiAgZm9sZGVyT3V0bGluZSxcbiAgZG9jdW1lbnRzLFxuICBkb2N1bWVudHNPdXRsaW5lLFxuICBzdGF0c0NoYXJ0LFxuICBzdGF0c0NoYXJ0T3V0bGluZSxcbn0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5hZGRJY29ucyh7XG4gIGhvbWUsXG4gIGhvbWVPdXRsaW5lLFxuICBzZWFyY2gsXG4gIHNlYXJjaE91dGxpbmUsXG4gIHBlcnNvbixcbiAgcGVyc29uT3V0bGluZSxcbiAgc2V0dGluZ3MsXG4gIHNldHRpbmdzT3V0bGluZSxcbiAgbm90aWZpY2F0aW9ucyxcbiAgbm90aWZpY2F0aW9uc091dGxpbmUsXG4gIGFkZCxcbiAgYWRkT3V0bGluZSxcbiAgaGVhcnQsXG4gIGhlYXJ0T3V0bGluZSxcbiAgY2FydCxcbiAgY2FydE91dGxpbmUsXG4gIGNoYXRidWJibGUsXG4gIGNoYXRidWJibGVPdXRsaW5lLFxuICBjb21wYXNzLFxuICBjb21wYXNzT3V0bGluZSxcbiAgZ3JpZCxcbiAgZ3JpZE91dGxpbmUsXG4gIGxpc3QsXG4gIGxpc3RPdXRsaW5lLFxuICBjYWxlbmRhcixcbiAgY2FsZW5kYXJPdXRsaW5lLFxuICBmb2xkZXIsXG4gIGZvbGRlck91dGxpbmUsXG4gIGRvY3VtZW50cyxcbiAgZG9jdW1lbnRzT3V0bGluZSxcbiAgc3RhdHNDaGFydCxcbiAgc3RhdHNDaGFydE91dGxpbmUsXG59KTtcblxuLyoqXG4gKiB2YWwtYm90dG9tLW5hdlxuICpcbiAqIEEgbW9kZXJuIGJvdHRvbSBuYXZpZ2F0aW9uIGJhciBjb21wb25lbnQgd2l0aCBzdXBwb3J0IGZvciB0YWJzLFxuICogb3B0aW9uYWwgY2VudHJhbCBGQUIgYnV0dG9uLCBiYWRnZXMsIGFuZCByb3V0ZS1iYXNlZCBhY3RpdmUgc3RhdGUgZGV0ZWN0aW9uLlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiBgYGBodG1sXG4gKiA8dmFsLWJvdHRvbS1uYXZcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICB0YWJzOiBbXG4gKiAgICAgICB7IHRva2VuOiAnaG9tZScsIGljb246IHsgZGVmYXVsdDogJ2hvbWUtb3V0bGluZScsIGFjdGl2ZTogJ2hvbWUnIH0sIGxhYmVsOiAnSG9tZScsIHJvdXRlOiAnL2FwcC9ob21lJyB9LFxuICogICAgICAgeyB0b2tlbjogJ3NldHRpbmdzJywgaWNvbjogeyBkZWZhdWx0OiAnc2V0dGluZ3Mtb3V0bGluZScsIGFjdGl2ZTogJ3NldHRpbmdzJyB9LCBsYWJlbDogJ1NldHRpbmdzJywgcm91dGU6ICcvYXBwL3NldHRpbmdzJyB9XG4gKiAgICAgXVxuICogICB9XCJcbiAqICAgKHRhYkNsaWNrKT1cIm9uVGFiQ2xpY2soJGV2ZW50KVwiXG4gKiAvPlxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgV2l0aCBpMThuIGFuZCB0cmFuc2x1Y2VudCB0aGVtZVxuICogYGBgaHRtbFxuICogPHZhbC1ib3R0b20tbmF2XG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgdGFiczogW1xuICogICAgICAgeyB0b2tlbjogJ2hvbWUnLCBpY29uOiB7IGRlZmF1bHQ6ICdob21lLW91dGxpbmUnIH0sIGxhYmVsS2V5OiAnbWVudUhvbWUnLCByb3V0ZTogJy9hcHAvaG9tZScgfSxcbiAqICAgICAgIHsgdG9rZW46ICdzZXR0aW5ncycsIGljb246IHsgZGVmYXVsdDogJ3NldHRpbmdzLW91dGxpbmUnIH0sIGxhYmVsS2V5OiAnbWVudVNldHRpbmdzJywgcm91dGU6ICcvYXBwL3NldHRpbmdzJyB9XG4gKiAgICAgXSxcbiAqICAgICBpMThuTmFtZXNwYWNlOiAnTWVudScsXG4gKiAgICAgdGhlbWU6IHsgdHJhbnNsdWNlbnQ6IHRydWUgfVxuICogICB9XCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWJvdHRvbS1uYXYnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25JY29uLCBJb25SaXBwbGVFZmZlY3RdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuYXZcbiAgICAgIGNsYXNzPVwiYm90dG9tLW5hdlwiXG4gICAgICBbY2xhc3MuYm90dG9tLW5hdi0tZWxldmF0ZWRdPVwiY29uZmlnKCkudGhlbWUuZWxldmF0ZWRcIlxuICAgICAgW2NsYXNzLmJvdHRvbS1uYXYtLXRyYW5zbHVjZW50XT1cImNvbmZpZygpLnRoZW1lLnRyYW5zbHVjZW50XCJcbiAgICAgIFtjbGFzcy5ib3R0b20tbmF2LS1mbG9hdGluZ109XCJjb25maWcoKS50aGVtZS5mbG9hdGluZ1wiXG4gICAgICBbY2xhc3MuYm90dG9tLW5hdi0tc2FmZS1hcmVhXT1cImNvbmZpZygpLnNhZmVBcmVhXCJcbiAgICAgIFtjbGFzcy5ib3R0b20tbmF2LS1oaWRlLWxhYmVsc109XCJjb25maWcoKS5oaWRlTGFiZWxzXCJcbiAgICAgIFtuZ1N0eWxlXT1cImdldFRoZW1lU3R5bGVzKClcIlxuICAgICAgcm9sZT1cIm5hdmlnYXRpb25cIlxuICAgICAgYXJpYS1sYWJlbD1cIkJvdHRvbSBuYXZpZ2F0aW9uXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLW5hdl9fY29udGFpbmVyXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgZGlzcGxheVRhYnMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgQGlmIChpdGVtID09PSBudWxsICYmIGNvbmZpZygpLmZhYikge1xuICAgICAgICAgICAgPCEtLSBGQUIgQnV0dG9uIC0tPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJvdHRvbS1uYXZfX2ZhYlwiXG4gICAgICAgICAgICAgIFtjbGFzcy5ib3R0b20tbmF2X19mYWItLXNtYWxsXT1cImNvbmZpZygpLmZhYiEuc2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICAgICAgICAgIFtzdHlsZS4tLWZhYi1jb2xvcl09XCJyZXNvbHZlQ29sb3IoY29uZmlnKCkuZmFiIS5jb2xvciB8fCAncHJpbWFyeScpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRmFiQ2xpY2soKVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uZmlnKCkuZmFiIS5hcmlhTGFiZWwgfHwgJ0FjdGlvbiBidXR0b24nXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24tcmlwcGxlLWVmZmVjdD48L2lvbi1yaXBwbGUtZWZmZWN0PlxuICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiY29uZmlnKCkuZmFiIS5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH0gQGVsc2UgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIDwhLS0gVGFiIEl0ZW0gLS0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYm90dG9tLW5hdl9fdGFiXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmJvdHRvbS1uYXZfX3RhYi0tYWN0aXZlXT1cImlzQWN0aXZlKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmJvdHRvbS1uYXZfX3RhYi0tZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtYW5pbWF0aW9uXT1cImNvbmZpZygpLmFuaW1hdGlvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvblRhYkNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmFyaWFMYWJlbCB8fCBnZXRMYWJlbChpdGVtKVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJpc0FjdGl2ZShpdGVtKSA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLXJpcHBsZS1lZmZlY3Q+PC9pb24tcmlwcGxlLWVmZmVjdD5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLW5hdl9fdGFiLWljb25cIj5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiZ2V0SWNvbihpdGVtKVwiPjwvaW9uLWljb24+XG5cbiAgICAgICAgICAgICAgICA8IS0tIEJhZGdlIC0tPlxuICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5iYWRnZSkge1xuICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJib3R0b20tbmF2X19iYWRnZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ib3R0b20tbmF2X19iYWRnZS0tZG90XT1cIml0ZW0uYmFkZ2UuZG90XCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIml0ZW0uYmFkZ2UuY29sb3IgPyByZXNvbHZlQ29sb3IoaXRlbS5iYWRnZS5jb2xvcikgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiaXRlbS5iYWRnZS5iYWNrZ3JvdW5kQ29sb3IgPyByZXNvbHZlQ29sb3IoaXRlbS5iYWRnZS5iYWNrZ3JvdW5kQ29sb3IpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWl0ZW0uYmFkZ2UuZG90ICYmIGl0ZW0uYmFkZ2UudGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uYmFkZ2UudGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICBAaWYgKCFjb25maWcoKS5oaWRlTGFiZWxzICYmIGdldExhYmVsKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3R0b20tbmF2X190YWItbGFiZWxcIj57eyBnZXRMYWJlbChpdGVtKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L25hdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYm90dG9tLW5hdi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCb3R0b21OYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgbmF2aWdhdGlvbiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKiBDb21wb25lbnQgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PEJvdHRvbU5hdk1ldGFkYXRhPih7IHRhYnM6IFtdIH0pO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYSB0YWIgaXMgY2xpY2tlZCAqL1xuICBAT3V0cHV0KCkgdGFiQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEJvdHRvbU5hdkNsaWNrRXZlbnQ+KCk7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgRkFCIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBmYWJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogQ3VycmVudCBhY3RpdmUgcm91dGUgc2lnbmFsIGZvciByZWFjdGl2ZSB1cGRhdGVzICovXG4gIHByaXZhdGUgY3VycmVudFJvdXRlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIC8qKiBNZXJnZWQgY29uZmlndXJhdGlvbiB3aXRoIGRlZmF1bHRzICovXG4gIGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgLi4uQk9UVE9NX05BVl9ERUZBVUxUUyxcbiAgICAuLi50aGlzLnByb3BzKCksXG4gICAgdGhlbWU6IHtcbiAgICAgIC4uLkJPVFRPTV9OQVZfREVGQVVMVFMudGhlbWUsXG4gICAgICAuLi50aGlzLnByb3BzKCkudGhlbWUsXG4gICAgfSxcbiAgfSkpO1xuXG4gIC8qKiBDb21wdXRlZCB0YWJzIHdpdGggRkFCIGluc2VydGVkIGlmIHByZXNlbnQgKi9cbiAgZGlzcGxheVRhYnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdGFicyA9IHRoaXMuY29uZmlnKCkudGFicztcbiAgICBjb25zdCBmYWIgPSB0aGlzLmNvbmZpZygpLmZhYjtcblxuICAgIGlmICghZmFiKSByZXR1cm4gdGFicztcblxuICAgIC8vIEluc2VydCBwbGFjZWhvbGRlciBhdCBjZW50ZXIgZm9yIEZBQiBwb3NpdGlvbmluZ1xuICAgIGNvbnN0IG1pZHBvaW50ID0gTWF0aC5mbG9vcih0YWJzLmxlbmd0aCAvIDIpO1xuICAgIHJldHVybiBbXG4gICAgICAuLi50YWJzLnNsaWNlKDAsIG1pZHBvaW50KSxcbiAgICAgIG51bGwgYXMgdW5rbm93biBhcyBCb3R0b21OYXZUYWIsIC8vIEZBQiBwbGFjZWhvbGRlclxuICAgICAgLi4udGFicy5zbGljZShtaWRwb2ludCksXG4gICAgXTtcbiAgfSk7XG5cbiAgLyoqIENoZWNrIGlmIGEgdGFiIGlzIGN1cnJlbnRseSBhY3RpdmUgKi9cbiAgaXNBY3RpdmUodGFiOiBCb3R0b21OYXZUYWIpOiBib29sZWFuIHtcbiAgICBjb25zdCByb3V0ZSA9IHRoaXMuY3VycmVudFJvdXRlKCk7XG4gICAgaWYgKCFyb3V0ZSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgLy8gQ2hlY2sgbWFpbiByb3V0ZVxuICAgIGNvbnN0IHRhYlJvdXRlID0gQXJyYXkuaXNBcnJheSh0YWIucm91dGUpID8gdGFiLnJvdXRlLmpvaW4oJy8nKSA6IHRhYi5yb3V0ZTtcbiAgICBpZiAocm91dGUuc3RhcnRzV2l0aCh0YWJSb3V0ZSkpIHJldHVybiB0cnVlO1xuXG4gICAgLy8gQ2hlY2sgYWRkaXRpb25hbCBhY3RpdmUgcm91dGVzXG4gICAgaWYgKHRhYi5hY3RpdmVSb3V0ZXMpIHtcbiAgICAgIHJldHVybiB0YWIuYWN0aXZlUm91dGVzLnNvbWUoKHIpID0+IHJvdXRlLnN0YXJ0c1dpdGgocikpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIGFwcHJvcHJpYXRlIGljb24gZm9yIGEgdGFiIGJhc2VkIG9uIGFjdGl2ZSBzdGF0ZSAqL1xuICBnZXRJY29uKHRhYjogQm90dG9tTmF2VGFiKTogc3RyaW5nIHtcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmlzQWN0aXZlKHRhYik7XG4gICAgaWYgKGFjdGl2ZSAmJiB0YWIuaWNvbi5hY3RpdmUpIHtcbiAgICAgIHJldHVybiB0YWIuaWNvbi5hY3RpdmU7XG4gICAgfVxuICAgIHJldHVybiB0YWIuaWNvbi5kZWZhdWx0O1xuICB9XG5cbiAgLyoqIEdldCB0cmFuc2xhdGVkIGxhYmVsIGZvciBhIHRhYiAqL1xuICBnZXRMYWJlbCh0YWI6IEJvdHRvbU5hdlRhYik6IHN0cmluZyB7XG4gICAgaWYgKHRhYi5sYWJlbCkgcmV0dXJuIHRhYi5sYWJlbDtcbiAgICBpZiAodGFiLmxhYmVsS2V5KSB7XG4gICAgICB0aGlzLmkxOG4ubGFuZygpOyAvLyBUcmFjayBsYW5ndWFnZSBjaGFuZ2VzIGZvciByZWFjdGl2aXR5XG4gICAgICByZXR1cm4gdGhpcy5pMThuLnQodGFiLmxhYmVsS2V5LCB0aGlzLmNvbmZpZygpLmkxOG5OYW1lc3BhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvKiogR2V0IENTUyB2YXJpYWJsZXMgZm9yIHRoZW1pbmcgKi9cbiAgZ2V0VGhlbWVTdHlsZXMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgY29uc3QgdGhlbWUgPSB0aGlzLmNvbmZpZygpLnRoZW1lO1xuICAgIHJldHVybiB7XG4gICAgICAnLS1ib3R0b20tbmF2LWJnJzogdGhlbWUuYmFja2dyb3VuZCB8fCAnJyxcbiAgICAgICctLWJvdHRvbS1uYXYtYWN0aXZlJzogdGhpcy5yZXNvbHZlQ29sb3IodGhlbWUuYWN0aXZlQ29sb3IpLFxuICAgICAgJy0tYm90dG9tLW5hdi1pbmFjdGl2ZSc6IHRoaXMucmVzb2x2ZUNvbG9yKHRoZW1lLmluYWN0aXZlQ29sb3IpLFxuICAgICAgJy0tYm90dG9tLW5hdi1yYWRpdXMnOiB0aGVtZS5ib3JkZXJSYWRpdXMgfHwgJycsXG4gICAgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFNldCBpbml0aWFsIHJvdXRlXG4gICAgdGhpcy5jdXJyZW50Um91dGUuc2V0KHRoaXMucm91dGVyLnVybCk7XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gcm91dGUgY2hhbmdlc1xuICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50Um91dGUuc2V0KChldmVudCBhcyBOYXZpZ2F0aW9uRW5kKS51cmxBZnRlclJlZGlyZWN0cyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqIEhhbmRsZSB0YWIgY2xpY2sgKi9cbiAgb25UYWJDbGljayh0YWI6IEJvdHRvbU5hdlRhYik6IHZvaWQge1xuICAgIGlmICh0YWIuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIC8vIEVtaXQgZXZlbnRcbiAgICB0aGlzLnRhYkNsaWNrLmVtaXQoe1xuICAgICAgdG9rZW46IHRhYi50b2tlbixcbiAgICAgIGlzRmFiOiBmYWxzZSxcbiAgICAgIHJvdXRlOiB0YWIucm91dGUsXG4gICAgfSk7XG5cbiAgICAvLyBOYXZpZ2F0ZVxuICAgIGNvbnN0IHJvdXRlID0gQXJyYXkuaXNBcnJheSh0YWIucm91dGUpID8gdGFiLnJvdXRlIDogW3RhYi5yb3V0ZV07XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUocm91dGUpO1xuICB9XG5cbiAgLyoqIEhhbmRsZSBGQUIgY2xpY2sgKi9cbiAgb25GYWJDbGljaygpOiB2b2lkIHtcbiAgICBjb25zdCBmYWIgPSB0aGlzLmNvbmZpZygpLmZhYjtcbiAgICBpZiAoIWZhYikgcmV0dXJuO1xuXG4gICAgLy8gRW1pdCBldmVudFxuICAgIHRoaXMuZmFiQ2xpY2suZW1pdCgpO1xuXG4gICAgLy8gTmF2aWdhdGUgaWYgcm91dGUgaXMgZGVmaW5lZCBhbmQgbm90IGFuIGFjdGlvbi1vbmx5IGJ1dHRvblxuICAgIGlmIChmYWIucm91dGUgJiYgIWZhYi5pc0FjdGlvbikge1xuICAgICAgY29uc3Qgcm91dGUgPSBBcnJheS5pc0FycmF5KGZhYi5yb3V0ZSkgPyBmYWIucm91dGUgOiBbZmFiLnJvdXRlXTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHJvdXRlKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVzb2x2ZSBJb25pYyBjb2xvciBuYW1lIHRvIENTUyB2YXJpYWJsZSAqL1xuICByZXNvbHZlQ29sb3IoY29sb3I/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghY29sb3IpIHJldHVybiAnJztcbiAgICBjb25zdCBpb25pY0NvbG9ycyA9IFtcbiAgICAgICdwcmltYXJ5JyxcbiAgICAgICdzZWNvbmRhcnknLFxuICAgICAgJ3RlcnRpYXJ5JyxcbiAgICAgICdzdWNjZXNzJyxcbiAgICAgICd3YXJuaW5nJyxcbiAgICAgICdkYW5nZXInLFxuICAgICAgJ2xpZ2h0JyxcbiAgICAgICdtZWRpdW0nLFxuICAgICAgJ2RhcmsnLFxuICAgIF07XG4gICAgaWYgKGlvbmljQ29sb3JzLmluY2x1ZGVzKGNvbG9yKSkge1xuICAgICAgcmV0dXJuIGB2YXIoLS1pb24tY29sb3ItJHtjb2xvcn0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGNvbG9yO1xuICB9XG59XG4iXX0=
@@ -116,6 +116,14 @@ export class TypedCollection {
116
116
  const results = await this.firestore.getDocs(this.collectionPath, queryOptions);
117
117
  return results.length;
118
118
  }
119
+ /**
120
+ * Obtiene todos los documentos (one-time fetch sin listener).
121
+ * A diferencia de watchAll(), no mantiene subscripciones activas.
122
+ */
123
+ async getAllOnce(options) {
124
+ const queryOptions = this.applyDefaultFilters(options);
125
+ return this.firestore.getDocs(this.collectionPath, queryOptions);
126
+ }
119
127
  /**
120
128
  * Verifica si un documento existe.
121
129
  */
@@ -251,4 +259,4 @@ export class TypedCollection {
251
259
  return this.collectionPath;
252
260
  }
253
261
  }
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLWNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2ZpcmViYXNlL2ZpcmVzdG9yZS1jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBb0MzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBRUgsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUFHLENBQUM7SUFFbkQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUNKLGNBQXNCLEVBQ3RCLE9BQTJCO1FBRTNCLE9BQU8sSUFBSSxlQUFlLENBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekUsQ0FBQzsrR0FmVSwwQkFBMEI7bUhBQTFCLDBCQUEwQixjQURiLE1BQU07OzRGQUNuQiwwQkFBMEI7a0JBRHRDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQW1CbEM7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUNVLFNBQTJCLEVBQzNCLGNBQXNCLEVBQzlCLFVBQTZCLEVBQUU7UUFGdkIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFHOUIsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLEdBQUcsT0FBTztTQUNYLENBQUM7SUFDSixDQUFDO0lBRUQsOEVBQThFO0lBQzlFLG9CQUFvQjtJQUNwQiw4RUFBOEU7SUFFOUU7O09BRUc7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQVU7UUFDdEIsT0FBTyxJQUFJLENBQUMs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QUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1NBQzlELENBQUM7SUFDSixDQUFDO0lBRUQsOEVBQThFO0lBQzlFLG1CQUFtQjtJQUNuQiw4RUFBOEU7SUFFOUU7O09BRUc7SUFDSyxtQkFBbUIsQ0FBQyxPQUFzQjtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM3QixPQUFPLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUVELDhDQUE4QztRQUM5QyxNQUFNLFdBQVcsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQWEsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFakYsT0FBTztZQUNMLEdBQUcsT0FBTztZQUNWLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLFdBQVcsQ0FBQztTQUNoRCxDQUFDO0lBQ0osQ0FBQztJQUVELDhFQUE4RTtJQUM5RSxhQUFhO0lBQ2IsOEVBQThFO0lBRTlFOztPQUVHO0lBQ0gsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGaXJlc3RvcmUgQ29sbGVjdGlvbiBGYWN0b3J5XG4gKlxuICogUGF0csOzbiBmYWN0b3J5IHBhcmEgY3JlYXIgaW5zdGFuY2lhcyBkZSBjb2xlY2Npw7NuIHRpcGFkYXMuXG4gKiBSZWVtcGxhemEgbGEgY2xhc2UgYWJzdHJhY3RhIHBhcmEgZXZpdGFyIHByb2JsZW1hcyBjb24gaW5qZWN0KCkgZW4gY2xhc2VzIG5vLWluamVjdGFibGUuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGaXJlc3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi9maXJlc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBGaXJlc3RvcmVEb2N1bWVudCwgUGFnaW5hdGVkUmVzdWx0LCBRdWVyeU9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBPcGNpb25lcyBkZSBjb25maWd1cmFjacOzbiBwYXJhIHVuYSBjb2xlY2Npw7NuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFNpIHRydWUsIHVzYSBzb2Z0IGRlbGV0ZSAobWFyY2EgZGVsZXRlZEF0IGVuIGx1Z2FyIGRlIGVsaW1pbmFyKS5cbiAgICogRGVmYXVsdDogZmFsc2VcbiAgICovXG4gIHNvZnREZWxldGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTaSB0cnVlLCBtYW5lamEgYXV0b23DoXRpY2FtZW50ZSBjcmVhdGVkQXQvdXBkYXRlZEF0LlxuICAgKiBEZWZhdWx0OiB0cnVlXG4gICAqL1xuICB0aW1lc3RhbXBzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZWZlcmVuY2lhIGEgdW5hIHN1Yi1jb2xlY2Npw7NuIHRpcGFkYS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJDb2xsZWN0aW9uUmVmPFQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudD4ge1xuICBnZXRCeUlkKGlkOiBzdHJpbmcpOiBQcm9taXNlPFQgfCBudWxsPjtcbiAgZ2V0QWxsKG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPFRbXT47XG4gIHdhdGNoKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQgfCBudWxsPjtcbiAgd2F0Y2hBbGwob3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6IE9ic2VydmFibGU8VFtdPjtcbiAgY3JlYXRlKGRhdGE6IE9taXQ8VCwgJ2lkJyB8ICdjcmVhdGVkQXQnIHwgJ3VwZGF0ZWRBdCc+KTogUHJvbWlzZTxUPjtcbiAgdXBkYXRlKGlkOiBzdHJpbmcsIGRhdGE6IFBhcnRpYWw8VD4pOiBQcm9taXNlPHZvaWQ+O1xuICBkZWxldGUoaWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogRmFjdG9yeSBwYXJhIGNyZWFyIGluc3RhbmNpYXMgZGUgY29sZWNjacOzbiB0aXBhZGFzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuICogZXhwb3J0IGNsYXNzIFVzZXJzU2VydmljZSB7XG4gKiAgIHByaXZhdGUgdXNlcnMgPSBpbmplY3QoRmlyZXN0b3JlQ29sbGVjdGlvbkZhY3RvcnkpLmNyZWF0ZTxVc2VyPigndXNlcnMnKTtcbiAqXG4gKiAgIGdldEFsbCA9ICgpID0+IHRoaXMudXNlcnMuZ2V0QWxsKCk7XG4gKiAgIGdldEJ5SWQgPSAoaWQ6IHN0cmluZykgPT4gdGhpcy51c2Vycy5nZXRCeUlkKGlkKTtcbiAqICAgY3JlYXRlID0gKGRhdGE6IE9taXQ8VXNlciwgJ2lkJz4pID0+IHRoaXMudXNlcnMuY3JlYXRlKGRhdGEpO1xuICpcbiAqICAgLy8gTcOpdG9kb3MgcGVyc29uYWxpemFkb3NcbiAqICAgYXN5bmMgZ2V0QWN0aXZlVXNlcnMoKTogUHJvbWlzZTxVc2VyW10+IHtcbiAqICAgICByZXR1cm4gdGhpcy51c2Vycy5xdWVyeSh7XG4gKiAgICAgICB3aGVyZTogW3sgZmllbGQ6ICdhY3RpdmUnLCBvcGVyYXRvcjogJz09JywgdmFsdWU6IHRydWUgfV1cbiAqICAgICB9KTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgRmlyZXN0b3JlQ29sbGVjdGlvbkZhY3Rvcnkge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpcmVzdG9yZTogRmlyZXN0b3JlU2VydmljZSkge31cblxuICAvKipcbiAgICogQ3JlYSB1bmEgaW5zdGFuY2lhIGRlIGNvbGVjY2nDs24gdGlwYWRhLlxuICAgKlxuICAgKiBAcGFyYW0gY29sbGVjdGlvblBhdGggLSBSdXRhIGRlIGxhIGNvbGVjY2nDs24gZW4gRmlyZXN0b3JlXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3BjaW9uZXMgZGUgY29uZmlndXJhY2nDs25cbiAgICogQHJldHVybnMgSW5zdGFuY2lhIGRlIFR5cGVkQ29sbGVjdGlvblxuICAgKi9cbiAgY3JlYXRlPFQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudD4oXG4gICAgY29sbGVjdGlvblBhdGg6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQ29sbGVjdGlvbk9wdGlvbnNcbiAgKTogVHlwZWRDb2xsZWN0aW9uPFQ+IHtcbiAgICByZXR1cm4gbmV3IFR5cGVkQ29sbGVjdGlvbjxUPih0aGlzLmZpcmVzdG9yZSwgY29sbGVjdGlvblBhdGgsIG9wdGlvbnMpO1xuICB9XG59XG5cbi8qKlxuICogQ29sZWNjacOzbiB0aXBhZGEgY29uIG3DqXRvZG9zIENSVUQuXG4gKlxuICogTk8gdXNhIGluamVjdCgpIC0gcmVjaWJlIEZpcmVzdG9yZVNlcnZpY2UgcG9yIGNvbnN0cnVjdG9yLlxuICogRXN0byBldml0YSBlbCBlcnJvciBORzAyMDMuXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlZENvbGxlY3Rpb248VCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogQ29sbGVjdGlvbk9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmaXJlc3RvcmU6IEZpcmVzdG9yZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2xsZWN0aW9uUGF0aDogc3RyaW5nLFxuICAgIG9wdGlvbnM6IENvbGxlY3Rpb25PcHRpb25zID0ge31cbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgc29mdERlbGV0ZTogZmFsc2UsXG4gICAgICB0aW1lc3RhbXBzOiB0cnVlLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIExFQ1RVUkFTIE9ORS1USU1FXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHVuIGRvY3VtZW50byBwb3IgSUQuXG4gICAqL1xuICBhc3luYyBnZXRCeUlkKGlkOiBzdHJpbmcpOiBQcm9taXNlPFQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLmdldERvYzxUPih0aGlzLmNvbGxlY3Rpb25QYXRoLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSB0b2RvcyBsb3MgZG9jdW1lbnRvcyBkZSBsYSBjb2xlY2Npw7NuLlxuICAgKi9cbiAgYXN5bmMgZ2V0QWxsKG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPFRbXT4ge1xuICAgIGNvbnN0IHF1ZXJ5T3B0aW9ucyA9IHRoaXMuYXBwbHlEZWZhdWx0RmlsdGVycyhvcHRpb25zKTtcbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmUuZ2V0RG9jczxUPih0aGlzLmNvbGxlY3Rpb25QYXRoLCBxdWVyeU9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVqZWN1dGEgdW5hIHF1ZXJ5IHBlcnNvbmFsaXphZGEuXG4gICAqL1xuICBhc3luYyBxdWVyeShvcHRpb25zOiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPFRbXT4ge1xuICAgIGNvbnN0IHF1ZXJ5T3B0aW9ucyA9IHRoaXMuYXBwbHlEZWZhdWx0RmlsdGVycyhvcHRpb25zKTtcbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmUuZ2V0RG9jczxUPih0aGlzLmNvbGxlY3Rpb25QYXRoLCBxdWVyeU9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgZG9jdW1lbnRvcyBjb24gcGFnaW5hY2nDs24uXG4gICAqL1xuICBhc3luYyBwYWdpbmF0ZShvcHRpb25zOiBRdWVyeU9wdGlvbnMgJiB7IGxpbWl0OiBudW1iZXIgfSk6IFByb21pc2U8UGFnaW5hdGVkUmVzdWx0PFQ+PiB7XG4gICAgY29uc3QgcXVlcnlPcHRpb25zID0gdGhpcy5hcHBseURlZmF1bHRGaWx0ZXJzKG9wdGlvbnMpIGFzIFF1ZXJ5T3B0aW9ucyAmIHsgbGltaXQ6IG51bWJlciB9O1xuICAgIHJldHVybiB0aGlzLmZpcmVzdG9yZS5nZXRQYWdpbmF0ZWQ8VD4odGhpcy5jb2xsZWN0aW9uUGF0aCwgcXVlcnlPcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGVsIHByaW1lciBkb2N1bWVudG8gcXVlIGNvaW5jaWRhIGNvbiBsYSBxdWVyeS5cbiAgICovXG4gIGFzeW5jIGdldEZpcnN0KG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPFQgfCBudWxsPiB7XG4gICAgY29uc3QgcXVlcnlPcHRpb25zID0gdGhpcy5hcHBseURlZmF1bHRGaWx0ZXJzKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBsaW1pdDogMSxcbiAgICB9KTtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5maXJlc3RvcmUuZ2V0RG9jczxUPih0aGlzLmNvbGxlY3Rpb25QYXRoLCBxdWVyeU9wdGlvbnMpO1xuICAgIHJldHVybiByZXN1bHRzWzBdID8/IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQ3VlbnRhIGxvcyBkb2N1bWVudG9zIHF1ZSBjb2luY2lkZW4gY29uIGxhIHF1ZXJ5LlxuICAgKiBOb3RhOiBFc3RvIGNhcmdhIHRvZG9zIGxvcyBkb2N1bWVudG9zLCB1c2FyIGNvbiBjdWlkYWRvIGVuIGNvbGVjY2lvbmVzIGdyYW5kZXMuXG4gICAqL1xuICBhc3luYyBjb3VudChvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSB0aGlzLmFwcGx5RGVmYXVsdEZpbHRlcnMob3B0aW9ucyk7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMuZmlyZXN0b3JlLmdldERvY3M8VD4odGhpcy5jb2xsZWN0aW9uUGF0aCwgcXVlcnlPcHRpb25zKTtcbiAgICByZXR1cm4gcmVzdWx0cy5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgdW4gZG9jdW1lbnRvIGV4aXN0ZS5cbiAgICovXG4gIGFzeW5jIGV4aXN0cyhpZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLmV4aXN0cyh0aGlzLmNvbGxlY3Rpb25QYXRoLCBpZCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU1VCU0NSSVBDSU9ORVMgUkVBTC1USU1FXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBTdXNjcmliZSBhIGNhbWJpb3MgZGUgdW4gZG9jdW1lbnRvLlxuICAgKi9cbiAgd2F0Y2goaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmUuZG9jQ2hhbmdlczxUPih0aGlzLmNvbGxlY3Rpb25QYXRoLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogU3VzY3JpYmUgYSBjYW1iaW9zIGRlIGxhIGNvbGVjY2nDs24uXG4gICAqL1xuICB3YXRjaEFsbChvcHRpb25zPzogUXVlcnlPcHRpb25zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSB0aGlzLmFwcGx5RGVmYXVsdEZpbHRlcnMob3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLmNvbGxlY3Rpb25DaGFuZ2VzPFQ+KHRoaXMuY29sbGVjdGlvblBhdGgsIHF1ZXJ5T3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogU3VzY3JpYmUgYSB1bmEgcXVlcnkgcGVyc29uYWxpemFkYS5cbiAgICovXG4gIHdhdGNoUXVlcnkob3B0aW9uczogUXVlcnlPcHRpb25zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSB0aGlzLmFwcGx5RGVmYXVsdEZpbHRlcnMob3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLmNvbGxlY3Rpb25DaGFuZ2VzPFQ+KHRoaXMuY29sbGVjdGlvblBhdGgsIHF1ZXJ5T3B0aW9ucyk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRVNDUklUVVJBXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBDcmVhIHVuIG51ZXZvIGRvY3VtZW50byBjb24gSUQgYXV0by1nZW5lcmFkby5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZShkYXRhOiBPbWl0PFQsICdpZCcgfCAnY3JlYXRlZEF0JyB8ICd1cGRhdGVkQXQnPik6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLmZpcmVzdG9yZS5hZGREb2M8VD4odGhpcy5jb2xsZWN0aW9uUGF0aCwgZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYSB1biBkb2N1bWVudG8gY29uIElEIGVzcGVjw61maWNvLlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlV2l0aElkKGlkOiBzdHJpbmcsIGRhdGE6IE9taXQ8VCwgJ2lkJz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmUuc2V0RG9jPFQ+KHRoaXMuY29sbGVjdGlvblBhdGgsIGlkLCBkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgY2FtcG9zIGRlIHVuIGRvY3VtZW50by5cbiAgICovXG4gIGFzeW5jIHVwZGF0ZShpZDogc3RyaW5nLCBkYXRhOiBQYXJ0aWFsPE9taXQ8VCwgJ2lkJyB8ICdjcmVhdGVkQXQnPj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmUudXBkYXRlRG9jPFQ+KHRoaXMuY29sbGVjdGlvblBhdGgsIGlkLCBkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbGltaW5hIHVuIGRvY3VtZW50by5cbiAgICogU2kgc29mdERlbGV0ZSBlc3TDoSBoYWJpbGl0YWRvLCBtYXJjYSBjb21vIGVsaW1pbmFkbyBlbiBsdWdhciBkZSBib3JyYXIuXG4gICAqL1xuICBhc3luYyBkZWxldGUoaWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuc29mdERlbGV0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLnVwZGF0ZURvYzxUPih0aGlzLmNvbGxlY3Rpb25QYXRoLCBpZCwge1xuICAgICAgICBkZWxldGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICB9IGFzIHVua25vd24gYXMgUGFydGlhbDxUPik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZpcmVzdG9yZS5kZWxldGVEb2ModGhpcy5jb2xsZWN0aW9uUGF0aCwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3RhdXJhIHVuIGRvY3VtZW50byBzb2Z0LWRlbGV0ZWQuXG4gICAqL1xuICBhc3luYyByZXN0b3JlKGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5zb2Z0RGVsZXRlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NvZnQgZGVsZXRlIG5vIGVzdMOhIGhhYmlsaXRhZG8gcGFyYSBlc3RhIGNvbGVjY2nDs24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLnVwZGF0ZURvYzxUPih0aGlzLmNvbGxlY3Rpb25QYXRoLCBpZCwge1xuICAgICAgZGVsZXRlZEF0OiBudWxsLFxuICAgIH0gYXMgdW5rbm93biBhcyBQYXJ0aWFsPFQ+KTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTVUItQ09MRUNDSU9ORVNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE9idGllbmUgdW5hIHJlZmVyZW5jaWEgYSB1bmEgc3ViLWNvbGVjY2nDs24uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gRW4gVXNlcnNTZXJ2aWNlXG4gICAqIGdldFVzZXJEb2N1bWVudHModXNlcklkOiBzdHJpbmcpIHtcbiAgICogICByZXR1cm4gdGhpcy51c2Vycy5zdWJjb2xsZWN0aW9uPERvY3VtZW50Pih1c2VySWQsICdkb2N1bWVudHMnKTtcbiAgICogfVxuICAgKlxuICAgKiAvLyBVc29cbiAgICogY29uc3QgZG9jcyA9IGF3YWl0IHVzZXJzLmdldFVzZXJEb2N1bWVudHMoJ3VzZXIxMjMnKS5nZXRBbGwoKTtcbiAgICogYGBgXG4gICAqL1xuICBzdWJjb2xsZWN0aW9uPFMgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudD4oXG4gICAgcGFyZW50SWQ6IHN0cmluZyxcbiAgICBzdWJjb2xsZWN0aW9uTmFtZTogc3RyaW5nXG4gICk6IFN1YkNvbGxlY3Rpb25SZWY8Uz4ge1xuICAgIGNvbnN0IHN1YlBhdGggPSBgJHt0aGlzLmNvbGxlY3Rpb25QYXRofS8ke3BhcmVudElkfS8ke3N1YmNvbGxlY3Rpb25OYW1lfWA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZ2V0QnlJZDogKGlkOiBzdHJpbmcpID0+IHRoaXMuZmlyZXN0b3JlLmdldERvYzxTPihzdWJQYXRoLCBpZCksXG4gICAgICBnZXRBbGw6IChvcHRpb25zPzogUXVlcnlPcHRpb25zKSA9PiB0aGlzLmZpcmVzdG9yZS5nZXREb2NzPFM+KHN1YlBhdGgsIG9wdGlvbnMpLFxuICAgICAgd2F0Y2g6IChpZDogc3RyaW5nKSA9PiB0aGlzLmZpcmVzdG9yZS5kb2NDaGFuZ2VzPFM+KHN1YlBhdGgsIGlkKSxcbiAgICAgIHdhdGNoQWxsOiAob3B0aW9ucz86IFF1ZXJ5T3B0aW9ucykgPT4gdGhpcy5maXJlc3RvcmUuY29sbGVjdGlvbkNoYW5nZXM8Uz4oc3ViUGF0aCwgb3B0aW9ucyksXG4gICAgICBjcmVhdGU6IChkYXRhOiBPbWl0PFMsICdpZCcgfCAnY3JlYXRlZEF0JyB8ICd1cGRhdGVkQXQnPikgPT5cbiAgICAgICAgdGhpcy5maXJlc3RvcmUuYWRkRG9jPFM+KHN1YlBhdGgsIGRhdGEpLFxuICAgICAgdXBkYXRlOiAoaWQ6IHN0cmluZywgZGF0YTogUGFydGlhbDxTPikgPT4gdGhpcy5maXJlc3RvcmUudXBkYXRlRG9jPFM+KHN1YlBhdGgsIGlkLCBkYXRhKSxcbiAgICAgIGRlbGV0ZTogKGlkOiBzdHJpbmcpID0+IHRoaXMuZmlyZXN0b3JlLmRlbGV0ZURvYyhzdWJQYXRoLCBpZCksXG4gICAgfTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBNw4lUT0RPUyBQUklWQURPU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogQXBsaWNhIGZpbHRyb3MgcG9yIGRlZmVjdG8gYSBsYXMgcXVlcmllcy5cbiAgICovXG4gIHByaXZhdGUgYXBwbHlEZWZhdWx0RmlsdGVycyhvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUXVlcnlPcHRpb25zIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5zb2Z0RGVsZXRlKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucyA/PyB7fTtcbiAgICB9XG5cbiAgICAvLyBFeGNsdWlyIGRvY3VtZW50b3Mgc29mdC1kZWxldGVkIHBvciBkZWZlY3RvXG4gICAgY29uc3Qgd2hlcmVDbGF1c2UgPSB7IGZpZWxkOiAnZGVsZXRlZEF0Jywgb3BlcmF0b3I6ICc9PScgYXMgY29uc3QsIHZhbHVlOiBudWxsIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHdoZXJlOiBbLi4uKG9wdGlvbnM/LndoZXJlID8/IFtdKSwgd2hlcmVDbGF1c2VdLFxuICAgIH07XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVVRJTElEQURFU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2VuZXJhIHVuIG51ZXZvIElEIHNpbiBjcmVhciBlbCBkb2N1bWVudG8uXG4gICAqL1xuICBnZW5lcmF0ZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLmdlbmVyYXRlSWQodGhpcy5jb2xsZWN0aW9uUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsYSBydXRhIGRlIGxhIGNvbGVjY2nDs24uXG4gICAqL1xuICBnZXRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvblBhdGg7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgRmlyZXN0b3JlQ29sbGVjdGlvbkZhY3RvcnkuY3JlYXRlKCkgaW5zdGVhZC5cbiAqIFR5cGUgYWxpYXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICovXG5leHBvcnQgdHlwZSBGaXJlc3RvcmVDb2xsZWN0aW9uPFQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudD4gPSBUeXBlZENvbGxlY3Rpb248VD47XG4iXX0=
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLWNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2ZpcmViYXNlL2ZpcmVzdG9yZS1jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBb0MzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBRUgsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUFHLENBQUM7SUFFbkQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUNKLGNBQXNCLEVBQ3RCLE9BQTJCO1FBRTNCLE9BQU8sSUFBSSxlQUFlLENBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekUsQ0FBQzsrR0FmVSwwQkFBMEI7bUhBQTFCLDBCQUEwQixjQURiLE1BQU07OzRGQUNuQiwwQkFBMEI7a0JBRHRDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQW1CbEM7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUNVLFNBQTJCLEVBQzNCLGNBQXNCLEVBQzlCLFVBQTZCLEVBQUU7UUFGdkIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFHOUIsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLEdBQUcsT0FBTztTQUNYLENBQUM7SUFDSixDQUFDO0lBRUQsOEVBQThFO0lBQzlFLG9CQUFvQjtJQUNwQiw4RUFBOEU7SUFFOUU7O09BRUc7SUFDSCxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQVU7UUFDdEIsT0FBTyxJQUFJLENBQUMs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ZWN0aW9uIEZhY3RvcnlcbiAqXG4gKiBQYXRyw7NuIGZhY3RvcnkgcGFyYSBjcmVhciBpbnN0YW5jaWFzIGRlIGNvbGVjY2nDs24gdGlwYWRhcy5cbiAqIFJlZW1wbGF6YSBsYSBjbGFzZSBhYnN0cmFjdGEgcGFyYSBldml0YXIgcHJvYmxlbWFzIGNvbiBpbmplY3QoKSBlbiBjbGFzZXMgbm8taW5qZWN0YWJsZS5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZpcmVzdG9yZVNlcnZpY2UgfSBmcm9tICcuL2ZpcmVzdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpcmVzdG9yZURvY3VtZW50LCBQYWdpbmF0ZWRSZXN1bHQsIFF1ZXJ5T3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIE9wY2lvbmVzIGRlIGNvbmZpZ3VyYWNpw7NuIHBhcmEgdW5hIGNvbGVjY2nDs24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGVjdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogU2kgdHJ1ZSwgdXNhIHNvZnQgZGVsZXRlIChtYXJjYSBkZWxldGVkQXQgZW4gbHVnYXIgZGUgZWxpbWluYXIpLlxuICAgKiBEZWZhdWx0OiBmYWxzZVxuICAgKi9cbiAgc29mdERlbGV0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNpIHRydWUsIG1hbmVqYSBhdXRvbcOhdGljYW1lbnRlIGNyZWF0ZWRBdC91cGRhdGVkQXQuXG4gICAqIERlZmF1bHQ6IHRydWVcbiAgICovXG4gIHRpbWVzdGFtcHM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlZmVyZW5jaWEgYSB1bmEgc3ViLWNvbGVjY2nDs24gdGlwYWRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1YkNvbGxlY3Rpb25SZWY8VCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PiB7XG4gIGdldEJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8VCB8IG51bGw+O1xuICBnZXRBbGwob3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8VFtdPjtcbiAgd2F0Y2goaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VCB8IG51bGw+O1xuICB3YXRjaEFsbChvcHRpb25zPzogUXVlcnlPcHRpb25zKTogT2JzZXJ2YWJsZTxUW10+O1xuICBjcmVhdGUoZGF0YTogT21pdDxULCAnaWQnIHwgJ2NyZWF0ZWRBdCcgfCAndXBkYXRlZEF0Jz4pOiBQcm9taXNlPFQ+O1xuICB1cGRhdGUoaWQ6IHN0cmluZywgZGF0YTogUGFydGlhbDxUPik6IFByb21pc2U8dm9pZD47XG4gIGRlbGV0ZShpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBGYWN0b3J5IHBhcmEgY3JlYXIgaW5zdGFuY2lhcyBkZSBjb2xlY2Npw7NuIHRpcGFkYXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIEBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG4gKiBleHBvcnQgY2xhc3MgVXNlcnNTZXJ2aWNlIHtcbiAqICAgcHJpdmF0ZSB1c2VycyA9IGluamVjdChGaXJlc3RvcmVDb2xsZWN0aW9uRmFjdG9yeSkuY3JlYXRlPFVzZXI+KCd1c2VycycpO1xuICpcbiAqICAgZ2V0QWxsID0gKCkgPT4gdGhpcy51c2Vycy5nZXRBbGwoKTtcbiAqICAgZ2V0QnlJZCA9IChpZDogc3RyaW5nKSA9PiB0aGlzLnVzZXJzLmdldEJ5SWQoaWQpO1xuICogICBjcmVhdGUgPSAoZGF0YTogT21pdDxVc2VyLCAnaWQnPikgPT4gdGhpcy51c2Vycy5jcmVhdGUoZGF0YSk7XG4gKlxuICogICAvLyBNw6l0b2RvcyBwZXJzb25hbGl6YWRvc1xuICogICBhc3luYyBnZXRBY3RpdmVVc2VycygpOiBQcm9taXNlPFVzZXJbXT4ge1xuICogICAgIHJldHVybiB0aGlzLnVzZXJzLnF1ZXJ5KHtcbiAqICAgICAgIHdoZXJlOiBbeyBmaWVsZDogJ2FjdGl2ZScsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogdHJ1ZSB9XVxuICogICAgIH0pO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBGaXJlc3RvcmVDb2xsZWN0aW9uRmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmlyZXN0b3JlOiBGaXJlc3RvcmVTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBDcmVhIHVuYSBpbnN0YW5jaWEgZGUgY29sZWNjacOzbiB0aXBhZGEuXG4gICAqXG4gICAqIEBwYXJhbSBjb2xsZWN0aW9uUGF0aCAtIFJ1dGEgZGUgbGEgY29sZWNjacOzbiBlbiBGaXJlc3RvcmVcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcGNpb25lcyBkZSBjb25maWd1cmFjacOzblxuICAgKiBAcmV0dXJucyBJbnN0YW5jaWEgZGUgVHlwZWRDb2xsZWN0aW9uXG4gICAqL1xuICBjcmVhdGU8VCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PihcbiAgICBjb2xsZWN0aW9uUGF0aDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBDb2xsZWN0aW9uT3B0aW9uc1xuICApOiBUeXBlZENvbGxlY3Rpb248VD4ge1xuICAgIHJldHVybiBuZXcgVHlwZWRDb2xsZWN0aW9uPFQ+KHRoaXMuZmlyZXN0b3JlLCBjb2xsZWN0aW9uUGF0aCwgb3B0aW9ucyk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb2xlY2Npw7NuIHRpcGFkYSBjb24gbcOpdG9kb3MgQ1JVRC5cbiAqXG4gKiBOTyB1c2EgaW5qZWN0KCkgLSByZWNpYmUgRmlyZXN0b3JlU2VydmljZSBwb3IgY29uc3RydWN0b3IuXG4gKiBFc3RvIGV2aXRhIGVsIGVycm9yIE5HMDIwMy5cbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVkQ29sbGVjdGlvbjxUIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBDb2xsZWN0aW9uT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZpcmVzdG9yZTogRmlyZXN0b3JlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbGxlY3Rpb25QYXRoOiBzdHJpbmcsXG4gICAgb3B0aW9uczogQ29sbGVjdGlvbk9wdGlvbnMgPSB7fVxuICApIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICBzb2Z0RGVsZXRlOiBmYWxzZSxcbiAgICAgIHRpbWVzdGFtcHM6IHRydWUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gTEVDVFVSQVMgT05FLVRJTUVcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE9idGllbmUgdW4gZG9jdW1lbnRvIHBvciBJRC5cbiAgICovXG4gIGFzeW5jIGdldEJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8VCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmUuZ2V0RG9jPFQ+KHRoaXMuY29sbGVjdGlvblBhdGgsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHRvZG9zIGxvcyBkb2N1bWVudG9zIGRlIGxhIGNvbGVjY2nDs24uXG4gICAqL1xuICBhc3luYyBnZXRBbGwob3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8VFtdPiB7XG4gICAgY29uc3QgcXVlcnlPcHRpb25zID0gdGhpcy5hcHBseURlZmF1bHRGaWx0ZXJzKG9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLmZpcmVzdG9yZS5nZXREb2NzPFQ+KHRoaXMuY29sbGVjdGlvblBhdGgsIHF1ZXJ5T3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRWplY3V0YSB1bmEgcXVlcnkgcGVyc29uYWxpemFkYS5cbiAgICovXG4gIGFzeW5jIHF1ZXJ5KG9wdGlvbnM6IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8VFtdPiB7XG4gICAgY29uc3QgcXVlcnlPcHRpb25zID0gdGhpcy5hcHBseURlZmF1bHRGaWx0ZXJzKG9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLmZpcmVzdG9yZS5nZXREb2NzPFQ+KHRoaXMuY29sbGVjdGlvblBhdGgsIHF1ZXJ5T3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBkb2N1bWVudG9zIGNvbiBwYWdpbmFjacOzbi5cbiAgICovXG4gIGFzeW5jIHBhZ2luYXRlKG9wdGlvbnM6IFF1ZXJ5T3B0aW9ucyAmIHsgbGltaXQ6IG51bWJlciB9KTogUHJvbWlzZTxQYWdpbmF0ZWRSZXN1bHQ8VD4+IHtcbiAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSB0aGlzLmFwcGx5RGVmYXVsdEZpbHRlcnMob3B0aW9ucykgYXMgUXVlcnlPcHRpb25zICYgeyBsaW1pdDogbnVtYmVyIH07XG4gICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLmdldFBhZ2luYXRlZDxUPih0aGlzLmNvbGxlY3Rpb25QYXRoLCBxdWVyeU9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgZWwgcHJpbWVyIGRvY3VtZW50byBxdWUgY29pbmNpZGEgY29uIGxhIHF1ZXJ5LlxuICAgKi9cbiAgYXN5bmMgZ2V0Rmlyc3Qob3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8VCB8IG51bGw+IHtcbiAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSB0aGlzLmFwcGx5RGVmYXVsdEZpbHRlcnMoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGxpbWl0OiAxLFxuICAgIH0pO1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCB0aGlzLmZpcmVzdG9yZS5nZXREb2NzPFQ+KHRoaXMuY29sbGVjdGlvblBhdGgsIHF1ZXJ5T3B0aW9ucyk7XG4gICAgcmV0dXJuIHJlc3VsdHNbMF0gPz8gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDdWVudGEgbG9zIGRvY3VtZW50b3MgcXVlIGNvaW5jaWRlbiBjb24gbGEgcXVlcnkuXG4gICAqIE5vdGE6IEVzdG8gY2FyZ2EgdG9kb3MgbG9zIGRvY3VtZW50b3MsIHVzYXIgY29uIGN1aWRhZG8gZW4gY29sZWNjaW9uZXMgZ3JhbmRlcy5cbiAgICovXG4gIGFzeW5jIGNvdW50KG9wdGlvbnM/OiBRdWVyeU9wdGlvbnMpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHF1ZXJ5T3B0aW9ucyA9IHRoaXMuYXBwbHlEZWZhdWx0RmlsdGVycyhvcHRpb25zKTtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGhpcy5maXJlc3RvcmUuZ2V0RG9jczxUPih0aGlzLmNvbGxlY3Rpb25QYXRoLCBxdWVyeU9wdGlvbnMpO1xuICAgIHJldHVybiByZXN1bHRzLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHRvZG9zIGxvcyBkb2N1bWVudG9zIChvbmUtdGltZSBmZXRjaCBzaW4gbGlzdGVuZXIpLlxuICAgKiBBIGRpZmVyZW5jaWEgZGUgd2F0Y2hBbGwoKSwgbm8gbWFudGllbmUgc3Vic2NyaXBjaW9uZXMgYWN0aXZhcy5cbiAgICovXG4gIGFzeW5jIGdldEFsbE9uY2Uob3B0aW9ucz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8VFtdPiB7XG4gICAgY29uc3QgcXVlcnlPcHRpb25zID0gdGhpcy5hcHBseURlZmF1bHRGaWx0ZXJzKG9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLmZpcmVzdG9yZS5nZXREb2NzPFQ+KHRoaXMuY29sbGVjdGlvblBhdGgsIHF1ZXJ5T3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgdW4gZG9jdW1lbnRvIGV4aXN0ZS5cbiAgICovXG4gIGFzeW5jIGV4aXN0cyhpZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLmV4aXN0cyh0aGlzLmNvbGxlY3Rpb25QYXRoLCBpZCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU1VCU0NSSVBDSU9ORVMgUkVBTC1USU1FXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBTdXNjcmliZSBhIGNhbWJpb3MgZGUgdW4gZG9jdW1lbnRvLlxuICAgKi9cbiAgd2F0Y2goaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmUuZG9jQ2hhbmdlczxUPih0aGlzLmNvbGxlY3Rpb25QYXRoLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogU3VzY3JpYmUgYSBjYW1iaW9zIGRlIGxhIGNvbGVjY2nDs24uXG4gICAqL1xuICB3YXRjaEFsbChvcHRpb25zPzogUXVlcnlPcHRpb25zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSB0aGlzLmFwcGx5RGVmYXVsdEZpbHRlcnMob3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLmNvbGxlY3Rpb25DaGFuZ2VzPFQ+KHRoaXMuY29sbGVjdGlvblBhdGgsIHF1ZXJ5T3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogU3VzY3JpYmUgYSB1bmEgcXVlcnkgcGVyc29uYWxpemFkYS5cbiAgICovXG4gIHdhdGNoUXVlcnkob3B0aW9uczogUXVlcnlPcHRpb25zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSB0aGlzLmFwcGx5RGVmYXVsdEZpbHRlcnMob3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLmNvbGxlY3Rpb25DaGFuZ2VzPFQ+KHRoaXMuY29sbGVjdGlvblBhdGgsIHF1ZXJ5T3B0aW9ucyk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRVNDUklUVVJBXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBDcmVhIHVuIG51ZXZvIGRvY3VtZW50byBjb24gSUQgYXV0by1nZW5lcmFkby5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZShkYXRhOiBPbWl0PFQsICdpZCcgfCAnY3JlYXRlZEF0JyB8ICd1cGRhdGVkQXQnPik6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiB0aGlzLmZpcmVzdG9yZS5hZGREb2M8VD4odGhpcy5jb2xsZWN0aW9uUGF0aCwgZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYSB1biBkb2N1bWVudG8gY29uIElEIGVzcGVjw61maWNvLlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlV2l0aElkKGlkOiBzdHJpbmcsIGRhdGE6IE9taXQ8VCwgJ2lkJz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmUuc2V0RG9jPFQ+KHRoaXMuY29sbGVjdGlvblBhdGgsIGlkLCBkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgY2FtcG9zIGRlIHVuIGRvY3VtZW50by5cbiAgICovXG4gIGFzeW5jIHVwZGF0ZShpZDogc3RyaW5nLCBkYXRhOiBQYXJ0aWFsPE9taXQ8VCwgJ2lkJyB8ICdjcmVhdGVkQXQnPj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5maXJlc3RvcmUudXBkYXRlRG9jPFQ+KHRoaXMuY29sbGVjdGlvblBhdGgsIGlkLCBkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbGltaW5hIHVuIGRvY3VtZW50by5cbiAgICogU2kgc29mdERlbGV0ZSBlc3TDoSBoYWJpbGl0YWRvLCBtYXJjYSBjb21vIGVsaW1pbmFkbyBlbiBsdWdhciBkZSBib3JyYXIuXG4gICAqL1xuICBhc3luYyBkZWxldGUoaWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuc29mdERlbGV0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLnVwZGF0ZURvYzxUPih0aGlzLmNvbGxlY3Rpb25QYXRoLCBpZCwge1xuICAgICAgICBkZWxldGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICB9IGFzIHVua25vd24gYXMgUGFydGlhbDxUPik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZpcmVzdG9yZS5kZWxldGVEb2ModGhpcy5jb2xsZWN0aW9uUGF0aCwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3RhdXJhIHVuIGRvY3VtZW50byBzb2Z0LWRlbGV0ZWQuXG4gICAqL1xuICBhc3luYyByZXN0b3JlKGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5zb2Z0RGVsZXRlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NvZnQgZGVsZXRlIG5vIGVzdMOhIGhhYmlsaXRhZG8gcGFyYSBlc3RhIGNvbGVjY2nDs24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLnVwZGF0ZURvYzxUPih0aGlzLmNvbGxlY3Rpb25QYXRoLCBpZCwge1xuICAgICAgZGVsZXRlZEF0OiBudWxsLFxuICAgIH0gYXMgdW5rbm93biBhcyBQYXJ0aWFsPFQ+KTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTVUItQ09MRUNDSU9ORVNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE9idGllbmUgdW5hIHJlZmVyZW5jaWEgYSB1bmEgc3ViLWNvbGVjY2nDs24uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gRW4gVXNlcnNTZXJ2aWNlXG4gICAqIGdldFVzZXJEb2N1bWVudHModXNlcklkOiBzdHJpbmcpIHtcbiAgICogICByZXR1cm4gdGhpcy51c2Vycy5zdWJjb2xsZWN0aW9uPERvY3VtZW50Pih1c2VySWQsICdkb2N1bWVudHMnKTtcbiAgICogfVxuICAgKlxuICAgKiAvLyBVc29cbiAgICogY29uc3QgZG9jcyA9IGF3YWl0IHVzZXJzLmdldFVzZXJEb2N1bWVudHMoJ3VzZXIxMjMnKS5nZXRBbGwoKTtcbiAgICogYGBgXG4gICAqL1xuICBzdWJjb2xsZWN0aW9uPFMgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudD4oXG4gICAgcGFyZW50SWQ6IHN0cmluZyxcbiAgICBzdWJjb2xsZWN0aW9uTmFtZTogc3RyaW5nXG4gICk6IFN1YkNvbGxlY3Rpb25SZWY8Uz4ge1xuICAgIGNvbnN0IHN1YlBhdGggPSBgJHt0aGlzLmNvbGxlY3Rpb25QYXRofS8ke3BhcmVudElkfS8ke3N1YmNvbGxlY3Rpb25OYW1lfWA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZ2V0QnlJZDogKGlkOiBzdHJpbmcpID0+IHRoaXMuZmlyZXN0b3JlLmdldERvYzxTPihzdWJQYXRoLCBpZCksXG4gICAgICBnZXRBbGw6IChvcHRpb25zPzogUXVlcnlPcHRpb25zKSA9PiB0aGlzLmZpcmVzdG9yZS5nZXREb2NzPFM+KHN1YlBhdGgsIG9wdGlvbnMpLFxuICAgICAgd2F0Y2g6IChpZDogc3RyaW5nKSA9PiB0aGlzLmZpcmVzdG9yZS5kb2NDaGFuZ2VzPFM+KHN1YlBhdGgsIGlkKSxcbiAgICAgIHdhdGNoQWxsOiAob3B0aW9ucz86IFF1ZXJ5T3B0aW9ucykgPT4gdGhpcy5maXJlc3RvcmUuY29sbGVjdGlvbkNoYW5nZXM8Uz4oc3ViUGF0aCwgb3B0aW9ucyksXG4gICAgICBjcmVhdGU6IChkYXRhOiBPbWl0PFMsICdpZCcgfCAnY3JlYXRlZEF0JyB8ICd1cGRhdGVkQXQnPikgPT5cbiAgICAgICAgdGhpcy5maXJlc3RvcmUuYWRkRG9jPFM+KHN1YlBhdGgsIGRhdGEpLFxuICAgICAgdXBkYXRlOiAoaWQ6IHN0cmluZywgZGF0YTogUGFydGlhbDxTPikgPT4gdGhpcy5maXJlc3RvcmUudXBkYXRlRG9jPFM+KHN1YlBhdGgsIGlkLCBkYXRhKSxcbiAgICAgIGRlbGV0ZTogKGlkOiBzdHJpbmcpID0+IHRoaXMuZmlyZXN0b3JlLmRlbGV0ZURvYyhzdWJQYXRoLCBpZCksXG4gICAgfTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBNw4lUT0RPUyBQUklWQURPU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogQXBsaWNhIGZpbHRyb3MgcG9yIGRlZmVjdG8gYSBsYXMgcXVlcmllcy5cbiAgICovXG4gIHByaXZhdGUgYXBwbHlEZWZhdWx0RmlsdGVycyhvcHRpb25zPzogUXVlcnlPcHRpb25zKTogUXVlcnlPcHRpb25zIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5zb2Z0RGVsZXRlKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucyA/PyB7fTtcbiAgICB9XG5cbiAgICAvLyBFeGNsdWlyIGRvY3VtZW50b3Mgc29mdC1kZWxldGVkIHBvciBkZWZlY3RvXG4gICAgY29uc3Qgd2hlcmVDbGF1c2UgPSB7IGZpZWxkOiAnZGVsZXRlZEF0Jywgb3BlcmF0b3I6ICc9PScgYXMgY29uc3QsIHZhbHVlOiBudWxsIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHdoZXJlOiBbLi4uKG9wdGlvbnM/LndoZXJlID8/IFtdKSwgd2hlcmVDbGF1c2VdLFxuICAgIH07XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVVRJTElEQURFU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2VuZXJhIHVuIG51ZXZvIElEIHNpbiBjcmVhciBlbCBkb2N1bWVudG8uXG4gICAqL1xuICBnZW5lcmF0ZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLmdlbmVyYXRlSWQodGhpcy5jb2xsZWN0aW9uUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBsYSBydXRhIGRlIGxhIGNvbGVjY2nDs24uXG4gICAqL1xuICBnZXRQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvblBhdGg7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgRmlyZXN0b3JlQ29sbGVjdGlvbkZhY3RvcnkuY3JlYXRlKCkgaW5zdGVhZC5cbiAqIFR5cGUgYWxpYXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICovXG5leHBvcnQgdHlwZSBGaXJlc3RvcmVDb2xsZWN0aW9uPFQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudD4gPSBUeXBlZENvbGxlY3Rpb248VD47XG4iXX0=
@@ -119,6 +119,17 @@ export class NotificationsService {
119
119
  orderBy: [{ field: 'createdAt', direction: 'desc' }],
120
120
  });
121
121
  }
122
+ /**
123
+ * Obtiene todas las notificaciones (one-time fetch sin listener).
124
+ * Útil para cargas iniciales sin necesidad de updates en tiempo real.
125
+ */
126
+ async getAllOnce() {
127
+ if (!this.collection)
128
+ return [];
129
+ return this.collection.getAllOnce({
130
+ orderBy: [{ field: 'createdAt', direction: 'desc' }],
131
+ });
132
+ }
122
133
  /**
123
134
  * Obtiene solo notificaciones no leídas.
124
135
  */
@@ -196,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
196
207
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.FirestoreCollectionFactory, decorators: [{
197
208
  type: Optional
198
209
  }] }] });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9ub3RpZmljYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUF1Qm5EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBTy9CLFlBQ1UsUUFBa0IsRUFDTixpQkFBNkM7UUFEekQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNOLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNEI7UUFSM0QsZUFBVSxHQUFpRCxJQUFJLENBQUM7UUFDaEUsa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBRTVDLDhEQUE4RDtRQUN0RCxnQkFBVyxHQUF1QixJQUFJLENBQUM7UUFNN0MsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSyx1QkFBdUI7UUFDN0Isb0NBQW9DO1FBQ3BDLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCw4REFBOEQ7WUFDOUQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLE9BQU87UUFDVCxDQUFDO1FBRUQsd0RBQXdEO1FBQ3hELHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1lBQ3hDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFFdEMsSUFBSSxJQUFJLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN2RCw2Q0FBNkM7b0JBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQixDQUFDO3FCQUFNLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUN2Qyx5QkFBeUI7b0JBQ3pCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxVQUFVLENBQUMsTUFBYztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQywwR0FBMEcsQ0FBQyxDQUFDO1lBQ3pILE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFFNUIsd0VBQXdFO1FBQ3hFLGtEQUFrRDtRQUNsRCxNQUFNLFFBQVEsR0FBRyxTQUFTLE1BQU0sZ0JBQWdCLENBQUM7UUFFakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUM3QyxRQUFRLEVBQ1IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQ3JCLENBQUM7UUFFRixPQUFPLENBQUMsR0FBRyxDQUFDLHdDQUF3QyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCw4RUFBOEU7SUFDOUUsVUFBVTtJQUNWLDhFQUE4RTtJQUU5RTs7O09BR0c7SUFDSCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFcEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM5QixPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO1NBQ3JELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQ3ZCLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUMzRCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFzQjtRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCw4RUFBOEU7SUFDOUUsV0FBVztJQUNYLDhFQUE4RTtJQUU5RTs7T0FFRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsY0FBc0I7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUM3QixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxhQUFhO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFFN0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUN6QyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDM0QsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDbEUsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxNQUFNLENBQUMsY0FBc0I7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUM3QixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxTQUFTO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUU3QixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0MsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQzsrR0F0TFUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FEUCxNQUFNOzs0RkFDbkIsb0JBQW9CO2tCQURoQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBVTdCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE5vdGlmaWNhdGlvbnMgU2VydmljZVxuICpcbiAqIFNlcnZpY2lvIHBhcmEgbGVlciBub3RpZmljYWNpb25lcyBkZXNkZSBGaXJlc3RvcmUuXG4gKiBFbCBiYWNrZW5kIGVzY3JpYmUgbGFzIG5vdGlmaWNhY2lvbmVzLCBlbCBmcm9udGVuZCBzb2xvIGxhcyBsZWUgeSBhY3R1YWxpemEgZXN0YWRvLlxuICpcbiAqIFNlIGF1dG8taW5pY2lhbGl6YSBjdWFuZG8gQXV0aFNlcnZpY2UgdGllbmUgdW4gdXN1YXJpbyBhdXRlbnRpY2Fkby5cbiAqIFRhbWJpw6luIHB1ZWRlIGluaWNpYWxpemFyc2UgbWFudWFsbWVudGUgY29uIGBpbml0aWFsaXplKHVzZXJJZClgLlxuICovXG5cbmltcG9ydCB7IGVmZmVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsLCBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlyZXN0b3JlQ29sbGVjdGlvbkZhY3RvcnksIFR5cGVkQ29sbGVjdGlvbiB9IGZyb20gJy4vZmlyZXN0b3JlLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRmlyZXN0b3JlRG9jdW1lbnQgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBEb2N1bWVudG8gZGUgbm90aWZpY2FjacOzbiBlbiBGaXJlc3RvcmUuXG4gKiBFc3RydWN0dXJhIGVzY3JpdGEgcG9yIGVsIGJhY2tlbmQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uRG9jdW1lbnQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudCB7XG4gIC8qKiBUw610dWxvIGRlIGxhIG5vdGlmaWNhY2nDs24gKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG4gIC8qKiBDdWVycG8gZGVsIG1lbnNhamUgKi9cbiAgYm9keT86IHN0cmluZztcbiAgLyoqIFVSTCBkZSBpbWFnZW4gKi9cbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIC8qKiBEYXRvcyBwZXJzb25hbGl6YWRvcyAoZWo6IHJvdXRlLCBhY3Rpb25UeXBlKSAqL1xuICBkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIFRpcG8gZGUgbm90aWZpY2FjacOzbiAqL1xuICB0eXBlPzogJ2ZjbScgfCAnc3lzdGVtJyB8ICdyZW1pbmRlcicgfCBzdHJpbmc7XG4gIC8qKiBTaSBsYSBub3RpZmljYWNpw7NuIGZ1ZSBsZcOtZGEgKi9cbiAgaXNSZWFkOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFNlcnZpY2lvIHBhcmEgbGVlciBub3RpZmljYWNpb25lcyBkZXNkZSBGaXJlc3RvcmUuXG4gKlxuICogU2UgYXV0by1pbmljaWFsaXphIGN1YW5kbyBBdXRoU2VydmljZSB0aWVuZSB1biB1c3VhcmlvIGF1dGVudGljYWRvLlxuICogTm8gcmVxdWllcmUgbGxhbWFyIGEgYGluaXRpYWxpemUoKWAgbWFudWFsbWVudGUgc2kgQXV0aFNlcnZpY2UgZXN0w6EgY29uZmlndXJhZG8uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENvbiBBdXRoU2VydmljZSBjb25maWd1cmFkbzogYXV0by1pbmljaWFsaXphY2nDs25cbiAqIC8vIFNvbG8gaW55ZWN0YXIgeSB1c2FyIGRpcmVjdGFtZW50ZVxuICogcHJpdmF0ZSBub3RpZmljYXRpb25zID0gaW5qZWN0KE5vdGlmaWNhdGlvbnNTZXJ2aWNlKTtcbiAqXG4gKiBub3RpZmljYXRpb25zJCA9IHRoaXMubm90aWZpY2F0aW9ucy5nZXRBbGwoKTtcbiAqIHVucmVhZENvdW50JCA9IHRoaXMubm90aWZpY2F0aW9ucy5nZXRVbnJlYWRDb3VudCgpO1xuICpcbiAqIC8vIFNpbiBBdXRoU2VydmljZTogaW5pY2lhbGl6YWNpw7NuIG1hbnVhbFxuICogdGhpcy5ub3RpZmljYXRpb25zLmluaXRpYWxpemUodXNlcklkKTtcbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb2xsZWN0aW9uOiBUeXBlZENvbGxlY3Rpb248Tm90aWZpY2F0aW9uRG9jdW1lbnQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY3VycmVudFVzZXJJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gSW55ZWNjacOzbiBvcGNpb25hbCAtIEF1dGhTZXJ2aWNlIHB1ZWRlIG5vIGVzdGFyIGNvbmZpZ3VyYWRvXG4gIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb2xsZWN0aW9uRmFjdG9yeTogRmlyZXN0b3JlQ29sbGVjdGlvbkZhY3RvcnlcbiAgKSB7XG4gICAgLy8gSW50ZW50YXIgb2J0ZW5lciBBdXRoU2VydmljZSBkZSBmb3JtYSBsYXp5IChwdWVkZSBubyBlc3RhciBjb25maWd1cmFkbylcbiAgICB0aGlzLnNldHVwQXV0b0luaXRpYWxpemF0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJhIGF1dG8taW5pY2lhbGl6YWNpw7NuIG9ic2VydmFuZG8gZWwgZXN0YWRvIGRlIEF1dGhTZXJ2aWNlLlxuICAgKiBTZSBlamVjdXRhIGVuIGVsIGNvbnRleHRvIGRlbCBpbmplY3RvciBwYXJhIHBvZGVyIHVzYXIgZWZmZWN0KCkuXG4gICAqL1xuICBwcml2YXRlIHNldHVwQXV0b0luaXRpYWxpemF0aW9uKCk6IHZvaWQge1xuICAgIC8vIE9idGVuZXIgQXV0aFNlcnZpY2UgZGUgZm9ybWEgbGF6eVxuICAgIHRyeSB7XG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQXV0aFNlcnZpY2UsIG51bGwpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gQXV0aFNlcnZpY2Ugbm8gZXN0w6EgY29uZmlndXJhZG8sIG5vIGhheSBhdXRvLWluaWNpYWxpemFjacOzblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hdXRoU2VydmljZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFVzYXIgcnVuSW5JbmplY3Rpb25Db250ZXh0IHBhcmEgcG9kZXIgY3JlYXIgZWwgZWZmZWN0XG4gICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHtcbiAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLmF1dGhTZXJ2aWNlIS51c2VyKCk7XG5cbiAgICAgICAgaWYgKHVzZXI/LnVzZXJJZCAmJiB0aGlzLmN1cnJlbnRVc2VySWQgIT09IHVzZXIudXNlcklkKSB7XG4gICAgICAgICAgLy8gVXN1YXJpbyBhdXRlbnRpY2FkbzogaW5pY2lhbGl6YXIgY29uIHN1IElEXG4gICAgICAgICAgdGhpcy5pbml0aWFsaXplKHVzZXIudXNlcklkKTtcbiAgICAgICAgfSBlbHNlIGlmICghdXNlciAmJiB0aGlzLmN1cnJlbnRVc2VySWQpIHtcbiAgICAgICAgICAvLyBMb2dvdXQ6IGxpbXBpYXIgZXN0YWRvXG4gICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmljaWFsaXphIGVsIHNlcnZpY2lvIHBhcmEgdW4gdXN1YXJpbyBlc3BlY8OtZmljby5cbiAgICpcbiAgICogTk9UQTogU2UgbGxhbWEgYXV0b23DoXRpY2FtZW50ZSBzaSBBdXRoU2VydmljZSBlc3TDoSBjb25maWd1cmFkby5cbiAgICogU29sbyB1c2FyIG1hbnVhbG1lbnRlIHNpIEF1dGhTZXJ2aWNlIG5vIGVzdMOhIGRpc3BvbmlibGUgbyBzZSBuZWNlc2l0YVxuICAgKiB1biB1c2VySWQgZGlmZXJlbnRlIGFsIGRlbCB1c3VhcmlvIGF1dGVudGljYWRvLlxuICAgKi9cbiAgaW5pdGlhbGl6ZSh1c2VySWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uRmFjdG9yeSkge1xuICAgICAgY29uc29sZS53YXJuKCdbTm90aWZpY2F0aW9uc10gRmlyZXN0b3JlQ29sbGVjdGlvbkZhY3Rvcnkgbm90IGF2YWlsYWJsZS4gRW5zdXJlIHByb3ZpZGVWYWx0ZWNoRmlyZWJhc2UoKSBpcyBjb25maWd1cmVkLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFVzZXJJZCA9IHVzZXJJZDtcblxuICAgIC8vIFBhdGggcmVsYXRpdm8gLSBGaXJlc3RvcmVTZXJ2aWNlIGFncmVnYSBhdXRvbcOhdGljYW1lbnRlIGFwcHMve2FwcElkfS9cbiAgICAvLyBOTyBhZ3JlZ2FyIGFwcHMvIGFxdcOtIHBhcmEgZXZpdGFyIGRvYmxlIHByZWZpam9cbiAgICBjb25zdCBiYXNlUGF0aCA9IGB1c2Vycy8ke3VzZXJJZH0vbm90aWZpY2F0aW9uc2A7XG5cbiAgICB0aGlzLmNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb25GYWN0b3J5LmNyZWF0ZTxOb3RpZmljYXRpb25Eb2N1bWVudD4oXG4gICAgICBiYXNlUGF0aCxcbiAgICAgIHsgdGltZXN0YW1wczogdHJ1ZSB9XG4gICAgKTtcblxuICAgIGNvbnNvbGUubG9nKCdbTm90aWZpY2F0aW9uc10gSW5pdGlhbGl6ZWQgd2l0aCBwYXRoOicsIGJhc2VQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSBlbCBzZXJ2aWNpbyBlc3TDoSBpbmljaWFsaXphZG8uXG4gICAqL1xuICBnZXQgaXNSZWFkeSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uICE9PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgZWwgSUQgZGVsIHVzdWFyaW8gYWN0dWFsLlxuICAgKi9cbiAgZ2V0IHVzZXJJZCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VXNlcklkO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIExFQ1RVUkFcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE9idGllbmUgdG9kYXMgbGFzIG5vdGlmaWNhY2lvbmVzIG9yZGVuYWRhcyBwb3IgZmVjaGEgZGVzY2VuZGVudGUuXG4gICAqIFJlYWwtdGltZTogc2UgYWN0dWFsaXphIGF1dG9tw6F0aWNhbWVudGUgY3VhbmRvIGNhbWJpYW4gbG9zIGRhdG9zLlxuICAgKi9cbiAgZ2V0QWxsKCk6IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uRG9jdW1lbnRbXT4ge1xuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSByZXR1cm4gb2YoW10pO1xuXG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbi53YXRjaEFsbCh7XG4gICAgICBvcmRlckJ5OiBbeyBmaWVsZDogJ2NyZWF0ZWRBdCcsIGRpcmVjdGlvbjogJ2Rlc2MnIH1dLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgc29sbyBub3RpZmljYWNpb25lcyBubyBsZcOtZGFzLlxuICAgKi9cbiAgZ2V0VW5yZWFkKCk6IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uRG9jdW1lbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmdldEFsbCgpLnBpcGUoXG4gICAgICBtYXAobm90aWZpY2F0aW9ucyA9PiBub3RpZmljYXRpb25zLmZpbHRlcihuID0+ICFuLmlzUmVhZCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDdWVudGEgbm90aWZpY2FjaW9uZXMgbm8gbGXDrWRhcy5cbiAgICogw5p0aWwgcGFyYSBiYWRnZXMgZW4gVUkuXG4gICAqL1xuICBnZXRVbnJlYWRDb3VudCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmdldFVucmVhZCgpLnBpcGUobWFwKG4gPT4gbi5sZW5ndGgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHVuYSBub3RpZmljYWNpw7NuIHBvciBJRC5cbiAgICovXG4gIGFzeW5jIGdldEJ5SWQobm90aWZpY2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8Tm90aWZpY2F0aW9uRG9jdW1lbnQgfCBudWxsPiB7XG4gICAgaWYgKCF0aGlzLmNvbGxlY3Rpb24pIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24uZ2V0QnlJZChub3RpZmljYXRpb25JZCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQUNDSU9ORVNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE1hcmNhIHVuYSBub3RpZmljYWNpw7NuIGNvbW8gbGXDrWRhLlxuICAgKi9cbiAgYXN5bmMgbWFya0FzUmVhZChub3RpZmljYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmNvbGxlY3Rpb24pIHJldHVybjtcbiAgICBhd2FpdCB0aGlzLmNvbGxlY3Rpb24udXBkYXRlKG5vdGlmaWNhdGlvbklkLCB7IGlzUmVhZDogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJjYSB0b2RhcyBsYXMgbm90aWZpY2FjaW9uZXMgY29tbyBsZcOtZGFzLlxuICAgKi9cbiAgYXN5bmMgbWFya0FsbEFzUmVhZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbikgcmV0dXJuO1xuXG4gICAgY29uc3QgdW5yZWFkID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uLnF1ZXJ5KHtcbiAgICAgIHdoZXJlOiBbeyBmaWVsZDogJ2lzUmVhZCcsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogZmFsc2UgfV0sXG4gICAgfSk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHVucmVhZC5tYXAobiA9PiB0aGlzLmNvbGxlY3Rpb24hLnVwZGF0ZShuLmlkISwgeyBpc1JlYWQ6IHRydWUgfSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbGltaW5hIHVuYSBub3RpZmljYWNpw7NuLlxuICAgKi9cbiAgYXN5bmMgZGVsZXRlKG5vdGlmaWNhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbikgcmV0dXJuO1xuICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbi5kZWxldGUobm90aWZpY2F0aW9uSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVsaW1pbmEgdG9kYXMgbGFzIG5vdGlmaWNhY2lvbmVzIGRlbCB1c3VhcmlvLlxuICAgKi9cbiAgYXN5bmMgZGVsZXRlQWxsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSByZXR1cm47XG5cbiAgICBjb25zdCBhbGwgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uZ2V0QWxsKCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoYWxsLm1hcChuID0+IHRoaXMuY29sbGVjdGlvbiEuZGVsZXRlKG4uaWQhKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpbXBpYSBlbCBlc3RhZG8gZGVsIHNlcnZpY2lvLlxuICAgKiDDmnRpbCBwYXJhIGxvZ291dC5cbiAgICovXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGVjdGlvbiA9IG51bGw7XG4gICAgdGhpcy5jdXJyZW50VXNlcklkID0gbnVsbDtcbiAgfVxufVxuIl19
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9ub3RpZmljYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUF1Qm5EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBTy9CLFlBQ1UsUUFBa0IsRUFDTixpQkFBNkM7UUFEekQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNOLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNEI7UUFSM0QsZUFBVSxHQUFpRCxJQUFJLENBQUM7UUFDaEUsa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBRTVDLDhEQUE4RDtRQUN0RCxnQkFBVyxHQUF1QixJQUFJLENBQUM7UUFNN0MsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSyx1QkFBdUI7UUFDN0Isb0NBQW9DO1FBQ3BDLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCw4REFBOEQ7WUFDOUQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcs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LENBQUMsVUFBVTtZQUFFLE9BQU87UUFDN0IsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsU0FBUztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFFN0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7K0dBbE1VLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRFAsTUFBTTs7NEZBQ25CLG9CQUFvQjtrQkFEaEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQVU3QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBOb3RpZmljYXRpb25zIFNlcnZpY2VcbiAqXG4gKiBTZXJ2aWNpbyBwYXJhIGxlZXIgbm90aWZpY2FjaW9uZXMgZGVzZGUgRmlyZXN0b3JlLlxuICogRWwgYmFja2VuZCBlc2NyaWJlIGxhcyBub3RpZmljYWNpb25lcywgZWwgZnJvbnRlbmQgc29sbyBsYXMgbGVlIHkgYWN0dWFsaXphIGVzdGFkby5cbiAqXG4gKiBTZSBhdXRvLWluaWNpYWxpemEgY3VhbmRvIEF1dGhTZXJ2aWNlIHRpZW5lIHVuIHVzdWFyaW8gYXV0ZW50aWNhZG8uXG4gKiBUYW1iacOpbiBwdWVkZSBpbmljaWFsaXphcnNlIG1hbnVhbG1lbnRlIGNvbiBgaW5pdGlhbGl6ZSh1c2VySWQpYC5cbiAqL1xuXG5pbXBvcnQgeyBlZmZlY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBPcHRpb25hbCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpcmVzdG9yZUNvbGxlY3Rpb25GYWN0b3J5LCBUeXBlZENvbGxlY3Rpb24gfSBmcm9tICcuL2ZpcmVzdG9yZS1jb2xsZWN0aW9uJztcbmltcG9ydCB7IEZpcmVzdG9yZURvY3VtZW50IH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogRG9jdW1lbnRvIGRlIG5vdGlmaWNhY2nDs24gZW4gRmlyZXN0b3JlLlxuICogRXN0cnVjdHVyYSBlc2NyaXRhIHBvciBlbCBiYWNrZW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbkRvY3VtZW50IGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQge1xuICAvKiogVMOtdHVsbyBkZSBsYSBub3RpZmljYWNpw7NuICovXG4gIHRpdGxlPzogc3RyaW5nO1xuICAvKiogQ3VlcnBvIGRlbCBtZW5zYWplICovXG4gIGJvZHk/OiBzdHJpbmc7XG4gIC8qKiBVUkwgZGUgaW1hZ2VuICovXG4gIGltYWdlPzogc3RyaW5nO1xuICAvKiogRGF0b3MgcGVyc29uYWxpemFkb3MgKGVqOiByb3V0ZSwgYWN0aW9uVHlwZSkgKi9cbiAgZGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKiBUaXBvIGRlIG5vdGlmaWNhY2nDs24gKi9cbiAgdHlwZT86ICdmY20nIHwgJ3N5c3RlbScgfCAncmVtaW5kZXInIHwgc3RyaW5nO1xuICAvKiogU2kgbGEgbm90aWZpY2FjacOzbiBmdWUgbGXDrWRhICovXG4gIGlzUmVhZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTZXJ2aWNpbyBwYXJhIGxlZXIgbm90aWZpY2FjaW9uZXMgZGVzZGUgRmlyZXN0b3JlLlxuICpcbiAqIFNlIGF1dG8taW5pY2lhbGl6YSBjdWFuZG8gQXV0aFNlcnZpY2UgdGllbmUgdW4gdXN1YXJpbyBhdXRlbnRpY2Fkby5cbiAqIE5vIHJlcXVpZXJlIGxsYW1hciBhIGBpbml0aWFsaXplKClgIG1hbnVhbG1lbnRlIHNpIEF1dGhTZXJ2aWNlIGVzdMOhIGNvbmZpZ3VyYWRvLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBDb24gQXV0aFNlcnZpY2UgY29uZmlndXJhZG86IGF1dG8taW5pY2lhbGl6YWNpw7NuXG4gKiAvLyBTb2xvIGlueWVjdGFyIHkgdXNhciBkaXJlY3RhbWVudGVcbiAqIHByaXZhdGUgbm90aWZpY2F0aW9ucyA9IGluamVjdChOb3RpZmljYXRpb25zU2VydmljZSk7XG4gKlxuICogbm90aWZpY2F0aW9ucyQgPSB0aGlzLm5vdGlmaWNhdGlvbnMuZ2V0QWxsKCk7XG4gKiB1bnJlYWRDb3VudCQgPSB0aGlzLm5vdGlmaWNhdGlvbnMuZ2V0VW5yZWFkQ291bnQoKTtcbiAqXG4gKiAvLyBTaW4gQXV0aFNlcnZpY2U6IGluaWNpYWxpemFjacOzbiBtYW51YWxcbiAqIHRoaXMubm90aWZpY2F0aW9ucy5pbml0aWFsaXplKHVzZXJJZCk7XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zU2VydmljZSB7XG4gIHByaXZhdGUgY29sbGVjdGlvbjogVHlwZWRDb2xsZWN0aW9uPE5vdGlmaWNhdGlvbkRvY3VtZW50PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGN1cnJlbnRVc2VySWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8vIElueWVjY2nDs24gb3BjaW9uYWwgLSBBdXRoU2VydmljZSBwdWVkZSBubyBlc3RhciBjb25maWd1cmFkb1xuICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29sbGVjdGlvbkZhY3Rvcnk6IEZpcmVzdG9yZUNvbGxlY3Rpb25GYWN0b3J5XG4gICkge1xuICAgIC8vIEludGVudGFyIG9idGVuZXIgQXV0aFNlcnZpY2UgZGUgZm9ybWEgbGF6eSAocHVlZGUgbm8gZXN0YXIgY29uZmlndXJhZG8pXG4gICAgdGhpcy5zZXR1cEF1dG9Jbml0aWFsaXphdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYSBhdXRvLWluaWNpYWxpemFjacOzbiBvYnNlcnZhbmRvIGVsIGVzdGFkbyBkZSBBdXRoU2VydmljZS5cbiAgICogU2UgZWplY3V0YSBlbiBlbCBjb250ZXh0byBkZWwgaW5qZWN0b3IgcGFyYSBwb2RlciB1c2FyIGVmZmVjdCgpLlxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cEF1dG9Jbml0aWFsaXphdGlvbigpOiB2b2lkIHtcbiAgICAvLyBPYnRlbmVyIEF1dGhTZXJ2aWNlIGRlIGZvcm1hIGxhenlcbiAgICB0cnkge1xuICAgICAgdGhpcy5hdXRoU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEF1dGhTZXJ2aWNlLCBudWxsKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEF1dGhTZXJ2aWNlIG5vIGVzdMOhIGNvbmZpZ3VyYWRvLCBubyBoYXkgYXV0by1pbmljaWFsaXphY2nDs25cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYXV0aFNlcnZpY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBVc2FyIHJ1bkluSW5qZWN0aW9uQ29udGV4dCBwYXJhIHBvZGVyIGNyZWFyIGVsIGVmZmVjdFxuICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5hdXRoU2VydmljZSEudXNlcigpO1xuXG4gICAgICAgIGlmICh1c2VyPy51c2VySWQgJiYgdGhpcy5jdXJyZW50VXNlcklkICE9PSB1c2VyLnVzZXJJZCkge1xuICAgICAgICAgIC8vIFVzdWFyaW8gYXV0ZW50aWNhZG86IGluaWNpYWxpemFyIGNvbiBzdSBJRFxuICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZSh1c2VyLnVzZXJJZCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXVzZXIgJiYgdGhpcy5jdXJyZW50VXNlcklkKSB7XG4gICAgICAgICAgLy8gTG9nb3V0OiBsaW1waWFyIGVzdGFkb1xuICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pY2lhbGl6YSBlbCBzZXJ2aWNpbyBwYXJhIHVuIHVzdWFyaW8gZXNwZWPDrWZpY28uXG4gICAqXG4gICAqIE5PVEE6IFNlIGxsYW1hIGF1dG9tw6F0aWNhbWVudGUgc2kgQXV0aFNlcnZpY2UgZXN0w6EgY29uZmlndXJhZG8uXG4gICAqIFNvbG8gdXNhciBtYW51YWxtZW50ZSBzaSBBdXRoU2VydmljZSBubyBlc3TDoSBkaXNwb25pYmxlIG8gc2UgbmVjZXNpdGFcbiAgICogdW4gdXNlcklkIGRpZmVyZW50ZSBhbCBkZWwgdXN1YXJpbyBhdXRlbnRpY2Fkby5cbiAgICovXG4gIGluaXRpYWxpemUodXNlcklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbkZhY3RvcnkpIHtcbiAgICAgIGNvbnNvbGUud2FybignW05vdGlmaWNhdGlvbnNdIEZpcmVzdG9yZUNvbGxlY3Rpb25GYWN0b3J5IG5vdCBhdmFpbGFibGUuIEVuc3VyZSBwcm92aWRlVmFsdGVjaEZpcmViYXNlKCkgaXMgY29uZmlndXJlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnRVc2VySWQgPSB1c2VySWQ7XG5cbiAgICAvLyBQYXRoIHJlbGF0aXZvIC0gRmlyZXN0b3JlU2VydmljZSBhZ3JlZ2EgYXV0b23DoXRpY2FtZW50ZSBhcHBzL3thcHBJZH0vXG4gICAgLy8gTk8gYWdyZWdhciBhcHBzLyBhcXXDrSBwYXJhIGV2aXRhciBkb2JsZSBwcmVmaWpvXG4gICAgY29uc3QgYmFzZVBhdGggPSBgdXNlcnMvJHt1c2VySWR9L25vdGlmaWNhdGlvbnNgO1xuXG4gICAgdGhpcy5jb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uRmFjdG9yeS5jcmVhdGU8Tm90aWZpY2F0aW9uRG9jdW1lbnQ+KFxuICAgICAgYmFzZVBhdGgsXG4gICAgICB7IHRpbWVzdGFtcHM6IHRydWUgfVxuICAgICk7XG5cbiAgICBjb25zb2xlLmxvZygnW05vdGlmaWNhdGlvbnNdIEluaXRpYWxpemVkIHdpdGggcGF0aDonLCBiYXNlUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgZWwgc2VydmljaW8gZXN0w6EgaW5pY2lhbGl6YWRvLlxuICAgKi9cbiAgZ2V0IGlzUmVhZHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbiAhPT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGVsIElEIGRlbCB1c3VhcmlvIGFjdHVhbC5cbiAgICovXG4gIGdldCB1c2VySWQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFVzZXJJZDtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBMRUNUVVJBXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHRvZGFzIGxhcyBub3RpZmljYWNpb25lcyBvcmRlbmFkYXMgcG9yIGZlY2hhIGRlc2NlbmRlbnRlLlxuICAgKiBSZWFsLXRpbWU6IHNlIGFjdHVhbGl6YSBhdXRvbcOhdGljYW1lbnRlIGN1YW5kbyBjYW1iaWFuIGxvcyBkYXRvcy5cbiAgICovXG4gIGdldEFsbCgpOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbkRvY3VtZW50W10+IHtcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbikgcmV0dXJuIG9mKFtdKTtcblxuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24ud2F0Y2hBbGwoe1xuICAgICAgb3JkZXJCeTogW3sgZmllbGQ6ICdjcmVhdGVkQXQnLCBkaXJlY3Rpb246ICdkZXNjJyB9XSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHRvZGFzIGxhcyBub3RpZmljYWNpb25lcyAob25lLXRpbWUgZmV0Y2ggc2luIGxpc3RlbmVyKS5cbiAgICogw5p0aWwgcGFyYSBjYXJnYXMgaW5pY2lhbGVzIHNpbiBuZWNlc2lkYWQgZGUgdXBkYXRlcyBlbiB0aWVtcG8gcmVhbC5cbiAgICovXG4gIGFzeW5jIGdldEFsbE9uY2UoKTogUHJvbWlzZTxOb3RpZmljYXRpb25Eb2N1bWVudFtdPiB7XG4gICAgaWYgKCF0aGlzLmNvbGxlY3Rpb24pIHJldHVybiBbXTtcblxuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24uZ2V0QWxsT25jZSh7XG4gICAgICBvcmRlckJ5OiBbeyBmaWVsZDogJ2NyZWF0ZWRBdCcsIGRpcmVjdGlvbjogJ2Rlc2MnIH1dLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgc29sbyBub3RpZmljYWNpb25lcyBubyBsZcOtZGFzLlxuICAgKi9cbiAgZ2V0VW5yZWFkKCk6IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uRG9jdW1lbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmdldEFsbCgpLnBpcGUoXG4gICAgICBtYXAobm90aWZpY2F0aW9ucyA9PiBub3RpZmljYXRpb25zLmZpbHRlcihuID0+ICFuLmlzUmVhZCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDdWVudGEgbm90aWZpY2FjaW9uZXMgbm8gbGXDrWRhcy5cbiAgICogw5p0aWwgcGFyYSBiYWRnZXMgZW4gVUkuXG4gICAqL1xuICBnZXRVbnJlYWRDb3VudCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmdldFVucmVhZCgpLnBpcGUobWFwKG4gPT4gbi5sZW5ndGgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHVuYSBub3RpZmljYWNpw7NuIHBvciBJRC5cbiAgICovXG4gIGFzeW5jIGdldEJ5SWQobm90aWZpY2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8Tm90aWZpY2F0aW9uRG9jdW1lbnQgfCBudWxsPiB7XG4gICAgaWYgKCF0aGlzLmNvbGxlY3Rpb24pIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24uZ2V0QnlJZChub3RpZmljYXRpb25JZCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQUNDSU9ORVNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE1hcmNhIHVuYSBub3RpZmljYWNpw7NuIGNvbW8gbGXDrWRhLlxuICAgKi9cbiAgYXN5bmMgbWFya0FzUmVhZChub3RpZmljYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmNvbGxlY3Rpb24pIHJldHVybjtcbiAgICBhd2FpdCB0aGlzLmNvbGxlY3Rpb24udXBkYXRlKG5vdGlmaWNhdGlvbklkLCB7IGlzUmVhZDogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJjYSB0b2RhcyBsYXMgbm90aWZpY2FjaW9uZXMgY29tbyBsZcOtZGFzLlxuICAgKi9cbiAgYXN5bmMgbWFya0FsbEFzUmVhZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbikgcmV0dXJuO1xuXG4gICAgY29uc3QgdW5yZWFkID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uLnF1ZXJ5KHtcbiAgICAgIHdoZXJlOiBbeyBmaWVsZDogJ2lzUmVhZCcsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogZmFsc2UgfV0sXG4gICAgfSk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHVucmVhZC5tYXAobiA9PiB0aGlzLmNvbGxlY3Rpb24hLnVwZGF0ZShuLmlkISwgeyBpc1JlYWQ6IHRydWUgfSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbGltaW5hIHVuYSBub3RpZmljYWNpw7NuLlxuICAgKi9cbiAgYXN5bmMgZGVsZXRlKG5vdGlmaWNhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbikgcmV0dXJuO1xuICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbi5kZWxldGUobm90aWZpY2F0aW9uSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVsaW1pbmEgdG9kYXMgbGFzIG5vdGlmaWNhY2lvbmVzIGRlbCB1c3VhcmlvLlxuICAgKi9cbiAgYXN5bmMgZGVsZXRlQWxsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSByZXR1cm47XG5cbiAgICBjb25zdCBhbGwgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uZ2V0QWxsKCk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoYWxsLm1hcChuID0+IHRoaXMuY29sbGVjdGlvbiEuZGVsZXRlKG4uaWQhKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpbXBpYSBlbCBlc3RhZG8gZGVsIHNlcnZpY2lvLlxuICAgKiDDmnRpbCBwYXJhIGxvZ291dC5cbiAgICovXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGVjdGlvbiA9IG51bGw7XG4gICAgdGhpcy5jdXJyZW50VXNlcklkID0gbnVsbDtcbiAgfVxufVxuIl19
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '2.0.687';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC42ODcnO1xuIl19
5
+ export const VERSION = '2.0.688';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC42ODgnO1xuIl19
@@ -50,7 +50,7 @@ import 'prismjs/components/prism-json';
50
50
  * Current version of valtech-components.
51
51
  * This is automatically updated during the publish process.
52
52
  */
53
- const VERSION = '2.0.687';
53
+ const VERSION = '2.0.688';
54
54
 
55
55
  /**
56
56
  * Servicio para gestionar presets de componentes.
@@ -28307,6 +28307,14 @@ class TypedCollection {
28307
28307
  const results = await this.firestore.getDocs(this.collectionPath, queryOptions);
28308
28308
  return results.length;
28309
28309
  }
28310
+ /**
28311
+ * Obtiene todos los documentos (one-time fetch sin listener).
28312
+ * A diferencia de watchAll(), no mantiene subscripciones activas.
28313
+ */
28314
+ async getAllOnce(options) {
28315
+ const queryOptions = this.applyDefaultFilters(options);
28316
+ return this.firestore.getDocs(this.collectionPath, queryOptions);
28317
+ }
28310
28318
  /**
28311
28319
  * Verifica si un documento existe.
28312
28320
  */
@@ -29917,6 +29925,17 @@ class NotificationsService {
29917
29925
  orderBy: [{ field: 'createdAt', direction: 'desc' }],
29918
29926
  });
29919
29927
  }
29928
+ /**
29929
+ * Obtiene todas las notificaciones (one-time fetch sin listener).
29930
+ * Útil para cargas iniciales sin necesidad de updates en tiempo real.
29931
+ */
29932
+ async getAllOnce() {
29933
+ if (!this.collection)
29934
+ return [];
29935
+ return this.collection.getAllOnce({
29936
+ orderBy: [{ field: 'createdAt', direction: 'desc' }],
29937
+ });
29938
+ }
29920
29939
  /**
29921
29940
  * Obtiene solo notificaciones no leídas.
29922
29941
  */
@@ -33697,7 +33716,7 @@ class BottomNavComponent {
33697
33716
  }
33698
33717
  </div>
33699
33718
  </nav>
33700
- `, isInline: true, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 64px;--bottom-nav-fab-size: 56px;--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 16px 16px;border-radius:28px;border-top:none;box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 28px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.04)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(16px + env(safe-area-inset-bottom,0))}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:24px;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:11px;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:24px;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:26px}@media (prefers-color-scheme: dark){.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 0, 0, 0),.8);border-top-color:#ffffff14}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000040}.bottom-nav--floating{box-shadow:0 4px 24px #0003,0 8px 32px #00000026}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff0f}.bottom-nav__fab{box-shadow:0 4px 14px #0006}.bottom-nav__fab:hover{box-shadow:0 6px 20px #00000080}}:host-context(.dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff0f}:host-context(.dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }] }); }
33719
+ `, isInline: true, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 64px;--bottom-nav-fab-size: 56px;--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 16px 8px;border-radius:28px;border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08);box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 28px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(8px + env(safe-area-inset-bottom,0))}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:24px;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:11px;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:24px;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:26px}@media (prefers-color-scheme: dark){.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 0, 0, 0),.8);border-top-color:#ffffff14}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000040}.bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}.bottom-nav__fab{box-shadow:0 4px 14px #0006}.bottom-nav__fab:hover{box-shadow:0 6px 20px #00000080}}:host-context(.dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}:host-context(.dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }] }); }
33701
33720
  }
33702
33721
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BottomNavComponent, decorators: [{
33703
33722
  type: Component,
@@ -33769,7 +33788,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
33769
33788
  }
33770
33789
  </div>
33771
33790
  </nav>
33772
- `, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 64px;--bottom-nav-fab-size: 56px;--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 16px 16px;border-radius:28px;border-top:none;box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 28px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.04)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(16px + env(safe-area-inset-bottom,0))}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:24px;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:11px;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:24px;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:26px}@media (prefers-color-scheme: dark){.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 0, 0, 0),.8);border-top-color:#ffffff14}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000040}.bottom-nav--floating{box-shadow:0 4px 24px #0003,0 8px 32px #00000026}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff0f}.bottom-nav__fab{box-shadow:0 4px 14px #0006}.bottom-nav__fab:hover{box-shadow:0 6px 20px #00000080}}:host-context(.dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff0f}:host-context(.dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"] }]
33791
+ `, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 64px;--bottom-nav-fab-size: 56px;--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 16px 8px;border-radius:28px;border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08);box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 28px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(8px + env(safe-area-inset-bottom,0))}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:24px;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:11px;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:24px;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:26px}@media (prefers-color-scheme: dark){.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 0, 0, 0),.8);border-top-color:#ffffff14}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000040}.bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}.bottom-nav__fab{box-shadow:0 4px 14px #0006}.bottom-nav__fab:hover{box-shadow:0 6px 20px #00000080}}:host-context(.dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}:host-context(.dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"] }]
33773
33792
  }], propDecorators: { tabClick: [{
33774
33793
  type: Output
33775
33794
  }], fabClick: [{