valtech-components 4.0.402 → 4.0.404

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.
@@ -144,12 +144,14 @@ export class RetroAudioService {
144
144
  [392, 0.045],
145
145
  [493.88, 0.055],
146
146
  ], 'triangle', 0.032, 48);
147
+ window.setTimeout(() => void this.filteredNoise(0.035, 0.012, 'bandpass', 820), 8);
147
148
  }
148
149
  chessimalsBotMove() {
149
150
  void this.sequence([
150
151
  [329.63, 0.055],
151
152
  [246.94, 0.07],
152
153
  ], 'sawtooth', 0.024, 56);
154
+ window.setTimeout(() => void this.filteredNoise(0.05, 0.01, 'lowpass', 420), 16);
153
155
  }
154
156
  chessimalsCapture() {
155
157
  void this.sequence([
@@ -159,6 +161,8 @@ export class RetroAudioService {
159
161
  [783.99, 0.08],
160
162
  ], 'square', 0.046, 44);
161
163
  window.setTimeout(() => void this.sweep(96, 42, 0.18, 'sawtooth', 0.026), 20);
164
+ window.setTimeout(() => void this.filteredNoise(0.18, 0.05, 'lowpass', 520), 18);
165
+ window.setTimeout(() => void this.filteredNoise(0.07, 0.028, 'bandpass', 1800), 84);
162
166
  }
163
167
  chessimalsPower(power) {
164
168
  const notes = {
@@ -187,22 +191,29 @@ export class RetroAudioService {
187
191
  void this.sequence(notes[power], power === 'bull' ? 'sawtooth' : 'triangle', 0.046, 58);
188
192
  if (power === 'eagle') {
189
193
  void this.sweep(720, 1568, 0.18, 'triangle', 0.028);
194
+ void this.filteredNoise(0.22, 0.025, 'highpass', 1600);
195
+ window.setTimeout(() => void this.filteredNoise(0.08, 0.018, 'bandpass', 2600), 92);
190
196
  window.setTimeout(() => void this.tone(1760, 0.055, 'sine', 0.018), 150);
191
197
  return;
192
198
  }
193
199
  if (power === 'bull') {
194
200
  window.setTimeout(() => void this.tone(82.41, 0.16, 'sawtooth', 0.038), 72);
195
201
  window.setTimeout(() => void this.sweep(138.59, 65.41, 0.18, 'sawtooth', 0.026), 118);
202
+ window.setTimeout(() => void this.filteredNoise(0.16, 0.038, 'lowpass', 260), 36);
203
+ window.setTimeout(() => void this.filteredNoise(0.055, 0.026, 'bandpass', 960), 170);
196
204
  return;
197
205
  }
198
206
  if (power === 'kangaroo') {
199
207
  window.setTimeout(() => void this.sweep(420, 940, 0.11, 'sine', 0.032), 88);
200
208
  window.setTimeout(() => void this.sweep(940, 520, 0.1, 'sine', 0.026), 190);
201
209
  window.setTimeout(() => void this.tone(261.63, 0.055, 'triangle', 0.018), 245);
210
+ window.setTimeout(() => void this.filteredNoise(0.035, 0.018, 'bandpass', 1180), 218);
202
211
  return;
203
212
  }
204
213
  window.setTimeout(() => void this.sweep(164.81, 392, 0.24, 'sawtooth', 0.034), 70);
205
214
  window.setTimeout(() => void this.tone(98, 0.18, 'sawtooth', 0.02), 150);
215
+ window.setTimeout(() => void this.filteredNoise(0.28, 0.032, 'bandpass', 340), 62);
216
+ window.setTimeout(() => void this.sweep(196, 146.83, 0.22, 'sawtooth', 0.022), 116);
206
217
  }
207
218
  chessimalsVictory() {
208
219
  this.stopMusic();
@@ -217,6 +228,8 @@ export class RetroAudioService {
217
228
  ], 'triangle', 0.05, 72);
218
229
  window.setTimeout(() => void this.sweep(130.81, 65.41, 0.28, 'sawtooth', 0.02), 40);
219
230
  window.setTimeout(() => void this.sweep(523.25, 1567.98, 0.34, 'sine', 0.026), 240);
231
+ window.setTimeout(() => void this.filteredNoise(0.16, 0.022, 'bandpass', 1400), 120);
232
+ window.setTimeout(() => void this.sequence([[987.77, 0.08], [1318.51, 0.12]], 'triangle', 0.032, 86), 520);
220
233
  }
221
234
  chessimalsJoinRequest() {
222
235
  void this.sequence([
@@ -225,6 +238,7 @@ export class RetroAudioService {
225
238
  [987.77, 0.12],
226
239
  ], 'triangle', 0.034, 58);
227
240
  window.setTimeout(() => void this.tone(1318.51, 0.075, 'sine', 0.02), 136);
241
+ window.setTimeout(() => void this.filteredNoise(0.06, 0.01, 'highpass', 1800), 98);
228
242
  }
229
243
  chessimalsPowerUnlocked() {
230
244
  void this.sequence([
@@ -234,6 +248,7 @@ export class RetroAudioService {
234
248
  [987.77, 0.13],
235
249
  ], 'triangle', 0.038, 64);
236
250
  window.setTimeout(() => void this.sweep(220, 880, 0.22, 'sine', 0.024), 70);
251
+ window.setTimeout(() => void this.filteredNoise(0.24, 0.018, 'bandpass', 1200), 54);
237
252
  }
238
253
  readEnabled() {
239
254
  try {
@@ -338,6 +353,35 @@ export class RetroAudioService {
338
353
  oscillator.start();
339
354
  oscillator.stop(ctx.currentTime + duration + 0.02);
340
355
  }
356
+ // Chessimals uses generated WebAudio layers instead of third-party samples,
357
+ // avoiding licensing risk while keeping each animal power expressive.
358
+ async filteredNoise(duration = 0.12, gainValue = 0.025, filterType = 'bandpass', frequency = 900) {
359
+ if (!this.enabled())
360
+ return;
361
+ const ctx = await this.wakeAudio();
362
+ const sampleCount = Math.max(1, Math.floor(ctx.sampleRate * duration));
363
+ const buffer = ctx.createBuffer(1, sampleCount, ctx.sampleRate);
364
+ const channel = buffer.getChannelData(0);
365
+ for (let i = 0; i < sampleCount; i += 1) {
366
+ const decay = 1 - i / sampleCount;
367
+ channel[i] = (Math.random() * 2 - 1) * decay;
368
+ }
369
+ const source = ctx.createBufferSource();
370
+ const filter = ctx.createBiquadFilter();
371
+ const gain = ctx.createGain();
372
+ filter.type = filterType;
373
+ filter.frequency.value = frequency;
374
+ filter.Q.value = filterType === 'lowpass' ? 0.7 : 1.8;
375
+ gain.gain.setValueAtTime(0.0001, ctx.currentTime);
376
+ gain.gain.exponentialRampToValueAtTime(gainValue, ctx.currentTime + 0.012);
377
+ gain.gain.exponentialRampToValueAtTime(0.0001, ctx.currentTime + duration);
378
+ source.buffer = buffer;
379
+ source.connect(filter);
380
+ filter.connect(gain);
381
+ gain.connect(this.masterGain ?? ctx.destination);
382
+ source.start();
383
+ source.stop(ctx.currentTime + duration + 0.02);
384
+ }
341
385
  pauseForBackground() {
342
386
  if (this.activeMelody)
343
387
  this.pausedMelody = this.activeMelody;
@@ -404,4 +448,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
404
448
  type: Injectable,
405
449
  args: [{ providedIn: 'root' }]
406
450
  }], ctorParameters: () => [] });
407
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cm8tYXVkaW8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbWluaS1nYW1lcy9yZXRyby1hdWRpby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9uRCxNQUFNLE9BQU8saUJBQWlCO0lBVzVCO1FBUFEsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUtiLFlBQU8sR0FBRyxNQUFNLENBQVUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUE0WHRDLDJCQUFzQixHQUFHLEdBQVMsRUFBRTtZQUNuRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzFCLE9BQU87WUFDVCxDQUFDO1lBQ0QsS0FBSyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUM7UUFFZSxtQkFBYyxHQUFHLEdBQVMsRUFBRTtZQUMzQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUM7UUFFZSxtQkFBYyxHQUFHLEdBQVMsRUFBRTtZQUMzQyxLQUFLLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ25DLENBQUMsQ0FBQztRQUVlLHlCQUFvQixHQUFHLEdBQVMsRUFBRTtZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUFFLE9BQU87WUFDekQsS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDO1FBNVlBLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGtC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SUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVFLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN0RixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksS0FBSyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1RSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDL0UsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkYsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFB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bEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE9BQU8sT0FBTyxRQUFRLEtBQUssV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUM3RCxDQUFDOytHQWxkVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQURKLE1BQU07OzRGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbnR5cGUgTm90ZSA9IFtudW1iZXIsIG51bWJlcl07XG50eXBlIE1lbG9keU1vZGUgPSAnbWVudScgfCAnZ2FtZSc7XG50eXBlIENoZXNzaW1hbHNQb3dlciA9ICdlYWdsZScgfCAnYnVsbCcgfCAna2FuZ2Fyb28nIHwgJ2xpb24nO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJldHJvQXVkaW9TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb250ZXh0PzogQXVkaW9Db250ZXh0O1xuICBwcml2YXRlIG1hc3RlckdhaW4/OiBHYWluTm9kZTtcbiAgcHJpdmF0ZSBtdXNpY1RpbWVyPzogbnVtYmVyO1xuICBwcml2YXRlIG5vdGVJbmRleCA9IDA7XG4gIHByaXZhdGUgYWN0aXZlTWVsb2R5PzogTWVsb2R5TW9kZTtcbiAgcHJpdmF0ZSBwYXVzZWRNZWxvZHk/OiBNZWxvZHlNb2RlO1xuICBwcml2YXRlIHN1c3BlbmRUaW1lcj86IG51bWJlcjtcblxuICByZWFkb25seSBlbmFibGVkID0gc2lnbmFsPGJvb2xlYW4+KHRoaXMucmVhZEVuYWJsZWQoKSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCB0aGlzLmhhbmRsZVZpc2liaWxpdHlDaGFuZ2UpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCB0aGlzLmhhbmRsZVVzZXJBY3RpdmF0aW9uLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5oYW5kbGVVc2VyQWN0aXZhdGlvbiwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuaGFuZGxlVXNlckFjdGl2YXRpb24pO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlaGlkZScsIHRoaXMuaGFuZGxlUGFnZUhpZGUpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgdGhpcy5oYW5kbGVQYWdlU2hvdyk7XG4gICAgfVxuICB9XG5cbiAgc2V0RW5hYmxlZCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZW5hYmxlZC5zZXQodmFsdWUpO1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndmFsLW1pbmktZ2FtZXMtYXVkaW8nLCB2YWx1ZSA/ICcxJyA6ICcwJyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBsb2NhbFN0b3JhZ2UgcHVlZGUgbm8gZXN0YXIgZGlzcG9uaWJsZSBlbiBTU1IvdGVzdHMuXG4gICAgfVxuICAgIGlmICghdmFsdWUpIHRoaXMuc3RvcE11c2ljKCk7XG4gIH1cblxuICBhc3luYyBzdGFydE1lbnVNdXNpYygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnN0YXJ0TXVzaWMoJ21lbnUnKTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0R2FtZU11c2ljKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc3RhcnRNdXNpYygnZ2FtZScpO1xuICB9XG5cbiAgYXN5bmMgc3RhcnRNdXNpYyhtb2RlOiBNZWxvZHlNb2RlID0gJ2dhbWUnKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmVuYWJsZWQoKSkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5pc0RvY3VtZW50VmlzaWJsZSgpKSB7XG4gICAgICB0aGlzLnBhdXNlZE1lbG9keSA9IG1vZGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF3YWl0IHRoaXMud2FrZUF1ZGlvKCk7XG4gICAgaWYgKHRoaXMubXVzaWNUaW1lciAmJiB0aGlzLmFjdGl2ZU1lbG9keSA9PT0gbW9kZSkgcmV0dXJuO1xuICAgIHRoaXMuc3RvcE11c2ljKCk7XG4gICAgdGhpcy5mYWRlTWFzdGVyVG8oMSwgMC4yNCk7XG4gICAgdGhpcy5hY3RpdmVNZWxvZHkgPSBtb2RlO1xuICAgIHRoaXMubm90ZUluZGV4ID0gMDtcbiAgICBjb25zdCBtZWxvZHkgPSBtb2RlID09PSAnbWVudScgPyB0aGlzLm1lbnVNZWxvZHkoKSA6IHRoaXMuZ2FtZU1lbG9keSgpO1xuICAgIGNvbnN0IGludGVydmFsTXMgPSBtb2RlID09PSAnbWVudScgPyA2NDAgOiAxOTA7XG4gICAgY29uc3Qgd2F2ZTogT3NjaWxsYXRvclR5cGUgPSBtb2RlID09PSAnbWVudScgPyAndHJpYW5nbGUnIDogJ3NxdWFyZSc7XG4gICAgY29uc3QgZ2FpbiA9IG1vZGUgPT09ICdtZW51JyA/IDAuMDE4IDogMC4wMjU7XG4gICAgdGhpcy5tdXNpY1RpbWVyID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcbiAgICAgIGNvbnN0IHN0ZXAgPSB0aGlzLm5vdGVJbmRleDtcbiAgICAgIGNvbnN0IFtmcmVxLCBkdXJhdGlvbl0gPSBtZWxvZHlbdGhpcy5ub3RlSW5kZXggJSBtZWxvZHkubGVuZ3RoXTtcbiAgICAgIHRoaXMubm90ZUluZGV4ICs9IDE7XG4gICAgICB0aGlzLnRvbmUoZnJlcSwgZHVyYXRpb24sIHdhdmUsIGdhaW4pO1xuICAgICAgaWYgKG1vZGUgPT09ICdtZW51JykgdGhpcy5zYXZhbm5hUHVsc2Uoc3RlcCk7XG4gICAgfSwgaW50ZXJ2YWxNcyk7XG4gIH1cblxuICBzdG9wTXVzaWMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubXVzaWNUaW1lcikge1xuICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5tdXNpY1RpbWVyKTtcbiAgICAgIHRoaXMubXVzaWNUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVNZWxvZHkgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5wYXVzZWRNZWxvZHkgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBmbGlwKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy50b25lKDQ0MCwgMC4wNTUsICdzcXVhcmUnLCAwLjA1KTtcbiAgfVxuXG4gIG1hdGNoKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShbXG4gICAgICBbNjYwLCAwLjA4XSxcbiAgICAgIFs4ODAsIDAuMV0sXG4gICAgICBbOTkwLCAwLjEyXSxcbiAgICBdKTtcbiAgfVxuXG4gIG1pc3MoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFtcbiAgICAgIFsyMjAsIDAuMDhdLFxuICAgICAgWzE3NC42MSwgMC4xMl0sXG4gICAgXSk7XG4gIH1cblxuICB3aW4oKTogdm9pZCB7XG4gICAgdGhpcy5zdG9wTXVzaWMoKTtcbiAgICB2b2lkIHRoaXMuc2VxdWVuY2UoW1xuICAgICAgWzUyMy4yNSwgMC4wOV0sXG4gICAgICBbNjU5LjI1LCAwLjA5XSxcbiAgICAgIFs3ODMuOTksIDAuMDldLFxuICAgICAgWzEwNDYuNSwgMC4xNF0sXG4gICAgICBbMTMxOC41MSwgMC4yMl0sXG4gICAgICBbMTU2Ny45OCwgMC4yNl0sXG4gICAgXSk7XG4gIH1cblxuICBsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcE11c2ljKCk7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFtcbiAgICAgIFsyOTMuNjYsIDAuMTJdLFxuICAgICAgWzI0Ni45NCwgMC4xMl0sXG4gICAgICBbMTk2LCAwLjJdLFxuICAgIF0pO1xuICB9XG5cbiAgc2ltb25QYWQoZnJlcTogbnVtYmVyKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnRvbmUoZnJlcSwgMC4yMiwgJ3NpbmUnLCAwLjA1NSk7XG4gIH1cblxuICBzaW1vblN0ZXBPaygpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMudG9uZSg4ODAsIDAuMDgsICd0cmlhbmdsZScsIDAuMDM1KTtcbiAgfVxuXG4gIHNpbW9uUm91bmRPaygpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMuc2VxdWVuY2UoW1xuICAgICAgWzY1OS4yNSwgMC4wOF0sXG4gICAgICBbODgwLCAwLjA4XSxcbiAgICAgIFsxMTc0LjY2LCAwLjEyXSxcbiAgICBdKTtcbiAgfVxuXG4gIHNpbW9uRmFpbCgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMuc2VxdWVuY2UoW1xuICAgICAgWzE5NiwgMC4xMl0sXG4gICAgICBbMTQ2LjgzLCAwLjE4XSxcbiAgICBdKTtcbiAgfVxuXG4gIGNoZXNzaW1hbHNNb3ZlKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShcbiAgICAgIFtcbiAgICAgICAgWzM5MiwgMC4wNDVdLFxuICAgICAgICBbNDkzLjg4LCAwLjA1NV0sXG4gICAgICBdLFxuICAgICAgJ3RyaWFuZ2xlJyxcbiAgICAgIDAuMDMyLFxuICAgICAgNDgsXG4gICAgKTtcbiAgfVxuXG4gIGNoZXNzaW1hbHNCb3RNb3ZlKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShcbiAgICAgIFtcbiAgICAgICAgWzMyOS42MywgMC4wNTVdLFxuICAgICAgICBbMjQ2Ljk0LCAwLjA3XSxcbiAgICAgIF0sXG4gICAgICAnc2F3dG9vdGgnLFxuICAgICAgMC4wMjQsXG4gICAgICA1NixcbiAgICApO1xuICB9XG5cbiAgY2hlc3NpbWFsc0NhcHR1cmUoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFxuICAgICAgW1xuICAgICAgICBbMTc0LjYxLCAwLjA0XSxcbiAgICAgICAgWzI0Ni45NCwgMC4wNDVdLFxuICAgICAgICBbNTg3LjMzLCAwLjA5NV0sXG4gICAgICAgIFs3ODMuOTksIDAuMDhdLFxuICAgICAgXSxcbiAgICAgICdzcXVhcmUnLFxuICAgICAgMC4wNDYsXG4gICAgICA0NCxcbiAgICApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCg5NiwgNDIsIDAuMTgsICdzYXd0b290aCcsIDAuMDI2KSwgMjApO1xuICB9XG5cbiAgY2hlc3NpbWFsc1Bvd2VyKHBvd2VyOiBDaGVzc2ltYWxzUG93ZXIpOiB2b2lkIHtcbiAgICBjb25zdCBub3RlczogUmVjb3JkPENoZXNzaW1hbHNQb3dlciwgTm90ZVtdPiA9IHtcbiAgICAgIGVhZ2xlOiBbXG4gICAgICAgIFs2NTkuMjUsIDAuMDU1XSxcbiAgICAgICAgWzg4MCwgMC4wNjVdLFxuICAgICAgICBbMTMxOC41MSwgMC4xMl0sXG4gICAgICBdLFxuICAgICAgYnVsbDogW1xuICAgICAgICBbMTk2LCAwLjA3NV0sXG4gICAgICAgIFsxNjQuODEsIDAuMDc1XSxcbiAgICAgICAgWzI0Ni45NCwgMC4xM10sXG4gICAgICBdLFxuICAgICAga2FuZ2Fyb286IFtcbiAgICAgICAgWzM5MiwgMC4wNTVdLFxuICAgICAgICBbMCwgMC4wNF0sXG4gICAgICAgIFs3ODMuOTksIDAuMTFdLFxuICAgICAgXSxcbiAgICAgIGxpb246IFtcbiAgICAgICAgWzI2MS42MywgMC4wNl0sXG4gICAgICAgIFszOTIsIDAuMDZdLFxuICAgICAgICBbNTIzLjI1LCAwLjA2XSxcbiAgICAgICAgWzc4My45OSwgMC4xNF0sXG4gICAgICBdLFxuICAgIH07XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKG5vdGVzW3Bvd2VyXSwgcG93ZXIgPT09ICdidWxsJyA/ICdzYXd0b290aCcgOiAndHJpYW5nbGUnLCAwLjA0NiwgNTgpO1xuICAgIGlmIChwb3dlciA9PT0gJ2VhZ2xlJykge1xuICAgICAgdm9pZCB0aGlzLnN3ZWVwKDcyMCwgMTU2OCwgMC4xOCwgJ3RyaWFuZ2xlJywgMC4wMjgpO1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnRvbmUoMTc2MCwgMC4wNTUsICdzaW5lJywgMC4wMTgpLCAxNTApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocG93ZXIgPT09ICdidWxsJykge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnRvbmUoODIuNDEsIDAuMTYsICdzYXd0b290aCcsIDAuMDM4KSwgNzIpO1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnN3ZWVwKDEzOC41OSwgNjUuNDEsIDAuMTgsICdzYXd0b290aCcsIDAuMDI2KSwgMTE4KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHBvd2VyID09PSAna2FuZ2Fyb28nKSB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMuc3dlZXAoNDIwLCA5NDAsIDAuMTEsICdzaW5lJywgMC4wMzIpLCA4OCk7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMuc3dlZXAoOTQwLCA1MjAsIDAuMSwgJ3NpbmUnLCAwLjAyNiksIDE5MCk7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMudG9uZSgyNjEuNjMsIDAuMDU1LCAndHJpYW5nbGUnLCAwLjAxOCksIDI0NSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCgxNjQuODEsIDM5MiwgMC4yNCwgJ3Nhd3Rvb3RoJywgMC4wMzQpLCA3MCk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnRvbmUoOTgsIDAuMTgsICdzYXd0b290aCcsIDAuMDIpLCAxNTApO1xuICB9XG5cbiAgY2hlc3NpbWFsc1ZpY3RvcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9wTXVzaWMoKTtcbiAgICB2b2lkIHRoaXMuc2VxdWVuY2UoXG4gICAgICBbXG4gICAgICAgIFsxOTYsIDAuMDhdLFxuICAgICAgICBbMjYxLjYzLCAwLjA4XSxcbiAgICAgICAgWzMyOS42MywgMC4wOF0sXG4gICAgICAgIFszOTIsIDAuMV0sXG4gICAgICAgIFs1MjMuMjUsIDAuMTJdLFxuICAgICAgICBbNzgzLjk5LCAwLjE2XSxcbiAgICAgICAgWzEwNDYuNSwgMC4yMl0sXG4gICAgICBdLFxuICAgICAgJ3RyaWFuZ2xlJyxcbiAgICAgIDAuMDUsXG4gICAgICA3MixcbiAgICApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCgxMzAuODEsIDY1LjQxLCAwLjI4LCAnc2F3dG9vdGgnLCAwLjAyKSwgNDApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCg1MjMuMjUsIDE1NjcuOTgsIDAuMzQsICdzaW5lJywgMC4wMjYpLCAyNDApO1xuICB9XG5cbiAgY2hlc3NpbWFsc0pvaW5SZXF1ZXN0KCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShcbiAgICAgIFtcbiAgICAgICAgWzUyMy4yNSwgMC4wNTVdLFxuICAgICAgICBbNjU5LjI1LCAwLjA2XSxcbiAgICAgICAgWzk4Ny43NywgMC4xMl0sXG4gICAgICBdLFxuICAgICAgJ3RyaWFuZ2xlJyxcbiAgICAgIDAuMDM0LFxuICAgICAgNTgsXG4gICAgKTtcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMudG9uZSgxMzE4LjUxLCAwLjA3NSwgJ3NpbmUnLCAwLjAyKSwgMTM2KTtcbiAgfVxuXG4gIGNoZXNzaW1hbHNQb3dlclVubG9ja2VkKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShcbiAgICAgIFtcbiAgICAgICAgWzM5MiwgMC4wNTVdLFxuICAgICAgICBbNTIzLjI1LCAwLjA1NV0sXG4gICAgICAgIFs2NTkuMjUsIDAuMDhdLFxuICAgICAgICBbOTg3Ljc3LCAwLjEzXSxcbiAgICAgIF0sXG4gICAgICAndHJpYW5nbGUnLFxuICAgICAgMC4wMzgsXG4gICAgICA2NCxcbiAgICApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCgyMjAsIDg4MCwgMC4yMiwgJ3NpbmUnLCAwLjAyNCksIDcwKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndmFsLW1pbmktZ2FtZXMtYXVkaW8nKSAhPT0gJzAnO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBlbnN1cmVDb250ZXh0KCk6IFByb21pc2U8QXVkaW9Db250ZXh0PiB7XG4gICAgaWYgKCF0aGlzLmNvbnRleHQgfHwgdGhpcy5jb250ZXh0LnN0YXRlID09PSAnY2xvc2VkJykge1xuICAgICAgdGhpcy5jb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpO1xuICAgICAgdGhpcy5tYXN0ZXJHYWluID0gdGhpcy5jb250ZXh0LmNyZWF0ZUdhaW4oKTtcbiAgICAgIHRoaXMubWFzdGVyR2Fpbi5nYWluLnZhbHVlID0gMTtcbiAgICAgIHRoaXMubWFzdGVyR2Fpbi5jb25uZWN0KHRoaXMuY29udGV4dC5kZXN0aW5hdGlvbik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XG4gIH1cblxuICBwcml2YXRlIG1lbnVNZWxvZHkoKTogTm90ZVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgWzIyMCwgMC4zOF0sXG4gICAgICBbMCwgMC4xMl0sXG4gICAgICBbMjYxLjYzLCAwLjM0XSxcbiAgICAgIFszMjkuNjMsIDAuNDJdLFxuICAgICAgWzI5My42NiwgMC4yOF0sXG4gICAgICBbMCwgMC4xMl0sXG4gICAgICBbMzkyLCAwLjQ4XSxcbiAgICAgIFszMjkuNjMsIDAuMzRdLFxuICAgICAgWzI2MS42MywgMC4zNl0sXG4gICAgICBbMjIwLCAwLjU4XSxcbiAgICAgIFswLCAwLjJdLFxuICAgICAgWzI5My42NiwgMC4zNF0sXG4gICAgICBbMzI5LjYzLCAwLjQyXSxcbiAgICAgIFs0NDAsIDAuNV0sXG4gICAgICBbMzkyLCAwLjM2XSxcbiAgICAgIFsyNjEuNjMsIDAuNjJdLFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIHNhdmFubmFQdWxzZShzdGVwOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoc3RlcCAlIDQgPT09IDApIHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCg5NiwgNDgsIDAuMTgsICdzaW5lJywgMC4wMTIpLCAxOCk7XG4gICAgfVxuICAgIGlmIChzdGVwICUgOCA9PT0gNSkge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnRvbmUoMTY0LjgxLCAwLjA0NSwgJ3RyaWFuZ2xlJywgMC4wMTIpLCA5Nik7XG4gICAgfVxuICAgIGlmIChzdGVwICUgMTYgPT09IDEwKSB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMuc3dlZXAoMTQ2LjgzLCAxOTYsIDAuMDgsICd0cmlhbmdsZScsIDAuMDEpLCAxNDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2FtZU1lbG9keSgpOiBOb3RlW10ge1xuICAgIHJldHVybiBbXG4gICAgICBbNTIzLjI1LCAwLjEzXSxcbiAgICAgIFs2NTkuMjUsIDAuMTNdLFxuICAgICAgWzc4My45OSwgMC4xM10sXG4gICAgICBbMTA0Ni41LCAwLjE4XSxcbiAgICAgIFs3ODMuOTksIDAuMTNdLFxuICAgICAgWzY1OS4yNSwgMC4xM10sXG4gICAgICBbNTg3LjMzLCAwLjE4XSxcbiAgICAgIFs2NTkuMjUsIDAuMThdLFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNlcXVlbmNlKFxuICAgIG5vdGVzOiBOb3RlW10sXG4gICAgd2F2ZTogT3NjaWxsYXRvclR5cGUgPSAnc3F1YXJlJyxcbiAgICBnYWluID0gMC4wNTUsXG4gICAgaW50ZXJ2YWxNcyA9IDkwLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCgpKSByZXR1cm47XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub3Rlcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY29uc3QgW2ZyZXEsIGR1cmF0aW9uXSA9IG5vdGVzW2ldO1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnRvbmUoZnJlcSwgZHVyYXRpb24sIHdhdmUsIGdhaW4pLCBpICogaW50ZXJ2YWxNcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB0b25lKGZyZXE6IG51bWJlciwgZHVyYXRpb24gPSAwLjEsIHR5cGU6IE9zY2lsbGF0b3JUeXBlID0gJ3NxdWFyZScsIGdhaW5WYWx1ZSA9IDAuMDQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCgpKSByZXR1cm47XG4gICAgaWYgKGZyZXEgPD0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGN0eCA9IGF3YWl0IHRoaXMud2FrZUF1ZGlvKCk7XG4gICAgY29uc3Qgb3NjaWxsYXRvciA9IGN0eC5jcmVhdGVPc2NpbGxhdG9yKCk7XG4gICAgY29uc3QgZ2FpbiA9IGN0eC5jcmVhdGVHYWluKCk7XG4gICAgb3NjaWxsYXRvci50eXBlID0gdHlwZTtcbiAgICBvc2NpbGxhdG9yLmZyZXF1ZW5jeS52YWx1ZSA9IGZyZXE7XG4gICAgZ2Fpbi5nYWluLnNldFZhbHVlQXRUaW1lKDAuMDAwMSwgY3R4LmN1cnJlbnRUaW1lKTtcbiAgICBnYWluLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZShnYWluVmFsdWUsIGN0eC5jdXJyZW50VGltZSArIDAuMDEpO1xuICAgIGdhaW4uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAwMSwgY3R4LmN1cnJlbnRUaW1lICsgZHVyYXRpb24pO1xuICAgIG9zY2lsbGF0b3IuY29ubmVjdChnYWluKTtcbiAgICBnYWluLmNvbm5lY3QodGhpcy5tYXN0ZXJHYWluID8/IGN0eC5kZXN0aW5hdGlvbik7XG4gICAgb3NjaWxsYXRvci5zdGFydCgpO1xuICAgIG9zY2lsbGF0b3Iuc3RvcChjdHguY3VycmVudFRpbWUgKyBkdXJhdGlvbiArIDAuMDIpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzd2VlcChcbiAgICBmcm9tRnJlcTogbnVtYmVyLFxuICAgIHRvRnJlcTogbnVtYmVyLFxuICAgIGR1cmF0aW9uID0gMC4xNixcbiAgICB0eXBlOiBPc2NpbGxhdG9yVHlwZSA9ICd0cmlhbmdsZScsXG4gICAgZ2FpblZhbHVlID0gMC4wMyxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmVuYWJsZWQoKSkgcmV0dXJuO1xuICAgIGNvbnN0IGN0eCA9IGF3YWl0IHRoaXMud2FrZUF1ZGlvKCk7XG4gICAgY29uc3Qgb3NjaWxsYXRvciA9IGN0eC5jcmVhdGVPc2NpbGxhdG9yKCk7XG4gICAgY29uc3QgZ2FpbiA9IGN0eC5jcmVhdGVHYWluKCk7XG4gICAgb3NjaWxsYXRvci50eXBlID0gdHlwZTtcbiAgICBvc2NpbGxhdG9yLmZyZXF1ZW5jeS5zZXRWYWx1ZUF0VGltZShmcm9tRnJlcSwgY3R4LmN1cnJlbnRUaW1lKTtcbiAgICBvc2NpbGxhdG9yLmZyZXF1ZW5jeS5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKE1hdGgubWF4KDEsIHRvRnJlcSksIGN0eC5jdXJyZW50VGltZSArIGR1cmF0aW9uKTtcbiAgICBnYWluLmdhaW4uc2V0VmFsdWVBdFRpbWUoMC4wMDAxLCBjdHguY3VycmVudFRpbWUpO1xuICAgIGdhaW4uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKGdhaW5WYWx1ZSwgY3R4LmN1cnJlbnRUaW1lICsgMC4wMSk7XG4gICAgZ2Fpbi5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMC4wMDAxLCBjdHguY3VycmVudFRpbWUgKyBkdXJhdGlvbik7XG4gICAgb3NjaWxsYXRvci5jb25uZWN0KGdhaW4pO1xuICAgIGdhaW4uY29ubmVjdCh0aGlzLm1hc3RlckdhaW4gPz8gY3R4LmRlc3RpbmF0aW9uKTtcbiAgICBvc2NpbGxhdG9yLnN0YXJ0KCk7XG4gICAgb3NjaWxsYXRvci5zdG9wKGN0eC5jdXJyZW50VGltZSArIGR1cmF0aW9uICsgMC4wMik7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZVZpc2liaWxpdHlDaGFuZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKGRvY3VtZW50LmhpZGRlbikge1xuICAgICAgdGhpcy5wYXVzZUZvckJhY2tncm91bmQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdm9pZCB0aGlzLnJlc3VtZUZyb21CYWNrZ3JvdW5kKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVQYWdlSGlkZSA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLnBhdXNlRm9yQmFja2dyb3VuZCgpO1xuICB9O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlUGFnZVNob3cgPSAoKTogdm9pZCA9PiB7XG4gICAgdm9pZCB0aGlzLnJlc3VtZUZyb21CYWNrZ3JvdW5kKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVVc2VyQWN0aXZhdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCgpIHx8ICF0aGlzLmlzRG9jdW1lbnRWaXNpYmxlKCkpIHJldHVybjtcbiAgICB2b2lkIHRoaXMud2FrZUF1ZGlvKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBwYXVzZUZvckJhY2tncm91bmQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZlTWVsb2R5KSB0aGlzLnBhdXNlZE1lbG9keSA9IHRoaXMuYWN0aXZlTWVsb2R5O1xuICAgIGlmICh0aGlzLm11c2ljVGltZXIpIHtcbiAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMubXVzaWNUaW1lcik7XG4gICAgICB0aGlzLm11c2ljVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlTWVsb2R5ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZmFkZU1hc3RlclRvKDAuMDAwMSwgMC4yKTtcbiAgICBpZiAodGhpcy5zdXNwZW5kVGltZXIpIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5zdXNwZW5kVGltZXIpO1xuICAgIHRoaXMuc3VzcGVuZFRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zdXNwZW5kVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICB2b2lkIHRoaXMuY29udGV4dD8uc3VzcGVuZCgpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XG4gICAgfSwgMjYwKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzdW1lRnJvbUJhY2tncm91bmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc3VzcGVuZFRpbWVyKSB7XG4gICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuc3VzcGVuZFRpbWVyKTtcbiAgICAgIHRoaXMuc3VzcGVuZFRpbWVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuZW5hYmxlZCgpKSByZXR1cm47XG4gICAgY29uc3QgbWVsb2R5ID0gdGhpcy5wYXVzZWRNZWxvZHk7XG4gICAgaWYgKCFtZWxvZHkpIHJldHVybjtcbiAgICB0aGlzLnBhdXNlZE1lbG9keSA9IHVuZGVmaW5lZDtcbiAgICBjb25zdCBjdHggPSBhd2FpdCB0aGlzLmVuc3VyZUNvbnRleHQoKTtcbiAgICBhd2FpdCB0aGlzLnJlc3VtZUNvbnRleHQoY3R4KTtcbiAgICB0aGlzLmZhZGVNYXN0ZXJUbygxLCAwLjM1KTtcbiAgICBhd2FpdCB0aGlzLnN0YXJ0TXVzaWMobWVsb2R5KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgd2FrZUF1ZGlvKCk6IFByb21pc2U8QXVkaW9Db250ZXh0PiB7XG4gICAgY29uc3QgY3R4ID0gYXdhaXQgdGhpcy5lbnN1cmVDb250ZXh0KCk7XG4gICAgYXdhaXQgdGhpcy5yZXN1bWVDb250ZXh0KGN0eCk7XG4gICAgdGhpcy5mYWRlTWFzdGVyVG8oMSwgMC4xMik7XG4gICAgcmV0dXJuIGN0eDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzdW1lQ29udGV4dChjdHg6IEF1ZGlvQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChjdHguc3RhdGUgPT09ICdydW5uaW5nJykgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjdHgucmVzdW1lKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBpT1MgcHVlZGUgZXhpZ2lyIHVuYSBudWV2YSBpbnRlcmFjY2nDs24gZGVsIHVzdWFyaW87IGVsIGxpc3RlbmVyIGRlIGFjdGl2YWNpw7NuIHJlaW50ZW50YXLDoS5cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZhZGVNYXN0ZXJUbyh2YWx1ZTogbnVtYmVyLCBzZWNvbmRzOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udGV4dCB8fCAhdGhpcy5tYXN0ZXJHYWluKSByZXR1cm47XG4gICAgY29uc3QgZ2FpbiA9IHRoaXMubWFzdGVyR2Fpbi5nYWluO1xuICAgIGNvbnN0IG5vdyA9IHRoaXMuY29udGV4dC5jdXJyZW50VGltZTtcbiAgICBnYWluLmNhbmNlbFNjaGVkdWxlZFZhbHVlcyhub3cpO1xuICAgIGdhaW4uc2V0VGFyZ2V0QXRUaW1lKHZhbHVlLCBub3csIE1hdGgubWF4KDAuMDEsIHNlY29uZHMgLyA0KSk7XG4gIH1cblxuICBwcml2YXRlIGlzRG9jdW1lbnRWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnIHx8ICFkb2N1bWVudC5oaWRkZW47XG4gIH1cbn1cbiJdfQ==
451
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cm8tYXVkaW8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbWluaS1nYW1lcy9yZXRyby1hdWRpby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9uRCxNQUFNLE9BQU8saUJBQWlCO0lBVzVCO1FBUFEsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUtiLFlBQU8sR0FBRyxNQUFNLENBQVUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUE4YXRDLDJCQUFzQixHQUFHLEdBQVMsRUFBRTtZQUNuRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzFCLE9BQU87WUFDVCxDQUFDO1lBQ0QsS0FBSyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUM7UUFFZSxtQkFBYyxHQUFHLEdBQVMsRUFBRTtZQUMzQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUM7UUFFZSxtQkFBYyxHQUFHLEdBQVMsRUFBRTtZQUMzQyxLQUFLLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ25DLENBQUMsQ0FBQztRQUVlLHlCQUFvQixHQUFHLEdBQVMsRUFBRTtZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUFFLE9BQU87WUFDekQsS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDO1FBOWJBLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQzNFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdkYsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN0RixRQUFRLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFDRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDO1lBQ0gsWUFBWSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLHVEQUF1RDtRQUN6RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUs7WUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2xCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQW1CLE1BQU07UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSTtZQUFFLE9BQU87UUFDMUQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3ZFLE1BQU0sVUFBVSxHQUFHLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQy9DLE1BQU0sSUFBSSxHQUFtQixJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNyRSxNQUFNLElBQUksR0FBRyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM3QyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ3hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDNUIsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLElBQUksS0FBSyxNQUFNO2dCQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJO1FBQ0YsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxLQUFLO1FBQ0gsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2pCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQztZQUNYLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztZQUNWLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJO1FBQ0YsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2pCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQztZQUNYLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxHQUFHO1FBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNqQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDZCxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDZCxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDZCxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDZCxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7WUFDZixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2pCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztZQUNkLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztZQUNkLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztTQUNYLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBWTtRQUNuQixLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFdBQVc7UUFDVCxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFlBQVk7UUFDVixLQUFLLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDakIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ2QsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDO1lBQ1gsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTO1FBQ1AsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2pCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQztZQUNYLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1osS0FBSyxJQUFJLENBQUMsUUFBUSxDQUNoQjtZQUNFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQztZQUNaLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztTQUNoQixFQUNELFVBQVUsRUFDVixLQUFLLEVBQ0wsRUFBRSxDQUNILENBQUM7UUFDRixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUNoQjtZQUNFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztZQUNmLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztTQUNmLEVBQ0QsVUFBVSxFQUNWLEtBQUssRUFDTCxFQUFFLENBQ0gsQ0FBQztRQUNGLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxpQkFBaUI7UUFDZixLQUFLLElBQUksQ0FBQyxRQUFRLENBQ2hCO1lBQ0UsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ2QsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO1lBQ2YsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO1lBQ2YsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1NBQ2YsRUFDRCxRQUFRLEVBQ1IsS0FBSyxFQUNMLEVBQUUsQ0FDSCxDQUFDO1FBQ0YsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBc0I7UUFDcEMsTUFBTSxLQUFLLEdBQW9DO1lBQzdDLEtBQUssRUFBRTtnQkFDTCxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7Z0JBQ2YsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDO2dCQUNaLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQzthQUNoQjtZQUNELElBQUksRUFBRTtnQkFDSixDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7Z0JBQ1osQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO2dCQUNmLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQzthQUNmO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQztnQkFDWixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUM7Z0JBQ1QsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO2FBQ2Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO2dCQUNkLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQztnQkFDWCxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7Z0JBQ2QsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO2FBQ2Y7U0FDRixDQUFDO1FBQ0YsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEYsSUFBSSxLQUFLLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDdEIsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwRCxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdkQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEYsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDekUsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNyQixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1RSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FB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SyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE9BQU8sT0FBTyxRQUFRLEtBQUssV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUM3RCxDQUFDOytHQXBnQlUsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FESixNQUFNOzs0RkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG50eXBlIE5vdGUgPSBbbnVtYmVyLCBudW1iZXJdO1xudHlwZSBNZWxvZHlNb2RlID0gJ21lbnUnIHwgJ2dhbWUnO1xudHlwZSBDaGVzc2ltYWxzUG93ZXIgPSAnZWFnbGUnIHwgJ2J1bGwnIHwgJ2thbmdhcm9vJyB8ICdsaW9uJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBSZXRyb0F1ZGlvU2VydmljZSB7XG4gIHByaXZhdGUgY29udGV4dD86IEF1ZGlvQ29udGV4dDtcbiAgcHJpdmF0ZSBtYXN0ZXJHYWluPzogR2Fpbk5vZGU7XG4gIHByaXZhdGUgbXVzaWNUaW1lcj86IG51bWJlcjtcbiAgcHJpdmF0ZSBub3RlSW5kZXggPSAwO1xuICBwcml2YXRlIGFjdGl2ZU1lbG9keT86IE1lbG9keU1vZGU7XG4gIHByaXZhdGUgcGF1c2VkTWVsb2R5PzogTWVsb2R5TW9kZTtcbiAgcHJpdmF0ZSBzdXNwZW5kVGltZXI/OiBudW1iZXI7XG5cbiAgcmVhZG9ubHkgZW5hYmxlZCA9IHNpZ25hbDxib29sZWFuPih0aGlzLnJlYWRFbmFibGVkKCkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgdGhpcy5oYW5kbGVWaXNpYmlsaXR5Q2hhbmdlKTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy5oYW5kbGVVc2VyQWN0aXZhdGlvbiwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuaGFuZGxlVXNlckFjdGl2YXRpb24sIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmhhbmRsZVVzZXJBY3RpdmF0aW9uKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZWhpZGUnLCB0aGlzLmhhbmRsZVBhZ2VIaWRlKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsIHRoaXMuaGFuZGxlUGFnZVNob3cpO1xuICAgIH1cbiAgfVxuXG4gIHNldEVuYWJsZWQodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmVuYWJsZWQuc2V0KHZhbHVlKTtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3ZhbC1taW5pLWdhbWVzLWF1ZGlvJywgdmFsdWUgPyAnMScgOiAnMCcpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gbG9jYWxTdG9yYWdlIHB1ZWRlIG5vIGVzdGFyIGRpc3BvbmlibGUgZW4gU1NSL3Rlc3RzLlxuICAgIH1cbiAgICBpZiAoIXZhbHVlKSB0aGlzLnN0b3BNdXNpYygpO1xuICB9XG5cbiAgYXN5bmMgc3RhcnRNZW51TXVzaWMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5zdGFydE11c2ljKCdtZW51Jyk7XG4gIH1cblxuICBhc3luYyBzdGFydEdhbWVNdXNpYygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnN0YXJ0TXVzaWMoJ2dhbWUnKTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0TXVzaWMobW9kZTogTWVsb2R5TW9kZSA9ICdnYW1lJyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5lbmFibGVkKCkpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuaXNEb2N1bWVudFZpc2libGUoKSkge1xuICAgICAgdGhpcy5wYXVzZWRNZWxvZHkgPSBtb2RlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLndha2VBdWRpbygpO1xuICAgIGlmICh0aGlzLm11c2ljVGltZXIgJiYgdGhpcy5hY3RpdmVNZWxvZHkgPT09IG1vZGUpIHJldHVybjtcbiAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgIHRoaXMuZmFkZU1hc3RlclRvKDEsIDAuMjQpO1xuICAgIHRoaXMuYWN0aXZlTWVsb2R5ID0gbW9kZTtcbiAgICB0aGlzLm5vdGVJbmRleCA9IDA7XG4gICAgY29uc3QgbWVsb2R5ID0gbW9kZSA9PT0gJ21lbnUnID8gdGhpcy5tZW51TWVsb2R5KCkgOiB0aGlzLmdhbWVNZWxvZHkoKTtcbiAgICBjb25zdCBpbnRlcnZhbE1zID0gbW9kZSA9PT0gJ21lbnUnID8gNjQwIDogMTkwO1xuICAgIGNvbnN0IHdhdmU6IE9zY2lsbGF0b3JUeXBlID0gbW9kZSA9PT0gJ21lbnUnID8gJ3RyaWFuZ2xlJyA6ICdzcXVhcmUnO1xuICAgIGNvbnN0IGdhaW4gPSBtb2RlID09PSAnbWVudScgPyAwLjAxOCA6IDAuMDI1O1xuICAgIHRoaXMubXVzaWNUaW1lciA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBjb25zdCBzdGVwID0gdGhpcy5ub3RlSW5kZXg7XG4gICAgICBjb25zdCBbZnJlcSwgZHVyYXRpb25dID0gbWVsb2R5W3RoaXMubm90ZUluZGV4ICUgbWVsb2R5Lmxlbmd0aF07XG4gICAgICB0aGlzLm5vdGVJbmRleCArPSAxO1xuICAgICAgdGhpcy50b25lKGZyZXEsIGR1cmF0aW9uLCB3YXZlLCBnYWluKTtcbiAgICAgIGlmIChtb2RlID09PSAnbWVudScpIHRoaXMuc2F2YW5uYVB1bHNlKHN0ZXApO1xuICAgIH0sIGludGVydmFsTXMpO1xuICB9XG5cbiAgc3RvcE11c2ljKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm11c2ljVGltZXIpIHtcbiAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMubXVzaWNUaW1lcik7XG4gICAgICB0aGlzLm11c2ljVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlTWVsb2R5ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucGF1c2VkTWVsb2R5ID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZmxpcCgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMudG9uZSg0NDAsIDAuMDU1LCAnc3F1YXJlJywgMC4wNSk7XG4gIH1cblxuICBtYXRjaCgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMuc2VxdWVuY2UoW1xuICAgICAgWzY2MCwgMC4wOF0sXG4gICAgICBbODgwLCAwLjFdLFxuICAgICAgWzk5MCwgMC4xMl0sXG4gICAgXSk7XG4gIH1cblxuICBtaXNzKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShbXG4gICAgICBbMjIwLCAwLjA4XSxcbiAgICAgIFsxNzQuNjEsIDAuMTJdLFxuICAgIF0pO1xuICB9XG5cbiAgd2luKCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcE11c2ljKCk7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFtcbiAgICAgIFs1MjMuMjUsIDAuMDldLFxuICAgICAgWzY1OS4yNSwgMC4wOV0sXG4gICAgICBbNzgzLjk5LCAwLjA5XSxcbiAgICAgIFsxMDQ2LjUsIDAuMTRdLFxuICAgICAgWzEzMTguNTEsIDAuMjJdLFxuICAgICAgWzE1NjcuOTgsIDAuMjZdLFxuICAgIF0pO1xuICB9XG5cbiAgbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShbXG4gICAgICBbMjkzLjY2LCAwLjEyXSxcbiAgICAgIFsyNDYuOTQsIDAuMTJdLFxuICAgICAgWzE5NiwgMC4yXSxcbiAgICBdKTtcbiAgfVxuXG4gIHNpbW9uUGFkKGZyZXE6IG51bWJlcik6IHZvaWQge1xuICAgIHZvaWQgdGhpcy50b25lKGZyZXEsIDAuMjIsICdzaW5lJywgMC4wNTUpO1xuICB9XG5cbiAgc2ltb25TdGVwT2soKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnRvbmUoODgwLCAwLjA4LCAndHJpYW5nbGUnLCAwLjAzNSk7XG4gIH1cblxuICBzaW1vblJvdW5kT2soKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFtcbiAgICAgIFs2NTkuMjUsIDAuMDhdLFxuICAgICAgWzg4MCwgMC4wOF0sXG4gICAgICBbMTE3NC42NiwgMC4xMl0sXG4gICAgXSk7XG4gIH1cblxuICBzaW1vbkZhaWwoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFtcbiAgICAgIFsxOTYsIDAuMTJdLFxuICAgICAgWzE0Ni44MywgMC4xOF0sXG4gICAgXSk7XG4gIH1cblxuICBjaGVzc2ltYWxzTW92ZSgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMuc2VxdWVuY2UoXG4gICAgICBbXG4gICAgICAgIFszOTIsIDAuMDQ1XSxcbiAgICAgICAgWzQ5My44OCwgMC4wNTVdLFxuICAgICAgXSxcbiAgICAgICd0cmlhbmdsZScsXG4gICAgICAwLjAzMixcbiAgICAgIDQ4LFxuICAgICk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmZpbHRlcmVkTm9pc2UoMC4wMzUsIDAuMDEyLCAnYmFuZHBhc3MnLCA4MjApLCA4KTtcbiAgfVxuXG4gIGNoZXNzaW1hbHNCb3RNb3ZlKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShcbiAgICAgIFtcbiAgICAgICAgWzMyOS42MywgMC4wNTVdLFxuICAgICAgICBbMjQ2Ljk0LCAwLjA3XSxcbiAgICAgIF0sXG4gICAgICAnc2F3dG9vdGgnLFxuICAgICAgMC4wMjQsXG4gICAgICA1NixcbiAgICApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5maWx0ZXJlZE5vaXNlKDAuMDUsIDAuMDEsICdsb3dwYXNzJywgNDIwKSwgMTYpO1xuICB9XG5cbiAgY2hlc3NpbWFsc0NhcHR1cmUoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFxuICAgICAgW1xuICAgICAgICBbMTc0LjYxLCAwLjA0XSxcbiAgICAgICAgWzI0Ni45NCwgMC4wNDVdLFxuICAgICAgICBbNTg3LjMzLCAwLjA5NV0sXG4gICAgICAgIFs3ODMuOTksIDAuMDhdLFxuICAgICAgXSxcbiAgICAgICdzcXVhcmUnLFxuICAgICAgMC4wNDYsXG4gICAgICA0NCxcbiAgICApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCg5NiwgNDIsIDAuMTgsICdzYXd0b290aCcsIDAuMDI2KSwgMjApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5maWx0ZXJlZE5vaXNlKDAuMTgsIDAuMDUsICdsb3dwYXNzJywgNTIwKSwgMTgpO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5maWx0ZXJlZE5vaXNlKDAuMDcsIDAuMDI4LCAnYmFuZHBhc3MnLCAxODAwKSwgODQpO1xuICB9XG5cbiAgY2hlc3NpbWFsc1Bvd2VyKHBvd2VyOiBDaGVzc2ltYWxzUG93ZXIpOiB2b2lkIHtcbiAgICBjb25zdCBub3RlczogUmVjb3JkPENoZXNzaW1hbHNQb3dlciwgTm90ZVtdPiA9IHtcbiAgICAgIGVhZ2xlOiBbXG4gICAgICAgIFs2NTkuMjUsIDAuMDU1XSxcbiAgICAgICAgWzg4MCwgMC4wNjVdLFxuICAgICAgICBbMTMxOC41MSwgMC4xMl0sXG4gICAgICBdLFxuICAgICAgYnVsbDogW1xuICAgICAgICBbMTk2LCAwLjA3NV0sXG4gICAgICAgIFsxNjQuODEsIDAuMDc1XSxcbiAgICAgICAgWzI0Ni45NCwgMC4xM10sXG4gICAgICBdLFxuICAgICAga2FuZ2Fyb286IFtcbiAgICAgICAgWzM5MiwgMC4wNTVdLFxuICAgICAgICBbMCwgMC4wNF0sXG4gICAgICAgIFs3ODMuOTksIDAuMTFdLFxuICAgICAgXSxcbiAgICAgIGxpb246IFtcbiAgICAgICAgWzI2MS42MywgMC4wNl0sXG4gICAgICAgIFszOTIsIDAuMDZdLFxuICAgICAgICBbNTIzLjI1LCAwLjA2XSxcbiAgICAgICAgWzc4My45OSwgMC4xNF0sXG4gICAgICBdLFxuICAgIH07XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKG5vdGVzW3Bvd2VyXSwgcG93ZXIgPT09ICdidWxsJyA/ICdzYXd0b290aCcgOiAndHJpYW5nbGUnLCAwLjA0NiwgNTgpO1xuICAgIGlmIChwb3dlciA9PT0gJ2VhZ2xlJykge1xuICAgICAgdm9pZCB0aGlzLnN3ZWVwKDcyMCwgMTU2OCwgMC4xOCwgJ3RyaWFuZ2xlJywgMC4wMjgpO1xuICAgICAgdm9pZCB0aGlzLmZpbHRlcmVkTm9pc2UoMC4yMiwgMC4wMjUsICdoaWdocGFzcycsIDE2MDApO1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmZpbHRlcmVkTm9pc2UoMC4wOCwgMC4wMTgsICdiYW5kcGFzcycsIDI2MDApLCA5Mik7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMudG9uZSgxNzYwLCAwLjA1NSwgJ3NpbmUnLCAwLjAxOCksIDE1MCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChwb3dlciA9PT0gJ2J1bGwnKSB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMudG9uZSg4Mi40MSwgMC4xNiwgJ3Nhd3Rvb3RoJywgMC4wMzgpLCA3Mik7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMuc3dlZXAoMTM4LjU5LCA2NS40MSwgMC4xOCwgJ3Nhd3Rvb3RoJywgMC4wMjYpLCAxMTgpO1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmZpbHRlcmVkTm9pc2UoMC4xNiwgMC4wMzgsICdsb3dwYXNzJywgMjYwKSwgMzYpO1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmZpbHRlcmVkTm9pc2UoMC4wNTUsIDAuMDI2LCAnYmFuZHBhc3MnLCA5NjApLCAxNzApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocG93ZXIgPT09ICdrYW5nYXJvbycpIHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCg0MjAsIDk0MCwgMC4xMSwgJ3NpbmUnLCAwLjAzMiksIDg4KTtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCg5NDAsIDUyMCwgMC4xLCAnc2luZScsIDAuMDI2KSwgMTkwKTtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy50b25lKDI2MS42MywgMC4wNTUsICd0cmlhbmdsZScsIDAuMDE4KSwgMjQ1KTtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5maWx0ZXJlZE5vaXNlKDAuMDM1LCAwLjAxOCwgJ2JhbmRwYXNzJywgMTE4MCksIDIxOCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCgxNjQuODEsIDM5MiwgMC4yNCwgJ3Nhd3Rvb3RoJywgMC4wMzQpLCA3MCk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnRvbmUoOTgsIDAuMTgsICdzYXd0b290aCcsIDAuMDIpLCAxNTApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5maWx0ZXJlZE5vaXNlKDAuMjgsIDAuMDMyLCAnYmFuZHBhc3MnLCAzNDApLCA2Mik7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnN3ZWVwKDE5NiwgMTQ2LjgzLCAwLjIyLCAnc2F3dG9vdGgnLCAwLjAyMiksIDExNik7XG4gIH1cblxuICBjaGVzc2ltYWxzVmljdG9yeSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShcbiAgICAgIFtcbiAgICAgICAgWzE5NiwgMC4wOF0sXG4gICAgICAgIFsyNjEuNjMsIDAuMDhdLFxuICAgICAgICBbMzI5LjYzLCAwLjA4XSxcbiAgICAgICAgWzM5MiwgMC4xXSxcbiAgICAgICAgWzUyMy4yNSwgMC4xMl0sXG4gICAgICAgIFs3ODMuOTksIDAuMTZdLFxuICAgICAgICBbMTA0Ni41LCAwLjIyXSxcbiAgICAgIF0sXG4gICAgICAndHJpYW5nbGUnLFxuICAgICAgMC4wNSxcbiAgICAgIDcyLFxuICAgICk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnN3ZWVwKDEzMC44MSwgNjUuNDEsIDAuMjgsICdzYXd0b290aCcsIDAuMDIpLCA0MCk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnN3ZWVwKDUyMy4yNSwgMTU2Ny45OCwgMC4zNCwgJ3NpbmUnLCAwLjAyNiksIDI0MCk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmZpbHRlcmVkTm9pc2UoMC4xNiwgMC4wMjIsICdiYW5kcGFzcycsIDE0MDApLCAxMjApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zZXF1ZW5jZShbWzk4Ny43NywgMC4wOF0sIFsxMzE4LjUxLCAwLjEyXV0sICd0cmlhbmdsZScsIDAuMDMyLCA4NiksIDUyMCk7XG4gIH1cblxuICBjaGVzc2ltYWxzSm9pblJlcXVlc3QoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFxuICAgICAgW1xuICAgICAgICBbNTIzLjI1LCAwLjA1NV0sXG4gICAgICAgIFs2NTkuMjUsIDAuMDZdLFxuICAgICAgICBbOTg3Ljc3LCAwLjEyXSxcbiAgICAgIF0sXG4gICAgICAndHJpYW5nbGUnLFxuICAgICAgMC4wMzQsXG4gICAgICA1OCxcbiAgICApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy50b25lKDEzMTguNTEsIDAuMDc1LCAnc2luZScsIDAuMDIpLCAxMzYpO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5maWx0ZXJlZE5vaXNlKDAuMDYsIDAuMDEsICdoaWdocGFzcycsIDE4MDApLCA5OCk7XG4gIH1cblxuICBjaGVzc2ltYWxzUG93ZXJVbmxvY2tlZCgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMuc2VxdWVuY2UoXG4gICAgICBbXG4gICAgICAgIFszOTIsIDAuMDU1XSxcbiAgICAgICAgWzUyMy4yNSwgMC4wNTVdLFxuICAgICAgICBbNjU5LjI1LCAwLjA4XSxcbiAgICAgICAgWzk4Ny43NywgMC4xM10sXG4gICAgICBdLFxuICAgICAgJ3RyaWFuZ2xlJyxcbiAgICAgIDAuMDM4LFxuICAgICAgNjQsXG4gICAgKTtcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMuc3dlZXAoMjIwLCA4ODAsIDAuMjIsICdzaW5lJywgMC4wMjQpLCA3MCk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmZpbHRlcmVkTm9pc2UoMC4yNCwgMC4wMTgsICdiYW5kcGFzcycsIDEyMDApLCA1NCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3ZhbC1taW5pLWdhbWVzLWF1ZGlvJykgIT09ICcwJztcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZW5zdXJlQ29udGV4dCgpOiBQcm9taXNlPEF1ZGlvQ29udGV4dD4ge1xuICAgIGlmICghdGhpcy5jb250ZXh0IHx8IHRoaXMuY29udGV4dC5zdGF0ZSA9PT0gJ2Nsb3NlZCcpIHtcbiAgICAgIHRoaXMuY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTtcbiAgICAgIHRoaXMubWFzdGVyR2FpbiA9IHRoaXMuY29udGV4dC5jcmVhdGVHYWluKCk7XG4gICAgICB0aGlzLm1hc3RlckdhaW4uZ2Fpbi52YWx1ZSA9IDE7XG4gICAgICB0aGlzLm1hc3RlckdhaW4uY29ubmVjdCh0aGlzLmNvbnRleHQuZGVzdGluYXRpb24pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xuICB9XG5cbiAgcHJpdmF0ZSBtZW51TWVsb2R5KCk6IE5vdGVbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIFsyMjAsIDAuMzhdLFxuICAgICAgWzAsIDAuMTJdLFxuICAgICAgWzI2MS42MywgMC4zNF0sXG4gICAgICBbMzI5LjYzLCAwLjQyXSxcbiAgICAgIFsyOTMuNjYsIDAuMjhdLFxuICAgICAgWzAsIDAuMTJdLFxuICAgICAgWzM5MiwgMC40OF0sXG4gICAgICBbMzI5LjYzLCAwLjM0XSxcbiAgICAgIFsyNjEuNjMsIDAuMzZdLFxuICAgICAgWzIyMCwgMC41OF0sXG4gICAgICBbMCwgMC4yXSxcbiAgICAgIFsyOTMuNjYsIDAuMzRdLFxuICAgICAgWzMyOS42MywgMC40Ml0sXG4gICAgICBbNDQwLCAwLjVdLFxuICAgICAgWzM5MiwgMC4zNl0sXG4gICAgICBbMjYxLjYzLCAwLjYyXSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZhbm5hUHVsc2Uoc3RlcDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHN0ZXAgJSA0ID09PSAwKSB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMuc3dlZXAoOTYsIDQ4LCAwLjE4LCAnc2luZScsIDAuMDEyKSwgMTgpO1xuICAgIH1cbiAgICBpZiAoc3RlcCAlIDggPT09IDUpIHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy50b25lKDE2NC44MSwgMC4wNDUsICd0cmlhbmdsZScsIDAuMDEyKSwgOTYpO1xuICAgIH1cbiAgICBpZiAoc3RlcCAlIDE2ID09PSAxMCkge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnN3ZWVwKDE0Ni44MywgMTk2LCAwLjA4LCAndHJpYW5nbGUnLCAwLjAxKSwgMTQwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdhbWVNZWxvZHkoKTogTm90ZVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgWzUyMy4yNSwgMC4xM10sXG4gICAgICBbNjU5LjI1LCAwLjEzXSxcbiAgICAgIFs3ODMuOTksIDAuMTNdLFxuICAgICAgWzEwNDYuNSwgMC4xOF0sXG4gICAgICBbNzgzLjk5LCAwLjEzXSxcbiAgICAgIFs2NTkuMjUsIDAuMTNdLFxuICAgICAgWzU4Ny4zMywgMC4xOF0sXG4gICAgICBbNjU5LjI1LCAwLjE4XSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXF1ZW5jZShcbiAgICBub3RlczogTm90ZVtdLFxuICAgIHdhdmU6IE9zY2lsbGF0b3JUeXBlID0gJ3NxdWFyZScsXG4gICAgZ2FpbiA9IDAuMDU1LFxuICAgIGludGVydmFsTXMgPSA5MCxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmVuYWJsZWQoKSkgcmV0dXJuO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm90ZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0IFtmcmVxLCBkdXJhdGlvbl0gPSBub3Rlc1tpXTtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy50b25lKGZyZXEsIGR1cmF0aW9uLCB3YXZlLCBnYWluKSwgaSAqIGludGVydmFsTXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdG9uZShmcmVxOiBudW1iZXIsIGR1cmF0aW9uID0gMC4xLCB0eXBlOiBPc2NpbGxhdG9yVHlwZSA9ICdzcXVhcmUnLCBnYWluVmFsdWUgPSAwLjA0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmVuYWJsZWQoKSkgcmV0dXJuO1xuICAgIGlmIChmcmVxIDw9IDApIHJldHVybjtcbiAgICBjb25zdCBjdHggPSBhd2FpdCB0aGlzLndha2VBdWRpbygpO1xuICAgIGNvbnN0IG9zY2lsbGF0b3IgPSBjdHguY3JlYXRlT3NjaWxsYXRvcigpO1xuICAgIGNvbnN0IGdhaW4gPSBjdHguY3JlYXRlR2FpbigpO1xuICAgIG9zY2lsbGF0b3IudHlwZSA9IHR5cGU7XG4gICAgb3NjaWxsYXRvci5mcmVxdWVuY3kudmFsdWUgPSBmcmVxO1xuICAgIGdhaW4uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLjAwMDEsIGN0eC5jdXJyZW50VGltZSk7XG4gICAgZ2Fpbi5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoZ2FpblZhbHVlLCBjdHguY3VycmVudFRpbWUgKyAwLjAxKTtcbiAgICBnYWluLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSgwLjAwMDEsIGN0eC5jdXJyZW50VGltZSArIGR1cmF0aW9uKTtcbiAgICBvc2NpbGxhdG9yLmNvbm5lY3QoZ2Fpbik7XG4gICAgZ2Fpbi5jb25uZWN0KHRoaXMubWFzdGVyR2FpbiA/PyBjdHguZGVzdGluYXRpb24pO1xuICAgIG9zY2lsbGF0b3Iuc3RhcnQoKTtcbiAgICBvc2NpbGxhdG9yLnN0b3AoY3R4LmN1cnJlbnRUaW1lICsgZHVyYXRpb24gKyAwLjAyKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc3dlZXAoXG4gICAgZnJvbUZyZXE6IG51bWJlcixcbiAgICB0b0ZyZXE6IG51bWJlcixcbiAgICBkdXJhdGlvbiA9IDAuMTYsXG4gICAgdHlwZTogT3NjaWxsYXRvclR5cGUgPSAndHJpYW5nbGUnLFxuICAgIGdhaW5WYWx1ZSA9IDAuMDMsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5lbmFibGVkKCkpIHJldHVybjtcbiAgICBjb25zdCBjdHggPSBhd2FpdCB0aGlzLndha2VBdWRpbygpO1xuICAgIGNvbnN0IG9zY2lsbGF0b3IgPSBjdHguY3JlYXRlT3NjaWxsYXRvcigpO1xuICAgIGNvbnN0IGdhaW4gPSBjdHguY3JlYXRlR2FpbigpO1xuICAgIG9zY2lsbGF0b3IudHlwZSA9IHR5cGU7XG4gICAgb3NjaWxsYXRvci5mcmVxdWVuY3kuc2V0VmFsdWVBdFRpbWUoZnJvbUZyZXEsIGN0eC5jdXJyZW50VGltZSk7XG4gICAgb3NjaWxsYXRvci5mcmVxdWVuY3kuZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZShNYXRoLm1heCgxLCB0b0ZyZXEpLCBjdHguY3VycmVudFRpbWUgKyBkdXJhdGlvbik7XG4gICAgZ2Fpbi5nYWluLnNldFZhbHVlQXRUaW1lKDAuMDAwMSwgY3R4LmN1cnJlbnRUaW1lKTtcbiAgICBnYWluLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZShnYWluVmFsdWUsIGN0eC5jdXJyZW50VGltZSArIDAuMDEpO1xuICAgIGdhaW4uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAwMSwgY3R4LmN1cnJlbnRUaW1lICsgZHVyYXRpb24pO1xuICAgIG9zY2lsbGF0b3IuY29ubmVjdChnYWluKTtcbiAgICBnYWluLmNvbm5lY3QodGhpcy5tYXN0ZXJHYWluID8/IGN0eC5kZXN0aW5hdGlvbik7XG4gICAgb3NjaWxsYXRvci5zdGFydCgpO1xuICAgIG9zY2lsbGF0b3Iuc3RvcChjdHguY3VycmVudFRpbWUgKyBkdXJhdGlvbiArIDAuMDIpO1xuICB9XG5cbiAgLy8gQ2hlc3NpbWFscyB1c2VzIGdlbmVyYXRlZCBXZWJBdWRpbyBsYXllcnMgaW5zdGVhZCBvZiB0aGlyZC1wYXJ0eSBzYW1wbGVzLFxuICAvLyBhdm9pZGluZyBsaWNlbnNpbmcgcmlzayB3aGlsZSBrZWVwaW5nIGVhY2ggYW5pbWFsIHBvd2VyIGV4cHJlc3NpdmUuXG4gIHByaXZhdGUgYXN5bmMgZmlsdGVyZWROb2lzZShcbiAgICBkdXJhdGlvbiA9IDAuMTIsXG4gICAgZ2FpblZhbHVlID0gMC4wMjUsXG4gICAgZmlsdGVyVHlwZTogQmlxdWFkRmlsdGVyVHlwZSA9ICdiYW5kcGFzcycsXG4gICAgZnJlcXVlbmN5ID0gOTAwLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCgpKSByZXR1cm47XG4gICAgY29uc3QgY3R4ID0gYXdhaXQgdGhpcy53YWtlQXVkaW8oKTtcbiAgICBjb25zdCBzYW1wbGVDb3VudCA9IE1hdGgubWF4KDEsIE1hdGguZmxvb3IoY3R4LnNhbXBsZVJhdGUgKiBkdXJhdGlvbikpO1xuICAgIGNvbnN0IGJ1ZmZlciA9IGN0eC5jcmVhdGVCdWZmZXIoMSwgc2FtcGxlQ291bnQsIGN0eC5zYW1wbGVSYXRlKTtcbiAgICBjb25zdCBjaGFubmVsID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDApO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2FtcGxlQ291bnQ7IGkgKz0gMSkge1xuICAgICAgY29uc3QgZGVjYXkgPSAxIC0gaSAvIHNhbXBsZUNvdW50O1xuICAgICAgY2hhbm5lbFtpXSA9IChNYXRoLnJhbmRvbSgpICogMiAtIDEpICogZGVjYXk7XG4gICAgfVxuXG4gICAgY29uc3Qgc291cmNlID0gY3R4LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpO1xuICAgIGNvbnN0IGZpbHRlciA9IGN0eC5jcmVhdGVCaXF1YWRGaWx0ZXIoKTtcbiAgICBjb25zdCBnYWluID0gY3R4LmNyZWF0ZUdhaW4oKTtcbiAgICBmaWx0ZXIudHlwZSA9IGZpbHRlclR5cGU7XG4gICAgZmlsdGVyLmZyZXF1ZW5jeS52YWx1ZSA9IGZyZXF1ZW5jeTtcbiAgICBmaWx0ZXIuUS52YWx1ZSA9IGZpbHRlclR5cGUgPT09ICdsb3dwYXNzJyA/IDAuNyA6IDEuODtcbiAgICBnYWluLmdhaW4uc2V0VmFsdWVBdFRpbWUoMC4wMDAxLCBjdHguY3VycmVudFRpbWUpO1xuICAgIGdhaW4uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKGdhaW5WYWx1ZSwgY3R4LmN1cnJlbnRUaW1lICsgMC4wMTIpO1xuICAgIGdhaW4uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAwMSwgY3R4LmN1cnJlbnRUaW1lICsgZHVyYXRpb24pO1xuICAgIHNvdXJjZS5idWZmZXIgPSBidWZmZXI7XG4gICAgc291cmNlLmNvbm5lY3QoZmlsdGVyKTtcbiAgICBmaWx0ZXIuY29ubmVjdChnYWluKTtcbiAgICBnYWluLmNvbm5lY3QodGhpcy5tYXN0ZXJHYWluID8/IGN0eC5kZXN0aW5hdGlvbik7XG4gICAgc291cmNlLnN0YXJ0KCk7XG4gICAgc291cmNlLnN0b3AoY3R4LmN1cnJlbnRUaW1lICsgZHVyYXRpb24gKyAwLjAyKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAoZG9jdW1lbnQuaGlkZGVuKSB7XG4gICAgICB0aGlzLnBhdXNlRm9yQmFja2dyb3VuZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2b2lkIHRoaXMucmVzdW1lRnJvbUJhY2tncm91bmQoKTtcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZVBhZ2VIaWRlID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMucGF1c2VGb3JCYWNrZ3JvdW5kKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVQYWdlU2hvdyA9ICgpOiB2b2lkID0+IHtcbiAgICB2b2lkIHRoaXMucmVzdW1lRnJvbUJhY2tncm91bmQoKTtcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZVVzZXJBY3RpdmF0aW9uID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5lbmFibGVkKCkgfHwgIXRoaXMuaXNEb2N1bWVudFZpc2libGUoKSkgcmV0dXJuO1xuICAgIHZvaWQgdGhpcy53YWtlQXVkaW8oKTtcbiAgfTtcblxuICBwcml2YXRlIHBhdXNlRm9yQmFja2dyb3VuZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3RpdmVNZWxvZHkpIHRoaXMucGF1c2VkTWVsb2R5ID0gdGhpcy5hY3RpdmVNZWxvZHk7XG4gICAgaWYgKHRoaXMubXVzaWNUaW1lcikge1xuICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5tdXNpY1RpbWVyKTtcbiAgICAgIHRoaXMubXVzaWNUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVNZWxvZHkgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5mYWRlTWFzdGVyVG8oMC4wMDAxLCAwLjIpO1xuICAgIGlmICh0aGlzLnN1c3BlbmRUaW1lcikgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnN1c3BlbmRUaW1lcik7XG4gICAgdGhpcy5zdXNwZW5kVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnN1c3BlbmRUaW1lciA9IHVuZGVmaW5lZDtcbiAgICAgIHZvaWQgdGhpcy5jb250ZXh0Py5zdXNwZW5kKCkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgICB9LCAyNjApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXN1bWVGcm9tQmFja2dyb3VuZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zdXNwZW5kVGltZXIpIHtcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5zdXNwZW5kVGltZXIpO1xuICAgICAgdGhpcy5zdXNwZW5kVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICghdGhpcy5lbmFibGVkKCkpIHJldHVybjtcbiAgICBjb25zdCBtZWxvZHkgPSB0aGlzLnBhdXNlZE1lbG9keTtcbiAgICBpZiAoIW1lbG9keSkgcmV0dXJuO1xuICAgIHRoaXMucGF1c2VkTWVsb2R5ID0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGN0eCA9IGF3YWl0IHRoaXMuZW5zdXJlQ29udGV4dCgpO1xuICAgIGF3YWl0IHRoaXMucmVzdW1lQ29udGV4dChjdHgpO1xuICAgIHRoaXMuZmFkZU1hc3RlclRvKDEsIDAuMzUpO1xuICAgIGF3YWl0IHRoaXMuc3RhcnRNdXNpYyhtZWxvZHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB3YWtlQXVkaW8oKTogUHJvbWlzZTxBdWRpb0NvbnRleHQ+IHtcbiAgICBjb25zdCBjdHggPSBhd2FpdCB0aGlzLmVuc3VyZUNvbnRleHQoKTtcbiAgICBhd2FpdCB0aGlzLnJlc3VtZUNvbnRleHQoY3R4KTtcbiAgICB0aGlzLmZhZGVNYXN0ZXJUbygxLCAwLjEyKTtcbiAgICByZXR1cm4gY3R4O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXN1bWVDb250ZXh0KGN0eDogQXVkaW9Db250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGN0eC5zdGF0ZSA9PT0gJ3J1bm5pbmcnKSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGN0eC5yZXN1bWUoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGlPUyBwdWVkZSBleGlnaXIgdW5hIG51ZXZhIGludGVyYWNjacOzbiBkZWwgdXN1YXJpbzsgZWwgbGlzdGVuZXIgZGUgYWN0aXZhY2nDs24gcmVpbnRlbnRhcsOhLlxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmFkZU1hc3RlclRvKHZhbHVlOiBudW1iZXIsIHNlY29uZHM6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250ZXh0IHx8ICF0aGlzLm1hc3RlckdhaW4pIHJldHVybjtcbiAgICBjb25zdCBnYWluID0gdGhpcy5tYXN0ZXJHYWluLmdhaW47XG4gICAgY29uc3Qgbm93ID0gdGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lO1xuICAgIGdhaW4uY2FuY2VsU2NoZWR1bGVkVmFsdWVzKG5vdyk7XG4gICAgZ2Fpbi5zZXRUYXJnZXRBdFRpbWUodmFsdWUsIG5vdywgTWF0aC5tYXgoMC4wMSwgc2Vjb25kcyAvIDQpKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNEb2N1bWVudFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgIWRvY3VtZW50LmhpZGRlbjtcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21pbmktZ2FtZXMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE1pbmlHYW1lU3RhdHVzID0gJ2F2YWlsYWJsZScgfCAnc29vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWluaUdhbWVEZWZpbml0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICByb3V0ZT86IHN0cmluZztcbiAgc3RhdHVzPzogTWluaUdhbWVTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWluaUdhbWVQbGF5ZXJQcm9maWxlIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBhdmF0YXI6IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBNZW1vcnlHYW1lRGlmZmljdWx0eSA9ICdlYXN5JyB8ICdtZWRpdW0nIHwgJ2hhcmQnO1xuXG5leHBvcnQgdHlwZSBNZW1vcnlHYW1lTW9kZSA9ICdjbGFzc2ljJyB8ICdyZWxheGVkJyB8ICd0aW1lZCc7XG5cbmV4cG9ydCB0eXBlIE1lbW9yeUdhbWVQcm9maWxlID0gJ2tpZCcgfCAnY2xhc3NpYycgfCAnbmluamEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lbW9yeUdhbWVDYXJkIHtcbiAgaWQ6IHN0cmluZztcbiAgc3ltYm9sOiBzdHJpbmc7XG4gIG1hdGNoZWQ6IGJvb2xlYW47XG4gIGZsaXBwZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFNpbW9uR2FtZU1vZGUgPSAna2lkJyB8ICdjbGFzc2ljJyB8ICduaW5qYSc7XG5cbmV4cG9ydCB0eXBlIFNpbW9uR2FtZVBoYXNlID0gJ2hvbWUnIHwgJ3Nob3dpbmcnIHwgJ3dhaXRpbmcnIHwgJ3N1Y2Nlc3MnIHwgJ2ZhaWxlZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2ltb25QYWQge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICB0b25lOiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNCb2FyZFNpemUgPSA2IHwgODtcbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNQbGF5ZXJDb2xvciA9ICd3aGl0ZScgfCAnYmxhY2snO1xuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc0FuaW1hbFR5cGUgPSAnZWFnbGUnIHwgJ2J1bGwnIHwgJ2thbmdhcm9vJyB8ICdsaW9uJztcbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNNb3ZlS2luZCA9ICdiYXNpYycgfCAncG93ZXInO1xuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc1dpblJlYXNvbiA9ICdwcm9tb3Rpb24nIHwgJ2VsaW1pbmF0aW9uJyB8ICdyZXNpZ25hdGlvbic7XG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzR2FtZU1vZGUgPSAnbG9jYWwnIHwgJ29ubGluZSc7XG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzTG9jYWxNb2RlID0gJ29uZS1kZXZpY2UnIHwgJ2JvdCc7XG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzQm90RGlmZmljdWx0eSA9ICdlYXN5JyB8ICdub3JtYWwnIHwgJ2hhcmQnO1xuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc0dhbWVTdGF0dXMgPSAnd2FpdGluZycgfCAnaW5fcHJvZ3Jlc3MnIHwgJ2ZpbmlzaGVkJyB8ICdleHBpcmVkJztcblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzUG9zaXRpb24ge1xuICByb3c6IG51bWJlcjtcbiAgY29sOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc1BpZWNlIHtcbiAgaWQ6IHN0cmluZztcbiAgY29sb3I6IENoZXNzaW1hbHNQbGF5ZXJDb2xvcjtcbiAgcG9zaXRpb246IENoZXNzaW1hbHNQb3NpdGlvbjtcbiAgY2FwdHVyZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc1Bvd2VyQ2FyZCB7XG4gIHR5cGU6IENoZXNzaW1hbHNBbmltYWxUeXBlO1xuICB1c2VkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZXNzaW1hbHNQbGF5ZXJTdGF0ZSB7XG4gIGNvbG9yOiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIHBvd2VyVW5sb2NrZWQ6IGJvb2xlYW47XG4gIGNhcmRzOiBSZWNvcmQ8Q2hlc3NpbWFsc0FuaW1hbFR5cGUsIENoZXNzaW1hbHNQb3dlckNhcmQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZXNzaW1hbHNNb3ZlIHtcbiAgcGllY2VJZDogc3RyaW5nO1xuICBmcm9tOiBDaGVzc2ltYWxzUG9zaXRpb247XG4gIHRvOiBDaGVzc2ltYWxzUG9zaXRpb247XG4gIGtpbmQ6IENoZXNzaW1hbHNNb3ZlS2luZDtcbiAgYW5pbWFsPzogQ2hlc3NpbWFsc0FuaW1hbFR5cGU7XG4gIGNhcHR1cmVzUGllY2VJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc01vdmVMb2dTdGF0dXMgPSAnYWNjZXB0ZWQnIHwgJ3JlamVjdGVkJztcblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzTW92ZUxvZ0VudHJ5IHtcbiAgaWQ6IHN0cmluZztcbiAgYXQ6IHN0cmluZztcbiAgdWlkOiBzdHJpbmc7XG4gIHByb2ZpbGVJZD86IHN0cmluZztcbiAgc2VhdEtleT86IHN0cmluZztcbiAgc2lkZT86IENoZXNzaW1hbHNQbGF5ZXJDb2xvcjtcbiAgc3RhdHVzOiBDaGVzc2ltYWxzTW92ZUxvZ1N0YXR1cztcbiAgY29kZT86IHN0cmluZztcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgbW92ZTogQ2hlc3NpbWFsc01vdmU7XG4gIG1vdmVDb3VudEJlZm9yZTogbnVtYmVyO1xuICBtb3ZlQ291bnRBZnRlcj86IG51bWJlcjtcbiAgY3VycmVudFR1cm5CZWZvcmU6IENoZXNzaW1hbHNQbGF5ZXJDb2xvcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzT25saW5lUGFydGljaXBhbnQge1xuICB1aWQ6IHN0cmluZztcbiAgYWNjb3VudFVzZXJJZD86IHN0cmluZztcbiAgcHJvZmlsZUlkOiBzdHJpbmc7XG4gIHNlYXRLZXk/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgaGFuZGxlPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgYXZhdGFyOiBzdHJpbmc7XG4gIGF2YXRhclVybD86IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbiAgc2lkZT86IENoZXNzaW1hbHNQbGF5ZXJDb2xvcjtcbiAgam9pbmVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzT25saW5lU3RhdGUge1xuICBnYW1lSWQ6IHN0cmluZztcbiAgaG9zdFVpZDogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG4gIGV4cGlyZXNBdDogc3RyaW5nO1xuICBleHBpcmVzQXRNczogbnVtYmVyO1xuICByb3VuZDogbnVtYmVyO1xuICByZW1hdGNoT2Y/OiBzdHJpbmc7XG4gIGxvYmJ5PzogQ2hlc3NpbWFsc09ubGluZVBhcnRpY2lwYW50O1xuICBwZW5kaW5nR3Vlc3Q/OiBDaGVzc2ltYWxzT25saW5lUGFydGljaXBhbnQ7XG4gIHBhcnRpY2lwYW50cz86IFBhcnRpYWw8UmVjb3JkPENoZXNzaW1hbHNQbGF5ZXJDb2xvciwgQ2hlc3NpbWFsc09ubGluZVBhcnRpY2lwYW50Pj47XG4gIHJlbWF0Y2hSZXF1ZXN0cz86IHN0cmluZ1tdO1xuICBtb3ZlTG9nPzogQ2hlc3NpbWFsc01vdmVMb2dFbnRyeVtdO1xufVxuXG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzSGlzdG9yeU91dGNvbWUgPSAnd2FpdGluZycgfCAncGVuZGluZycgfCAnaW5fcHJvZ3Jlc3MnIHwgJ3dvbicgfCAnbG9zdCcgfCAnZGVjbGluZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENoZXNzaW1hbHNIaXN0b3J5RW50cnkge1xuICBnYW1lSWQ6IHN0cmluZztcbiAgbW9kZTogJ29ubGluZSc7XG4gIGJvYXJkU2l6ZTogQ2hlc3NpbWFsc0JvYXJkU2l6ZTtcbiAgc3RhdHVzOiBDaGVzc2ltYWxzR2FtZVN0YXR1cztcbiAgb3V0Y29tZTogQ2hlc3NpbWFsc0hpc3RvcnlPdXRjb21lO1xuICBzaWRlPzogQ2hlc3NpbWFsc1BsYXllckNvbG9yO1xuICBvcHBvbmVudFVpZD86IHN0cmluZztcbiAgb3Bwb25lbnROYW1lPzogc3RyaW5nO1xuICB3aW5uZXI/OiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIHdpbm5lclJlYXNvbj86IENoZXNzaW1hbHNXaW5SZWFzb247XG4gIG1vdmVDb3VudDogbnVtYmVyO1xuICByb3VuZDogbnVtYmVyO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG4gIGZpbmlzaGVkQXQ/OiBzdHJpbmc7XG4gIGV4cGlyZXNBdD86IHN0cmluZztcbiAgcmVtYXRjaE9mPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZXNzaW1hbHNHYW1lU3RhdGUge1xuICBpZDogc3RyaW5nO1xuICBtb2RlOiBDaGVzc2ltYWxzR2FtZU1vZGU7XG4gIGJvYXJkU2l6ZTogQ2hlc3NpbWFsc0JvYXJkU2l6ZTtcbiAgc3RhdHVzOiBDaGVzc2ltYWxzR2FtZVN0YXR1cztcbiAgY3VycmVudFR1cm46IENoZXNzaW1hbHNQbGF5ZXJDb2xvcjtcbiAgcGllY2VzOiBDaGVzc2ltYWxzUGllY2VbXTtcbiAgcGxheWVyczogUmVjb3JkPENoZXNzaW1hbHNQbGF5ZXJDb2xvciwgQ2hlc3NpbWFsc1BsYXllclN0YXRlPjtcbiAgd2lubmVyPzogQ2hlc3NpbWFsc1BsYXllckNvbG9yO1xuICB3aW5uZXJSZWFzb24/OiBDaGVzc2ltYWxzV2luUmVhc29uO1xuICBtb3ZlQ291bnQ6IG51bWJlcjtcbiAgbGFzdE1vdmU/OiBDaGVzc2ltYWxzTW92ZTtcbiAgb25saW5lPzogQ2hlc3NpbWFsc09ubGluZVN0YXRlO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21pbmktZ2FtZXMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE1pbmlHYW1lU3RhdHVzID0gJ2F2YWlsYWJsZScgfCAnc29vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWluaUdhbWVEZWZpbml0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBpbWFnZVNyYz86IHN0cmluZztcbiAgcm91dGU/OiBzdHJpbmc7XG4gIHN0YXR1cz86IE1pbmlHYW1lU3RhdHVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pbmlHYW1lUGxheWVyUHJvZmlsZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgYXZhdGFyOiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgTWVtb3J5R2FtZURpZmZpY3VsdHkgPSAnZWFzeScgfCAnbWVkaXVtJyB8ICdoYXJkJztcblxuZXhwb3J0IHR5cGUgTWVtb3J5R2FtZU1vZGUgPSAnY2xhc3NpYycgfCAncmVsYXhlZCcgfCAndGltZWQnO1xuXG5leHBvcnQgdHlwZSBNZW1vcnlHYW1lUHJvZmlsZSA9ICdraWQnIHwgJ2NsYXNzaWMnIHwgJ25pbmphJztcblxuZXhwb3J0IGludGVyZmFjZSBNZW1vcnlHYW1lQ2FyZCB7XG4gIGlkOiBzdHJpbmc7XG4gIHN5bWJvbDogc3RyaW5nO1xuICBtYXRjaGVkOiBib29sZWFuO1xuICBmbGlwcGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBTaW1vbkdhbWVNb2RlID0gJ2tpZCcgfCAnY2xhc3NpYycgfCAnbmluamEnO1xuXG5leHBvcnQgdHlwZSBTaW1vbkdhbWVQaGFzZSA9ICdob21lJyB8ICdzaG93aW5nJyB8ICd3YWl0aW5nJyB8ICdzdWNjZXNzJyB8ICdmYWlsZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpbW9uUGFkIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbiAgdG9uZTogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzQm9hcmRTaXplID0gNiB8IDg7XG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzUGxheWVyQ29sb3IgPSAnd2hpdGUnIHwgJ2JsYWNrJztcbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNBbmltYWxUeXBlID0gJ2VhZ2xlJyB8ICdidWxsJyB8ICdrYW5nYXJvbycgfCAnbGlvbic7XG5leHBvcnQgdHlwZSBDaGVzc2ltYWxzTW92ZUtpbmQgPSAnYmFzaWMnIHwgJ3Bvd2VyJztcbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNXaW5SZWFzb24gPSAncHJvbW90aW9uJyB8ICdlbGltaW5hdGlvbicgfCAncmVzaWduYXRpb24nO1xuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc0dhbWVNb2RlID0gJ2xvY2FsJyB8ICdvbmxpbmUnO1xuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc0xvY2FsTW9kZSA9ICdvbmUtZGV2aWNlJyB8ICdib3QnO1xuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc0JvdERpZmZpY3VsdHkgPSAnZWFzeScgfCAnbm9ybWFsJyB8ICdoYXJkJztcbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNHYW1lU3RhdHVzID0gJ3dhaXRpbmcnIHwgJ2luX3Byb2dyZXNzJyB8ICdmaW5pc2hlZCcgfCAnZXhwaXJlZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc1Bvc2l0aW9uIHtcbiAgcm93OiBudW1iZXI7XG4gIGNvbDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZXNzaW1hbHNQaWVjZSB7XG4gIGlkOiBzdHJpbmc7XG4gIGNvbG9yOiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIHBvc2l0aW9uOiBDaGVzc2ltYWxzUG9zaXRpb247XG4gIGNhcHR1cmVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoZXNzaW1hbHNQb3dlckNhcmQge1xuICB0eXBlOiBDaGVzc2ltYWxzQW5pbWFsVHlwZTtcbiAgdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzUGxheWVyU3RhdGUge1xuICBjb2xvcjogQ2hlc3NpbWFsc1BsYXllckNvbG9yO1xuICBwb3dlclVubG9ja2VkOiBib29sZWFuO1xuICBjYXJkczogUmVjb3JkPENoZXNzaW1hbHNBbmltYWxUeXBlLCBDaGVzc2ltYWxzUG93ZXJDYXJkPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzTW92ZSB7XG4gIHBpZWNlSWQ6IHN0cmluZztcbiAgZnJvbTogQ2hlc3NpbWFsc1Bvc2l0aW9uO1xuICB0bzogQ2hlc3NpbWFsc1Bvc2l0aW9uO1xuICBraW5kOiBDaGVzc2ltYWxzTW92ZUtpbmQ7XG4gIGFuaW1hbD86IENoZXNzaW1hbHNBbmltYWxUeXBlO1xuICBjYXB0dXJlc1BpZWNlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIENoZXNzaW1hbHNNb3ZlTG9nU3RhdHVzID0gJ2FjY2VwdGVkJyB8ICdyZWplY3RlZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc01vdmVMb2dFbnRyeSB7XG4gIGlkOiBzdHJpbmc7XG4gIGF0OiBzdHJpbmc7XG4gIHVpZDogc3RyaW5nO1xuICBwcm9maWxlSWQ/OiBzdHJpbmc7XG4gIHNlYXRLZXk/OiBzdHJpbmc7XG4gIHNpZGU/OiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIHN0YXR1czogQ2hlc3NpbWFsc01vdmVMb2dTdGF0dXM7XG4gIGNvZGU/OiBzdHJpbmc7XG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG4gIG1vdmU6IENoZXNzaW1hbHNNb3ZlO1xuICBtb3ZlQ291bnRCZWZvcmU6IG51bWJlcjtcbiAgbW92ZUNvdW50QWZ0ZXI/OiBudW1iZXI7XG4gIGN1cnJlbnRUdXJuQmVmb3JlOiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc09ubGluZVBhcnRpY2lwYW50IHtcbiAgdWlkOiBzdHJpbmc7XG4gIGFjY291bnRVc2VySWQ/OiBzdHJpbmc7XG4gIHByb2ZpbGVJZDogc3RyaW5nO1xuICBzZWF0S2V5Pzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGhhbmRsZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGF2YXRhcjogc3RyaW5nO1xuICBhdmF0YXJVcmw/OiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIHNpZGU/OiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIGpvaW5lZEF0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlc3NpbWFsc09ubGluZVN0YXRlIHtcbiAgZ2FtZUlkOiBzdHJpbmc7XG4gIGhvc3RVaWQ6IHN0cmluZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xuICBleHBpcmVzQXQ6IHN0cmluZztcbiAgZXhwaXJlc0F0TXM6IG51bWJlcjtcbiAgcm91bmQ6IG51bWJlcjtcbiAgcmVtYXRjaE9mPzogc3RyaW5nO1xuICBsb2JieT86IENoZXNzaW1hbHNPbmxpbmVQYXJ0aWNpcGFudDtcbiAgcGVuZGluZ0d1ZXN0PzogQ2hlc3NpbWFsc09ubGluZVBhcnRpY2lwYW50O1xuICBwYXJ0aWNpcGFudHM/OiBQYXJ0aWFsPFJlY29yZDxDaGVzc2ltYWxzUGxheWVyQ29sb3IsIENoZXNzaW1hbHNPbmxpbmVQYXJ0aWNpcGFudD4+O1xuICByZW1hdGNoUmVxdWVzdHM/OiBzdHJpbmdbXTtcbiAgbW92ZUxvZz86IENoZXNzaW1hbHNNb3ZlTG9nRW50cnlbXTtcbn1cblxuZXhwb3J0IHR5cGUgQ2hlc3NpbWFsc0hpc3RvcnlPdXRjb21lID0gJ3dhaXRpbmcnIHwgJ3BlbmRpbmcnIHwgJ2luX3Byb2dyZXNzJyB8ICd3b24nIHwgJ2xvc3QnIHwgJ2RlY2xpbmVkJztcblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzSGlzdG9yeUVudHJ5IHtcbiAgZ2FtZUlkOiBzdHJpbmc7XG4gIG1vZGU6ICdvbmxpbmUnO1xuICBib2FyZFNpemU6IENoZXNzaW1hbHNCb2FyZFNpemU7XG4gIHN0YXR1czogQ2hlc3NpbWFsc0dhbWVTdGF0dXM7XG4gIG91dGNvbWU6IENoZXNzaW1hbHNIaXN0b3J5T3V0Y29tZTtcbiAgc2lkZT86IENoZXNzaW1hbHNQbGF5ZXJDb2xvcjtcbiAgb3Bwb25lbnRVaWQ/OiBzdHJpbmc7XG4gIG9wcG9uZW50TmFtZT86IHN0cmluZztcbiAgd2lubmVyPzogQ2hlc3NpbWFsc1BsYXllckNvbG9yO1xuICB3aW5uZXJSZWFzb24/OiBDaGVzc2ltYWxzV2luUmVhc29uO1xuICBtb3ZlQ291bnQ6IG51bWJlcjtcbiAgcm91bmQ6IG51bWJlcjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xuICBmaW5pc2hlZEF0Pzogc3RyaW5nO1xuICBleHBpcmVzQXQ/OiBzdHJpbmc7XG4gIHJlbWF0Y2hPZj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGVzc2ltYWxzR2FtZVN0YXRlIHtcbiAgaWQ6IHN0cmluZztcbiAgbW9kZTogQ2hlc3NpbWFsc0dhbWVNb2RlO1xuICBib2FyZFNpemU6IENoZXNzaW1hbHNCb2FyZFNpemU7XG4gIHN0YXR1czogQ2hlc3NpbWFsc0dhbWVTdGF0dXM7XG4gIGN1cnJlbnRUdXJuOiBDaGVzc2ltYWxzUGxheWVyQ29sb3I7XG4gIHBpZWNlczogQ2hlc3NpbWFsc1BpZWNlW107XG4gIHBsYXllcnM6IFJlY29yZDxDaGVzc2ltYWxzUGxheWVyQ29sb3IsIENoZXNzaW1hbHNQbGF5ZXJTdGF0ZT47XG4gIHdpbm5lcj86IENoZXNzaW1hbHNQbGF5ZXJDb2xvcjtcbiAgd2lubmVyUmVhc29uPzogQ2hlc3NpbWFsc1dpblJlYXNvbjtcbiAgbW92ZUNvdW50OiBudW1iZXI7XG4gIGxhc3RNb3ZlPzogQ2hlc3NpbWFsc01vdmU7XG4gIG9ubGluZT86IENoZXNzaW1hbHNPbmxpbmVTdGF0ZTtcbn1cbiJdfQ==
@@ -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 = '4.0.402';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC40MDInO1xuIl19
5
+ export const VERSION = '4.0.404';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC40MDQnO1xuIl19
@@ -58,6 +58,7 @@ export class MiniGamesPageComponent {
58
58
  title: this.t('chessimalsTitle'),
59
59
  description: this.t('chessimalsDescription'),
60
60
  icon: '♟️',
61
+ imageSrc: 'assets/games/chessimals/menu-logo.jpg',
61
62
  route: `${MINI_GAMES_BASE_ROUTE}/chessimals`,
62
63
  },
63
64
  ];
@@ -230,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
230
231
  `,
231
232
  }]
232
233
  }] });
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21pbmktZ2FtZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLG1CQUFtQixFQUVuQixzQkFBc0IsRUFDdEIsb0JBQW9CLEVBRXBCLGtCQUFrQixHQUNuQixNQUFNLG9CQUFvQixDQUFDOztBQUU1QixNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQztBQUU1QyxNQUFNLG9CQUFvQixHQUFHO0lBQzNCLEVBQUUsRUFBRTtRQUNGLFdBQVcsRUFBRSxnQkFBZ0I7UUFDN0IsaUJBQWlCLEVBQUUsNkNBQTZDO1FBQ2hFLFVBQVUsRUFBRSxPQUFPO1FBQ25CLGdCQUFnQixFQUFFLDZDQUE2QztRQUMvRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixxQkFBcUIsRUFBRSwyQ0FBMkM7UUFDbEUsV0FBVyxFQUFFLGVBQWU7S0FDN0I7SUFDRCxFQUFFLEVBQUU7UUFDRixXQUFXLEVBQUUsY0FBYztRQUMzQixpQkFBaUIsRUFBRSxtREFBbUQ7UUFDdEUsVUFBVSxFQUFFLE9BQU87UUFDbkIsZ0JBQWdCLEVBQUUsK0NBQStDO1FBQ2pFLGVBQWUsRUFBRSxZQUFZO1FBQzdCLHFCQUFxQixFQUFFLG9DQUFvQztRQUMzRCxXQUFXLEVBQUUsYUFBYTtLQUMzQjtDQUNGLENBQUM7QUFxQkYsTUFBTSxPQUFPLHNCQUFzQjtJQVlqQztRQVhpQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbkMscUJBQWdCLEdBQXdCO1lBQy9D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cUNBQXFDO0lBVmxEO1FBV21CLFVBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdkMsV0FBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0tBQ3BFOytHQUhZLHFDQUFxQzttR0FBckMscUNBQXFDLCtGQU50Qzs7OztHQUlULDREQUxTLHVCQUF1Qiw4SEFoRTdCLDBCQUEwQjs7NEZBdUVuQixxQ0FBcUM7a0JBVmpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFDQUFxQztvQkFDL0MsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLDBCQUEwQixDQUFDO29CQUM5RCxRQUFRLEVBQUU7Ozs7R0FJVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIENoZXNzaW1hbHNHYW1lQ29tcG9uZW50LFxuICBJMThuU2VydmljZSxcbiAgTWVtb3J5R2FtZUNvbXBvbmVudCxcbiAgTWluaUdhbWVEZWZpbml0aW9uLFxuICBNaW5pR2FtZXNNZW51Q29tcG9uZW50LFxuICBQYWdlQ29udGVudENvbXBvbmVudCxcbiAgUGFnZUNvbnRlbnRNZXRhZGF0YSxcbiAgU2ltb25HYW1lQ29tcG9uZW50LFxufSBmcm9tICd2YWx0ZWNoLWNvbXBvbmVudHMnO1xuXG5jb25zdCBNSU5JX0dBTUVTX0JBU0VfUk9VVEUgPSAnL21pbmktZ2FtZXMnO1xuXG5jb25zdCBNSU5JX0dBTUVTX1BBR0VfSTE4TiA9IHtcbiAgZXM6IHtcbiAgICBtZW1vcnlUaXRsZTogJ01lbW9yaWNlIFJldHJvJyxcbiAgICBtZW1vcnlEZXNjcmlwdGlvbjogJ0VuY3VlbnRyYSBwYXJlcyBjb24gbXVzaWNhIHkgZWZlY3RvcyByZXRyby4nLFxuICAgIHNpbW9uVGl0bGU6ICdTaW1vbicsXG4gICAgc2ltb25EZXNjcmlwdGlvbjogJ1JlcGl0ZSBsdWNlcyB5IHNvbmlkb3MgY2FkYSB2ZXogbWFzIGxhcmdvcy4nLFxuICAgIGNoZXNzaW1hbHNUaXRsZTogJ0NoZXNzaW1hbHMnLFxuICAgIGNoZXNzaW1hbHNEZXNjcmlwdGlvbjogJ0NhcnJlcmEgZGUgcGVvbmVzIGNvbiBjYXJ0YXMgZGUgYW5pbWFsZXMuJyxcbiAgICBiYWNrVG9TZXR1cDogJ0NhbWJpYXIganVlZ28nLFxuICB9LFxuICBlbjoge1xuICAgIG1lbW9yeVRpdGxlOiAnUmV0cm8gTWVtb3J5JyxcbiAgICBtZW1vcnlEZXNjcmlwdGlvbjogJ0ZpbmQgbWF0Y2hpbmcgcGFpcnMgd2l0aCByZXRybyBtdXNpYyBhbmQgZWZmZWN0cy4nLFxuICAgIHNpbW9uVGl0bGU6ICdTaW1vbicsXG4gICAgc2ltb25EZXNjcmlwdGlvbjogJ1JlcGVhdCBsaWdodHMgYW5kIHNvdW5kcyBpbiBsb25nZXIgc2VxdWVuY2VzLicsXG4gICAgY2hlc3NpbWFsc1RpdGxlOiAnQ2hlc3NpbWFscycsXG4gICAgY2hlc3NpbWFsc0Rlc2NyaXB0aW9uOiAnUGF3biByYWNlIHdpdGggYW5pbWFsIHBvd2VyIGNhcmRzLicsXG4gICAgYmFja1RvU2V0dXA6ICdDaGFuZ2UgZ2FtZScsXG4gIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbWluaS1nYW1lcy1wYWdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01pbmlHYW1lc01lbnVDb21wb25lbnQsIFBhZ2VDb250ZW50Q29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmFsLXBhZ2UtY29udGVudCBbcHJvcHNdPVwicGFnZUNvbnRlbnRQcm9wc1wiPlxuICAgICAgPHNlY3Rpb24gY29udGVudCBjbGFzcz1cIm1pbmktZ2FtZXMtcGFnZVwiPlxuICAgICAgICA8dmFsLW1pbmktZ2FtZXMtbWVudSBbZ2FtZXNdPVwiZ2FtZXNcIiBbYXNNb2RhbF09XCJmYWxzZVwiIChzZWxlY3RlZCk9XCJvcGVuR2FtZSgkZXZlbnQpXCIgLz5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L3ZhbC1wYWdlLWNvbnRlbnQ+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5taW5pLWdhbWVzLXBhZ2Uge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDAgMzJweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNaW5pR2FtZXNQYWdlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICByZWFkb25seSBwYWdlQ29udGVudFByb3BzOiBQYWdlQ29udGVudE1ldGFkYXRhID0ge1xuICAgIGhvbWVSb3V0ZTogJy8nLFxuICAgIGxhbmd1YWdlU2VsZWN0b3I6IHt9LFxuICAgIGZvbnRTaXplU2VsZWN0b3I6IHt9LFxuICAgIHNob3dCYWNrQnV0dG9uOiB0cnVlLFxuICAgIGNvbnRlbnRNYXhXaWR0aDogJ21kJyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnTWluaUdhbWVzJywgTUlOSV9HQU1FU19QQUdFX0kxOE4pO1xuICB9XG5cbiAgZ2V0IGdhbWVzKCk6IE1pbmlHYW1lRGVmaW5pdGlvbltdIHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnbWVtb3J5JyxcbiAgICAgICAgdGl0bGU6IHRoaXMudCgnbWVtb3J5VGl0bGUnKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMudCgnbWVtb3J5RGVzY3JpcHRpb24nKSxcbiAgICAgICAgaWNvbjogJ/Cfp6AnLFxuICAgICAgICByb3V0ZTogYCR7TUlOSV9HQU1FU19CQVNFX1JPVVRFfS9tZW1vcnlgLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdzaW1vbicsXG4gICAgICAgIHRpdGxlOiB0aGlzLnQoJ3NpbW9uVGl0bGUnKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMudCgnc2ltb25EZXNjcmlwdGlvbicpLFxuICAgICAgICBpY29uOiAn8J+Om++4jycsXG4gICAgICAgIHJvdXRlOiBgJHtNSU5JX0dBTUVTX0JBU0VfUk9VVEV9L3NpbW9uYCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnY2hlc3NpbWFscycsXG4gICAgICAgIHRpdGxlOiB0aGlzLnQoJ2NoZXNzaW1hbHNUaXRsZScpLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy50KCdjaGVzc2ltYWxzRGVzY3JpcHRpb24nKSxcbiAgICAgICAgaWNvbjogJ+KZn++4jycsXG4gICAgICAgIHJvdXRlOiBgJHtNSU5JX0dBTUVTX0JBU0VfUk9VVEV9L2NoZXNzaW1hbHNgLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgb3BlbkdhbWUoZ2FtZTogTWluaUdhbWVEZWZpbml0aW9uKTogdm9pZCB7XG4gICAgaWYgKGdhbWUucm91dGUpIHZvaWQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChnYW1lLnJvdXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgJ01pbmlHYW1lcycpO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1taW5pLWdhbWUtcGFnZS1zaGVsbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtQYWdlQ29udGVudENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHZhbC1wYWdlLWNvbnRlbnQgW3Byb3BzXT1cInBhZ2VDb250ZW50UHJvcHNcIj5cbiAgICAgIDxzZWN0aW9uIGNvbnRlbnQgY2xhc3M9XCJtaW5pLWdhbWUtcGFnZS1zaGVsbFwiPlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvdmFsLXBhZ2UtY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLm1pbmktZ2FtZS1wYWdlLXNoZWxsIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDAgMzJweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmNsYXNzIE1pbmlHYW1lUGFnZVNoZWxsQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgcGFnZUNvbnRlbnRQcm9wczogUGFnZUNvbnRlbnRNZXRhZGF0YSA9IHtcbiAgICBob21lUm91dGU6IE1JTklfR0FNRVNfQkFTRV9ST1VURSxcbiAgICBsYW5ndWFnZVNlbGVjdG9yOiB7fSxcbiAgICBmb250U2l6ZVNlbGVjdG9yOiB7fSxcbiAgICBzaG93QmFja0J1dHRvbjogZmFsc2UsXG4gICAgY29udGVudE1heFdpZHRoOiAnbWQnLFxuICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbWVtb3J5LWdhbWUtcGFnZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtNZW1vcnlHYW1lQ29tcG9uZW50LCBNaW5pR2FtZVBhZ2VTaGVsbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHZhbC1taW5pLWdhbWUtcGFnZS1zaGVsbD5cbiAgICAgIDx2YWwtbWVtb3J5LWdhbWUgLz5cbiAgICA8L3ZhbC1taW5pLWdhbWUtcGFnZS1zaGVsbD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTWVtb3J5R2FtZVBhZ2VDb21wb25lbnQge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXNpbW9uLWdhbWUtcGFnZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtTaW1vbkdhbWVDb21wb25lbnQsIE1pbmlHYW1lUGFnZVNoZWxsQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmFsLW1pbmktZ2FtZS1wYWdlLXNoZWxsPlxuICAgICAgPHZhbC1zaW1vbi1nYW1lIC8+XG4gICAgPC92YWwtbWluaS1nYW1lLXBhZ2Utc2hlbGw+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNpbW9uR2FtZVBhZ2VDb21wb25lbnQge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNoZXNzaW1hbHMtZ2FtZS1wYWdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NoZXNzaW1hbHNHYW1lQ29tcG9uZW50LCBNaW5pR2FtZVBhZ2VTaGVsbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHZhbC1taW5pLWdhbWUtcGFnZS1zaGVsbD5cbiAgICAgIDx2YWwtY2hlc3NpbWFscy1nYW1lIC8+XG4gICAgPC92YWwtbWluaS1nYW1lLXBhZ2Utc2hlbGw+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIENoZXNzaW1hbHNHYW1lUGFnZUNvbXBvbmVudCB7fVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY2hlc3NpbWFscy1vbmxpbmUtZ2FtZS1wYWdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NoZXNzaW1hbHNHYW1lQ29tcG9uZW50LCBNaW5pR2FtZVBhZ2VTaGVsbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHZhbC1taW5pLWdhbWUtcGFnZS1zaGVsbD5cbiAgICAgIDx2YWwtY2hlc3NpbWFscy1nYW1lIFtvbmxpbmVHYW1lSWRdPVwiZ2FtZUlkXCIgLz5cbiAgICA8L3ZhbC1taW5pLWdhbWUtcGFnZS1zaGVsbD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlc3NpbWFsc09ubGluZUdhbWVQYWdlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHJlYWRvbmx5IGdhbWVJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdnYW1lSWQnKSA/PyAnJztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNoZXNzaW1hbHMtcHJvamVjdGlvbi1nYW1lLXBhZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2hlc3NpbWFsc0dhbWVDb21wb25lbnQsIE1pbmlHYW1lUGFnZVNoZWxsQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmFsLW1pbmktZ2FtZS1wYWdlLXNoZWxsPlxuICAgICAgPHZhbC1jaGVzc2ltYWxzLWdhbWUgW29ubGluZUdhbWVJZF09XCJnYW1lSWRcIiBbcHJvamVjdGlvbk1vZGVdPVwidHJ1ZVwiIC8+XG4gICAgPC92YWwtbWluaS1nYW1lLXBhZ2Utc2hlbGw+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIENoZXNzaW1hbHNQcm9qZWN0aW9uR2FtZVBhZ2VDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcmVhZG9ubHkgZ2FtZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2dhbWVJZCcpID8/ICcnO1xufVxuIl19
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21pbmktZ2FtZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLG1CQUFtQixFQUVuQixzQkFBc0IsRUFDdEIsb0JBQW9CLEVBRXBCLGtCQUFrQixHQUNuQixNQUFNLG9CQUFvQixDQUFDOztBQUU1QixNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQztBQUU1QyxNQUFNLG9CQUFvQixHQUFHO0lBQzNCLEVBQUUsRUFBRTtRQUNGLFdBQVcsRUFBRSxnQkFBZ0I7UUFDN0IsaUJBQWlCLEVBQUUsNkNBQTZDO1FBQ2hFLFVBQVUsRUFBRSxPQUFPO1FBQ25CLGdCQUFnQixFQUFFLDZDQUE2QztRQUMvRCxlQUFlLEVBQUUsWUFBWTtRQUM3QixxQkFBcUIsRUFBRSwyQ0FBMkM7UUFDbEUsV0FBVyxFQUFFLGVBQWU7S0FDN0I7SUFDRCxFQUFFLEVBQUU7UUFDRixXQUFXLEVBQUUsY0FBYztRQUMzQixpQkFBaUIsRUFBRSxtREFBbUQ7UUFDdEUsVUFBVSxFQUFFLE9BQU87UUFDbkIsZ0JBQWdCLEVBQUUsK0NBQStDO1FBQ2pFLGVBQWUsRUFBRSxZQUFZO1FBQzdCLHFCQUFxQixFQUFFLG9DQUFvQztRQUMzRCxXQUFXLEVBQUUsYUFBYTtLQUMzQjtDQUNGLENBQUM7QUFxQkYsTUFBTSxPQUFPLHNCQUFzQjtJQVlqQztRQVhpQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbkMscUJBQWdCLEdBQXdCO1lBQy9D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O2lCQUNGOztBQWdCRCxNQUFNLE9BQU8scUNBQXFDO0lBVmxEO1FBV21CLFVBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdkMsV0FBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0tBQ3BFOytHQUhZLHFDQUFxQzttR0FBckMscUNBQXFDLCtGQU50Qzs7OztHQUlULDREQUxTLHVCQUF1Qiw4SEFoRTdCLDBCQUEwQjs7NEZBdUVuQixxQ0FBcUM7a0JBVmpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFDQUFxQztvQkFDL0MsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLDBCQUEwQixDQUFDO29CQUM5RCxRQUFRLEVBQUU7Ozs7R0FJVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIENoZXNzaW1hbHNHYW1lQ29tcG9uZW50LFxuICBJMThuU2VydmljZSxcbiAgTWVtb3J5R2FtZUNvbXBvbmVudCxcbiAgTWluaUdhbWVEZWZpbml0aW9uLFxuICBNaW5pR2FtZXNNZW51Q29tcG9uZW50LFxuICBQYWdlQ29udGVudENvbXBvbmVudCxcbiAgUGFnZUNvbnRlbnRNZXRhZGF0YSxcbiAgU2ltb25HYW1lQ29tcG9uZW50LFxufSBmcm9tICd2YWx0ZWNoLWNvbXBvbmVudHMnO1xuXG5jb25zdCBNSU5JX0dBTUVTX0JBU0VfUk9VVEUgPSAnL21pbmktZ2FtZXMnO1xuXG5jb25zdCBNSU5JX0dBTUVTX1BBR0VfSTE4TiA9IHtcbiAgZXM6IHtcbiAgICBtZW1vcnlUaXRsZTogJ01lbW9yaWNlIFJldHJvJyxcbiAgICBtZW1vcnlEZXNjcmlwdGlvbjogJ0VuY3VlbnRyYSBwYXJlcyBjb24gbXVzaWNhIHkgZWZlY3RvcyByZXRyby4nLFxuICAgIHNpbW9uVGl0bGU6ICdTaW1vbicsXG4gICAgc2ltb25EZXNjcmlwdGlvbjogJ1JlcGl0ZSBsdWNlcyB5IHNvbmlkb3MgY2FkYSB2ZXogbWFzIGxhcmdvcy4nLFxuICAgIGNoZXNzaW1hbHNUaXRsZTogJ0NoZXNzaW1hbHMnLFxuICAgIGNoZXNzaW1hbHNEZXNjcmlwdGlvbjogJ0NhcnJlcmEgZGUgcGVvbmVzIGNvbiBjYXJ0YXMgZGUgYW5pbWFsZXMuJyxcbiAgICBiYWNrVG9TZXR1cDogJ0NhbWJpYXIganVlZ28nLFxuICB9LFxuICBlbjoge1xuICAgIG1lbW9yeVRpdGxlOiAnUmV0cm8gTWVtb3J5JyxcbiAgICBtZW1vcnlEZXNjcmlwdGlvbjogJ0ZpbmQgbWF0Y2hpbmcgcGFpcnMgd2l0aCByZXRybyBtdXNpYyBhbmQgZWZmZWN0cy4nLFxuICAgIHNpbW9uVGl0bGU6ICdTaW1vbicsXG4gICAgc2ltb25EZXNjcmlwdGlvbjogJ1JlcGVhdCBsaWdodHMgYW5kIHNvdW5kcyBpbiBsb25nZXIgc2VxdWVuY2VzLicsXG4gICAgY2hlc3NpbWFsc1RpdGxlOiAnQ2hlc3NpbWFscycsXG4gICAgY2hlc3NpbWFsc0Rlc2NyaXB0aW9uOiAnUGF3biByYWNlIHdpdGggYW5pbWFsIHBvd2VyIGNhcmRzLicsXG4gICAgYmFja1RvU2V0dXA6ICdDaGFuZ2UgZ2FtZScsXG4gIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbWluaS1nYW1lcy1wYWdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01pbmlHYW1lc01lbnVDb21wb25lbnQsIFBhZ2VDb250ZW50Q29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmFsLXBhZ2UtY29udGVudCBbcHJvcHNdPVwicGFnZUNvbnRlbnRQcm9wc1wiPlxuICAgICAgPHNlY3Rpb24gY29udGVudCBjbGFzcz1cIm1pbmktZ2FtZXMtcGFnZVwiPlxuICAgICAgICA8dmFsLW1pbmktZ2FtZXMtbWVudSBbZ2FtZXNdPVwiZ2FtZXNcIiBbYXNNb2RhbF09XCJmYWxzZVwiIChzZWxlY3RlZCk9XCJvcGVuR2FtZSgkZXZlbnQpXCIgLz5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L3ZhbC1wYWdlLWNvbnRlbnQ+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5taW5pLWdhbWVzLXBhZ2Uge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDAgMzJweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNaW5pR2FtZXNQYWdlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICByZWFkb25seSBwYWdlQ29udGVudFByb3BzOiBQYWdlQ29udGVudE1ldGFkYXRhID0ge1xuICAgIGhvbWVSb3V0ZTogJy8nLFxuICAgIGxhbmd1YWdlU2VsZWN0b3I6IHt9LFxuICAgIGZvbnRTaXplU2VsZWN0b3I6IHt9LFxuICAgIHNob3dCYWNrQnV0dG9uOiB0cnVlLFxuICAgIGNvbnRlbnRNYXhXaWR0aDogJ21kJyxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnTWluaUdhbWVzJywgTUlOSV9HQU1FU19QQUdFX0kxOE4pO1xuICB9XG5cbiAgZ2V0IGdhbWVzKCk6IE1pbmlHYW1lRGVmaW5pdGlvbltdIHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnbWVtb3J5JyxcbiAgICAgICAgdGl0bGU6IHRoaXMudCgnbWVtb3J5VGl0bGUnKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMudCgnbWVtb3J5RGVzY3JpcHRpb24nKSxcbiAgICAgICAgaWNvbjogJ/Cfp6AnLFxuICAgICAgICByb3V0ZTogYCR7TUlOSV9HQU1FU19CQVNFX1JPVVRFfS9tZW1vcnlgLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdzaW1vbicsXG4gICAgICAgIHRpdGxlOiB0aGlzLnQoJ3NpbW9uVGl0bGUnKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMudCgnc2ltb25EZXNjcmlwdGlvbicpLFxuICAgICAgICBpY29uOiAn8J+Om++4jycsXG4gICAgICAgIHJvdXRlOiBgJHtNSU5JX0dBTUVTX0JBU0VfUk9VVEV9L3NpbW9uYCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnY2hlc3NpbWFscycsXG4gICAgICAgIHRpdGxlOiB0aGlzLnQoJ2NoZXNzaW1hbHNUaXRsZScpLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy50KCdjaGVzc2ltYWxzRGVzY3JpcHRpb24nKSxcbiAgICAgICAgaWNvbjogJ+KZn++4jycsXG4gICAgICAgIGltYWdlU3JjOiAnYXNzZXRzL2dhbWVzL2NoZXNzaW1hbHMvbWVudS1sb2dvLmpwZycsXG4gICAgICAgIHJvdXRlOiBgJHtNSU5JX0dBTUVTX0JBU0VfUk9VVEV9L2NoZXNzaW1hbHNgLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgb3BlbkdhbWUoZ2FtZTogTWluaUdhbWVEZWZpbml0aW9uKTogdm9pZCB7XG4gICAgaWYgKGdhbWUucm91dGUpIHZvaWQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChnYW1lLnJvdXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgJ01pbmlHYW1lcycpO1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1taW5pLWdhbWUtcGFnZS1zaGVsbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtQYWdlQ29udGVudENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHZhbC1wYWdlLWNvbnRlbnQgW3Byb3BzXT1cInBhZ2VDb250ZW50UHJvcHNcIj5cbiAgICAgIDxzZWN0aW9uIGNvbnRlbnQgY2xhc3M9XCJtaW5pLWdhbWUtcGFnZS1zaGVsbFwiPlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgPC9zZWN0aW9uPlxuICAgIDwvdmFsLXBhZ2UtY29udGVudD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLm1pbmktZ2FtZS1wYWdlLXNoZWxsIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDAgMzJweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmNsYXNzIE1pbmlHYW1lUGFnZVNoZWxsQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgcGFnZUNvbnRlbnRQcm9wczogUGFnZUNvbnRlbnRNZXRhZGF0YSA9IHtcbiAgICBob21lUm91dGU6IE1JTklfR0FNRVNfQkFTRV9ST1VURSxcbiAgICBsYW5ndWFnZVNlbGVjdG9yOiB7fSxcbiAgICBmb250U2l6ZVNlbGVjdG9yOiB7fSxcbiAgICBzaG93QmFja0J1dHRvbjogZmFsc2UsXG4gICAgY29udGVudE1heFdpZHRoOiAnbWQnLFxuICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbWVtb3J5LWdhbWUtcGFnZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtNZW1vcnlHYW1lQ29tcG9uZW50LCBNaW5pR2FtZVBhZ2VTaGVsbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHZhbC1taW5pLWdhbWUtcGFnZS1zaGVsbD5cbiAgICAgIDx2YWwtbWVtb3J5LWdhbWUgLz5cbiAgICA8L3ZhbC1taW5pLWdhbWUtcGFnZS1zaGVsbD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTWVtb3J5R2FtZVBhZ2VDb21wb25lbnQge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXNpbW9uLWdhbWUtcGFnZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtTaW1vbkdhbWVDb21wb25lbnQsIE1pbmlHYW1lUGFnZVNoZWxsQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmFsLW1pbmktZ2FtZS1wYWdlLXNoZWxsPlxuICAgICAgPHZhbC1zaW1vbi1nYW1lIC8+XG4gICAgPC92YWwtbWluaS1nYW1lLXBhZ2Utc2hlbGw+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIFNpbW9uR2FtZVBhZ2VDb21wb25lbnQge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNoZXNzaW1hbHMtZ2FtZS1wYWdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NoZXNzaW1hbHNHYW1lQ29tcG9uZW50LCBNaW5pR2FtZVBhZ2VTaGVsbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHZhbC1taW5pLWdhbWUtcGFnZS1zaGVsbD5cbiAgICAgIDx2YWwtY2hlc3NpbWFscy1nYW1lIC8+XG4gICAgPC92YWwtbWluaS1nYW1lLXBhZ2Utc2hlbGw+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIENoZXNzaW1hbHNHYW1lUGFnZUNvbXBvbmVudCB7fVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY2hlc3NpbWFscy1vbmxpbmUtZ2FtZS1wYWdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NoZXNzaW1hbHNHYW1lQ29tcG9uZW50LCBNaW5pR2FtZVBhZ2VTaGVsbENvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHZhbC1taW5pLWdhbWUtcGFnZS1zaGVsbD5cbiAgICAgIDx2YWwtY2hlc3NpbWFscy1nYW1lIFtvbmxpbmVHYW1lSWRdPVwiZ2FtZUlkXCIgLz5cbiAgICA8L3ZhbC1taW5pLWdhbWUtcGFnZS1zaGVsbD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlc3NpbWFsc09ubGluZUdhbWVQYWdlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHJlYWRvbmx5IGdhbWVJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdnYW1lSWQnKSA/PyAnJztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNoZXNzaW1hbHMtcHJvamVjdGlvbi1nYW1lLXBhZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2hlc3NpbWFsc0dhbWVDb21wb25lbnQsIE1pbmlHYW1lUGFnZVNoZWxsQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8dmFsLW1pbmktZ2FtZS1wYWdlLXNoZWxsPlxuICAgICAgPHZhbC1jaGVzc2ltYWxzLWdhbWUgW29ubGluZUdhbWVJZF09XCJnYW1lSWRcIiBbcHJvamVjdGlvbk1vZGVdPVwidHJ1ZVwiIC8+XG4gICAgPC92YWwtbWluaS1nYW1lLXBhZ2Utc2hlbGw+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIENoZXNzaW1hbHNQcm9qZWN0aW9uR2FtZVBhZ2VDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcmVhZG9ubHkgZ2FtZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2dhbWVJZCcpID8/ICcnO1xufVxuIl19
@@ -59,6 +59,7 @@ class MiniGamesPageComponent {
59
59
  title: this.t('chessimalsTitle'),
60
60
  description: this.t('chessimalsDescription'),
61
61
  icon: '♟️',
62
+ imageSrc: 'assets/games/chessimals/menu-logo.jpg',
62
63
  route: `${MINI_GAMES_BASE_ROUTE}/chessimals`,
63
64
  },
64
65
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"valtech-components-mini-games.mjs","sources":["../../../mini-games/public-api.ts","../../../mini-games/valtech-components-mini-games.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport {\n ChessimalsGameComponent,\n I18nService,\n MemoryGameComponent,\n MiniGameDefinition,\n MiniGamesMenuComponent,\n PageContentComponent,\n PageContentMetadata,\n SimonGameComponent,\n} from 'valtech-components';\n\nconst MINI_GAMES_BASE_ROUTE = '/mini-games';\n\nconst MINI_GAMES_PAGE_I18N = {\n es: {\n memoryTitle: 'Memorice Retro',\n memoryDescription: 'Encuentra pares con musica y efectos retro.',\n simonTitle: 'Simon',\n simonDescription: 'Repite luces y sonidos cada vez mas largos.',\n chessimalsTitle: 'Chessimals',\n chessimalsDescription: 'Carrera de peones con cartas de animales.',\n backToSetup: 'Cambiar juego',\n },\n en: {\n memoryTitle: 'Retro Memory',\n memoryDescription: 'Find matching pairs with retro music and effects.',\n simonTitle: 'Simon',\n simonDescription: 'Repeat lights and sounds in longer sequences.',\n chessimalsTitle: 'Chessimals',\n chessimalsDescription: 'Pawn race with animal power cards.',\n backToSetup: 'Change game',\n },\n};\n\n@Component({\n selector: 'val-mini-games-page',\n standalone: true,\n imports: [MiniGamesMenuComponent, PageContentComponent],\n template: `\n <val-page-content [props]=\"pageContentProps\">\n <section content class=\"mini-games-page\">\n <val-mini-games-menu [games]=\"games\" [asModal]=\"false\" (selected)=\"openGame($event)\" />\n </section>\n </val-page-content>\n `,\n styles: [\n `\n .mini-games-page {\n padding: 16px 0 32px;\n }\n `,\n ],\n})\nexport class MiniGamesPageComponent {\n private readonly router = inject(Router);\n private readonly i18n = inject(I18nService);\n\n readonly pageContentProps: PageContentMetadata = {\n homeRoute: '/',\n languageSelector: {},\n fontSizeSelector: {},\n showBackButton: true,\n contentMaxWidth: 'md',\n };\n\n constructor() {\n this.i18n.registerDefaults('MiniGames', MINI_GAMES_PAGE_I18N);\n }\n\n get games(): MiniGameDefinition[] {\n this.i18n.lang();\n return [\n {\n id: 'memory',\n title: this.t('memoryTitle'),\n description: this.t('memoryDescription'),\n icon: '🧠',\n route: `${MINI_GAMES_BASE_ROUTE}/memory`,\n },\n {\n id: 'simon',\n title: this.t('simonTitle'),\n description: this.t('simonDescription'),\n icon: '🎛️',\n route: `${MINI_GAMES_BASE_ROUTE}/simon`,\n },\n {\n id: 'chessimals',\n title: this.t('chessimalsTitle'),\n description: this.t('chessimalsDescription'),\n icon: '♟️',\n route: `${MINI_GAMES_BASE_ROUTE}/chessimals`,\n },\n ];\n }\n\n openGame(game: MiniGameDefinition): void {\n if (game.route) void this.router.navigateByUrl(game.route);\n }\n\n private t(key: string): string {\n return this.i18n.t(key, 'MiniGames');\n }\n}\n\n@Component({\n selector: 'val-mini-game-page-shell',\n standalone: true,\n imports: [PageContentComponent],\n template: `\n <val-page-content [props]=\"pageContentProps\">\n <section content class=\"mini-game-page-shell\">\n <ng-content />\n </section>\n </val-page-content>\n `,\n styles: [\n `\n .mini-game-page-shell {\n display: grid;\n gap: 14px;\n padding: 16px 0 32px;\n }\n `,\n ],\n})\nclass MiniGamePageShellComponent {\n readonly pageContentProps: PageContentMetadata = {\n homeRoute: MINI_GAMES_BASE_ROUTE,\n languageSelector: {},\n fontSizeSelector: {},\n showBackButton: false,\n contentMaxWidth: 'md',\n };\n}\n\n@Component({\n selector: 'val-memory-game-page',\n standalone: true,\n imports: [MemoryGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-memory-game />\n </val-mini-game-page-shell>\n `,\n})\nexport class MemoryGamePageComponent {}\n\n@Component({\n selector: 'val-simon-game-page',\n standalone: true,\n imports: [SimonGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-simon-game />\n </val-mini-game-page-shell>\n `,\n})\nexport class SimonGamePageComponent {}\n\n@Component({\n selector: 'val-chessimals-game-page',\n standalone: true,\n imports: [ChessimalsGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-chessimals-game />\n </val-mini-game-page-shell>\n `,\n})\nexport class ChessimalsGamePageComponent {}\n\n@Component({\n selector: 'val-chessimals-online-game-page',\n standalone: true,\n imports: [ChessimalsGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-chessimals-game [onlineGameId]=\"gameId\" />\n </val-mini-game-page-shell>\n `,\n})\nexport class ChessimalsOnlineGamePageComponent {\n private readonly route = inject(ActivatedRoute);\n readonly gameId = this.route.snapshot.paramMap.get('gameId') ?? '';\n}\n\n@Component({\n selector: 'val-chessimals-projection-game-page',\n standalone: true,\n imports: [ChessimalsGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-chessimals-game [onlineGameId]=\"gameId\" [projectionMode]=\"true\" />\n </val-mini-game-page-shell>\n `,\n})\nexport class ChessimalsProjectionGamePageComponent {\n private readonly route = inject(ActivatedRoute);\n readonly gameId = this.route.snapshot.paramMap.get('gameId') ?? '';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"valtech-components-mini-games.mjs","sources":["../../../mini-games/public-api.ts","../../../mini-games/valtech-components-mini-games.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport {\n ChessimalsGameComponent,\n I18nService,\n MemoryGameComponent,\n MiniGameDefinition,\n MiniGamesMenuComponent,\n PageContentComponent,\n PageContentMetadata,\n SimonGameComponent,\n} from 'valtech-components';\n\nconst MINI_GAMES_BASE_ROUTE = '/mini-games';\n\nconst MINI_GAMES_PAGE_I18N = {\n es: {\n memoryTitle: 'Memorice Retro',\n memoryDescription: 'Encuentra pares con musica y efectos retro.',\n simonTitle: 'Simon',\n simonDescription: 'Repite luces y sonidos cada vez mas largos.',\n chessimalsTitle: 'Chessimals',\n chessimalsDescription: 'Carrera de peones con cartas de animales.',\n backToSetup: 'Cambiar juego',\n },\n en: {\n memoryTitle: 'Retro Memory',\n memoryDescription: 'Find matching pairs with retro music and effects.',\n simonTitle: 'Simon',\n simonDescription: 'Repeat lights and sounds in longer sequences.',\n chessimalsTitle: 'Chessimals',\n chessimalsDescription: 'Pawn race with animal power cards.',\n backToSetup: 'Change game',\n },\n};\n\n@Component({\n selector: 'val-mini-games-page',\n standalone: true,\n imports: [MiniGamesMenuComponent, PageContentComponent],\n template: `\n <val-page-content [props]=\"pageContentProps\">\n <section content class=\"mini-games-page\">\n <val-mini-games-menu [games]=\"games\" [asModal]=\"false\" (selected)=\"openGame($event)\" />\n </section>\n </val-page-content>\n `,\n styles: [\n `\n .mini-games-page {\n padding: 16px 0 32px;\n }\n `,\n ],\n})\nexport class MiniGamesPageComponent {\n private readonly router = inject(Router);\n private readonly i18n = inject(I18nService);\n\n readonly pageContentProps: PageContentMetadata = {\n homeRoute: '/',\n languageSelector: {},\n fontSizeSelector: {},\n showBackButton: true,\n contentMaxWidth: 'md',\n };\n\n constructor() {\n this.i18n.registerDefaults('MiniGames', MINI_GAMES_PAGE_I18N);\n }\n\n get games(): MiniGameDefinition[] {\n this.i18n.lang();\n return [\n {\n id: 'memory',\n title: this.t('memoryTitle'),\n description: this.t('memoryDescription'),\n icon: '🧠',\n route: `${MINI_GAMES_BASE_ROUTE}/memory`,\n },\n {\n id: 'simon',\n title: this.t('simonTitle'),\n description: this.t('simonDescription'),\n icon: '🎛️',\n route: `${MINI_GAMES_BASE_ROUTE}/simon`,\n },\n {\n id: 'chessimals',\n title: this.t('chessimalsTitle'),\n description: this.t('chessimalsDescription'),\n icon: '♟️',\n imageSrc: 'assets/games/chessimals/menu-logo.jpg',\n route: `${MINI_GAMES_BASE_ROUTE}/chessimals`,\n },\n ];\n }\n\n openGame(game: MiniGameDefinition): void {\n if (game.route) void this.router.navigateByUrl(game.route);\n }\n\n private t(key: string): string {\n return this.i18n.t(key, 'MiniGames');\n }\n}\n\n@Component({\n selector: 'val-mini-game-page-shell',\n standalone: true,\n imports: [PageContentComponent],\n template: `\n <val-page-content [props]=\"pageContentProps\">\n <section content class=\"mini-game-page-shell\">\n <ng-content />\n </section>\n </val-page-content>\n `,\n styles: [\n `\n .mini-game-page-shell {\n display: grid;\n gap: 14px;\n padding: 16px 0 32px;\n }\n `,\n ],\n})\nclass MiniGamePageShellComponent {\n readonly pageContentProps: PageContentMetadata = {\n homeRoute: MINI_GAMES_BASE_ROUTE,\n languageSelector: {},\n fontSizeSelector: {},\n showBackButton: false,\n contentMaxWidth: 'md',\n };\n}\n\n@Component({\n selector: 'val-memory-game-page',\n standalone: true,\n imports: [MemoryGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-memory-game />\n </val-mini-game-page-shell>\n `,\n})\nexport class MemoryGamePageComponent {}\n\n@Component({\n selector: 'val-simon-game-page',\n standalone: true,\n imports: [SimonGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-simon-game />\n </val-mini-game-page-shell>\n `,\n})\nexport class SimonGamePageComponent {}\n\n@Component({\n selector: 'val-chessimals-game-page',\n standalone: true,\n imports: [ChessimalsGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-chessimals-game />\n </val-mini-game-page-shell>\n `,\n})\nexport class ChessimalsGamePageComponent {}\n\n@Component({\n selector: 'val-chessimals-online-game-page',\n standalone: true,\n imports: [ChessimalsGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-chessimals-game [onlineGameId]=\"gameId\" />\n </val-mini-game-page-shell>\n `,\n})\nexport class ChessimalsOnlineGamePageComponent {\n private readonly route = inject(ActivatedRoute);\n readonly gameId = this.route.snapshot.paramMap.get('gameId') ?? '';\n}\n\n@Component({\n selector: 'val-chessimals-projection-game-page',\n standalone: true,\n imports: [ChessimalsGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-chessimals-game [onlineGameId]=\"gameId\" [projectionMode]=\"true\" />\n </val-mini-game-page-shell>\n `,\n})\nexport class ChessimalsProjectionGamePageComponent {\n private readonly route = inject(ActivatedRoute);\n readonly gameId = this.route.snapshot.paramMap.get('gameId') ?? '';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}