valtech-components 2.0.505 → 2.0.507

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.
@@ -69,6 +69,22 @@ export class AdSlotComponent {
69
69
  }
70
70
  return true;
71
71
  });
72
+ /**
73
+ * Indica si debe mostrar placeholder en vez de ad real.
74
+ * Activo en localhost o con Publisher ID placeholder.
75
+ */
76
+ this.isPlaceholderMode = computed(() => {
77
+ if (!isPlatformBrowser(this.platformId)) {
78
+ return false;
79
+ }
80
+ const adClient = this.adsService.adClient();
81
+ const isLocalhost = window.location.hostname === 'localhost' ||
82
+ window.location.hostname === '127.0.0.1';
83
+ const isPlaceholderClient = !adClient ||
84
+ adClient === 'ca-pub-0000000000000000' ||
85
+ adClient.includes('0000000000');
86
+ return isLocalhost || isPlaceholderClient;
87
+ });
72
88
  }
73
89
  // ===========================================================================
74
90
  // LIFECYCLE
@@ -83,6 +99,15 @@ export class AdSlotComponent {
83
99
  if (!this.shouldRender() || this.adInitialized) {
84
100
  return;
85
101
  }
102
+ // En modo placeholder, solo marcar como rendered
103
+ if (this.isPlaceholderMode()) {
104
+ this._state.set('rendered');
105
+ this.adInitialized = true;
106
+ if (this.adsService.isDebugMode()) {
107
+ console.log(`[ValtechAds] Ad slot '${this.slotId}' in PLACEHOLDER mode (localhost or invalid adClient)`);
108
+ }
109
+ return;
110
+ }
86
111
  await this.initializeAd();
87
112
  }
88
113
  ngOnDestroy() {
@@ -125,37 +150,53 @@ export class AdSlotComponent {
125
150
  [class.val-ad-slot--rendered]="state() === 'rendered'"
126
151
  [class.val-ad-slot--empty]="state() === 'empty'"
127
152
  [class.val-ad-slot--hidden]="state() === 'hidden'"
153
+ [class.val-ad-slot--placeholder]="isPlaceholderMode()"
128
154
  [class]="cssClass"
129
155
  [style.min-height]="minHeight"
130
156
  >
131
- <!-- Skeleton mientras carga -->
132
- @if (showSkeleton && state() === 'loading') {
133
- <div
134
- class="val-ad-slot__skeleton"
135
- [style.height]="minHeight"
136
- ></div>
137
- }
157
+ <!-- Placeholder mode (desarrollo local) -->
158
+ @if (isPlaceholderMode()) {
159
+ <div class="val-ad-slot__placeholder" [style.height]="minHeight">
160
+ <div class="val-ad-slot__placeholder-content">
161
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
162
+ <rect x="3" y="3" width="18" height="18" rx="2" ry="2"/>
163
+ <line x1="3" y1="9" x2="21" y2="9"/>
164
+ <line x1="9" y1="21" x2="9" y2="9"/>
165
+ </svg>
166
+ <span class="val-ad-slot__placeholder-label">Ad Placeholder</span>
167
+ <span class="val-ad-slot__placeholder-info">{{ slotId }} | {{ format }}</span>
168
+ </div>
169
+ </div>
170
+ } @else {
171
+ <!-- Skeleton mientras carga -->
172
+ @if (showSkeleton && state() === 'loading') {
173
+ <div
174
+ class="val-ad-slot__skeleton"
175
+ [style.height]="minHeight"
176
+ ></div>
177
+ }
138
178
 
139
- <!-- AdSense ins element -->
140
- <ins
141
- class="adsbygoogle val-ad-slot__container"
142
- [class.val-ad-slot__container--hidden]="state() === 'loading' && showSkeleton"
143
- [style.display]="'block'"
144
- [attr.data-ad-client]="adsService.adClient()"
145
- [attr.data-ad-slot]="adSlot || null"
146
- [attr.data-ad-format]="format"
147
- [attr.data-full-width-responsive]="fullWidth ? 'true' : null"
148
- ></ins>
179
+ <!-- AdSense ins element -->
180
+ <ins
181
+ class="adsbygoogle val-ad-slot__container"
182
+ [class.val-ad-slot__container--hidden]="state() === 'loading' && showSkeleton"
183
+ [style.display]="'block'"
184
+ [attr.data-ad-client]="adsService.adClient()"
185
+ [attr.data-ad-slot]="adSlot || null"
186
+ [attr.data-ad-format]="format"
187
+ [attr.data-full-width-responsive]="fullWidth ? 'true' : null"
188
+ ></ins>
189
+ }
149
190
 
150
191
  <!-- Debug info -->
151
192
  @if (adsService.isDebugMode()) {
152
193
  <div class="val-ad-slot__debug">
153
- <small>{{ slotId }} | {{ format }} | {{ state() }}</small>
194
+ <small>{{ slotId }} | {{ format }} | {{ state() }}{{ isPlaceholderMode() ? ' | PLACEHOLDER' : '' }}</small>
154
195
  </div>
155
196
  }
156
197
  </div>
157
198
  }
158
- `, isInline: true, styles: [".val-ad-slot{position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden;width:100%}.val-ad-slot--loading{background-color:var(--ion-color-light, #f4f4f4)}.val-ad-slot--empty,.val-ad-slot--hidden{display:none!important}.val-ad-slot__skeleton{width:100%;background:linear-gradient(90deg,var(--ion-color-light, #f4f4f4) 25%,var(--ion-color-light-shade, #e0e0e0) 50%,var(--ion-color-light, #f4f4f4) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}.val-ad-slot__container{width:100%}.val-ad-slot__container--hidden{visibility:hidden;position:absolute}.val-ad-slot__debug{position:absolute;bottom:0;left:0;background:#000000b3;color:#fff;padding:2px 6px;font-size:10px;z-index:1000;font-family:monospace}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
199
+ `, isInline: true, styles: [".val-ad-slot{position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden;width:100%}.val-ad-slot--loading{background-color:var(--ion-color-light, #f4f4f4)}.val-ad-slot--empty,.val-ad-slot--hidden{display:none!important}.val-ad-slot__skeleton{width:100%;background:linear-gradient(90deg,var(--ion-color-light, #f4f4f4) 25%,var(--ion-color-light-shade, #e0e0e0) 50%,var(--ion-color-light, #f4f4f4) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}.val-ad-slot__container{width:100%}.val-ad-slot__container--hidden{visibility:hidden;position:absolute}.val-ad-slot__placeholder{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;border:2px dashed rgba(255,255,255,.4)}.val-ad-slot__placeholder-content{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;text-align:center}.val-ad-slot__placeholder-content svg{opacity:.8}.val-ad-slot__placeholder-label{font-weight:600;font-size:14px;letter-spacing:.5px}.val-ad-slot__placeholder-info{font-size:11px;opacity:.7;font-family:monospace}.val-ad-slot__debug{position:absolute;bottom:0;left:0;background:#000000b3;color:#fff;padding:2px 6px;font-size:10px;z-index:1000;font-family:monospace}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
159
200
  }
160
201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AdSlotComponent, decorators: [{
161
202
  type: Component,
@@ -167,37 +208,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
167
208
  [class.val-ad-slot--rendered]="state() === 'rendered'"
168
209
  [class.val-ad-slot--empty]="state() === 'empty'"
169
210
  [class.val-ad-slot--hidden]="state() === 'hidden'"
211
+ [class.val-ad-slot--placeholder]="isPlaceholderMode()"
170
212
  [class]="cssClass"
171
213
  [style.min-height]="minHeight"
172
214
  >
173
- <!-- Skeleton mientras carga -->
174
- @if (showSkeleton && state() === 'loading') {
175
- <div
176
- class="val-ad-slot__skeleton"
177
- [style.height]="minHeight"
178
- ></div>
179
- }
215
+ <!-- Placeholder mode (desarrollo local) -->
216
+ @if (isPlaceholderMode()) {
217
+ <div class="val-ad-slot__placeholder" [style.height]="minHeight">
218
+ <div class="val-ad-slot__placeholder-content">
219
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
220
+ <rect x="3" y="3" width="18" height="18" rx="2" ry="2"/>
221
+ <line x1="3" y1="9" x2="21" y2="9"/>
222
+ <line x1="9" y1="21" x2="9" y2="9"/>
223
+ </svg>
224
+ <span class="val-ad-slot__placeholder-label">Ad Placeholder</span>
225
+ <span class="val-ad-slot__placeholder-info">{{ slotId }} | {{ format }}</span>
226
+ </div>
227
+ </div>
228
+ } @else {
229
+ <!-- Skeleton mientras carga -->
230
+ @if (showSkeleton && state() === 'loading') {
231
+ <div
232
+ class="val-ad-slot__skeleton"
233
+ [style.height]="minHeight"
234
+ ></div>
235
+ }
180
236
 
181
- <!-- AdSense ins element -->
182
- <ins
183
- class="adsbygoogle val-ad-slot__container"
184
- [class.val-ad-slot__container--hidden]="state() === 'loading' && showSkeleton"
185
- [style.display]="'block'"
186
- [attr.data-ad-client]="adsService.adClient()"
187
- [attr.data-ad-slot]="adSlot || null"
188
- [attr.data-ad-format]="format"
189
- [attr.data-full-width-responsive]="fullWidth ? 'true' : null"
190
- ></ins>
237
+ <!-- AdSense ins element -->
238
+ <ins
239
+ class="adsbygoogle val-ad-slot__container"
240
+ [class.val-ad-slot__container--hidden]="state() === 'loading' && showSkeleton"
241
+ [style.display]="'block'"
242
+ [attr.data-ad-client]="adsService.adClient()"
243
+ [attr.data-ad-slot]="adSlot || null"
244
+ [attr.data-ad-format]="format"
245
+ [attr.data-full-width-responsive]="fullWidth ? 'true' : null"
246
+ ></ins>
247
+ }
191
248
 
192
249
  <!-- Debug info -->
193
250
  @if (adsService.isDebugMode()) {
194
251
  <div class="val-ad-slot__debug">
195
- <small>{{ slotId }} | {{ format }} | {{ state() }}</small>
252
+ <small>{{ slotId }} | {{ format }} | {{ state() }}{{ isPlaceholderMode() ? ' | PLACEHOLDER' : '' }}</small>
196
253
  </div>
197
254
  }
198
255
  </div>
199
256
  }
200
- `, styles: [".val-ad-slot{position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden;width:100%}.val-ad-slot--loading{background-color:var(--ion-color-light, #f4f4f4)}.val-ad-slot--empty,.val-ad-slot--hidden{display:none!important}.val-ad-slot__skeleton{width:100%;background:linear-gradient(90deg,var(--ion-color-light, #f4f4f4) 25%,var(--ion-color-light-shade, #e0e0e0) 50%,var(--ion-color-light, #f4f4f4) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}.val-ad-slot__container{width:100%}.val-ad-slot__container--hidden{visibility:hidden;position:absolute}.val-ad-slot__debug{position:absolute;bottom:0;left:0;background:#000000b3;color:#fff;padding:2px 6px;font-size:10px;z-index:1000;font-family:monospace}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}\n"] }]
257
+ `, styles: [".val-ad-slot{position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden;width:100%}.val-ad-slot--loading{background-color:var(--ion-color-light, #f4f4f4)}.val-ad-slot--empty,.val-ad-slot--hidden{display:none!important}.val-ad-slot__skeleton{width:100%;background:linear-gradient(90deg,var(--ion-color-light, #f4f4f4) 25%,var(--ion-color-light-shade, #e0e0e0) 50%,var(--ion-color-light, #f4f4f4) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}.val-ad-slot__container{width:100%}.val-ad-slot__container--hidden{visibility:hidden;position:absolute}.val-ad-slot__placeholder{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;border:2px dashed rgba(255,255,255,.4)}.val-ad-slot__placeholder-content{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;text-align:center}.val-ad-slot__placeholder-content svg{opacity:.8}.val-ad-slot__placeholder-label{font-weight:600;font-size:14px;letter-spacing:.5px}.val-ad-slot__placeholder-info{font-size:11px;opacity:.7;font-family:monospace}.val-ad-slot__debug{position:absolute;bottom:0;left:0;background:#000000b3;color:#fff;padding:2px 6px;font-size:10px;z-index:1000;font-family:monospace}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}\n"] }]
201
258
  }], propDecorators: { slotId: [{
202
259
  type: Input,
203
260
  args: [{ required: true }]
@@ -214,4 +271,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
214
271
  }], showSkeleton: [{
215
272
  type: Input
216
273
  }] } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWQtc2xvdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FkLXNsb3QvYWQtc2xvdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBRUgsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBR0wsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixVQUFVLEdBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFnSC9ELE1BQU0sT0FBTyxlQUFlO0lBN0c1QjtRQThHVyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQVlqRCxxQkFBcUI7UUFDWixXQUFNLEdBQWEsTUFBTSxDQUFDO1FBRW5DLDRCQUE0QjtRQUNuQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRTFCLDBCQUEwQjtRQUNqQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRXZCLG9CQUFvQjtRQUNYLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFFNUIsdUJBQXVCO1FBQ2QsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFN0IsOEVBQThFO1FBQzlFLFNBQVM7UUFDVCw4RUFBOEU7UUFFN0QsV0FBTSxHQUFHLE1BQU0sQ0FBYyxNQUFNLENBQUMsQ0FBQztRQUM3QyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztR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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0NUOzhCQTRFMEIsTUFBTTtzQkFBaEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBR2hCLE1BQU07c0JBQWQsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWQgU2xvdCBDb21wb25lbnRcbiAqXG4gKiBDb21wb25lbnRlIHN0YW5kYWxvbmUgcGFyYSBtb3N0cmFyIGFkcyBkZSBHb29nbGUgQWRTZW5zZS5cbiAqIFNlIGludGVncmEgYXV0b21hdGljYW1lbnRlIGNvbiBlbCBzZXJ2aWNpbyBkZSBBZHMgeSByZXNwZXRhIGNvbnNlbnQgKyBwcmVtaXVtLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8IS0tIEJhbm5lciBiYXNpY28gLS0+XG4gKiA8dmFsLWFkLXNsb3RcbiAqICAgc2xvdElkPVwiaG9tZXBhZ2UtdG9wXCJcbiAqICAgZm9ybWF0PVwiaG9yaXpvbnRhbFwiXG4gKiAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gKiAvPlxuICpcbiAqIDwhLS0gUmVjdGFuZ2xlIGFkIC0tPlxuICogPHZhbC1hZC1zbG90XG4gKiAgIHNsb3RJZD1cInNpZGViYXItYWRcIlxuICogICBhZFNsb3Q9XCIxMjM0NTY3ODkwXCJcbiAqICAgZm9ybWF0PVwicmVjdGFuZ2xlXCJcbiAqIC8+XG4gKlxuICogPCEtLSBBdXRvIGZvcm1hdCAoR29vZ2xlIGRlY2lkZXMpIC0tPlxuICogPHZhbC1hZC1zbG90XG4gKiAgIHNsb3RJZD1cImFydGljbGUtYWRcIlxuICogICBmb3JtYXQ9XCJhdXRvXCJcbiAqICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG4gIGNvbXB1dGVkLFxuICBQTEFURk9STV9JRCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYWRzL2Fkcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFkRm9ybWF0LCBBZFNsb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Fkcy90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hZC1zbG90JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoc2hvdWxkUmVuZGVyKCkpIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ2YWwtYWQtc2xvdFwiXG4gICAgICAgIFtjbGFzcy52YWwtYWQtc2xvdC0tbG9hZGluZ109XCJzdGF0ZSgpID09PSAnbG9hZGluZydcIlxuICAgICAgICBbY2xhc3MudmFsLWFkLXNsb3QtLXJlbmRlcmVkXT1cInN0YXRlKCkgPT09ICdyZW5kZXJlZCdcIlxuICAgICAgICBbY2xhc3MudmFsLWFkLXNsb3QtLWVtcHR5XT1cInN0YXRlKCkgPT09ICdlbXB0eSdcIlxuICAgICAgICBbY2xhc3MudmFsLWFkLXNsb3QtLWhpZGRlbl09XCJzdGF0ZSgpID09PSAnaGlkZGVuJ1wiXG4gICAgICAgIFtjbGFzc109XCJjc3NDbGFzc1wiXG4gICAgICAgIFtzdHlsZS5taW4taGVpZ2h0XT1cIm1pbkhlaWdodFwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gU2tlbGV0b24gbWllbnRyYXMgY2FyZ2EgLS0+XG4gICAgICAgIEBpZiAoc2hvd1NrZWxldG9uICYmIHN0YXRlKCkgPT09ICdsb2FkaW5nJykge1xuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidmFsLWFkLXNsb3RfX3NrZWxldG9uXCJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwibWluSGVpZ2h0XCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIEFkU2Vuc2UgaW5zIGVsZW1lbnQgLS0+XG4gICAgICAgIDxpbnNcbiAgICAgICAgICBjbGFzcz1cImFkc2J5Z29vZ2xlIHZhbC1hZC1zbG90X19jb250YWluZXJcIlxuICAgICAgICAgIFtjbGFzcy52YWwtYWQtc2xvdF9fY29udGFpbmVyLS1oaWRkZW5dPVwic3RhdGUoKSA9PT0gJ2xvYWRpbmcnICYmIHNob3dTa2VsZXRvblwiXG4gICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiJ2Jsb2NrJ1wiXG4gICAgICAgICAgW2F0dHIuZGF0YS1hZC1jbGllbnRdPVwiYWRzU2VydmljZS5hZENsaWVudCgpXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLWFkLXNsb3RdPVwiYWRTbG90IHx8IG51bGxcIlxuICAgICAgICAgIFthdHRyLmRhdGEtYWQtZm9ybWF0XT1cImZvcm1hdFwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1mdWxsLXdpZHRoLXJlc3BvbnNpdmVdPVwiZnVsbFdpZHRoID8gJ3RydWUnIDogbnVsbFwiXG4gICAgICAgID48L2lucz5cblxuICAgICAgICA8IS0tIERlYnVnIGluZm8gLS0+XG4gICAgICAgIEBpZiAoYWRzU2VydmljZS5pc0RlYnVnTW9kZSgpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1hZC1zbG90X19kZWJ1Z1wiPlxuICAgICAgICAgICAgPHNtYWxsPnt7IHNsb3RJZCB9fSB8IHt7IGZvcm1hdCB9fSB8IHt7IHN0YXRlKCkgfX08L3NtYWxsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC52YWwtYWQtc2xvdCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3QtLWxvYWRpbmcge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItbGlnaHQsICNmNGY0ZjQpO1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3QtLWVtcHR5LFxuICAgICAgLnZhbC1hZC1zbG90LS1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC52YWwtYWQtc2xvdF9fc2tlbGV0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgIDkwZGVnLFxuICAgICAgICAgIHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjRmNCkgMjUlLFxuICAgICAgICAgIHZhcigtLWlvbi1jb2xvci1saWdodC1zaGFkZSwgI2UwZTBlMCkgNTAlLFxuICAgICAgICAgIHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjRmNCkgNzUlXG4gICAgICAgICk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICAgICAgICBhbmltYXRpb246IHNrZWxldG9uLWxvYWRpbmcgMS41cyBpbmZpbml0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3RfX2NvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3RfX2NvbnRhaW5lci0taGlkZGVuIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB9XG5cbiAgICAgIC52YWwtYWQtc2xvdF9fZGVidWcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBza2VsZXRvbi1sb2FkaW5nIHtcbiAgICAgICAgMCUge1xuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDtcbiAgICAgICAgfVxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwJSAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRTbG90Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICByZWFkb25seSBhZHNTZXJ2aWNlID0gaW5qZWN0KEFkc1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIElOUFVUUyAoQ29uZmlndXJhY2lvbiBkZWwgc2xvdClcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqIElEIHVuaWNvIGRlbCBzbG90IChwYXJhIHRyYWNraW5nIGludGVybm8pICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNsb3RJZCE6IHN0cmluZztcblxuICAvKiogQWQgU2xvdCBJRCBkZSBBZFNlbnNlIChvcGNpb25hbCwgcGFyYSB1bmlkYWRlcyBtYW51YWxlcykgKi9cbiAgQElucHV0KCkgYWRTbG90Pzogc3RyaW5nO1xuXG4gIC8qKiBGb3JtYXRvIGRlbCBhZCAqL1xuICBASW5wdXQoKSBmb3JtYXQ6IEFkRm9ybWF0ID0gJ2F1dG8nO1xuXG4gIC8qKiBGdWxsIHdpZHRoIHJlc3BvbnNpdmUgKi9cbiAgQElucHV0KCkgZnVsbFdpZHRoID0gdHJ1ZTtcblxuICAvKiogQ1NTIGNsYXNzIGFkaWNpb25hbCAqL1xuICBASW5wdXQoKSBjc3NDbGFzcyA9ICcnO1xuXG4gIC8qKiBBbHR1cmEgbWluaW1hICovXG4gIEBJbnB1dCgpIG1pbkhlaWdodCA9ICc5MHB4JztcblxuICAvKiogTW9zdHJhciBza2VsZXRvbiAqL1xuICBASW5wdXQoKSBzaG93U2tlbGV0b24gPSB0cnVlO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBFU1RBRE9cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGUgPSBzaWduYWw8QWRTbG90U3RhdGU+KCdpZGxlJyk7XG4gIHJlYWRvbmx5IHN0YXRlID0gdGhpcy5fc3RhdGUuYXNSZWFkb25seSgpO1xuICBwcml2YXRlIGFkSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAvKiogSW5kaWNhIHNpIGVsIGNvbXBvbmVudGUgZGViZSByZW5kZXJpemFyc2UgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUmVuZGVyID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIC8vIE5vIHJlbmRlcml6YXIgZW4gU1NSXG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gTm8gcmVuZGVyaXphciBzaSB1c3VhcmlvIGVzIHByZW1pdW1cbiAgICBpZiAodGhpcy5hZHNTZXJ2aWNlLmlzUHJlbWl1bVVzZXIoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIE5vIHJlbmRlcml6YXIgc2kgYWRzIGVzdGFuIGRlc2hhYmlsaXRhZG9zIHkgYXVuIG5vIGluaWNpYWxpemFkb1xuICAgIGlmICghdGhpcy5hZHNTZXJ2aWNlLmlzSW5pdGlhbGl6ZWQoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9KTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gTElGRUNZQ0xFXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5zaG91bGRSZW5kZXIoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRlLnNldCgnbG9hZGluZycpO1xuICB9XG5cbiAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5zaG91bGRSZW5kZXIoKSB8fCB0aGlzLmFkSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVBZCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy8gQWRTZW5zZSBubyByZXF1aWVyZSBjbGVhbnVwIG1hbnVhbCBjb21vIEdQVFxuICAgIHRoaXMuYWRJbml0aWFsaXplZCA9IGZhbHNlO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBSSVZBVEVcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0aWFsaXplQWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFJlZ2lzdHJhciBzbG90IHkgY2FyZ2FyIEFkU2Vuc2Ugc2kgbm8gZXN0YSBjYXJnYWRvXG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy5hZHNTZXJ2aWNlLnJlZ2lzdGVyU2xvdCh0aGlzLnNsb3RJZCk7XG5cbiAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgIHRoaXMuX3N0YXRlLnNldCgncmVuZGVyZWQnKTtcbiAgICAgICAgdGhpcy5hZEluaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5hZHNTZXJ2aWNlLmlzRGVidWdNb2RlKCkpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgW1ZhbHRlY2hBZHNdIEFkIHNsb3QgJyR7dGhpcy5zbG90SWR9JyByZW5kZXJlZGAsIHtcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5mb3JtYXQsXG4gICAgICAgICAgICBhZFNsb3Q6IHRoaXMuYWRTbG90LFxuICAgICAgICAgICAgZnVsbFdpZHRoOiB0aGlzLmZ1bGxXaWR0aCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fc3RhdGUuc2V0KCdlbXB0eScpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBbVmFsdGVjaEFkc10gRXJyb3IgaW5pdGlhbGl6aW5nIGFkIHNsb3QgJyR7dGhpcy5zbG90SWR9JzpgLCBlcnJvcik7XG4gICAgICB0aGlzLl9zdGF0ZS5zZXQoJ2Vycm9yJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWQtc2xvdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FkLXNsb3QvYWQtc2xvdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBRUgsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBR0wsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixVQUFVLEdBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFxSy9ELE1BQU0sT0FBTyxlQUFlO0lBbEs1QjtRQW1LVyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQVlqRCxxQkFBcUI7UUFDWixXQUFNLEdBQWEsTUFBTSxDQUFDO1FBRW5DLDRCQUE0QjtRQUNuQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRTFCLDBCQUEwQjtRQUNqQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRXZCLG9CQUFvQjtRQUNYLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFFNUIsdUJBQXVCO1FBQ2QsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFN0IsOEVBQThFO1FBQzlFLFNBQVM7UUFDVCw4RUFBOEU7UUFFN0QsV0FBTSxHQUFHLE1BQU0sQ0FBYyxNQUFNLENBQUMsQ0FBQztRQUM3QyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztR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Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWQgU2xvdCBDb21wb25lbnRcbiAqXG4gKiBDb21wb25lbnRlIHN0YW5kYWxvbmUgcGFyYSBtb3N0cmFyIGFkcyBkZSBHb29nbGUgQWRTZW5zZS5cbiAqIFNlIGludGVncmEgYXV0b21hdGljYW1lbnRlIGNvbiBlbCBzZXJ2aWNpbyBkZSBBZHMgeSByZXNwZXRhIGNvbnNlbnQgKyBwcmVtaXVtLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8IS0tIEJhbm5lciBiYXNpY28gLS0+XG4gKiA8dmFsLWFkLXNsb3RcbiAqICAgc2xvdElkPVwiaG9tZXBhZ2UtdG9wXCJcbiAqICAgZm9ybWF0PVwiaG9yaXpvbnRhbFwiXG4gKiAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gKiAvPlxuICpcbiAqIDwhLS0gUmVjdGFuZ2xlIGFkIC0tPlxuICogPHZhbC1hZC1zbG90XG4gKiAgIHNsb3RJZD1cInNpZGViYXItYWRcIlxuICogICBhZFNsb3Q9XCIxMjM0NTY3ODkwXCJcbiAqICAgZm9ybWF0PVwicmVjdGFuZ2xlXCJcbiAqIC8+XG4gKlxuICogPCEtLSBBdXRvIGZvcm1hdCAoR29vZ2xlIGRlY2lkZXMpIC0tPlxuICogPHZhbC1hZC1zbG90XG4gKiAgIHNsb3RJZD1cImFydGljbGUtYWRcIlxuICogICBmb3JtYXQ9XCJhdXRvXCJcbiAqICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG4gIGNvbXB1dGVkLFxuICBQTEFURk9STV9JRCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYWRzL2Fkcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFkRm9ybWF0LCBBZFNsb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Fkcy90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hZC1zbG90JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoc2hvdWxkUmVuZGVyKCkpIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ2YWwtYWQtc2xvdFwiXG4gICAgICAgIFtjbGFzcy52YWwtYWQtc2xvdC0tbG9hZGluZ109XCJzdGF0ZSgpID09PSAnbG9hZGluZydcIlxuICAgICAgICBbY2xhc3MudmFsLWFkLXNsb3QtLXJlbmRlcmVkXT1cInN0YXRlKCkgPT09ICdyZW5kZXJlZCdcIlxuICAgICAgICBbY2xhc3MudmFsLWFkLXNsb3QtLWVtcHR5XT1cInN0YXRlKCkgPT09ICdlbXB0eSdcIlxuICAgICAgICBbY2xhc3MudmFsLWFkLXNsb3QtLWhpZGRlbl09XCJzdGF0ZSgpID09PSAnaGlkZGVuJ1wiXG4gICAgICAgIFtjbGFzcy52YWwtYWQtc2xvdC0tcGxhY2Vob2xkZXJdPVwiaXNQbGFjZWhvbGRlck1vZGUoKVwiXG4gICAgICAgIFtjbGFzc109XCJjc3NDbGFzc1wiXG4gICAgICAgIFtzdHlsZS5taW4taGVpZ2h0XT1cIm1pbkhlaWdodFwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gUGxhY2Vob2xkZXIgbW9kZSAoZGVzYXJyb2xsbyBsb2NhbCkgLS0+XG4gICAgICAgIEBpZiAoaXNQbGFjZWhvbGRlck1vZGUoKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWwtYWQtc2xvdF9fcGxhY2Vob2xkZXJcIiBbc3R5bGUuaGVpZ2h0XT1cIm1pbkhlaWdodFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1hZC1zbG90X19wbGFjZWhvbGRlci1jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIj5cbiAgICAgICAgICAgICAgICA8cmVjdCB4PVwiM1wiIHk9XCIzXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgcng9XCIyXCIgcnk9XCIyXCIvPlxuICAgICAgICAgICAgICAgIDxsaW5lIHgxPVwiM1wiIHkxPVwiOVwiIHgyPVwiMjFcIiB5Mj1cIjlcIi8+XG4gICAgICAgICAgICAgICAgPGxpbmUgeDE9XCI5XCIgeTE9XCIyMVwiIHgyPVwiOVwiIHkyPVwiOVwiLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsLWFkLXNsb3RfX3BsYWNlaG9sZGVyLWxhYmVsXCI+QWQgUGxhY2Vob2xkZXI8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsLWFkLXNsb3RfX3BsYWNlaG9sZGVyLWluZm9cIj57eyBzbG90SWQgfX0gfCB7eyBmb3JtYXQgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPCEtLSBTa2VsZXRvbiBtaWVudHJhcyBjYXJnYSAtLT5cbiAgICAgICAgICBAaWYgKHNob3dTa2VsZXRvbiAmJiBzdGF0ZSgpID09PSAnbG9hZGluZycpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ2YWwtYWQtc2xvdF9fc2tlbGV0b25cIlxuICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cIm1pbkhlaWdodFwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPCEtLSBBZFNlbnNlIGlucyBlbGVtZW50IC0tPlxuICAgICAgICAgIDxpbnNcbiAgICAgICAgICAgIGNsYXNzPVwiYWRzYnlnb29nbGUgdmFsLWFkLXNsb3RfX2NvbnRhaW5lclwiXG4gICAgICAgICAgICBbY2xhc3MudmFsLWFkLXNsb3RfX2NvbnRhaW5lci0taGlkZGVuXT1cInN0YXRlKCkgPT09ICdsb2FkaW5nJyAmJiBzaG93U2tlbGV0b25cIlxuICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiJ2Jsb2NrJ1wiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWFkLWNsaWVudF09XCJhZHNTZXJ2aWNlLmFkQ2xpZW50KClcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1hZC1zbG90XT1cImFkU2xvdCB8fCBudWxsXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtYWQtZm9ybWF0XT1cImZvcm1hdFwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWZ1bGwtd2lkdGgtcmVzcG9uc2l2ZV09XCJmdWxsV2lkdGggPyAndHJ1ZScgOiBudWxsXCJcbiAgICAgICAgICA+PC9pbnM+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIERlYnVnIGluZm8gLS0+XG4gICAgICAgIEBpZiAoYWRzU2VydmljZS5pc0RlYnVnTW9kZSgpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1hZC1zbG90X19kZWJ1Z1wiPlxuICAgICAgICAgICAgPHNtYWxsPnt7IHNsb3RJZCB9fSB8IHt7IGZvcm1hdCB9fSB8IHt7IHN0YXRlKCkgfX17eyBpc1BsYWNlaG9sZGVyTW9kZSgpID8gJyB8IFBMQUNFSE9MREVSJyA6ICcnIH19PC9zbWFsbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAudmFsLWFkLXNsb3Qge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnZhbC1hZC1zbG90LS1sb2FkaW5nIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNGY0KTtcbiAgICAgIH1cblxuICAgICAgLnZhbC1hZC1zbG90LS1lbXB0eSxcbiAgICAgIC52YWwtYWQtc2xvdC0taGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3RfX3NrZWxldG9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICA5MGRlZyxcbiAgICAgICAgICB2YXIoLS1pb24tY29sb3ItbGlnaHQsICNmNGY0ZjQpIDI1JSxcbiAgICAgICAgICB2YXIoLS1pb24tY29sb3ItbGlnaHQtc2hhZGUsICNlMGUwZTApIDUwJSxcbiAgICAgICAgICB2YXIoLS1pb24tY29sb3ItbGlnaHQsICNmNGY0ZjQpIDc1JVxuICAgICAgICApO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgICAgICAgYW5pbWF0aW9uOiBza2VsZXRvbi1sb2FkaW5nIDEuNXMgaW5maW5pdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIH1cblxuICAgICAgLnZhbC1hZC1zbG90X19jb250YWluZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnZhbC1hZC1zbG90X19jb250YWluZXItLWhpZGRlbiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgfVxuXG4gICAgICAvKiBQbGFjZWhvbGRlciBzdHlsZXMgKi9cbiAgICAgIC52YWwtYWQtc2xvdF9fcGxhY2Vob2xkZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzY2N2VlYSAwJSwgIzc2NGJhMiAxMDAlKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3RfX3BsYWNlaG9sZGVyLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3RfX3BsYWNlaG9sZGVyLWNvbnRlbnQgc3ZnIHtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3RfX3BsYWNlaG9sZGVyLWxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICB9XG5cbiAgICAgIC52YWwtYWQtc2xvdF9fcGxhY2Vob2xkZXItaW5mbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3RfX2RlYnVnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgc2tlbGV0b24tbG9hZGluZyB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIDA7XG4gICAgICAgIH1cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFkU2xvdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgcmVhZG9ubHkgYWRzU2VydmljZSA9IGluamVjdChBZHNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBJTlBVVFMgKENvbmZpZ3VyYWNpb24gZGVsIHNsb3QpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKiBJRCB1bmljbyBkZWwgc2xvdCAocGFyYSB0cmFja2luZyBpbnRlcm5vKSAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzbG90SWQhOiBzdHJpbmc7XG5cbiAgLyoqIEFkIFNsb3QgSUQgZGUgQWRTZW5zZSAob3BjaW9uYWwsIHBhcmEgdW5pZGFkZXMgbWFudWFsZXMpICovXG4gIEBJbnB1dCgpIGFkU2xvdD86IHN0cmluZztcblxuICAvKiogRm9ybWF0byBkZWwgYWQgKi9cbiAgQElucHV0KCkgZm9ybWF0OiBBZEZvcm1hdCA9ICdhdXRvJztcblxuICAvKiogRnVsbCB3aWR0aCByZXNwb25zaXZlICovXG4gIEBJbnB1dCgpIGZ1bGxXaWR0aCA9IHRydWU7XG5cbiAgLyoqIENTUyBjbGFzcyBhZGljaW9uYWwgKi9cbiAgQElucHV0KCkgY3NzQ2xhc3MgPSAnJztcblxuICAvKiogQWx0dXJhIG1pbmltYSAqL1xuICBASW5wdXQoKSBtaW5IZWlnaHQgPSAnOTBweCc7XG5cbiAgLyoqIE1vc3RyYXIgc2tlbGV0b24gKi9cbiAgQElucHV0KCkgc2hvd1NrZWxldG9uID0gdHJ1ZTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRVNUQURPXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXRlID0gc2lnbmFsPEFkU2xvdFN0YXRlPignaWRsZScpO1xuICByZWFkb25seSBzdGF0ZSA9IHRoaXMuX3N0YXRlLmFzUmVhZG9ubHkoKTtcbiAgcHJpdmF0ZSBhZEluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgLyoqIEluZGljYSBzaSBlbCBjb21wb25lbnRlIGRlYmUgcmVuZGVyaXphcnNlICovXG4gIHJlYWRvbmx5IHNob3VsZFJlbmRlciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAvLyBObyByZW5kZXJpemFyIGVuIFNTUlxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIE5vIHJlbmRlcml6YXIgc2kgdXN1YXJpbyBlcyBwcmVtaXVtXG4gICAgaWYgKHRoaXMuYWRzU2VydmljZS5pc1ByZW1pdW1Vc2VyKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBObyByZW5kZXJpemFyIHNpIGFkcyBlc3RhbiBkZXNoYWJpbGl0YWRvcyB5IGF1biBubyBpbmljaWFsaXphZG9cbiAgICBpZiAoIXRoaXMuYWRzU2VydmljZS5pc0luaXRpYWxpemVkKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEluZGljYSBzaSBkZWJlIG1vc3RyYXIgcGxhY2Vob2xkZXIgZW4gdmV6IGRlIGFkIHJlYWwuXG4gICAqIEFjdGl2byBlbiBsb2NhbGhvc3QgbyBjb24gUHVibGlzaGVyIElEIHBsYWNlaG9sZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNQbGFjZWhvbGRlck1vZGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgYWRDbGllbnQgPSB0aGlzLmFkc1NlcnZpY2UuYWRDbGllbnQoKTtcbiAgICBjb25zdCBpc0xvY2FsaG9zdCA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PT0gJ2xvY2FsaG9zdCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PT0gJzEyNy4wLjAuMSc7XG4gICAgY29uc3QgaXNQbGFjZWhvbGRlckNsaWVudCA9ICFhZENsaWVudCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRDbGllbnQgPT09ICdjYS1wdWItMDAwMDAwMDAwMDAwMDAwMCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkQ2xpZW50LmluY2x1ZGVzKCcwMDAwMDAwMDAwJyk7XG5cbiAgICByZXR1cm4gaXNMb2NhbGhvc3QgfHwgaXNQbGFjZWhvbGRlckNsaWVudDtcbiAgfSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIExJRkVDWUNMRVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVuZGVyKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZS5zZXQoJ2xvYWRpbmcnKTtcbiAgfVxuXG4gIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVuZGVyKCkgfHwgdGhpcy5hZEluaXRpYWxpemVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRW4gbW9kbyBwbGFjZWhvbGRlciwgc29sbyBtYXJjYXIgY29tbyByZW5kZXJlZFxuICAgIGlmICh0aGlzLmlzUGxhY2Vob2xkZXJNb2RlKCkpIHtcbiAgICAgIHRoaXMuX3N0YXRlLnNldCgncmVuZGVyZWQnKTtcbiAgICAgIHRoaXMuYWRJbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgIGlmICh0aGlzLmFkc1NlcnZpY2UuaXNEZWJ1Z01vZGUoKSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgW1ZhbHRlY2hBZHNdIEFkIHNsb3QgJyR7dGhpcy5zbG90SWR9JyBpbiBQTEFDRUhPTERFUiBtb2RlIChsb2NhbGhvc3Qgb3IgaW52YWxpZCBhZENsaWVudClgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVBZCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy8gQWRTZW5zZSBubyByZXF1aWVyZSBjbGVhbnVwIG1hbnVhbCBjb21vIEdQVFxuICAgIHRoaXMuYWRJbml0aWFsaXplZCA9IGZhbHNlO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBSSVZBVEVcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0aWFsaXplQWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFJlZ2lzdHJhciBzbG90IHkgY2FyZ2FyIEFkU2Vuc2Ugc2kgbm8gZXN0YSBjYXJnYWRvXG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy5hZHNTZXJ2aWNlLnJlZ2lzdGVyU2xvdCh0aGlzLnNsb3RJZCk7XG5cbiAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgIHRoaXMuX3N0YXRlLnNldCgncmVuZGVyZWQnKTtcbiAgICAgICAgdGhpcy5hZEluaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5hZHNTZXJ2aWNlLmlzRGVidWdNb2RlKCkpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgW1ZhbHRlY2hBZHNdIEFkIHNsb3QgJyR7dGhpcy5zbG90SWR9JyByZW5kZXJlZGAsIHtcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5mb3JtYXQsXG4gICAgICAgICAgICBhZFNsb3Q6IHRoaXMuYWRTbG90LFxuICAgICAgICAgICAgZnVsbFdpZHRoOiB0aGlzLmZ1bGxXaWR0aCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fc3RhdGUuc2V0KCdlbXB0eScpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBbVmFsdGVjaEFkc10gRXJyb3IgaW5pdGlhbGl6aW5nIGFkIHNsb3QgJyR7dGhpcy5zbG90SWR9JzpgLCBlcnJvcik7XG4gICAgICB0aGlzLl9zdGF0ZS5zZXQoJ2Vycm9yJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -4,4 +4,4 @@
4
4
  * Tipos e interfaces para el servicio de Firebase Analytics (GA4).
5
5
  */
6
6
  export {};
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9hbmFseXRpY3MtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQW5hbHl0aWNzIFR5cGVzXG4gKlxuICogVGlwb3MgZSBpbnRlcmZhY2VzIHBhcmEgZWwgc2VydmljaW8gZGUgRmlyZWJhc2UgQW5hbHl0aWNzIChHQTQpLlxuICovXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTkZJR1VSQUNJw5NOXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ29uZmlndXJhY2nDs24gZGUgQW5hbHl0aWNzIHBhcmEgVmFsdGVjaEZpcmViYXNlQ29uZmlnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW5hbHl0aWNzQ29uZmlnIHtcbiAgLyoqIEhhYmlsaXRhciB0cmFja2luZyBhdXRvbcOhdGljbyBkZSBwYWdlIHZpZXdzIHZpYSBSb3V0ZXIgKGRlZmF1bHQ6IHRydWUpICovXG4gIGVuYWJsZVBhZ2VWaWV3VHJhY2tpbmc/OiBib29sZWFuO1xuXG4gIC8qKiBIYWJpbGl0YXIgdHJhY2tpbmcgYXV0b23DoXRpY28gZGUgZXJyb3JlcyB2aWEgRXJyb3JIYW5kbGVyIChkZWZhdWx0OiBmYWxzZSkgKi9cbiAgZW5hYmxlRXJyb3JUcmFja2luZz86IGJvb2xlYW47XG5cbiAgLyoqIEhhYmlsaXRhciBpbnRlZ3JhY2nDs24gY29uIGF1dGggcGFyYSB1c2VySWQgeSB1c2VyUHJvcGVydGllcyAoZGVmYXVsdDogdHJ1ZSkgKi9cbiAgZW5hYmxlQXV0aEludGVncmF0aW9uPzogYm9vbGVhbjtcblxuICAvKiogTW9kbyBkZWJ1Zzogbm8gZW52w61hIGEgRmlyZWJhc2UsIGxvZ2VhIGEgY29uc29sYSAoZGVmYXVsdDogZmFsc2UgZW4gcHJvZCkgKi9cbiAgZGVidWdNb2RlPzogYm9vbGVhbjtcblxuICAvKiogUnV0YXMgYSBleGNsdWlyIGRlbCBwYWdlIHZpZXcgdHJhY2tpbmcgKHJlZ2V4IHBhdHRlcm5zKSAqL1xuICBleGNsdWRlUm91dGVzPzogc3RyaW5nW107XG5cbiAgLyoqIENvbnNlbnQgbW9kZSBpbmljaWFsIChHRFBSKSAqL1xuICBkZWZhdWx0Q29uc2VudD86IENvbnNlbnRTZXR0aW5ncztcblxuICAvKiogQ2xhdmUgZGUgbG9jYWxTdG9yYWdlIHBhcmEgcGVyc2lzdGlyIGNvbnNlbnQgKGRlZmF1bHQ6ICdhbmFseXRpY3NfY29uc2VudCcpICovXG4gIGNvbnNlbnRTdG9yYWdlS2V5Pzogc3RyaW5nO1xuXG4gIC8qKiBQcm9waWVkYWRlcyBkZSB1c3VhcmlvIHBvciBkZWZlY3RvICovXG4gIGRlZmF1bHRVc2VyUHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqIFByZWZpam8gcGFyYSBldmVudG9zIGN1c3RvbSAoZWo6ICdteWFwcF8nKSAqL1xuICBldmVudFByZWZpeD86IHN0cmluZztcblxuICAvKiogU2FtcGxpbmcgcmF0ZSAoMC4wIC0gMS4wKSBwYXJhIHJlZHVjaXIgdm9sdW1lbiAoZGVmYXVsdDogMS4wKSAqL1xuICBzYW1wbGluZ1JhdGU/OiBudW1iZXI7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTlNFTlQgKEdEUFIpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogU2V0dGluZ3MgZGUgY29uc2VudGltaWVudG8gR0RQUlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnNlbnRTZXR0aW5ncyB7XG4gIC8qKiBQZXJtaXRlIHJlY29sZWNjacOzbiBkZSBhbmFseXRpY3MgKi9cbiAgYW5hbHl0aWNzPzogYm9vbGVhbjtcbiAgLyoqIFBlcm1pdGUgcGVyc29uYWxpemFjacOzbiBkZSBhZHMgKi9cbiAgYWR2ZXJ0aXNpbmc/OiBib29sZWFuO1xuICAvKiogUGVybWl0ZSBmdW5jaW9uYWxpZGFkICovXG4gIGZ1bmN0aW9uYWxpdHk/OiBib29sZWFuO1xuICAvKiogUGVybWl0ZSBzZWd1cmlkYWQgKi9cbiAgc2VjdXJpdHk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVzdGFkbyBjb21wbGV0byBkZSBjb25zZW50aW1pZW50b1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnNlbnRTdGF0ZSB7XG4gIC8qKiBTZXR0aW5ncyBhY3R1YWxlcyAqL1xuICBzZXR0aW5nczogQ29uc2VudFNldHRpbmdzO1xuICAvKiogVGltZXN0YW1wIGRlIGxhIMO6bHRpbWEgYWN0dWFsaXphY2nDs24gKi9cbiAgdXBkYXRlZEF0OiBEYXRlIHwgbnVsbDtcbiAgLyoqIFNpIGVsIHVzdWFyaW8gaGEgdG9tYWRvIHVuYSBkZWNpc2nDs24gZXhwbMOtY2l0YSAqL1xuICBoYXNEZWNpZGVkOiBib29sZWFuO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBFVkVOVE9TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogTm9tYnJlcyBkZSBldmVudG9zIEdBNCByZWNvbWVuZGFkb3MgKyBjdXN0b21zXG4gKi9cbmV4cG9ydCB0eXBlIEFuYWx5dGljc0V2ZW50TmFtZSA9XG4gIC8vIEdBNCBSZWNvbW1lbmRlZCBFdmVudHMgLSBFY29tbWVyY2VcbiAgfCAnYWRkX3BheW1lbnRfaW5mbydcbiAgfCAnYWRkX3NoaXBwaW5nX2luZm8nXG4gIHwgJ2FkZF90b19jYXJ0J1xuICB8ICdhZGRfdG9fd2lzaGxpc3QnXG4gIHwgJ2JlZ2luX2NoZWNrb3V0J1xuICB8ICdwdXJjaGFzZSdcbiAgfCAncmVmdW5kJ1xuICB8ICdyZW1vdmVfZnJvbV9jYXJ0J1xuICB8ICd2aWV3X2NhcnQnXG4gIHwgJ3ZpZXdfaXRlbSdcbiAgfCAndmlld19pdGVtX2xpc3QnXG4gIC8vIEdBNCBSZWNvbW1lbmRlZCBFdmVudHMgLSBFbmdhZ2VtZW50XG4gIHwgJ2dlbmVyYXRlX2xlYWQnXG4gIHwgJ2xvZ2luJ1xuICB8ICdwYWdlX3ZpZXcnXG4gIHwgJ3NjcmVlbl92aWV3J1xuICB8ICdzZWFyY2gnXG4gIHwgJ3NlbGVjdF9jb250ZW50J1xuICB8ICdzZWxlY3RfaXRlbSdcbiAgfCAnc2VsZWN0X3Byb21vdGlvbidcbiAgfCAnc2hhcmUnXG4gIHwgJ3NpZ25fdXAnXG4gIHwgJ3ZpZXdfcHJvbW90aW9uJ1xuICAvLyBDdXN0b20gRXZlbnRzIChhcHAtc3BlY2lmaWMpXG4gIHwgJ2ZlYXR1cmVfdXNlZCdcbiAgfCAncHJlZmVyZW5jZV9jaGFuZ2VkJ1xuICB8ICdvbmJvYXJkaW5nX3N0ZXAnXG4gIHwgJ2Vycm9yX29jY3VycmVkJ1xuICB8ICdwZXJmb3JtYW5jZV9tZXRyaWMnXG4gIC8vIEFsbG93IGN1c3RvbSBldmVudHNcbiAgfCBzdHJpbmc7XG5cbi8qKlxuICogUGFyw6FtZXRyb3MgdGlwYWRvcyBwb3IgZXZlbnRvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW5hbHl0aWNzRXZlbnRQYXJhbXMge1xuICAvLyBFY29tbWVyY2VcbiAgYWRkX3RvX2NhcnQ6IHtcbiAgICBpdGVtX2lkOiBzdHJpbmc7XG4gICAgaXRlbV9uYW1lPzogc3RyaW5nO1xuICAgIHZhbHVlPzogbnVtYmVyO1xuICAgIGN1cnJlbmN5Pzogc3RyaW5nO1xuICAgIHF1YW50aXR5PzogbnVtYmVyO1xuICB9O1xuICBwdXJjaGFzZToge1xuICAgIHRyYW5zYWN0aW9uX2lkOiBzdHJpbmc7XG4gICAgdmFsdWU6IG51bWJlcjtcbiAgICBjdXJyZW5jeT86IHN0cmluZztcbiAgICBpdGVtcz86IEFuYWx5dGljc0l0ZW1bXTtcbiAgICB0YXg/OiBudW1iZXI7XG4gICAgc2hpcHBpbmc/OiBudW1iZXI7XG4gIH07XG4gIGJlZ2luX2NoZWNrb3V0OiB7XG4gICAgdmFsdWU/OiBudW1iZXI7XG4gICAgY3VycmVuY3k/OiBzdHJpbmc7XG4gICAgaXRlbXM/OiBBbmFseXRpY3NJdGVtW107XG4gIH07XG4gIHZpZXdfaXRlbToge1xuICAgIGl0ZW1faWQ6IHN0cmluZztcbiAgICBpdGVtX25hbWU/OiBzdHJpbmc7XG4gICAgdmFsdWU/OiBudW1iZXI7XG4gICAgY3VycmVuY3k/OiBzdHJpbmc7XG4gIH07XG4gIHJlbW92ZV9mcm9tX2NhcnQ6IHtcbiAgICBpdGVtX2lkOiBzdHJpbmc7XG4gICAgaXRlbV9uYW1lPzogc3RyaW5nO1xuICAgIHZhbHVlPzogbnVtYmVyO1xuICB9O1xuXG4gIC8vIEVuZ2FnZW1lbnRcbiAgbG9naW46IHsgbWV0aG9kPzogc3RyaW5nIH07XG4gIHNpZ25fdXA6IHsgbWV0aG9kPzogc3RyaW5nIH07XG4gIHNlYXJjaDogeyBzZWFyY2hfdGVybTogc3RyaW5nIH07XG4gIHNoYXJlOiB7IGNvbnRlbnRfdHlwZT86IHN0cmluZzsgaXRlbV9pZD86IHN0cmluZzsgbWV0aG9kPzogc3RyaW5nIH07XG4gIHNlbGVjdF9jb250ZW50OiB7IGNvbnRlbnRfdHlwZTogc3RyaW5nOyBpdGVtX2lkPzogc3RyaW5nIH07XG4gIHBhZ2VfdmlldzogeyBwYWdlX3BhdGg/OiBzdHJpbmc7IHBhZ2VfdGl0bGU/OiBzdHJpbmc7IHBhZ2VfbG9jYXRpb24/OiBzdHJpbmcgfTtcbiAgc2NyZWVuX3ZpZXc6IHsgc2NyZWVuX25hbWU6IHN0cmluZzsgc2NyZWVuX2NsYXNzPzogc3RyaW5nIH07XG5cbiAgLy8gQ3VzdG9tXG4gIGZlYXR1cmVfdXNlZDogeyBmZWF0dXJlX25hbWU6IHN0cmluZzsgZmVhdHVyZV9jYXRlZ29yeT86IHN0cmluZyB9O1xuICBwcmVmZXJlbmNlX2NoYW5nZWQ6IHsgcHJlZmVyZW5jZV9uYW1lOiBzdHJpbmc7IG9sZF92YWx1ZT86IHN0cmluZzsgbmV3X3ZhbHVlPzogc3RyaW5nIH07XG4gIG9uYm9hcmRpbmdfc3RlcDogeyBzdGVwX251bWJlcjogbnVtYmVyOyBzdGVwX25hbWU/OiBzdHJpbmcgfTtcbiAgZXJyb3Jfb2NjdXJyZWQ6IHtcbiAgICBlcnJvcl90eXBlOiBzdHJpbmc7XG4gICAgZXJyb3JfbWVzc2FnZT86IHN0cmluZztcbiAgICBlcnJvcl9zdGFjaz86IHN0cmluZztcbiAgICBjb250ZXh0Pzogc3RyaW5nO1xuICB9O1xuICBwZXJmb3JtYW5jZV9tZXRyaWM6IHsgbWV0cmljX25hbWU6IHN0cmluZzsgdmFsdWU6IG51bWJlcjsgdW5pdD86IHN0cmluZyB9O1xuXG4gIC8vIEFsbG93IGN1c3RvbSBwYXJhbXNcbiAgW2tleTogc3RyaW5nXTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogSXRlbSBwYXJhIGV2ZW50b3MgZGUgZWNvbW1lcmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW5hbHl0aWNzSXRlbSB7XG4gIC8qKiBJRCDDum5pY28gZGVsIGl0ZW0gKi9cbiAgaXRlbV9pZDogc3RyaW5nO1xuICAvKiogTm9tYnJlIGRlbCBpdGVtICovXG4gIGl0ZW1fbmFtZTogc3RyaW5nO1xuICAvKiogQ2F0ZWdvcsOtYSBwcmluY2lwYWwgKi9cbiAgaXRlbV9jYXRlZ29yeT86IHN0cmluZztcbiAgLyoqIFN1YmNhdGVnb3LDrWFzICovXG4gIGl0ZW1fY2F0ZWdvcnkyPzogc3RyaW5nO1xuICBpdGVtX2NhdGVnb3J5Mz86IHN0cmluZztcbiAgLyoqIE1hcmNhICovXG4gIGl0ZW1fYnJhbmQ/OiBzdHJpbmc7XG4gIC8qKiBWYXJpYW50ZSAoZWo6IGNvbG9yLCB0YWxsYSkgKi9cbiAgaXRlbV92YXJpYW50Pzogc3RyaW5nO1xuICAvKiogUHJlY2lvIHVuaXRhcmlvICovXG4gIHByaWNlPzogbnVtYmVyO1xuICAvKiogQ2FudGlkYWQgKi9cbiAgcXVhbnRpdHk/OiBudW1iZXI7XG4gIC8qKiBNb25lZGEgSVNPIDQyMTcgKi9cbiAgY3VycmVuY3k/OiBzdHJpbmc7XG4gIC8qKiBQb3NpY2nDs24gZW4gbGlzdGEgKi9cbiAgaW5kZXg/OiBudW1iZXI7XG4gIC8qKiBDdXDDs24gYXBsaWNhZG8gKi9cbiAgY291cG9uPzogc3RyaW5nO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBERUJVR1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFRpcG8gZGUgZXZlbnRvIGRlIGRlYnVnXG4gKi9cbmV4cG9ydCB0eXBlIERlYnVnRXZlbnRUeXBlID1cbiAgfCAnZXZlbnQnXG4gIHwgJ3BhZ2VfdmlldydcbiAgfCAnc2NyZWVuX3ZpZXcnXG4gIHwgJ3VzZXJfcHJvcGVydHknXG4gIHwgJ2Vycm9yJ1xuICB8ICdjb25zZW50J1xuICB8ICd0aW1pbmcnO1xuXG4vKipcbiAqIEV2ZW50byBkZSBkZWJ1ZyAoc29sbyBlbiBkZWJ1ZyBtb2RlKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFuYWx5dGljc0RlYnVnRXZlbnQge1xuICAvKiogVGltZXN0YW1wIGRlbCBldmVudG8gKi9cbiAgdGltZXN0YW1wOiBEYXRlO1xuICAvKiogVGlwbyBkZSBldmVudG8gKi9cbiAgdHlwZTogRGVidWdFdmVudFR5cGU7XG4gIC8qKiBOb21icmUgZGVsIGV2ZW50byAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBQYXLDoW1ldHJvcyBkZWwgZXZlbnRvICovXG4gIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvKiogU2kgZnVlIGVudmlhZG8gYSBGaXJlYmFzZSAoZmFsc2UgZW4gZGVidWcgbW9kZSkgKi9cbiAgc2VudDogYm9vbGVhbjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVElNSU5HIC8gUEVSRk9STUFOQ0Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBNw6l0cmljYSBkZSB0aW1pbmcvcGVyZm9ybWFuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaW1pbmdNZXRyaWMge1xuICAvKiogTm9tYnJlIGRlIGxhIG3DqXRyaWNhICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFZhbG9yIGVuIG1pbGlzZWd1bmRvcyAqL1xuICB2YWx1ZU1zOiBudW1iZXI7XG4gIC8qKiBDYXRlZ29yw61hIChlajogJ2FwaScsICdyZW5kZXInLCAnbG9hZCcpICovXG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAvKiogUGFyw6FtZXRyb3MgYWRpY2lvbmFsZXMgKi9cbiAgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVVNFUlxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFByb3BpZWRhZGVzIGRlIHVzdWFyaW8gcGFyYSBzZWdtZW50YWNpw7NuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclByb3BlcnRpZXMge1xuICAvKiogSWRpb21hIHByZWZlcmlkbyAqL1xuICBwcmVmZXJyZWRfbGFuZ3VhZ2U/OiBzdHJpbmc7XG4gIC8qKiBOaXZlbCBkZSBzdXNjcmlwY2nDs24gKi9cbiAgc3Vic2NyaXB0aW9uX3RpZXI/OiBzdHJpbmc7XG4gIC8qKiBPcmdhbml6YWNpw7NuIGFjdGl2YSAobXVsdGktdGVuYW50KSAqL1xuICBhY3RpdmVfb3JnYW5pemF0aW9uPzogc3RyaW5nO1xuICAvKiogUHJvcGllZGFkZXMgY3VzdG9tICovXG4gIFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9hbmFseXRpY3MtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQW5hbHl0aWNzIFR5cGVzXG4gKlxuICogVGlwb3MgZSBpbnRlcmZhY2VzIHBhcmEgZWwgc2VydmljaW8gZGUgRmlyZWJhc2UgQW5hbHl0aWNzIChHQTQpLlxuICovXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTkZJR1VSQUNJw5NOXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ29uZmlndXJhY2nDs24gZGUgQW5hbHl0aWNzIHBhcmEgVmFsdGVjaEZpcmViYXNlQ29uZmlnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW5hbHl0aWNzQ29uZmlnIHtcbiAgLyoqIEhhYmlsaXRhciB0cmFja2luZyBhdXRvbcOhdGljbyBkZSBwYWdlIHZpZXdzIHZpYSBSb3V0ZXIgKGRlZmF1bHQ6IHRydWUpICovXG4gIGVuYWJsZVBhZ2VWaWV3VHJhY2tpbmc/OiBib29sZWFuO1xuXG4gIC8qKiBIYWJpbGl0YXIgdHJhY2tpbmcgYXV0b23DoXRpY28gZGUgZXJyb3JlcyB2aWEgRXJyb3JIYW5kbGVyIChkZWZhdWx0OiBmYWxzZSkgKi9cbiAgZW5hYmxlRXJyb3JUcmFja2luZz86IGJvb2xlYW47XG5cbiAgLyoqIEhhYmlsaXRhciBpbnRlZ3JhY2nDs24gY29uIGF1dGggcGFyYSB1c2VySWQgeSB1c2VyUHJvcGVydGllcyAoZGVmYXVsdDogdHJ1ZSkgKi9cbiAgZW5hYmxlQXV0aEludGVncmF0aW9uPzogYm9vbGVhbjtcblxuICAvKiogTW9kbyBkZWJ1ZzogbG9nZWEgYSBjb25zb2xhIGFkZW3DoXMgZGUgZW52aWFyIGEgRmlyZWJhc2UgKGRlZmF1bHQ6IGZhbHNlKSAqL1xuICBkZWJ1Z01vZGU/OiBib29sZWFuO1xuXG4gIC8qKiBBdXRvLWdyYW50IGNvbnNlbnQgcGFyYSBkZXNhcnJvbGxvL3Rlc3RpbmcgKGRlZmF1bHQ6IGZhbHNlKSAqL1xuICBkZWZhdWx0Q29uc2VudEdyYW50ZWQ/OiBib29sZWFuO1xuXG4gIC8qKiBSdXRhcyBhIGV4Y2x1aXIgZGVsIHBhZ2UgdmlldyB0cmFja2luZyAocmVnZXggcGF0dGVybnMpICovXG4gIGV4Y2x1ZGVSb3V0ZXM/OiBzdHJpbmdbXTtcblxuICAvKiogQ29uc2VudCBtb2RlIGluaWNpYWwgKEdEUFIpICovXG4gIGRlZmF1bHRDb25zZW50PzogQ29uc2VudFNldHRpbmdzO1xuXG4gIC8qKiBDbGF2ZSBkZSBsb2NhbFN0b3JhZ2UgcGFyYSBwZXJzaXN0aXIgY29uc2VudCAoZGVmYXVsdDogJ2FuYWx5dGljc19jb25zZW50JykgKi9cbiAgY29uc2VudFN0b3JhZ2VLZXk/OiBzdHJpbmc7XG5cbiAgLyoqIFByb3BpZWRhZGVzIGRlIHVzdWFyaW8gcG9yIGRlZmVjdG8gKi9cbiAgZGVmYXVsdFVzZXJQcm9wZXJ0aWVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKiogUHJlZmlqbyBwYXJhIGV2ZW50b3MgY3VzdG9tIChlajogJ215YXBwXycpICovXG4gIGV2ZW50UHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKiBTYW1wbGluZyByYXRlICgwLjAgLSAxLjApIHBhcmEgcmVkdWNpciB2b2x1bWVuIChkZWZhdWx0OiAxLjApICovXG4gIHNhbXBsaW5nUmF0ZT86IG51bWJlcjtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ09OU0VOVCAoR0RQUilcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBTZXR0aW5ncyBkZSBjb25zZW50aW1pZW50byBHRFBSXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc2VudFNldHRpbmdzIHtcbiAgLyoqIFBlcm1pdGUgcmVjb2xlY2Npw7NuIGRlIGFuYWx5dGljcyAqL1xuICBhbmFseXRpY3M/OiBib29sZWFuO1xuICAvKiogUGVybWl0ZSBwZXJzb25hbGl6YWNpw7NuIGRlIGFkcyAqL1xuICBhZHZlcnRpc2luZz86IGJvb2xlYW47XG4gIC8qKiBQZXJtaXRlIGZ1bmNpb25hbGlkYWQgKi9cbiAgZnVuY3Rpb25hbGl0eT86IGJvb2xlYW47XG4gIC8qKiBQZXJtaXRlIHNlZ3VyaWRhZCAqL1xuICBzZWN1cml0eT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXN0YWRvIGNvbXBsZXRvIGRlIGNvbnNlbnRpbWllbnRvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc2VudFN0YXRlIHtcbiAgLyoqIFNldHRpbmdzIGFjdHVhbGVzICovXG4gIHNldHRpbmdzOiBDb25zZW50U2V0dGluZ3M7XG4gIC8qKiBUaW1lc3RhbXAgZGUgbGEgw7psdGltYSBhY3R1YWxpemFjacOzbiAqL1xuICB1cGRhdGVkQXQ6IERhdGUgfCBudWxsO1xuICAvKiogU2kgZWwgdXN1YXJpbyBoYSB0b21hZG8gdW5hIGRlY2lzacOzbiBleHBsw61jaXRhICovXG4gIGhhc0RlY2lkZWQ6IGJvb2xlYW47XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVWRU5UT1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBOb21icmVzIGRlIGV2ZW50b3MgR0E0IHJlY29tZW5kYWRvcyArIGN1c3RvbXNcbiAqL1xuZXhwb3J0IHR5cGUgQW5hbHl0aWNzRXZlbnROYW1lID1cbiAgLy8gR0E0IFJlY29tbWVuZGVkIEV2ZW50cyAtIEVjb21tZXJjZVxuICB8ICdhZGRfcGF5bWVudF9pbmZvJ1xuICB8ICdhZGRfc2hpcHBpbmdfaW5mbydcbiAgfCAnYWRkX3RvX2NhcnQnXG4gIHwgJ2FkZF90b193aXNobGlzdCdcbiAgfCAnYmVnaW5fY2hlY2tvdXQnXG4gIHwgJ3B1cmNoYXNlJ1xuICB8ICdyZWZ1bmQnXG4gIHwgJ3JlbW92ZV9mcm9tX2NhcnQnXG4gIHwgJ3ZpZXdfY2FydCdcbiAgfCAndmlld19pdGVtJ1xuICB8ICd2aWV3X2l0ZW1fbGlzdCdcbiAgLy8gR0E0IFJlY29tbWVuZGVkIEV2ZW50cyAtIEVuZ2FnZW1lbnRcbiAgfCAnZ2VuZXJhdGVfbGVhZCdcbiAgfCAnbG9naW4nXG4gIHwgJ3BhZ2VfdmlldydcbiAgfCAnc2NyZWVuX3ZpZXcnXG4gIHwgJ3NlYXJjaCdcbiAgfCAnc2VsZWN0X2NvbnRlbnQnXG4gIHwgJ3NlbGVjdF9pdGVtJ1xuICB8ICdzZWxlY3RfcHJvbW90aW9uJ1xuICB8ICdzaGFyZSdcbiAgfCAnc2lnbl91cCdcbiAgfCAndmlld19wcm9tb3Rpb24nXG4gIC8vIEN1c3RvbSBFdmVudHMgKGFwcC1zcGVjaWZpYylcbiAgfCAnZmVhdHVyZV91c2VkJ1xuICB8ICdwcmVmZXJlbmNlX2NoYW5nZWQnXG4gIHwgJ29uYm9hcmRpbmdfc3RlcCdcbiAgfCAnZXJyb3Jfb2NjdXJyZWQnXG4gIHwgJ3BlcmZvcm1hbmNlX21ldHJpYydcbiAgLy8gQWxsb3cgY3VzdG9tIGV2ZW50c1xuICB8IHN0cmluZztcblxuLyoqXG4gKiBQYXLDoW1ldHJvcyB0aXBhZG9zIHBvciBldmVudG9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbmFseXRpY3NFdmVudFBhcmFtcyB7XG4gIC8vIEVjb21tZXJjZVxuICBhZGRfdG9fY2FydDoge1xuICAgIGl0ZW1faWQ6IHN0cmluZztcbiAgICBpdGVtX25hbWU/OiBzdHJpbmc7XG4gICAgdmFsdWU/OiBudW1iZXI7XG4gICAgY3VycmVuY3k/OiBzdHJpbmc7XG4gICAgcXVhbnRpdHk/OiBudW1iZXI7XG4gIH07XG4gIHB1cmNoYXNlOiB7XG4gICAgdHJhbnNhY3Rpb25faWQ6IHN0cmluZztcbiAgICB2YWx1ZTogbnVtYmVyO1xuICAgIGN1cnJlbmN5Pzogc3RyaW5nO1xuICAgIGl0ZW1zPzogQW5hbHl0aWNzSXRlbVtdO1xuICAgIHRheD86IG51bWJlcjtcbiAgICBzaGlwcGluZz86IG51bWJlcjtcbiAgfTtcbiAgYmVnaW5fY2hlY2tvdXQ6IHtcbiAgICB2YWx1ZT86IG51bWJlcjtcbiAgICBjdXJyZW5jeT86IHN0cmluZztcbiAgICBpdGVtcz86IEFuYWx5dGljc0l0ZW1bXTtcbiAgfTtcbiAgdmlld19pdGVtOiB7XG4gICAgaXRlbV9pZDogc3RyaW5nO1xuICAgIGl0ZW1fbmFtZT86IHN0cmluZztcbiAgICB2YWx1ZT86IG51bWJlcjtcbiAgICBjdXJyZW5jeT86IHN0cmluZztcbiAgfTtcbiAgcmVtb3ZlX2Zyb21fY2FydDoge1xuICAgIGl0ZW1faWQ6IHN0cmluZztcbiAgICBpdGVtX25hbWU/OiBzdHJpbmc7XG4gICAgdmFsdWU/OiBudW1iZXI7XG4gIH07XG5cbiAgLy8gRW5nYWdlbWVudFxuICBsb2dpbjogeyBtZXRob2Q/OiBzdHJpbmcgfTtcbiAgc2lnbl91cDogeyBtZXRob2Q/OiBzdHJpbmcgfTtcbiAgc2VhcmNoOiB7IHNlYXJjaF90ZXJtOiBzdHJpbmcgfTtcbiAgc2hhcmU6IHsgY29udGVudF90eXBlPzogc3RyaW5nOyBpdGVtX2lkPzogc3RyaW5nOyBtZXRob2Q/OiBzdHJpbmcgfTtcbiAgc2VsZWN0X2NvbnRlbnQ6IHsgY29udGVudF90eXBlOiBzdHJpbmc7IGl0ZW1faWQ/OiBzdHJpbmcgfTtcbiAgcGFnZV92aWV3OiB7IHBhZ2VfcGF0aD86IHN0cmluZzsgcGFnZV90aXRsZT86IHN0cmluZzsgcGFnZV9sb2NhdGlvbj86IHN0cmluZyB9O1xuICBzY3JlZW5fdmlldzogeyBzY3JlZW5fbmFtZTogc3RyaW5nOyBzY3JlZW5fY2xhc3M/OiBzdHJpbmcgfTtcblxuICAvLyBDdXN0b21cbiAgZmVhdHVyZV91c2VkOiB7IGZlYXR1cmVfbmFtZTogc3RyaW5nOyBmZWF0dXJlX2NhdGVnb3J5Pzogc3RyaW5nIH07XG4gIHByZWZlcmVuY2VfY2hhbmdlZDogeyBwcmVmZXJlbmNlX25hbWU6IHN0cmluZzsgb2xkX3ZhbHVlPzogc3RyaW5nOyBuZXdfdmFsdWU/OiBzdHJpbmcgfTtcbiAgb25ib2FyZGluZ19zdGVwOiB7IHN0ZXBfbnVtYmVyOiBudW1iZXI7IHN0ZXBfbmFtZT86IHN0cmluZyB9O1xuICBlcnJvcl9vY2N1cnJlZDoge1xuICAgIGVycm9yX3R5cGU6IHN0cmluZztcbiAgICBlcnJvcl9tZXNzYWdlPzogc3RyaW5nO1xuICAgIGVycm9yX3N0YWNrPzogc3RyaW5nO1xuICAgIGNvbnRleHQ/OiBzdHJpbmc7XG4gIH07XG4gIHBlcmZvcm1hbmNlX21ldHJpYzogeyBtZXRyaWNfbmFtZTogc3RyaW5nOyB2YWx1ZTogbnVtYmVyOyB1bml0Pzogc3RyaW5nIH07XG5cbiAgLy8gQWxsb3cgY3VzdG9tIHBhcmFtc1xuICBba2V5OiBzdHJpbmddOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBJdGVtIHBhcmEgZXZlbnRvcyBkZSBlY29tbWVyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbmFseXRpY3NJdGVtIHtcbiAgLyoqIElEIMO6bmljbyBkZWwgaXRlbSAqL1xuICBpdGVtX2lkOiBzdHJpbmc7XG4gIC8qKiBOb21icmUgZGVsIGl0ZW0gKi9cbiAgaXRlbV9uYW1lOiBzdHJpbmc7XG4gIC8qKiBDYXRlZ29yw61hIHByaW5jaXBhbCAqL1xuICBpdGVtX2NhdGVnb3J5Pzogc3RyaW5nO1xuICAvKiogU3ViY2F0ZWdvcsOtYXMgKi9cbiAgaXRlbV9jYXRlZ29yeTI/OiBzdHJpbmc7XG4gIGl0ZW1fY2F0ZWdvcnkzPzogc3RyaW5nO1xuICAvKiogTWFyY2EgKi9cbiAgaXRlbV9icmFuZD86IHN0cmluZztcbiAgLyoqIFZhcmlhbnRlIChlajogY29sb3IsIHRhbGxhKSAqL1xuICBpdGVtX3ZhcmlhbnQ/OiBzdHJpbmc7XG4gIC8qKiBQcmVjaW8gdW5pdGFyaW8gKi9cbiAgcHJpY2U/OiBudW1iZXI7XG4gIC8qKiBDYW50aWRhZCAqL1xuICBxdWFudGl0eT86IG51bWJlcjtcbiAgLyoqIE1vbmVkYSBJU08gNDIxNyAqL1xuICBjdXJyZW5jeT86IHN0cmluZztcbiAgLyoqIFBvc2ljacOzbiBlbiBsaXN0YSAqL1xuICBpbmRleD86IG51bWJlcjtcbiAgLyoqIEN1cMOzbiBhcGxpY2FkbyAqL1xuICBjb3Vwb24/OiBzdHJpbmc7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERFQlVHXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogVGlwbyBkZSBldmVudG8gZGUgZGVidWdcbiAqL1xuZXhwb3J0IHR5cGUgRGVidWdFdmVudFR5cGUgPVxuICB8ICdldmVudCdcbiAgfCAncGFnZV92aWV3J1xuICB8ICdzY3JlZW5fdmlldydcbiAgfCAndXNlcl9wcm9wZXJ0eSdcbiAgfCAnZXJyb3InXG4gIHwgJ2NvbnNlbnQnXG4gIHwgJ3RpbWluZyc7XG5cbi8qKlxuICogRXZlbnRvIGRlIGRlYnVnIChzb2xvIGVuIGRlYnVnIG1vZGUpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW5hbHl0aWNzRGVidWdFdmVudCB7XG4gIC8qKiBUaW1lc3RhbXAgZGVsIGV2ZW50byAqL1xuICB0aW1lc3RhbXA6IERhdGU7XG4gIC8qKiBUaXBvIGRlIGV2ZW50byAqL1xuICB0eXBlOiBEZWJ1Z0V2ZW50VHlwZTtcbiAgLyoqIE5vbWJyZSBkZWwgZXZlbnRvICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFBhcsOhbWV0cm9zIGRlbCBldmVudG8gKi9cbiAgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKiBTaSBmdWUgZW52aWFkbyBhIEZpcmViYXNlIChmYWxzZSBlbiBkZWJ1ZyBtb2RlKSAqL1xuICBzZW50OiBib29sZWFuO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUSU1JTkcgLyBQRVJGT1JNQU5DRVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIE3DqXRyaWNhIGRlIHRpbWluZy9wZXJmb3JtYW5jZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRpbWluZ01ldHJpYyB7XG4gIC8qKiBOb21icmUgZGUgbGEgbcOpdHJpY2EgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogVmFsb3IgZW4gbWlsaXNlZ3VuZG9zICovXG4gIHZhbHVlTXM6IG51bWJlcjtcbiAgLyoqIENhdGVnb3LDrWEgKGVqOiAnYXBpJywgJ3JlbmRlcicsICdsb2FkJykgKi9cbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gIC8qKiBQYXLDoW1ldHJvcyBhZGljaW9uYWxlcyAqL1xuICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBVU0VSXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogUHJvcGllZGFkZXMgZGUgdXN1YXJpbyBwYXJhIHNlZ21lbnRhY2nDs25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVc2VyUHJvcGVydGllcyB7XG4gIC8qKiBJZGlvbWEgcHJlZmVyaWRvICovXG4gIHByZWZlcnJlZF9sYW5ndWFnZT86IHN0cmluZztcbiAgLyoqIE5pdmVsIGRlIHN1c2NyaXBjacOzbiAqL1xuICBzdWJzY3JpcHRpb25fdGllcj86IHN0cmluZztcbiAgLyoqIE9yZ2FuaXphY2nDs24gYWN0aXZhIChtdWx0aS10ZW5hbnQpICovXG4gIGFjdGl2ZV9vcmdhbml6YXRpb24/OiBzdHJpbmc7XG4gIC8qKiBQcm9waWVkYWRlcyBjdXN0b20gKi9cbiAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==