@senior-gestao-empresarial/erpx-components 4.0.1 → 4.0.2-develop-21d58680

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.
Files changed (75) hide show
  1. package/bundles/senior-gestao-empresarial-erpx-components.umd.js +792 -660
  2. package/bundles/senior-gestao-empresarial-erpx-components.umd.js.map +1 -1
  3. package/bundles/senior-gestao-empresarial-erpx-components.umd.min.js +2 -2
  4. package/bundles/senior-gestao-empresarial-erpx-components.umd.min.js.map +1 -1
  5. package/components/tributos/erp-tributos.component.d.ts +12 -8
  6. package/components/tributos/erp-tributos.types.d.ts +5 -1
  7. package/components/tributos/index.d.ts +1 -0
  8. package/components/tributos/rules/calculation/registries/calculation-rules-registries/outgoing-invoice-calculation-rules.registry.d.ts +3 -1
  9. package/components/tributos/rules/calculation/rules/assessment-period-calculation-rule.d.ts +5 -0
  10. package/components/tributos/rules/status/registries/purchase-order-status-rules.registry.d.ts +8 -0
  11. package/components/tributos/rules/status/registries/sale-order-status-rules.registry.d.ts +8 -0
  12. package/components/tributos/rules/status/registries/status-rules.registry.d.ts +5 -1
  13. package/components/tributos/rules/types/schemas/outgoing-invoice.schema.d.ts +2 -0
  14. package/components/tributos/rules/validation/registries/outgoing-invoice-validation-rules.registry.d.ts +3 -1
  15. package/components/tributos/rules/validation/rules/required/assessment-period-required-validation-rule.d.ts +5 -0
  16. package/components/tributos/tax-reform-utilities.d.ts +1 -1
  17. package/components/tributos/types/debit-invoice-type.d.ts +1 -1
  18. package/components/tributos/types/tax.d.ts +8 -0
  19. package/esm2015/components/tributos/erp-tributos.component.js +134 -40
  20. package/esm2015/components/tributos/erp-tributos.types.js +5 -1
  21. package/esm2015/components/tributos/index.js +1 -1
  22. package/esm2015/components/tributos/mappings/enum-tip-imp-cst-mapping.js +3 -1
  23. package/esm2015/components/tributos/rules/calculation/registries/calculation-rules-registries/outgoing-invoice-calculation-rules.registry.js +44 -4
  24. package/esm2015/components/tributos/rules/calculation/rules/assessment-period-calculation-rule.js +55 -0
  25. package/esm2015/components/tributos/rules/calculation/rules/tax-amount-calculation-rule.js +17 -1
  26. package/esm2015/components/tributos/rules/calculation/rules/tax-classification-calculation-rule.js +35 -1
  27. package/esm2015/components/tributos/rules/calculation/rules/tax-situation-calculation-rule.js +37 -1
  28. package/esm2015/components/tributos/rules/status/registries/outgoing-invoice-status-rules.registry.js +13 -1
  29. package/esm2015/components/tributos/rules/status/registries/purchase-order-status-rules.registry.js +18 -0
  30. package/esm2015/components/tributos/rules/status/registries/sale-order-status-rules.registry.js +18 -0
  31. package/esm2015/components/tributos/rules/status/registries/status-rules.registry.js +16 -4
  32. package/esm2015/components/tributos/rules/status/rules/tax-classification-status-rule.js +3 -1
  33. package/esm2015/components/tributos/rules/types/schemas/outgoing-invoice.schema.js +13 -1
  34. package/esm2015/components/tributos/rules/validation/registries/outgoing-invoice-validation-rules.registry.js +44 -4
  35. package/esm2015/components/tributos/rules/validation/registries/sale-order-validation-rules.registry.js +8 -560
  36. package/esm2015/components/tributos/rules/validation/rules/required/assessment-period-required-validation-rule.js +78 -0
  37. package/esm2015/components/tributos/rules/validation/rules/required/tax-amount-required-validation-rule.js +51 -2
  38. package/esm2015/components/tributos/rules/validation/rules/required/tax-classification-required-validation-rule.js +48 -2
  39. package/esm2015/components/tributos/rules/validation/rules/required/tax-situation-required-validation-rule.js +48 -2
  40. package/esm2015/components/tributos/tax-reform-utilities.js +6 -2
  41. package/esm2015/components/tributos/types/debit-invoice-type.js +1 -1
  42. package/esm2015/components/tributos/types/tax.js +2 -0
  43. package/esm2015/senior-gestao-empresarial-erpx-components.js +37 -33
  44. package/esm5/components/tributos/erp-tributos.component.js +149 -47
  45. package/esm5/components/tributos/erp-tributos.types.js +5 -1
  46. package/esm5/components/tributos/index.js +1 -1
  47. package/esm5/components/tributos/mappings/enum-tip-imp-cst-mapping.js +3 -1
  48. package/esm5/components/tributos/rules/calculation/registries/calculation-rules-registries/outgoing-invoice-calculation-rules.registry.js +44 -4
  49. package/esm5/components/tributos/rules/calculation/rules/assessment-period-calculation-rule.js +77 -0
  50. package/esm5/components/tributos/rules/calculation/rules/tax-amount-calculation-rule.js +24 -1
  51. package/esm5/components/tributos/rules/calculation/rules/tax-classification-calculation-rule.js +59 -1
  52. package/esm5/components/tributos/rules/calculation/rules/tax-situation-calculation-rule.js +61 -1
  53. package/esm5/components/tributos/rules/status/registries/outgoing-invoice-status-rules.registry.js +13 -1
  54. package/esm5/components/tributos/rules/status/registries/purchase-order-status-rules.registry.js +19 -0
  55. package/esm5/components/tributos/rules/status/registries/sale-order-status-rules.registry.js +19 -0
  56. package/esm5/components/tributos/rules/status/registries/status-rules.registry.js +16 -4
  57. package/esm5/components/tributos/rules/status/rules/tax-classification-status-rule.js +3 -1
  58. package/esm5/components/tributos/rules/types/schemas/outgoing-invoice.schema.js +13 -1
  59. package/esm5/components/tributos/rules/validation/registries/outgoing-invoice-validation-rules.registry.js +44 -4
  60. package/esm5/components/tributos/rules/validation/registries/sale-order-validation-rules.registry.js +10 -562
  61. package/esm5/components/tributos/rules/validation/rules/required/assessment-period-required-validation-rule.js +86 -0
  62. package/esm5/components/tributos/rules/validation/rules/required/tax-amount-required-validation-rule.js +55 -2
  63. package/esm5/components/tributos/rules/validation/rules/required/tax-classification-required-validation-rule.js +52 -2
  64. package/esm5/components/tributos/rules/validation/rules/required/tax-situation-required-validation-rule.js +52 -2
  65. package/esm5/components/tributos/tax-reform-utilities.js +6 -2
  66. package/esm5/components/tributos/types/debit-invoice-type.js +1 -1
  67. package/esm5/components/tributos/types/tax.js +2 -0
  68. package/esm5/senior-gestao-empresarial-erpx-components.js +37 -33
  69. package/fesm2015/senior-gestao-empresarial-erpx-components.js +654 -633
  70. package/fesm2015/senior-gestao-empresarial-erpx-components.js.map +1 -1
  71. package/fesm5/senior-gestao-empresarial-erpx-components.js +754 -626
  72. package/fesm5/senior-gestao-empresarial-erpx-components.js.map +1 -1
  73. package/package.json +1 -1
  74. package/senior-gestao-empresarial-erpx-components.d.ts +36 -32
  75. package/senior-gestao-empresarial-erpx-components.metadata.json +1 -1
@@ -4,7 +4,7 @@ import { Validators } from '@angular/forms';
4
4
  import BigNumber from 'bignumber.js';
5
5
  import { combineLatest } from 'rxjs';
6
6
  import { distinctUntilChanged, map, startWith } from 'rxjs/operators';
7
- import { EnumTipoTributo } from '../../../../erp-tributos.types';
7
+ import { EnumCampoTributo, EnumTipoTributo } from '../../../../erp-tributos.types';
8
8
  import * as i0 from "@angular/core";
9
9
  var TaxSituationRequiredValidationRule = /** @class */ (function () {
10
10
  function TaxSituationRequiredValidationRule() {
@@ -257,6 +257,56 @@ var TaxSituationRequiredValidationRule = /** @class */ (function () {
257
257
  });
258
258
  }
259
259
  break;
260
+ case EnumTipoTributo.CBS_AJUSTE:
261
+ case EnumTipoTributo.IBS_AJUSTE:
262
+ {
263
+ combineLatest([
264
+ formGroup
265
+ .get('situacaoTributaria')
266
+ .valueChanges.pipe(startWith(formGroup.get('situacaoTributaria').value), distinctUntilChanged()),
267
+ formGroup
268
+ .get('classificacaoTributaria')
269
+ .valueChanges.pipe(startWith(formGroup.get('classificacaoTributaria')
270
+ .value), distinctUntilChanged()),
271
+ formGroup
272
+ .get(EnumCampoTributo.PeriodoApuracao)
273
+ .valueChanges.pipe(startWith(formGroup.get(EnumCampoTributo.PeriodoApuracao).value), distinctUntilChanged()),
274
+ formGroup
275
+ .get('valor')
276
+ .valueChanges.pipe(startWith(formGroup.get('valor').value), distinctUntilChanged())
277
+ ])
278
+ .pipe(map(function (_a) {
279
+ var _b = __read(_a, 4), taxSituation = _b[0], taxClassification = _b[1], assessmentPeriod = _b[2], taxAmount = _b[3];
280
+ return [
281
+ taxSituation,
282
+ taxClassification,
283
+ assessmentPeriod,
284
+ new BigNumber(taxAmount)
285
+ ];
286
+ }))
287
+ .subscribe(function (_a) {
288
+ var _b = __read(_a, 4), taxSituation = _b[0], taxClassification = _b[1], assessmentPeriod = _b[2], taxAmount = _b[3];
289
+ var validators = [];
290
+ if (taxSituation ||
291
+ taxClassification ||
292
+ assessmentPeriod ||
293
+ taxAmount.isFinite()) {
294
+ validators = [Validators.required];
295
+ }
296
+ else {
297
+ validators = [];
298
+ }
299
+ formGroup
300
+ .get('situacaoTributaria')
301
+ .setValidators(validators);
302
+ formGroup
303
+ .get('situacaoTributaria')
304
+ .updateValueAndValidity({
305
+ emitEvent: false
306
+ });
307
+ });
308
+ }
309
+ break;
260
310
  default:
261
311
  throw new Error("Regra TaxSituationRequiredValidationRule n\u00E3o implementada para o imposto " + taxType + ", documento " + document + ".");
262
312
  }
@@ -268,4 +318,4 @@ var TaxSituationRequiredValidationRule = /** @class */ (function () {
268
318
  return TaxSituationRequiredValidationRule;
269
319
  }());
270
320
  export { TaxSituationRequiredValidationRule };
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXNpdHVhdGlvbi1yZXF1aXJlZC12YWxpZGF0aW9uLXJ1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9lcnB4LWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3ZhbGlkYXRpb24vcnVsZXMvcmVxdWlyZWQvdGF4LXNpdHVhdGlvbi1yZXF1aXJlZC12YWxpZGF0aW9uLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sU0FBUyxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUtqRTtJQUNJO0lBQWUsQ0FBQztJQUVoQixrREFBSyxHQUFMLFVBQU0sRUFHUTtZQUZDLDhCQUFRLEVBQ25CLFlBQWtDLEVBQTFCLGlCQUFhLEVBQUUsd0JBQVM7UUFFaEMsUUFBUSxPQUFPLEVBQUU7WUFDYixLQUFLLGVBQWUsQ0FBQyxHQUFHLENBQUM7WUFDekIsS0FBSyxlQUFlLENBQUMsWUFBWSxDQUFDO1lBQ2xDLEtBQUssZUFBZSxDQUFDLGFBQWE7Z0JBQzlCO29CQUNJLFFBQVEsUUFBUSxFQUFFO3dCQUNkLEtBQUssa0JBQWtCLENBQUM7d0JBQ3hCLEtBQUssa0JBQWtCOzRCQUNuQjtnQ0FDSSxhQUFhLENBQUM7b0NBQ1YsU0FBUzt5Q0FDSixHQUFHLENBQUMsYUFBYSxDQUFDO3lDQUNsQixZQUFZLENBQUMsSUFBSSxDQUNkLFNBQVMsQ0FDTCxTQUFTLENB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IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFbnVtVGlwb1RyaWJ1dG8gfSBmcm9tICcuLi8uLi8uLi8uLi9lcnAtdHJpYnV0b3MudHlwZXMnO1xuaW1wb3J0IHsgUnVsZVBheWxvYWQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9ydWxlLXBheWxvYWQnO1xuaW1wb3J0IHsgVGF4UnVsZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3RheC1ydWxlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUYXhTaXR1YXRpb25SZXF1aXJlZFZhbGlkYXRpb25SdWxlIGltcGxlbWVudHMgVGF4UnVsZSB7XG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgYXBwbHkoe1xuICAgICAgICBjb250ZXh0OiB7IGRvY3VtZW50IH0sXG4gICAgICAgIGl0ZW06IHsgbmFtZTogdGF4VHlwZSwgZm9ybUdyb3VwIH1cbiAgICB9OiBSdWxlUGF5bG9hZCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKHRheFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCUzpcbiAgICAgICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTDpcbiAgICAgICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUw6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRvY3VtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdJbmNvbWluZyBJbnZvaWNlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ091dGdvaW5nIEludm9pY2UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdiYXNlQ2FsY3VsbycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KCdiYXNlQ2FsY3VsbycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnYWxpcXVvdGEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldCgnYWxpcXVvdGEnKS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3JlZHVjYW9BbGlxdW90YScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KCdyZWR1Y2FvQWxpcXVvdGEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3JlZHVjYW9BbGlxdW90YUdvdmVybmFtZW50YWwnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVkdWNhb0FsaXF1b3RhR292ZXJuYW1lbnRhbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdzaXR1YWNhb1RyaWJ1dGFyaWEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2l0dWFjYW9UcmlidXRhcmlhJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ2NsYXNzaWZpY2FjYW9UcmlidXRhcmlhJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsYXNzaWZpY2FjYW9UcmlidXRhcmlhJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3ZhbG9yJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ3ZhbG9yJykudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheGFibGVCYXNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4VGF4UmF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFRheFJhdGVSZWR1Y3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Zlcm5hbWVudGFsVGF4UmF0ZVJlZHVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFNpdHVhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheENsYXNzaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheEFtb3VudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCaWdOdW1iZXIodGF4YWJsZUJhc2UpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCaWdOdW1iZXIodGF4VGF4UmF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJpZ051bWJlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4VGF4UmF0ZVJlZHVjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJpZ051bWJlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ292ZXJuYW1lbnRhbFRheFJhdGVSZWR1Y3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFNpdHVhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhDbGFzc2ljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJpZ051bWJlcih0YXhBbW91bnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdIGFzIGNvbnN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhhYmxlQmFzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4VGF4UmF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4VGF4UmF0ZVJlZHVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ292ZXJuYW1lbnRhbFRheFJhdGVSZWR1Y3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFNpdHVhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4Q2xhc3NpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhBbW91bnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4YWJsZUJhc2UuaXNGaW5pdGUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4VGF4UmF0ZS5pc0Zpbml0ZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhUYXhSYXRlUmVkdWN0aW9uLmlzRmluaXRlKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdmVybmFtZW50YWxUYXhSYXRlUmVkdWN0aW9uLmlzRmluaXRlKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFNpdHVhdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4Q2xhc3NpY2F0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhBbW91bnQuaXNGaW5pdGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMgPSBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnc2l0dWFjYW9UcmlidXRhcmlhJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnc2l0dWFjYW9UcmlidXRhcmlhJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgUmVncmEgbsOjbyBpbXBsZW1lbnRhZGEgcGFyYSBvIGRvY3VtZW50byAke2RvY3VtZW50fWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTX1RSSUJVVEFDQU9fUkVHVUxBUjpcbiAgICAgICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9UUklCVVRBQ0FPX1JFR1VMQVI6XG4gICAgICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX1RSSUJVVEFDQU9fUkVHVUxBUjpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0luY29taW5nIEludm9pY2UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnT3V0Z29pbmcgSW52b2ljZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ2Jhc2VDYWxjdWxvJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ2Jhc2VDYWxjdWxvJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdhbGlxdW90YScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KCdhbGlxdW90YScpLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnc2l0dWFjYW9UcmlidXRhcmlhJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NpdHVhY2FvVHJpYnV0YXJpYSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheGFibGVCYXNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4UmF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFNpdHVhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCaWdOdW1iZXIodGF4YWJsZUJhc2UpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCaWdOdW1iZXIodGF4UmF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4U2l0dWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdIGFzIGNvbnN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhhYmxlQmFzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4UmF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4U2l0dWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheGFibGVCYXNlLmlzRmluaXRlKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFJhdGUuaXNGaW5pdGUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4U2l0dWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycyA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdzaXR1YWNhb1RyaWJ1dGFyaWEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdzaXR1YWNhb1RyaWJ1dGFyaWEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtaXRFdmVudDogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBSZWdyYSBUYXhTaXR1YXRpb25SZXF1aXJlZFZhbGlkYXRpb25SdWxlIG7Do28gaW1wbGVtZW50YWRhIHBhcmEgbyBpbXBvc3RvICR7dGF4VHlwZX0sIGRvY3VtZW50byAke2RvY3VtZW50fS5gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklTOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkb2N1bWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnSW5jb21pbmcgSW52b2ljZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdPdXRnb2luZyBJbnZvaWNlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnYmFzZUNhbGN1bG8nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldCgnYmFzZUNhbGN1bG8nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ2FsaXF1b3RhJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ2FsaXF1b3RhJykudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdzaXR1YWNhb1RyaWJ1dGFyaWEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2l0dWFjYW9UcmlidXRhcmlhJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ2NsYXNzaWZpY2FjYW9UcmlidXRhcmlhJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsYXNzaWZpY2FjYW9UcmlidXRhcmlhJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3ZhbG9yJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ3ZhbG9yJykudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheGFibGVCYXNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4VGF4UmF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFNpdHVhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheENsYXNzaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheEFtb3VudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCaWdOdW1iZXIodGF4YWJsZUJhc2UpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCaWdOdW1iZXIodGF4VGF4UmF0ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4U2l0dWF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheENsYXNzaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQmlnTnVtYmVyKHRheEFtb3VudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gYXMgY29uc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheGFibGVCYXNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhUYXhSYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhTaXR1YXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheENsYXNzaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4QW1vdW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheGFibGVCYXNlLmlzRmluaXRlKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFRheFJhdGUuaXNGaW5pdGUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4U2l0dWF0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhDbGFzc2ljYXRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheEFtb3VudC5pc0Zpbml0ZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycyA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdzaXR1YWNhb1RyaWJ1dGFyaWEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdzaXR1YWNhb1RyaWJ1dGFyaWEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtaXRFdmVudDogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBSZWdyYSBUYXhTaXR1YXRpb25SZXF1aXJlZFZhbGlkYXRpb25SdWxlIG7Do28gaW1wbGVtZW50YWRhIHBhcmEgbyBpbXBvc3RvICR7dGF4VHlwZX0sIGRvY3VtZW50byAke2RvY3VtZW50fS5gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCU19FU1RPUk5PX0NSRURJVE86XG4gICAgICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUT1JOT19DUkVESVRPOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdzaXR1YWNhb1RyaWJ1dGFyaWEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldCgnc2l0dWFjYW9UcmlidXRhcmlhJykudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdjbGFzc2lmaWNhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KCdjbGFzc2lmaWNhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgndmFsb3InKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKGZvcm1Hcm91cC5nZXQoJ3ZhbG9yJykudmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4U2l0dWF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4Q2xhc3NpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhBbW91bnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhTaXR1YXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4Q2xhc3NpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJpZ051bWJlcih0YXhBbW91bnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdIGFzIGNvbnN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3RheFNpdHVhdGlvbiwgdGF4Q2xhc3NpZmljYXRpb24sIHRheEFtb3VudF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhTaXR1YXRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheENsYXNzaWZpY2F0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhBbW91bnQuaXNGaW5pdGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMgPSBbVmFsaWRhdG9ycy5yZXF1aXJlZF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3NpdHVhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3NpdHVhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1pdEV2ZW50OiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYFJlZ3JhIFRheFNpdHVhdGlvblJlcXVpcmVkVmFsaWRhdGlvblJ1bGUgbsOjbyBpbXBsZW1lbnRhZGEgcGFyYSBvIGltcG9zdG8gJHt0YXhUeXBlfSwgZG9jdW1lbnRvICR7ZG9jdW1lbnR9LmBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
321
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXNpdHVhdGlvbi1yZXF1aXJlZC12YWxpZGF0aW9uLXJ1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9lcnB4LWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3ZhbGlkYXRpb24vcnVsZXMvcmVxdWlyZWQvdGF4LXNpdHVhdGlvbi1yZXF1aXJlZC12YWxpZGF0aW9uLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sU0FBUyxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUNILGdCQUFnQixFQUNoQixlQUFlLEVBQ2xCLE1BQU0sZ0NBQWdDLENBQUM7O0FBS3hDO0lBQ0k7SUFBZSxDQUFDO0lBRWhCLGtEQUFLLEdBQUwsVUFBTSxFQUdRO1lBRkMsOEJBQVEsRUFDbkIsWUFBa0MsRUFBMUIsaUJBQWEsRUFBRSx3QkFBUztRQUVoQyxRQUFRLE9BQU8sRUFBRTtZQUNiLEtBQUssZUFBZSxDQUFDLEdBQUcsQ0FBQztZQUN6QixLQUFLLGVBQWUsQ0FBQyxZQUFZLENBQUM7WUFDbEMsS0FBSyxlQUFlLENBQUMsYUFBYTtnQkFDOUI7b0JBQ0ksUUFBUSxRQUFRLEVBQUU7d0JBQ2QsS0FBSyxrQkFBa0IsQ0FBQzt3QkFDeEIsS0FBSyxrQkFBa0I7NEJBQ25CO2dDQUNJLGFBQWEsQ0FBQztvQ0FDVixTQUFTO3lDQUNKLEdBQUcsQ0FBQyxhQUFhLENBQUM7eUNBQ2xCLFlBQVksQ0FBQyxJQUFJLENBQ2QsU0FB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LENBQUMsQ0FBQzt5QkFDdEM7NkJBQU07NEJBQ0gsVUFBVSxHQUFHLEVBQUUsQ0FBQzt5QkFDbkI7d0JBRUQsU0FBUzs2QkFDSixHQUFHLENBQUMsb0JBQW9CLENBQUM7NkJBQ3pCLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFFL0IsU0FBUzs2QkFDSixHQUFHLENBQUMsb0JBQW9CLENBQUM7NkJBQ3pCLHNCQUFzQixDQUFDOzRCQUNwQixTQUFTLEVBQUUsS0FBSzt5QkFDbkIsQ0FBQyxDQUFDO29CQUNYLENBQUMsQ0FDSixDQUFDO2lCQUNUO2dCQUNELE1BQU07WUFDVjtnQkFDSSxNQUFNLElBQUksS0FBSyxDQUNYLG1GQUE0RSxPQUFPLG9CQUFlLFFBQVEsTUFBRyxDQUNoSCxDQUFDO1NBQ1Q7SUFDTCxDQUFDOztJQTVmUSxrQ0FBa0M7UUFEOUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO09BQ3RCLGtDQUFrQyxDQTZmOUM7NkNBMWdCRDtDQTBnQkMsQUE3ZkQsSUE2ZkM7U0E3Zlksa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICAgIEVudW1DYW1wb1RyaWJ1dG8sXG4gICAgRW51bVRpcG9UcmlidXRvXG59IGZyb20gJy4uLy4uLy4uLy4uL2VycC10cmlidXRvcy50eXBlcyc7XG5pbXBvcnQgeyBSdWxlUGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL3J1bGUtcGF5bG9hZCc7XG5pbXBvcnQgeyBUYXhSdWxlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvdGF4LXJ1bGUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFRheFNpdHVhdGlvblJlcXVpcmVkVmFsaWRhdGlvblJ1bGUgaW1wbGVtZW50cyBUYXhSdWxlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBhcHBseSh7XG4gICAgICAgIGNvbnRleHQ6IHsgZG9jdW1lbnQgfSxcbiAgICAgICAgaXRlbTogeyBuYW1lOiB0YXhUeXBlLCBmb3JtR3JvdXAgfVxuICAgIH06IFJ1bGVQYXlsb2FkKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGF4VHlwZSkge1xuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTOlxuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMOlxuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTDpcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZG9jdW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0luY29taW5nIEludm9pY2UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnT3V0Z29pbmcgSW52b2ljZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ2Jhc2VDYWxjdWxvJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ2Jhc2VDYWxjdWxvJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdhbGlxdW90YScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KCdhbGlxdW90YScpLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgncmVkdWNhb0FsaXF1b3RhJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ3JlZHVjYW9BbGlxdW90YScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgncmVkdWNhb0FsaXF1b3RhR292ZXJuYW1lbnRhbCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWR1Y2FvQWxpcXVvdGFHb3Zlcm5hbWVudGFsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3NpdHVhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaXR1YWNhb1RyaWJ1dGFyaWEnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnY2xhc3NpZmljYWNhb1RyaWJ1dGFyaWEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xhc3NpZmljYWNhb1RyaWJ1dGFyaWEnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgndmFsb3InKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldCgndmFsb3InKS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4YWJsZUJhc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhUYXhSYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4VGF4UmF0ZVJlZHVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdmVybmFtZW50YWxUYXhSYXRlUmVkdWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4U2l0dWF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4Q2xhc3NpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4QW1vdW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJpZ051bWJlcih0YXhhYmxlQmFzZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJpZ051bWJlcih0YXhUYXhSYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQmlnTnVtYmVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhUYXhSYXRlUmVkdWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQmlnTnVtYmVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Zlcm5hbWVudGFsVGF4UmF0ZVJlZHVjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4U2l0dWF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheENsYXNzaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQmlnTnVtYmVyKHRheEFtb3VudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gYXMgY29uc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheGFibGVCYXNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhUYXhSYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhUYXhSYXRlUmVkdWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3Zlcm5hbWVudGFsVGF4UmF0ZVJlZHVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4U2l0dWF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhDbGFzc2ljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheEFtb3VudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhhYmxlQmFzZS5pc0Zpbml0ZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhUYXhSYXRlLmlzRmluaXRlKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFRheFJhdGVSZWR1Y3Rpb24uaXNGaW5pdGUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ292ZXJuYW1lbnRhbFRheFJhdGVSZWR1Y3Rpb24uaXNGaW5pdGUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4U2l0dWF0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhDbGFzc2ljYXRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheEFtb3VudC5pc0Zpbml0ZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycyA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdzaXR1YWNhb1RyaWJ1dGFyaWEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdzaXR1YWNhb1RyaWJ1dGFyaWEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtaXRFdmVudDogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBSZWdyYSBuw6NvIGltcGxlbWVudGFkYSBwYXJhIG8gZG9jdW1lbnRvICR7ZG9jdW1lbnR9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlNfVFJJQlVUQUNBT19SRUdVTEFSOlxuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX1RSSUJVVEFDQU9fUkVHVUxBUjpcbiAgICAgICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChkb2N1bWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnSW5jb21pbmcgSW52b2ljZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdPdXRnb2luZyBJbnZvaWNlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnYmFzZUNhbGN1bG8nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldCgnYmFzZUNhbGN1bG8nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ2FsaXF1b3RhJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ2FsaXF1b3RhJykudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdzaXR1YWNhb1RyaWJ1dGFyaWEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2l0dWFjYW9UcmlidXRhcmlhJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4YWJsZUJhc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhSYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4U2l0dWF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJpZ051bWJlcih0YXhhYmxlQmFzZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJpZ051bWJlcih0YXhSYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhTaXR1YXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gYXMgY29uc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheGFibGVCYXNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhSYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhTaXR1YXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4YWJsZUJhc2UuaXNGaW5pdGUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4UmF0ZS5pc0Zpbml0ZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhTaXR1YXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzID0gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3NpdHVhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3NpdHVhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1pdEV2ZW50OiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFJlZ3JhIFRheFNpdHVhdGlvblJlcXVpcmVkVmFsaWRhdGlvblJ1bGUgbsOjbyBpbXBsZW1lbnRhZGEgcGFyYSBvIGltcG9zdG8gJHt0YXhUeXBlfSwgZG9jdW1lbnRvICR7ZG9jdW1lbnR9LmBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSVM6XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRvY3VtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdJbmNvbWluZyBJbnZvaWNlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ091dGdvaW5nIEludm9pY2UnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdiYXNlQ2FsY3VsbycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KCdiYXNlQ2FsY3VsbycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnYWxpcXVvdGEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldCgnYWxpcXVvdGEnKS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3NpdHVhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaXR1YWNhb1RyaWJ1dGFyaWEnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnY2xhc3NpZmljYWNhb1RyaWJ1dGFyaWEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xhc3NpZmljYWNhb1RyaWJ1dGFyaWEnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgndmFsb3InKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldCgndmFsb3InKS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4YWJsZUJhc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhUYXhSYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4U2l0dWF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4Q2xhc3NpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4QW1vdW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJpZ051bWJlcih0YXhhYmxlQmFzZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEJpZ051bWJlcih0YXhUYXhSYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhTaXR1YXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4Q2xhc3NpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBCaWdOdW1iZXIodGF4QW1vdW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSBhcyBjb25zdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4YWJsZUJhc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFRheFJhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFNpdHVhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4Q2xhc3NpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhBbW91bnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4YWJsZUJhc2UuaXNGaW5pdGUoKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4VGF4UmF0ZS5pc0Zpbml0ZSgpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhTaXR1YXRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheENsYXNzaWNhdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4QW1vdW50LmlzRmluaXRlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzID0gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3NpdHVhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3NpdHVhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1pdEV2ZW50OiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFJlZ3JhIFRheFNpdHVhdGlvblJlcXVpcmVkVmFsaWRhdGlvblJ1bGUgbsOjbyBpbXBsZW1lbnRhZGEgcGFyYSBvIGltcG9zdG8gJHt0YXhUeXBlfSwgZG9jdW1lbnRvICR7ZG9jdW1lbnR9LmBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTX0VTVE9STk9fQ1JFRElUTzpcbiAgICAgICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RPUk5PX0NSRURJVE86XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3NpdHVhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KCdzaXR1YWNhb1RyaWJ1dGFyaWEnKS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ2NsYXNzaWZpY2FjYW9UcmlidXRhcmlhJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoJ2NsYXNzaWZpY2FjYW9UcmlidXRhcmlhJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCd2YWxvcicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoZm9ybUdyb3VwLmdldCgndmFsb3InKS52YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhTaXR1YXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhDbGFzc2lmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheEFtb3VudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFNpdHVhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhDbGFzc2lmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQmlnTnVtYmVyKHRheEFtb3VudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gYXMgY29uc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbdGF4U2l0dWF0aW9uLCB0YXhDbGFzc2lmaWNhdGlvbiwgdGF4QW1vdW50XSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFNpdHVhdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4Q2xhc3NpZmljYXRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheEFtb3VudC5pc0Zpbml0ZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycyA9IFtWYWxpZGF0b3JzLnJlcXVpcmVkXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnc2l0dWFjYW9UcmlidXRhcmlhJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgnc2l0dWFjYW9UcmlidXRhcmlhJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCU19BSlVTVEU6XG4gICAgICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfQUpVU1RFOlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdzaXR1YWNhb1RyaWJ1dGFyaWEnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwLmdldCgnc2l0dWFjYW9UcmlidXRhcmlhJykudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCdjbGFzc2lmaWNhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXAuZ2V0KCdjbGFzc2lmaWNhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldChFbnVtQ2FtcG9UcmlidXRvLlBlcmlvZG9BcHVyYWNhbylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Hcm91cC5nZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW51bUNhbXBvVHJpYnV0by5QZXJpb2RvQXB1cmFjYW9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0KCd2YWxvcicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoZm9ybUdyb3VwLmdldCgndmFsb3InKS52YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhTaXR1YXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhDbGFzc2lmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vzc21lbnRQZXJpb2QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhBbW91bnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhTaXR1YXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4Q2xhc3NpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXNzbWVudFBlcmlvZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQmlnTnVtYmVyKHRheEFtb3VudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gYXMgY29uc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheFNpdHVhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF4Q2xhc3NpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vzc21lbnRQZXJpb2QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheEFtb3VudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhTaXR1YXRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRheENsYXNzaWZpY2F0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nlc3NtZW50UGVyaW9kIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXhBbW91bnQuaXNGaW5pdGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMgPSBbVmFsaWRhdG9ycy5yZXF1aXJlZF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3NpdHVhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoJ3NpdHVhY2FvVHJpYnV0YXJpYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1pdEV2ZW50OiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYFJlZ3JhIFRheFNpdHVhdGlvblJlcXVpcmVkVmFsaWRhdGlvblJ1bGUgbsOjbyBpbXBsZW1lbnRhZGEgcGFyYSBvIGltcG9zdG8gJHt0YXhUeXBlfSwgZG9jdW1lbnRvICR7ZG9jdW1lbnR9LmBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -16,7 +16,9 @@ export var isTaxFromTaxReform = function (tax) {
16
16
  tax === EnumTipoTributo.IBS_MUNICIPAL_GOVERNAMENTAL ||
17
17
  tax === EnumTipoTributo.IBS_CREDITO_PRESUMIDO ||
18
18
  tax === EnumTipoTributo.CBS_ESTORNO_CREDITO ||
19
- tax === EnumTipoTributo.IBS_ESTORNO_CREDITO);
19
+ tax === EnumTipoTributo.IBS_ESTORNO_CREDITO ||
20
+ tax === EnumTipoTributo.CBS_AJUSTE ||
21
+ tax === EnumTipoTributo.IBS_AJUSTE);
20
22
  };
21
23
  export var getBaseTaxByGroupTax = function (groupTax) {
22
24
  switch (groupTax) {
@@ -32,6 +34,8 @@ export var getBaseTaxByGroupTax = function (groupTax) {
32
34
  return EnumTipoTributo.IS;
33
35
  case EnumGrupoTributo.CBS_IBS_ESTORNO_CREDITO:
34
36
  return EnumTipoTributo.CBS_ESTORNO_CREDITO;
37
+ case EnumGrupoTributo.CBS_IBS_AJUSTE:
38
+ return EnumTipoTributo.CBS_AJUSTE;
35
39
  default:
36
40
  return null;
37
41
  }
@@ -234,4 +238,4 @@ export var getGovernamentalTaxItemFromGroup = function (_a) {
234
238
  var baseTax = getBaseTaxByGroupTax(group.grupoTributo);
235
239
  return group.item.find(function (item) { return item.name === getGovernamentalTaxByBaseTax(baseTax); });
236
240
  };
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXJlZm9ybS11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9lcnB4LWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RyaWJ1dG9zL3RheC1yZWZvcm0tdXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUcvRSxNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxVQUFDLEdBQW9CO0lBQ25ELE9BQU8sQ0FDSCxHQUFHLEtBQUssZUFBZSxDQUFDLEVBQUU7UUFDMUIsR0FBRyxLQUFLLGVBQWUsQ0FBQyxHQUFHO1FBQzNCLEdBQUcsS0FBSyxlQUFlLENBQUMscUJBQXFCO1FBQzdDLEdBQUcsS0FBSyxlQUFlLENBQUMsWUFBWTtRQUNwQyxHQUFHLEtBQUssZUFBZSxDQUFDLHNCQUFzQjtRQUM5QyxHQUFHLEtBQUssZUFBZSxDQUFDLGlCQUFpQjtRQUN6QyxHQUFHLEtBQUssZUFBZSxDQUFDLFlBQVk7UUFDcEMsR0FBRyxLQUFLLGVBQWUsQ0FBQyxxQkFBcUI7UUFDN0MsR0FBRyxLQUFLLGVBQWUsQ0FBQywrQkFBK0I7UUFDdkQsR0FBRyxLQUFLLGVBQWUsQ0FBQywwQkFBMEI7UUFDbEQsR0FBRyxLQUFLLGVBQWUsQ0FBQyxhQUFhO1FBQ3JDLEdBQUcsS0FBSyxlQUFlLENBQUMsc0JBQXNCO1FBQzlDLEdBQUcsS0FBSyxlQUFlLENBQUMsZ0NBQWdDO1FBQ3hELEdBQUcsS0FBSyxlQUFlLENBQUMsMkJBQTJCO1FBQ25ELEdBQUcsS0FBSyxlQUFlLENBQUMscUJBQXFCO1FBQzdDLEdBQUcsS0FBSyxlQUFlLENBQUMsbUJBQW1CO1FBQzNDLEdBQUcsS0FBSyxlQUFlLENBQUMsbUJBQW1CLENBQzlDLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxvQkFB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RW51bVRpcG9UcmlidXRvLCBJdGVtIH0gZnJvbSAnLi9lcnAtdHJpYnV0b3MudHlwZXMnO1xyXG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJy4vdHlwZXMvZ3JvdXAnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGlzVGF4RnJvbVRheFJlZm9ybSA9ICh0YXg6IEVudW1UaXBvVHJpYnV0byk6IGJvb2xlYW4gPT4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5JUyB8fFxyXG4gICAgICAgIHRheCA9PT0gRW51bVRpcG9UcmlidXRvLkNCUyB8fFxyXG4gICAgICAgIHRheCA9PT0gRW51bVRpcG9UcmlidXRvLkNCU19DUkVESVRPX1BSRVNVTUlETyB8fFxyXG4gICAgICAgIHRheCA9PT0gRW51bVRpcG9UcmlidXRvLkNCU19ESUZFUklETyB8fFxyXG4gICAgICAgIHRheCA9PT0gRW51bVRpcG9UcmlidXRvLkNCU19UUklCVVRBQ0FPX1JFR1VMQVIgfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5DQlNfR09WRVJOQU1FTlRBTCB8fFxyXG4gICAgICAgIHRheCA9PT0gRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTCB8fFxyXG4gICAgICAgIHRheCA9PT0gRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9ESUZFUklETyB8fFxyXG4gICAgICAgIHRheCA9PT0gRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9UUklCVVRBQ0FPX1JFR1VMQVIgfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfR09WRVJOQU1FTlRBTCB8fFxyXG4gICAgICAgIHRheCA9PT0gRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUwgfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0RJRkVSSURPIHx8XHJcbiAgICAgICAgdGF4ID09PSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9UUklCVVRBQ0FPX1JFR1VMQVIgfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0dPVkVSTkFNRU5UQUwgfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5JQlNfQ1JFRElUT19QUkVTVU1JRE8gfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5DQlNfRVNUT1JOT19DUkVESVRPIHx8XHJcbiAgICAgICAgdGF4ID09PSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVE9STk9fQ1JFRElUT1xyXG4gICAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRCYXNlVGF4QnlHcm91cFRheCA9IChncm91cFRheDogRW51bUdydXBvVHJpYnV0bykgPT4ge1xyXG4gICAgc3dpdGNoIChncm91cFRheCkge1xyXG4gICAgICAgIGNhc2UgRW51bUdydXBvVHJpYnV0by5DQlM6XHJcbiAgICAgICAgICAgIHJldHVybiBFbnVtVGlwb1RyaWJ1dG8uQ0JTO1xyXG4gICAgICAgIGNhc2UgRW51bUdydXBvVHJpYnV0by5JQlNfRVNUQURVQUw6XHJcbiAgICAgICAgICAgIHJldHVybiBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMO1xyXG4gICAgICAgIGNhc2UgRW51bUdydXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUw7XHJcbiAgICAgICAgY2FzZSBFbnVtR3J1cG9UcmlidXRvLklCU19DUkVESVRPX1BSRVNVTUlETzpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5JQlNfQ1JFRElUT19QUkVTVU1JRE87XHJcbiAgICAgICAgY2FzZSBFbnVtR3J1cG9UcmlidXRvLklTOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklTO1xyXG4gICAgICAgIGNhc2UgRW51bUdydXBvVHJpYnV0by5DQlNfSUJTX0VTVE9STk9fQ1JFRElUTzpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5DQlNfRVNUT1JOT19DUkVESVRPO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldFJlZ3VsYXJUYXhhdGlvblRheEJ5R3JvdXBUYXggPSAoZ3JvdXBUYXg6IEVudW1HcnVwb1RyaWJ1dG8pID0+IHtcclxuICAgIHN3aXRjaCAoZ3JvdXBUYXgpIHtcclxuICAgICAgICBjYXNlIEVudW1HcnVwb1RyaWJ1dG8uQ0JTOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLkNCU19UUklCVVRBQ0FPX1JFR1VMQVI7XHJcbiAgICAgICAgY2FzZSBFbnVtR3J1cG9UcmlidXRvLklCU19FU1RBRFVBTDpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfVFJJQlVUQUNBT19SRUdVTEFSO1xyXG4gICAgICAgIGNhc2UgRW51bUdydXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgIGBVbnN1cHBvcnRlZCB2YWx1ZSBmb3IgRW51bUdydXBvVHJpYnV0bzogJHtncm91cFRheH1gXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0RGVmZXJyZWRUYXhCeUJhc2VUYXggPSAodGF4OiBFbnVtVGlwb1RyaWJ1dG8pID0+IHtcclxuICAgIHN3aXRjaCAodGF4KSB7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCU19ESUZFUklETzpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5DQlNfRElGRVJJRE87XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9ESUZFUklETzpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfRElGRVJJRE87XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTDpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0RJRkVSSURPOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfRElGRVJJRE87XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB2YWx1ZSBmb3IgRW51bVRpcG9UcmlidXRvOiAke3RheH1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRQcmVzdW1lZENyZWRpdFRheEJ5QmFzZVRheCA9ICh0YXg6IEVudW1UaXBvVHJpYnV0bykgPT4ge1xyXG4gICAgc3dpdGNoICh0YXgpIHtcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlM6XHJcbiAgICAgICAgICAgIHJldHVybiBFbnVtVGlwb1RyaWJ1dG8uQ0JTX0NSRURJVE9fUFJFU1VNSURPO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdmFsdWUgZm9yIEVudW1UaXBvVHJpYnV0bzogJHt0YXh9YCk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0UmVndWxhclRheGF0aW9uVGF4QnlCYXNlVGF4ID0gKHRheDogRW51bVRpcG9UcmlidXRvKSA9PiB7XHJcbiAgICBzd2l0Y2ggKHRheCkge1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCUzpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5DQlNfVFJJQlVUQUNBT19SRUdVTEFSO1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTDpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfVFJJQlVUQUNBT19SRUdVTEFSO1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUw6XHJcbiAgICAgICAgICAgIHJldHVybiBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9UUklCVVRBQ0FPX1JFR1VMQVI7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB2YWx1ZSBmb3IgRW51bVRpcG9UcmlidXRvOiAke3RheH1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRHb3Zlcm5hbWVudGFsVGF4QnlCYXNlVGF4ID0gKHRheDogRW51bVRpcG9UcmlidXRvKSA9PiB7XHJcbiAgICBzd2l0Y2ggKHRheCkge1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCUzpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5DQlNfR09WRVJOQU1FTlRBTDtcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUw6XHJcbiAgICAgICAgICAgIHJldHVybiBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX0dPVkVSTkFNRU5UQUw7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTDpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0dPVkVSTkFNRU5UQUw7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB2YWx1ZSBmb3IgRW51bVRpcG9UcmlidXRvOiAke3RheH1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRSZWd1bGFyVGF4YXRpb25UYXhCeVRheCA9ICh0YXg6IEVudW1UaXBvVHJpYnV0bykgPT4ge1xyXG4gICAgc3dpdGNoICh0YXgpIHtcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlM6XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTX0RJRkVSSURPOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCU19DUkVESVRPX1BSRVNVTUlETzpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlNfVFJJQlVUQUNBT19SRUdVTEFSOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLkNCU19UUklCVVRBQ0FPX1JFR1VMQVI7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9UUklCVVRBQ0FPX1JFR1VMQVI6XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX0RJRkVSSURPOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLkNCU19UUklCVVRBQ0FPX1JFR1VMQVI7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTDpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0RJRkVSSURPOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdmFsdWUgZm9yIEVudW1UaXBvVHJpYnV0bzogJHt0YXh9YCk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFRheEJ5VGF4ID0gKHRheDogRW51bVRpcG9UcmlidXRvKSA9PiB7XHJcbiAgICBzd2l0Y2ggKHRheCkge1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCUzpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlNfRElGRVJJRE86XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTX0NSRURJVE9fUFJFU1VNSURPOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCU19UUklCVVRBQ0FPX1JFR1VMQVI6XHJcbiAgICAgICAgICAgIHJldHVybiBFbnVtVGlwb1RyaWJ1dG8uQ0JTO1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTDpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfRElGRVJJRE86XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX1RSSUJVVEFDQU9fUkVHVUxBUjpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUw7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTDpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0RJRkVSSURPOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUw7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0NSRURJVE9fUFJFU1VNSURPOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19DUkVESVRPX1BSRVNVTUlETztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHZhbHVlIGZvciBFbnVtVGlwb1RyaWJ1dG86ICR7dGF4fWApO1xyXG4gICAgfVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldFJlZ3VsYXJUYXhCeVRheCA9ICh0YXg6IEVudW1UaXBvVHJpYnV0bykgPT4ge1xyXG4gICAgc3dpdGNoICh0YXgpIHtcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlM6XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTX0RJRkVSSURPOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCU19DUkVESVRPX1BSRVNVTUlETzpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlNfVFJJQlVUQUNBT19SRUdVTEFSOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLkNCU19UUklCVVRBQ0FPX1JFR1VMQVI7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9ESUZFUklETzpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfVFJJQlVUQUNBT19SRUdVTEFSOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9UUklCVVRBQ0FPX1JFR1VMQVI7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTDpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0RJRkVSSURPOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSO1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19DUkVESVRPX1BSRVNVTUlETzpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5JQlNfQ1JFRElUT19QUkVTVU1JRE87XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB2YWx1ZSBmb3IgRW51bVRpcG9UcmlidXRvOiAke3RheH1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc0Jhc2VUYXggPSAodGF4OiBFbnVtVGlwb1RyaWJ1dG8pOiBib29sZWFuID0+IHtcclxuICAgIHN3aXRjaCAodGF4KSB7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTDpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMOlxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgaXNEZWZlcnJlZFRheCA9ICh0YXg6IEVudW1UaXBvVHJpYnV0byk6IGJvb2xlYW4gPT4ge1xyXG4gICAgc3dpdGNoICh0YXgpIHtcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlNfRElGRVJJRE86XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX0RJRkVSSURPOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfRElGRVJJRE86XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1ByZXN1bWVkQ3JlZGl0VGF4ID0gKHRheDogRW51bVRpcG9UcmlidXRvKTogYm9vbGVhbiA9PiB7XHJcbiAgICBzd2l0Y2ggKHRheCkge1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCU19DUkVESVRPX1BSRVNVTUlETzpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfQ1JFRElUT19QUkVTVU1JRE86XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1JlZ3VsYXJUYXhhdGlvbiA9ICh0YXg6IEVudW1UaXBvVHJpYnV0byk6IGJvb2xlYW4gPT4ge1xyXG4gICAgc3dpdGNoICh0YXgpIHtcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlNfVFJJQlVUQUNBT19SRUdVTEFSOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9UUklCVVRBQ0FPX1JFR1VMQVI6XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9UUklCVVRBQ0FPX1JFR1VMQVI6XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc0dvdmVybmFtZW50YWxUYXggPSAodGF4OiBFbnVtVGlwb1RyaWJ1dG8pOiBib29sZWFuID0+IHtcclxuICAgIHN3aXRjaCAodGF4KSB7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTX0dPVkVSTkFNRU5UQUw6XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX0dPVkVSTkFNRU5UQUw6XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9HT1ZFUk5BTUVOVEFMOlxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0R3JvdXBCeUdyb3VwVGF4ID0gKHtcclxuICAgIGdyb3VwcyxcclxuICAgIGdyb3VwVGF4XHJcbn06IHtcclxuICAgIGdyb3VwczogR3JvdXBbXTtcclxuICAgIGdyb3VwVGF4OiBFbnVtR3J1cG9UcmlidXRvO1xyXG59KTogR3JvdXAgPT4ge1xyXG4gICAgcmV0dXJuIGdyb3Vwcy5maW5kKChncm91cCkgPT4gZ3JvdXAuZ3J1cG9UcmlidXRvID09PSBncm91cFRheCk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0QmFzZVRheEl0ZW1Gcm9tR3JvdXAgPSAoeyBncm91cCB9OiB7IGdyb3VwOiBHcm91cCB9KTogSXRlbSA9PiB7XHJcbiAgICBjb25zdCBiYXNlVGF4ID0gZ2V0QmFzZVRheEJ5R3JvdXBUYXgoZ3JvdXAuZ3J1cG9UcmlidXRvKTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXAuaXRlbS5maW5kKChpdGVtKSA9PiBpdGVtLm5hbWUgPT09IGJhc2VUYXgpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldERlZmVycmVkVGF4SXRlbUZyb21Hcm91cCA9ICh7XHJcbiAgICBncm91cFxyXG59OiB7XHJcbiAgICBncm91cDogR3JvdXA7XHJcbn0pOiBJdGVtID0+IHtcclxuICAgIGNvbnN0IGJhc2VUYXggPSBnZXRCYXNlVGF4QnlHcm91cFRheChncm91cC5ncnVwb1RyaWJ1dG8pO1xyXG5cclxuICAgIHJldHVybiBncm91cC5pdGVtLmZpbmQoXHJcbiAgICAgICAgKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gZ2V0RGVmZXJyZWRUYXhCeUJhc2VUYXgoYmFzZVRheClcclxuICAgICk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0UHJlc3VtZWRDcmVkaXRUYXhJdGVtRnJvbUdyb3VwID0gKHtcclxuICAgIGdyb3VwXHJcbn06IHtcclxuICAgIGdyb3VwOiBHcm91cDtcclxufSk6IEl0ZW0gPT4ge1xyXG4gICAgY29uc3QgYmFzZVRheCA9IGdldEJhc2VUYXhCeUdyb3VwVGF4KGdyb3VwLmdydXBvVHJpYnV0byk7XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwLml0ZW0uZmluZChcclxuICAgICAgICAoaXRlbSkgPT4gaXRlbS5uYW1lID09PSBnZXRQcmVzdW1lZENyZWRpdFRheEJ5QmFzZVRheChiYXNlVGF4KVxyXG4gICAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRSZWd1bGFyVGF4YXRpb25UYXhJdGVtRnJvbUdyb3VwID0gKHtcclxuICAgIGdyb3VwXHJcbn06IHtcclxuICAgIGdyb3VwOiBHcm91cDtcclxufSk6IEl0ZW0gPT4ge1xyXG4gICAgY29uc3QgYmFzZVRheCA9IGdldEJhc2VUYXhCeUdyb3VwVGF4KGdyb3VwLmdydXBvVHJpYnV0byk7XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwLml0ZW0uZmluZChcclxuICAgICAgICAoaXRlbSkgPT4gaXRlbS5uYW1lID09PSBnZXRSZWd1bGFyVGF4YXRpb25UYXhCeUJhc2VUYXgoYmFzZVRheClcclxuICAgICk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0R292ZXJuYW1lbnRhbFRheEl0ZW1Gcm9tR3JvdXAgPSAoe1xyXG4gICAgZ3JvdXBcclxufToge1xyXG4gICAgZ3JvdXA6IEdyb3VwO1xyXG59KTogSXRlbSA9PiB7XHJcbiAgICBjb25zdCBiYXNlVGF4ID0gZ2V0QmFzZVRheEJ5R3JvdXBUYXgoZ3JvdXAuZ3J1cG9UcmlidXRvKTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXAuaXRlbS5maW5kKFxyXG4gICAgICAgIChpdGVtKSA9PiBpdGVtLm5hbWUgPT09IGdldEdvdmVybmFtZW50YWxUYXhCeUJhc2VUYXgoYmFzZVRheClcclxuICAgICk7XHJcbn07XHJcbiJdfQ==
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXJlZm9ybS11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9lcnB4LWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RyaWJ1dG9zL3RheC1yZWZvcm0tdXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUcvRSxNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxVQUFDLEdBQW9CO0lBQ25ELE9BQU8sQ0FDSCxHQUFHLEtBQUssZUFBZSxDQUFDLEVBQUU7UUFDMUIsR0FBRyxLQUFLLGVBQWUsQ0FBQyxHQUFHO1FBQzNCLEdBQUcsS0FBSyxlQUFlLENBQUMscUJBQXFCO1FBQzdDLEdBQUcsS0FBSyxlQUFlLENBQUMsWUFBWTtRQUNwQyxHQUFHLEtBQUssZUFBZSxDQUFDLHNCQUFzQjtRQUM5QyxHQUFHLEtBQUssZUFBZSxDQUFDLGlCQUFpQjtRQUN6QyxHQUFHLEtBQUssZUFBZSxDQUFDLFlBQVk7UUFDcEMsR0FBRyxLQUFLLGVBQWUsQ0FBQyxxQkFBcUI7UUFDN0MsR0FBRyxLQUFLLGVBQWUsQ0FBQywrQkFBK0I7UUFDdkQsR0FBRyxLQUFLLGVBQWUsQ0FBQywwQkFBMEI7UUFDbEQsR0FBRyxLQUFLLGVBQWUsQ0FBQyxhQUFhO1FBQ3JDLEdBQUcsS0FBSyxlQUFlLENBQUMsc0JBQXNCO1FBQzlDLEdBQUcsS0FBSyxlQUFlLENBQUMsZ0NBQWdDO1FBQ3hELEdBQUcsS0FBSyxlQUFlLENBQUMsMkJBQTJCO1FBQ25ELEdBQUcsS0FBSyxlQUFlLENBQUMscUJBQXFCO1FBQzdDLEdBQUcsS0FBSyxlQUFlLENBQUMsbUJBQW1CO1FBQzNDLEdBQUcsS0FBSyxlQUFlLENBQUMsbUJBQW1CO1FBQzNDLEdBQUcsS0FBSyxlQUFlLENBQUMsVUFBVTtRQUNsQyxHQUFHLEtBQUssZUFB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QUFDLElBQUksS0FBSyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsRUFBbkQsQ0FBbUQsQ0FDaEUsQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudW1HcnVwb1RyaWJ1dG8sIEVudW1UaXBvVHJpYnV0bywgSXRlbSB9IGZyb20gJy4vZXJwLXRyaWJ1dG9zLnR5cGVzJztcclxuaW1wb3J0IHsgR3JvdXAgfSBmcm9tICcuL3R5cGVzL2dyb3VwJztcclxuXHJcbmV4cG9ydCBjb25zdCBpc1RheEZyb21UYXhSZWZvcm0gPSAodGF4OiBFbnVtVGlwb1RyaWJ1dG8pOiBib29sZWFuID0+IHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICAgdGF4ID09PSBFbnVtVGlwb1RyaWJ1dG8uSVMgfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5DQlMgfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5DQlNfQ1JFRElUT19QUkVTVU1JRE8gfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5DQlNfRElGRVJJRE8gfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5DQlNfVFJJQlVUQUNBT19SRUdVTEFSIHx8XHJcbiAgICAgICAgdGF4ID09PSBFbnVtVGlwb1RyaWJ1dG8uQ0JTX0dPVkVSTkFNRU5UQUwgfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUwgfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfRElGRVJJRE8gfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfVFJJQlVUQUNBT19SRUdVTEFSIHx8XHJcbiAgICAgICAgdGF4ID09PSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX0dPVkVSTkFNRU5UQUwgfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMIHx8XHJcbiAgICAgICAgdGF4ID09PSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9ESUZFUklETyB8fFxyXG4gICAgICAgIHRheCA9PT0gRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSIHx8XHJcbiAgICAgICAgdGF4ID09PSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9HT1ZFUk5BTUVOVEFMIHx8XHJcbiAgICAgICAgdGF4ID09PSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0NSRURJVE9fUFJFU1VNSURPIHx8XHJcbiAgICAgICAgdGF4ID09PSBFbnVtVGlwb1RyaWJ1dG8uQ0JTX0VTVE9STk9fQ1JFRElUTyB8fFxyXG4gICAgICAgIHRheCA9PT0gRW51bVRpcG9UcmlidXRvLklCU19FU1RPUk5PX0NSRURJVE8gfHxcclxuICAgICAgICB0YXggPT09IEVudW1UaXBvVHJpYnV0by5DQlNfQUpVU1RFIHx8XHJcbiAgICAgICAgdGF4ID09PSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0FKVVNURVxyXG4gICAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRCYXNlVGF4QnlHcm91cFRheCA9IChncm91cFRheDogRW51bUdydXBvVHJpYnV0bykgPT4ge1xyXG4gICAgc3dpdGNoIChncm91cFRheCkge1xyXG4gICAgICAgIGNhc2UgRW51bUdydXBvVHJpYnV0by5DQlM6XHJcbiAgICAgICAgICAgIHJldHVybiBFbnVtVGlwb1RyaWJ1dG8uQ0JTO1xyXG4gICAgICAgIGNhc2UgRW51bUdydXBvVHJpYnV0by5JQlNfRVNUQURVQUw6XHJcbiAgICAgICAgICAgIHJldHVybiBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMO1xyXG4gICAgICAgIGNhc2UgRW51bUdydXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUw7XHJcbiAgICAgICAgY2FzZSBFbnVtR3J1cG9UcmlidXRvLklCU19DUkVESVRPX1BSRVNVTUlETzpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5JQlNfQ1JFRElUT19QUkVTVU1JRE87XHJcbiAgICAgICAgY2FzZSBFbnVtR3J1cG9UcmlidXRvLklTOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklTO1xyXG4gICAgICAgIGNhc2UgRW51bUdydXBvVHJpYnV0by5DQlNfSUJTX0VTVE9STk9fQ1JFRElUTzpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5DQlNfRVNUT1JOT19DUkVESVRPO1xyXG4gICAgICAgIGNhc2UgRW51bUdydXBvVHJpYnV0by5DQlNfSUJTX0FKVVNURTpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5DQlNfQUpVU1RFO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldFJlZ3VsYXJUYXhhdGlvblRheEJ5R3JvdXBUYXggPSAoZ3JvdXBUYXg6IEVudW1HcnVwb1RyaWJ1dG8pID0+IHtcclxuICAgIHN3aXRjaCAoZ3JvdXBUYXgpIHtcclxuICAgICAgICBjYXNlIEVudW1HcnVwb1RyaWJ1dG8uQ0JTOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLkNCU19UUklCVVRBQ0FPX1JFR1VMQVI7XHJcbiAgICAgICAgY2FzZSBFbnVtR3J1cG9UcmlidXRvLklCU19FU1RBRFVBTDpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfVFJJQlVUQUNBT19SRUdVTEFSO1xyXG4gICAgICAgIGNhc2UgRW51bUdydXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgIGBVbnN1cHBvcnRlZCB2YWx1ZSBmb3IgRW51bUdydXBvVHJpYnV0bzogJHtncm91cFRheH1gXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0RGVmZXJyZWRUYXhCeUJhc2VUYXggPSAodGF4OiBFbnVtVGlwb1RyaWJ1dG8pID0+IHtcclxuICAgIHN3aXRjaCAodGF4KSB7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCU19ESUZFUklETzpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5DQlNfRElGRVJJRE87XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9ESUZFUklETzpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfRElGRVJJRE87XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTDpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0RJRkVSSURPOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfRElGRVJJRE87XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB2YWx1ZSBmb3IgRW51bVRpcG9UcmlidXRvOiAke3RheH1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRQcmVzdW1lZENyZWRpdFRheEJ5QmFzZVRheCA9ICh0YXg6IEVudW1UaXBvVHJpYnV0bykgPT4ge1xyXG4gICAgc3dpdGNoICh0YXgpIHtcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlM6XHJcbiAgICAgICAgICAgIHJldHVybiBFbnVtVGlwb1RyaWJ1dG8uQ0JTX0NSRURJVE9fUFJFU1VNSURPO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdmFsdWUgZm9yIEVudW1UaXBvVHJpYnV0bzogJHt0YXh9YCk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0UmVndWxhclRheGF0aW9uVGF4QnlCYXNlVGF4ID0gKHRheDogRW51bVRpcG9UcmlidXRvKSA9PiB7XHJcbiAgICBzd2l0Y2ggKHRheCkge1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCUzpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5DQlNfVFJJQlVUQUNBT19SRUdVTEFSO1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTDpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfVFJJQlVUQUNBT19SRUdVTEFSO1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUw6XHJcbiAgICAgICAgICAgIHJldHVybiBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9UUklCVVRBQ0FPX1JFR1VMQVI7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB2YWx1ZSBmb3IgRW51bVRpcG9UcmlidXRvOiAke3RheH1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRHb3Zlcm5hbWVudGFsVGF4QnlCYXNlVGF4ID0gKHRheDogRW51bVRpcG9UcmlidXRvKSA9PiB7XHJcbiAgICBzd2l0Y2ggKHRheCkge1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCUzpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5DQlNfR09WRVJOQU1FTlRBTDtcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUw6XHJcbiAgICAgICAgICAgIHJldHVybiBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX0dPVkVSTkFNRU5UQUw7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTDpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0dPVkVSTkFNRU5UQUw7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB2YWx1ZSBmb3IgRW51bVRpcG9UcmlidXRvOiAke3RheH1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRSZWd1bGFyVGF4YXRpb25UYXhCeVRheCA9ICh0YXg6IEVudW1UaXBvVHJpYnV0bykgPT4ge1xyXG4gICAgc3dpdGNoICh0YXgpIHtcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlM6XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTX0RJRkVSSURPOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCU19DUkVESVRPX1BSRVNVTUlETzpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlNfVFJJQlVUQUNBT19SRUdVTEFSOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLkNCU19UUklCVVRBQ0FPX1JFR1VMQVI7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9UUklCVVRBQ0FPX1JFR1VMQVI6XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX0RJRkVSSURPOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLkNCU19UUklCVVRBQ0FPX1JFR1VMQVI7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTDpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0RJRkVSSURPOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgdmFsdWUgZm9yIEVudW1UaXBvVHJpYnV0bzogJHt0YXh9YCk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFRheEJ5VGF4ID0gKHRheDogRW51bVRpcG9UcmlidXRvKSA9PiB7XHJcbiAgICBzd2l0Y2ggKHRheCkge1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCUzpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlNfRElGRVJJRE86XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTX0NSRURJVE9fUFJFU1VNSURPOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCU19UUklCVVRBQ0FPX1JFR1VMQVI6XHJcbiAgICAgICAgICAgIHJldHVybiBFbnVtVGlwb1RyaWJ1dG8uQ0JTO1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTDpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfRElGRVJJRE86XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX1RSSUJVVEFDQU9fUkVHVUxBUjpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUw7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTDpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0RJRkVSSURPOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUw7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0NSRURJVE9fUFJFU1VNSURPOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19DUkVESVRPX1BSRVNVTUlETztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHZhbHVlIGZvciBFbnVtVGlwb1RyaWJ1dG86ICR7dGF4fWApO1xyXG4gICAgfVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldFJlZ3VsYXJUYXhCeVRheCA9ICh0YXg6IEVudW1UaXBvVHJpYnV0bykgPT4ge1xyXG4gICAgc3dpdGNoICh0YXgpIHtcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlM6XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTX0RJRkVSSURPOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCU19DUkVESVRPX1BSRVNVTUlETzpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlNfVFJJQlVUQUNBT19SRUdVTEFSOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLkNCU19UUklCVVRBQ0FPX1JFR1VMQVI7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9ESUZFUklETzpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfRVNUQURVQUxfVFJJQlVUQUNBT19SRUdVTEFSOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9UUklCVVRBQ0FPX1JFR1VMQVI7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTDpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMX0RJRkVSSURPOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSOlxyXG4gICAgICAgICAgICByZXR1cm4gRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfVFJJQlVUQUNBT19SRUdVTEFSO1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19DUkVESVRPX1BSRVNVTUlETzpcclxuICAgICAgICAgICAgcmV0dXJuIEVudW1UaXBvVHJpYnV0by5JQlNfQ1JFRElUT19QUkVTVU1JRE87XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB2YWx1ZSBmb3IgRW51bVRpcG9UcmlidXRvOiAke3RheH1gKTtcclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc0Jhc2VUYXggPSAodGF4OiBFbnVtVGlwb1RyaWJ1dG8pOiBib29sZWFuID0+IHtcclxuICAgIHN3aXRjaCAodGF4KSB7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTDpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfTVVOSUNJUEFMOlxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgaXNEZWZlcnJlZFRheCA9ICh0YXg6IEVudW1UaXBvVHJpYnV0byk6IGJvb2xlYW4gPT4ge1xyXG4gICAgc3dpdGNoICh0YXgpIHtcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlNfRElGRVJJRE86XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX0RJRkVSSURPOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19NVU5JQ0lQQUxfRElGRVJJRE86XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1ByZXN1bWVkQ3JlZGl0VGF4ID0gKHRheDogRW51bVRpcG9UcmlidXRvKTogYm9vbGVhbiA9PiB7XHJcbiAgICBzd2l0Y2ggKHRheCkge1xyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLkNCU19DUkVESVRPX1BSRVNVTUlETzpcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5JQlNfQ1JFRElUT19QUkVTVU1JRE86XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1JlZ3VsYXJUYXhhdGlvbiA9ICh0YXg6IEVudW1UaXBvVHJpYnV0byk6IGJvb2xlYW4gPT4ge1xyXG4gICAgc3dpdGNoICh0YXgpIHtcclxuICAgICAgICBjYXNlIEVudW1UaXBvVHJpYnV0by5DQlNfVFJJQlVUQUNBT19SRUdVTEFSOlxyXG4gICAgICAgIGNhc2UgRW51bVRpcG9UcmlidXRvLklCU19FU1RBRFVBTF9UUklCVVRBQ0FPX1JFR1VMQVI6XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9UUklCVVRBQ0FPX1JFR1VMQVI6XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc0dvdmVybmFtZW50YWxUYXggPSAodGF4OiBFbnVtVGlwb1RyaWJ1dG8pOiBib29sZWFuID0+IHtcclxuICAgIHN3aXRjaCAodGF4KSB7XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uQ0JTX0dPVkVSTkFNRU5UQUw6XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX0VTVEFEVUFMX0dPVkVSTkFNRU5UQUw6XHJcbiAgICAgICAgY2FzZSBFbnVtVGlwb1RyaWJ1dG8uSUJTX01VTklDSVBBTF9HT1ZFUk5BTUVOVEFMOlxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0R3JvdXBCeUdyb3VwVGF4ID0gKHtcclxuICAgIGdyb3VwcyxcclxuICAgIGdyb3VwVGF4XHJcbn06IHtcclxuICAgIGdyb3VwczogR3JvdXBbXTtcclxuICAgIGdyb3VwVGF4OiBFbnVtR3J1cG9UcmlidXRvO1xyXG59KTogR3JvdXAgPT4ge1xyXG4gICAgcmV0dXJuIGdyb3Vwcy5maW5kKChncm91cCkgPT4gZ3JvdXAuZ3J1cG9UcmlidXRvID09PSBncm91cFRheCk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0QmFzZVRheEl0ZW1Gcm9tR3JvdXAgPSAoeyBncm91cCB9OiB7IGdyb3VwOiBHcm91cCB9KTogSXRlbSA9PiB7XHJcbiAgICBjb25zdCBiYXNlVGF4ID0gZ2V0QmFzZVRheEJ5R3JvdXBUYXgoZ3JvdXAuZ3J1cG9UcmlidXRvKTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXAuaXRlbS5maW5kKChpdGVtKSA9PiBpdGVtLm5hbWUgPT09IGJhc2VUYXgpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldERlZmVycmVkVGF4SXRlbUZyb21Hcm91cCA9ICh7XHJcbiAgICBncm91cFxyXG59OiB7XHJcbiAgICBncm91cDogR3JvdXA7XHJcbn0pOiBJdGVtID0+IHtcclxuICAgIGNvbnN0IGJhc2VUYXggPSBnZXRCYXNlVGF4QnlHcm91cFRheChncm91cC5ncnVwb1RyaWJ1dG8pO1xyXG5cclxuICAgIHJldHVybiBncm91cC5pdGVtLmZpbmQoXHJcbiAgICAgICAgKGl0ZW0pID0+IGl0ZW0ubmFtZSA9PT0gZ2V0RGVmZXJyZWRUYXhCeUJhc2VUYXgoYmFzZVRheClcclxuICAgICk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0UHJlc3VtZWRDcmVkaXRUYXhJdGVtRnJvbUdyb3VwID0gKHtcclxuICAgIGdyb3VwXHJcbn06IHtcclxuICAgIGdyb3VwOiBHcm91cDtcclxufSk6IEl0ZW0gPT4ge1xyXG4gICAgY29uc3QgYmFzZVRheCA9IGdldEJhc2VUYXhCeUdyb3VwVGF4KGdyb3VwLmdydXBvVHJpYnV0byk7XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwLml0ZW0uZmluZChcclxuICAgICAgICAoaXRlbSkgPT4gaXRlbS5uYW1lID09PSBnZXRQcmVzdW1lZENyZWRpdFRheEJ5QmFzZVRheChiYXNlVGF4KVxyXG4gICAgKTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRSZWd1bGFyVGF4YXRpb25UYXhJdGVtRnJvbUdyb3VwID0gKHtcclxuICAgIGdyb3VwXHJcbn06IHtcclxuICAgIGdyb3VwOiBHcm91cDtcclxufSk6IEl0ZW0gPT4ge1xyXG4gICAgY29uc3QgYmFzZVRheCA9IGdldEJhc2VUYXhCeUdyb3VwVGF4KGdyb3VwLmdydXBvVHJpYnV0byk7XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwLml0ZW0uZmluZChcclxuICAgICAgICAoaXRlbSkgPT4gaXRlbS5uYW1lID09PSBnZXRSZWd1bGFyVGF4YXRpb25UYXhCeUJhc2VUYXgoYmFzZVRheClcclxuICAgICk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZ2V0R292ZXJuYW1lbnRhbFRheEl0ZW1Gcm9tR3JvdXAgPSAoe1xyXG4gICAgZ3JvdXBcclxufToge1xyXG4gICAgZ3JvdXA6IEdyb3VwO1xyXG59KTogSXRlbSA9PiB7XHJcbiAgICBjb25zdCBiYXNlVGF4ID0gZ2V0QmFzZVRheEJ5R3JvdXBUYXgoZ3JvdXAuZ3J1cG9UcmlidXRvKTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXAuaXRlbS5maW5kKFxyXG4gICAgICAgIChpdGVtKSA9PiBpdGVtLm5hbWUgPT09IGdldEdvdmVybmFtZW50YWxUYXhCeUJhc2VUYXgoYmFzZVRheClcclxuICAgICk7XHJcbn07XHJcbiJdfQ==
@@ -1 +1 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGViaXQtaW52b2ljZS10eXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvZXJweC1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90cmlidXRvcy90eXBlcy9kZWJpdC1pbnZvaWNlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIERlYml0SW52b2ljZVR5cGUgPSAnSW52ZW50b3J5IExvc3MnO1xuIl19
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGViaXQtaW52b2ljZS10eXBlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvZXJweC1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90cmlidXRvcy90eXBlcy9kZWJpdC1pbnZvaWNlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIERlYml0SW52b2ljZVR5cGUgPVxuICAgIHwgJ0ludmVudG9yeSBMb3NzJ1xuICAgIHwgJ0NyZWRpdCBDYW5jZWxsYXRpb24gRXhlbXB0IE91dHB1dHMnXG4gICAgfCAnRGViaXRzIFVucHJvY2Vzc2VkIEludm9pY2VzIEFzc2Vzc21lbnQnXG4gICAgfCAnRGlzcXVhbGlmaWNhdGlvbiBmcm9tIFNpbXBsZXMgTmFjaW9uYWwnO1xuIl19
@@ -0,0 +1,2 @@
1
+ import { EnumCampoTributo } from '../erp-tributos.types';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvZXJweC1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90cmlidXRvcy90eXBlcy90YXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnVtVGlwb0NhbGN1bG9JbXBvc3RvIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtcy9lbnVtLXRpcG8tY2FsY3Vsby1pbXBvc3RvJztcbmltcG9ydCB7IEVudW1DYW1wb1RyaWJ1dG8gfSBmcm9tICcuLi9lcnAtdHJpYnV0b3MudHlwZXMnO1xuXG5leHBvcnQgdHlwZSBUYXggPSB7XG4gICAgW0VudW1DYW1wb1RyaWJ1dG8uUGVyaW9kb0FwdXJhY2FvXT86IERhdGU7XG4gICAgW0VudW1DYW1wb1RyaWJ1dG8uVGlwb0NhbGN1bG9JbXBvc3RvXT86IEVudW1UaXBvQ2FsY3Vsb0ltcG9zdG87XG59ICYge1xuICAgIC8vIFRPRE86IFRpcGFyIGNvbXBsZXRhbWVudGUgbyBjb21wb25lbnRlIGRlIGltcG9zdG9zLlxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn07XG4iXX0=
@@ -2,44 +2,48 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public-api';
5
- export { FocusService as ɵbj } from './components/focus/focus.service';
6
- export { ErpLoteSeriesService as ɵbk } from './components/lote-serie/erp-lote-serie.service';
5
+ export { FocusService as ɵbn } from './components/focus/focus.service';
6
+ export { ErpLoteSeriesService as ɵbo } from './components/lote-serie/erp-lote-serie.service';
7
7
  export { ErpResumoComponent as ɵa } from './components/resumo/erp-resumo.component';
8
8
  export { ErpResumoService as ɵb } from './components/resumo/erp-resumo.service';
9
- export { EffectiveTaxRateCalculator as ɵw } from './components/tributos/calculators/effective-tax-rate-calculator';
10
- export { GrossAmountCalculator as ɵbb } from './components/tributos/calculators/gross-amount-calculator';
11
- export { TaxAmountCalculator as ɵv } from './components/tributos/calculators/tax-amount-calculator';
9
+ export { EffectiveTaxRateCalculator as ɵz } from './components/tributos/calculators/effective-tax-rate-calculator';
10
+ export { GrossAmountCalculator as ɵbe } from './components/tributos/calculators/gross-amount-calculator';
11
+ export { TaxAmountCalculator as ɵy } from './components/tributos/calculators/tax-amount-calculator';
12
12
  export { ErpTributosService as ɵc } from './components/tributos/erp-tributos.service';
13
- export { CalculationRulesRegistry as ɵs } from './components/tributos/rules/calculation/registries/calculation-rules-registries/calculation-rules.registry';
14
- export { IncomingInvoiceCalculationRulesRegistry as ɵt } from './components/tributos/rules/calculation/registries/calculation-rules-registries/incoming-invoice-calculation-rules.registry';
15
- export { OutgoingInvoiceCalculationRulesRegistry as ɵbf } from './components/tributos/rules/calculation/registries/calculation-rules-registries/outgoing-invoice-calculation-rules.registry';
16
- export { PurchaseOrderCalculationRulesRegistry as ɵbi } from './components/tributos/rules/calculation/registries/calculation-rules-registries/purchase-order-calculation-rules.registry';
17
- export { SaleOrderCalculationRulesRegistry as ɵbh } from './components/tributos/rules/calculation/registries/calculation-rules-registries/sale-order-calculation-rules.registry';
18
- export { EffectiveTaxRateCalculationRule as ɵy } from './components/tributos/rules/calculation/rules/effective-tax-rate-calculation-rule';
19
- export { GrossAmountCalculationRule as ɵba } from './components/tributos/rules/calculation/rules/gross-amount-calculation-rule';
20
- export { ManualTaxCalculationRule as ɵbe } from './components/tributos/rules/calculation/rules/manual-tax-calculation-rule';
21
- export { TaxAmountCalculationRule as ɵz } from './components/tributos/rules/calculation/rules/tax-amount-calculation-rule';
22
- export { TaxCalculationTypeCalculationRule as ɵbd } from './components/tributos/rules/calculation/rules/tax-calculation-type-calculation-rule';
23
- export { TaxClassificationCalculationRule as ɵbc } from './components/tributos/rules/calculation/rules/tax-classification-calculation-rule';
24
- export { TaxRateCalculationRule as ɵx } from './components/tributos/rules/calculation/rules/tax-rate-calculation-rule';
25
- export { TaxSituationCalculationRule as ɵbg } from './components/tributos/rules/calculation/rules/tax-situation-calculation-rule';
26
- export { TaxableBaseCalculationRule as ɵu } from './components/tributos/rules/calculation/rules/taxable-base-calculation-rule';
13
+ export { CalculationRulesRegistry as ɵv } from './components/tributos/rules/calculation/registries/calculation-rules-registries/calculation-rules.registry';
14
+ export { IncomingInvoiceCalculationRulesRegistry as ɵw } from './components/tributos/rules/calculation/registries/calculation-rules-registries/incoming-invoice-calculation-rules.registry';
15
+ export { OutgoingInvoiceCalculationRulesRegistry as ɵbi } from './components/tributos/rules/calculation/registries/calculation-rules-registries/outgoing-invoice-calculation-rules.registry';
16
+ export { PurchaseOrderCalculationRulesRegistry as ɵbm } from './components/tributos/rules/calculation/registries/calculation-rules-registries/purchase-order-calculation-rules.registry';
17
+ export { SaleOrderCalculationRulesRegistry as ɵbl } from './components/tributos/rules/calculation/registries/calculation-rules-registries/sale-order-calculation-rules.registry';
18
+ export { AssessmentPeriodCalculationRule as ɵbk } from './components/tributos/rules/calculation/rules/assessment-period-calculation-rule';
19
+ export { EffectiveTaxRateCalculationRule as ɵbb } from './components/tributos/rules/calculation/rules/effective-tax-rate-calculation-rule';
20
+ export { GrossAmountCalculationRule as ɵbd } from './components/tributos/rules/calculation/rules/gross-amount-calculation-rule';
21
+ export { ManualTaxCalculationRule as ɵbh } from './components/tributos/rules/calculation/rules/manual-tax-calculation-rule';
22
+ export { TaxAmountCalculationRule as ɵbc } from './components/tributos/rules/calculation/rules/tax-amount-calculation-rule';
23
+ export { TaxCalculationTypeCalculationRule as ɵbg } from './components/tributos/rules/calculation/rules/tax-calculation-type-calculation-rule';
24
+ export { TaxClassificationCalculationRule as ɵbf } from './components/tributos/rules/calculation/rules/tax-classification-calculation-rule';
25
+ export { TaxRateCalculationRule as ɵba } from './components/tributos/rules/calculation/rules/tax-rate-calculation-rule';
26
+ export { TaxSituationCalculationRule as ɵbj } from './components/tributos/rules/calculation/rules/tax-situation-calculation-rule';
27
+ export { TaxableBaseCalculationRule as ɵx } from './components/tributos/rules/calculation/rules/taxable-base-calculation-rule';
27
28
  export { RulesService as ɵd } from './components/tributos/rules/rules.service';
28
29
  export { IncomingInvoiceStatusRulesRegistry as ɵf } from './components/tributos/rules/status/registries/incoming-invoice-status-rules.registry';
29
30
  export { OutgoingInvoiceStatusRulesRegistry as ɵh } from './components/tributos/rules/status/registries/outgoing-invoice-status-rules.registry';
31
+ export { PurchaseOrderStatusRulesRegistry as ɵj } from './components/tributos/rules/status/registries/purchase-order-status-rules.registry';
32
+ export { SaleOrderStatusRulesRegistry as ɵi } from './components/tributos/rules/status/registries/sale-order-status-rules.registry';
30
33
  export { StatusRulesRegistry as ɵe } from './components/tributos/rules/status/registries/status-rules.registry';
31
34
  export { TaxClassificationStatusRule as ɵg } from './components/tributos/rules/status/rules/tax-classification-status-rule';
32
- export { IncomingInvoiceValidationRulesRegistry as ɵj } from './components/tributos/rules/validation/registries/incoming-invoice-validation-rules.registry';
33
- export { OutgoingInvoiceValidationRulesRegistry as ɵp } from './components/tributos/rules/validation/registries/outgoing-invoice-validation-rules.registry';
34
- export { PurchaseOrderValidationRulesRegistry as ɵr } from './components/tributos/rules/validation/registries/purchase-order-validation-rules.registry';
35
- export { SaleOrderValidationRulesRegistry as ɵq } from './components/tributos/rules/validation/registries/sale-order-validation-rules.registry';
36
- export { ValidationRulesRegistry as ɵi } from './components/tributos/rules/validation/registries/validation-rules.registry';
37
- export { TaxAmountRequiredValidationRule as ɵn } from './components/tributos/rules/validation/rules/required/tax-amount-required-validation-rule';
38
- export { TaxClassificationRequiredValidationRule as ɵm } from './components/tributos/rules/validation/rules/required/tax-classification-required-validation-rule';
39
- export { TaxRateRequiredValidationRule as ɵl } from './components/tributos/rules/validation/rules/required/tax-rate-required-validation-rule';
40
- export { TaxSituationRequiredValidationRule as ɵo } from './components/tributos/rules/validation/rules/required/tax-situation-required-validation-rule';
41
- export { TaxableBaseRequiredValidationRule as ɵk } from './components/tributos/rules/validation/rules/required/taxable-base-required-validation-rule';
42
- export { EntityService as ɵbm } from './core/entities/entity-service';
43
- export { QuantidadeDisponivelDemandaModule as ɵbn } from './core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.module';
44
- export { QuantidadeDisponivelDemandaService as ɵbl } from './core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.service';
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC1lcnB4LWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9lcnB4LWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJzZW5pb3ItZ2VzdGFvLWVtcHJlc2FyaWFsLWVycHgtY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxZQUFZLElBQUksR0FBRyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEdBQUcsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQ2pILE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxHQUFHLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUN2RyxPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0seURBQXlELENBQUM7QUFDbEcsT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0R0FBNEcsQ0FBQztBQUMxSixPQUFPLEVBQUMsdUNBQXVDLElBQUksRUFBRSxFQUFDLE1BQU0sNkhBQTZILENBQUM7QUFDMUwsT0FBTyxFQUFDLHVDQUF1QyxJQUFJLEdBQUcsRUFBQyxNQUFNLDZIQUE2SCxDQUFDO0FBQzNMLE9BQU8sRUFBQyxxQ0FBcUMsSUFBSSxHQUFHLEVBQUMsTUFBTSwySEFBMkgsQ0FBQztBQUN2TCxPQUFPLEVBQUMsaUNBQWlDLElBQUksR0FBRyxFQUFDLE1BQU0sdUhBQXVILENBQUM7QUFDL0ssT0FBTyxFQUFDLCtCQUErQixJQUFJLEVBQUUsRUFBQyxNQUFNLG1GQUFtRixDQUFDO0FBQ3hJLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxHQUFHLEVBQUMsTUFBTSw2RUFBNkUsQ0FBQztBQUM5SCxPQUFPLEVBQUMsd0JBQXdCLElBQUksR0FBRyxFQUFDLE1BQU0sMkVBQTJFLENBQUM7QUFDMUgsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLDJFQUEyRSxDQUFDO0FBQ3pILE9BQU8sRUFBQyxpQ0FBaUMsSUFBSSxHQUFHLEVBQUMsTUFBTSxxRkFBcUYsQ0FBQztBQUM3SSxPQUFPLEVBQUMsZ0NBQWdDLElBQUksR0FBRyxFQUFDLE1BQU0sbUZBQW1GLENBQUM7QUFDMUksT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBQ3JILE9BQU8sRUFBQywyQkFBMkIsSUFBSSxHQUFHLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUNoSSxPQUFPLEVBQUMsMEJBQTBCLElBQUksRUFBRSxFQUFDLE1BQU0sNkVBQTZFLENBQUM7QUFDN0gsT0FBTyxFQUFDLFlBQVksSUFBSSxFQUFFLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsa0NBQWtDLElBQUksRUFBRSxFQUFDLE1BQU0sc0ZBQXNGLENBQUM7QUFDOUksT0FBTyxFQUFDLGtDQUFrQyxJQUFJLEVBQUUsRUFBQyxNQUFNLHNGQUFzRixDQUFDO0FBQzlJLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUM5RyxPQUFPLEVBQUMsMkJBQTJCLElBQUksRUFBRSxFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDMUgsT0FBTyxFQUFDLHNDQUFzQyxJQUFJLEVBQUUsRUFBQyxNQUFNLDhGQUE4RixDQUFDO0FBQzFKLE9BQU8sRUFBQyxzQ0FBc0MsSUFBSSxFQUFFLEVBQUMsTUFBTSw4RkFBOEYsQ0FBQztBQUMxSixPQUFPLEVBQUMsb0NBQW9DLElBQUksRUFBRSxFQUFDLE1BQU0sNEZBQTRGLENBQUM7QUFDdEosT0FBTyxFQUFDLGdDQUFnQyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdGQUF3RixDQUFDO0FBQzlJLE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw2RUFBNkUsQ0FBQztBQUMxSCxPQUFPLEVBQUMsK0JBQStCLElBQUksRUFBRSxFQUFDLE1BQU0sMkZBQTJGLENBQUM7QUFDaEosT0FBTyxFQUFDLHVDQUF1QyxJQUFJLEVBQUUsRUFBQyxNQUFNLG1HQUFtRyxDQUFDO0FBQ2hLLE9BQU8sRUFBQyw2QkFBNkIsSUFBSSxFQUFFLEVBQUMsTUFBTSx5RkFBeUYsQ0FBQztBQUM1SSxPQUFPLEVBQUMsa0NBQWtDLElBQUksRUFBRSxFQUFDLE1BQU0sOEZBQThGLENBQUM7QUFDdEosT0FBTyxFQUFDLGlDQUFpQyxJQUFJLEVBQUUsRUFBQyxNQUFNLDZGQUE2RixDQUFDO0FBQ3BKLE9BQU8sRUFBQyxhQUFhLElBQUksR0FBRyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFDLGlDQUFpQyxJQUFJLEdBQUcsRUFBQyxNQUFNLG9GQUFvRixDQUFDO0FBQzVJLE9BQU8sRUFBQyxrQ0FBa0MsSUFBSSxHQUFHLEVBQUMsTUFBTSxxRkFBcUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtGb2N1c1NlcnZpY2UgYXMgybVian0gZnJvbSAnLi9jb21wb25lbnRzL2ZvY3VzL2ZvY3VzLnNlcnZpY2UnO1xuZXhwb3J0IHtFcnBMb3RlU2VyaWVzU2VydmljZSBhcyDJtWJrfSBmcm9tICcuL2NvbXBvbmVudHMvbG90ZS1zZXJpZS9lcnAtbG90ZS1zZXJpZS5zZXJ2aWNlJztcbmV4cG9ydCB7RXJwUmVzdW1vQ29tcG9uZW50IGFzIMm1YX0gZnJvbSAnLi9jb21wb25lbnRzL3Jlc3Vtby9lcnAtcmVzdW1vLmNvbXBvbmVudCc7XG5leHBvcnQge0VycFJlc3Vtb1NlcnZpY2UgYXMgybVifSBmcm9tICcuL2NvbXBvbmVudHMvcmVzdW1vL2VycC1yZXN1bW8uc2VydmljZSc7XG5leHBvcnQge0VmZmVjdGl2ZVRheFJhdGVDYWxjdWxhdG9yIGFzIMm1d30gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL2NhbGN1bGF0b3JzL2VmZmVjdGl2ZS10YXgtcmF0ZS1jYWxjdWxhdG9yJztcbmV4cG9ydCB7R3Jvc3NBbW91bnRDYWxjdWxhdG9yIGFzIMm1YmJ9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9jYWxjdWxhdG9ycy9ncm9zcy1hbW91bnQtY2FsY3VsYXRvcic7XG5leHBvcnQge1RheEFtb3VudENhbGN1bGF0b3IgYXMgybV2fSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvY2FsY3VsYXRvcnMvdGF4LWFtb3VudC1jYWxjdWxhdG9yJztcbmV4cG9ydCB7RXJwVHJpYnV0b3NTZXJ2aWNlIGFzIMm1Y30gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL2VycC10cmlidXRvcy5zZXJ2aWNlJztcbmV4cG9ydCB7Q2FsY3VsYXRpb25SdWxlc1JlZ2lzdHJ5IGFzIMm1c30gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL2NhbGN1bGF0aW9uL3JlZ2lzdHJpZXMvY2FsY3VsYXRpb24tcnVsZXMtcmVnaXN0cmllcy9jYWxjdWxhdGlvbi1ydWxlcy5yZWdpc3RyeSc7XG5leHBvcnQge0luY29taW5nSW52b2ljZUNhbGN1bGF0aW9uUnVsZXNSZWdpc3RyeSBhcyDJtXR9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9jYWxjdWxhdGlvbi9yZWdpc3RyaWVzL2NhbGN1bGF0aW9uLXJ1bGVzLXJlZ2lzdHJpZXMvaW5jb21pbmctaW52b2ljZS1jYWxjdWxhdGlvbi1ydWxlcy5yZWdpc3RyeSc7XG5leHBvcnQge091dGdvaW5nSW52b2ljZUNhbGN1bGF0aW9uUnVsZXNSZWdpc3RyeSBhcyDJtWJmfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvY2FsY3VsYXRpb24vcmVnaXN0cmllcy9jYWxjdWxhdGlvbi1ydWxlcy1yZWdpc3RyaWVzL291dGdvaW5nLWludm9pY2UtY2FsY3VsYXRpb24tcnVsZXMucmVnaXN0cnknO1xuZXhwb3J0IHtQdXJjaGFzZU9yZGVyQ2FsY3VsYXRpb25SdWxlc1JlZ2lzdHJ5IGFzIMm1Yml9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9jYWxjdWxhdGlvbi9yZWdpc3RyaWVzL2NhbGN1bGF0aW9uLXJ1bGVzLXJlZ2lzdHJpZXMvcHVyY2hhc2Utb3JkZXItY2FsY3VsYXRpb24tcnVsZXMucmVnaXN0cnknO1xuZXhwb3J0IHtTYWxlT3JkZXJDYWxjdWxhdGlvblJ1bGVzUmVnaXN0cnkgYXMgybViaH0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL2NhbGN1bGF0aW9uL3JlZ2lzdHJpZXMvY2FsY3VsYXRpb24tcnVsZXMtcmVnaXN0cmllcy9zYWxlLW9yZGVyLWNhbGN1bGF0aW9uLXJ1bGVzLnJlZ2lzdHJ5JztcbmV4cG9ydCB7RWZmZWN0aXZlVGF4UmF0ZUNhbGN1bGF0aW9uUnVsZSBhcyDJtXl9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9jYWxjdWxhdGlvbi9ydWxlcy9lZmZlY3RpdmUtdGF4LXJhdGUtY2FsY3VsYXRpb24tcnVsZSc7XG5leHBvcnQge0dyb3NzQW1vdW50Q2FsY3VsYXRpb25SdWxlIGFzIMm1YmF9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9jYWxjdWxhdGlvbi9ydWxlcy9ncm9zcy1hbW91bnQtY2FsY3VsYXRpb24tcnVsZSc7XG5leHBvcnQge01hbnVhbFRheENhbGN1bGF0aW9uUnVsZSBhcyDJtWJlfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvY2FsY3VsYXRpb24vcnVsZXMvbWFudWFsLXRheC1jYWxjdWxhdGlvbi1ydWxlJztcbmV4cG9ydCB7VGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlIGFzIMm1en0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL2NhbGN1bGF0aW9uL3J1bGVzL3RheC1hbW91bnQtY2FsY3VsYXRpb24tcnVsZSc7XG5leHBvcnQge1RheENhbGN1bGF0aW9uVHlwZUNhbGN1bGF0aW9uUnVsZSBhcyDJtWJkfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvY2FsY3VsYXRpb24vcnVsZXMvdGF4LWNhbGN1bGF0aW9uLXR5cGUtY2FsY3VsYXRpb24tcnVsZSc7XG5leHBvcnQge1RheENsYXNzaWZpY2F0aW9uQ2FsY3VsYXRpb25SdWxlIGFzIMm1YmN9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9jYWxjdWxhdGlvbi9ydWxlcy90YXgtY2xhc3NpZmljYXRpb24tY2FsY3VsYXRpb24tcnVsZSc7XG5leHBvcnQge1RheFJhdGVDYWxjdWxhdGlvblJ1bGUgYXMgybV4fSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvY2FsY3VsYXRpb24vcnVsZXMvdGF4LXJhdGUtY2FsY3VsYXRpb24tcnVsZSc7XG5leHBvcnQge1RheFNpdHVhdGlvbkNhbGN1bGF0aW9uUnVsZSBhcyDJtWJnfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvY2FsY3VsYXRpb24vcnVsZXMvdGF4LXNpdHVhdGlvbi1jYWxjdWxhdGlvbi1ydWxlJztcbmV4cG9ydCB7VGF4YWJsZUJhc2VDYWxjdWxhdGlvblJ1bGUgYXMgybV1fSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvY2FsY3VsYXRpb24vcnVsZXMvdGF4YWJsZS1iYXNlLWNhbGN1bGF0aW9uLXJ1bGUnO1xuZXhwb3J0IHtSdWxlc1NlcnZpY2UgYXMgybVkfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvcnVsZXMuc2VydmljZSc7XG5leHBvcnQge0luY29taW5nSW52b2ljZVN0YXR1c1J1bGVzUmVnaXN0cnkgYXMgybVmfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvc3RhdHVzL3JlZ2lzdHJpZXMvaW5jb21pbmctaW52b2ljZS1zdGF0dXMtcnVsZXMucmVnaXN0cnknO1xuZXhwb3J0IHtPdXRnb2luZ0ludm9pY2VTdGF0dXNSdWxlc1JlZ2lzdHJ5IGFzIMm1aH0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3N0YXR1cy9yZWdpc3RyaWVzL291dGdvaW5nLWludm9pY2Utc3RhdHVzLXJ1bGVzLnJlZ2lzdHJ5JztcbmV4cG9ydCB7U3RhdHVzUnVsZXNSZWdpc3RyeSBhcyDJtWV9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9zdGF0dXMvcmVnaXN0cmllcy9zdGF0dXMtcnVsZXMucmVnaXN0cnknO1xuZXhwb3J0IHtUYXhDbGFzc2lmaWNhdGlvblN0YXR1c1J1bGUgYXMgybVnfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvc3RhdHVzL3J1bGVzL3RheC1jbGFzc2lmaWNhdGlvbi1zdGF0dXMtcnVsZSc7XG5leHBvcnQge0luY29taW5nSW52b2ljZVZhbGlkYXRpb25SdWxlc1JlZ2lzdHJ5IGFzIMm1an0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3ZhbGlkYXRpb24vcmVnaXN0cmllcy9pbmNvbWluZy1pbnZvaWNlLXZhbGlkYXRpb24tcnVsZXMucmVnaXN0cnknO1xuZXhwb3J0IHtPdXRnb2luZ0ludm9pY2VWYWxpZGF0aW9uUnVsZXNSZWdpc3RyeSBhcyDJtXB9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy92YWxpZGF0aW9uL3JlZ2lzdHJpZXMvb3V0Z29pbmctaW52b2ljZS12YWxpZGF0aW9uLXJ1bGVzLnJlZ2lzdHJ5JztcbmV4cG9ydCB7UHVyY2hhc2VPcmRlclZhbGlkYXRpb25SdWxlc1JlZ2lzdHJ5IGFzIMm1cn0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3ZhbGlkYXRpb24vcmVnaXN0cmllcy9wdXJjaGFzZS1vcmRlci12YWxpZGF0aW9uLXJ1bGVzLnJlZ2lzdHJ5JztcbmV4cG9ydCB7U2FsZU9yZGVyVmFsaWRhdGlvblJ1bGVzUmVnaXN0cnkgYXMgybVxfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvdmFsaWRhdGlvbi9yZWdpc3RyaWVzL3NhbGUtb3JkZXItdmFsaWRhdGlvbi1ydWxlcy5yZWdpc3RyeSc7XG5leHBvcnQge1ZhbGlkYXRpb25SdWxlc1JlZ2lzdHJ5IGFzIMm1aX0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3ZhbGlkYXRpb24vcmVnaXN0cmllcy92YWxpZGF0aW9uLXJ1bGVzLnJlZ2lzdHJ5JztcbmV4cG9ydCB7VGF4QW1vdW50UmVxdWlyZWRWYWxpZGF0aW9uUnVsZSBhcyDJtW59IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy92YWxpZGF0aW9uL3J1bGVzL3JlcXVpcmVkL3RheC1hbW91bnQtcmVxdWlyZWQtdmFsaWRhdGlvbi1ydWxlJztcbmV4cG9ydCB7VGF4Q2xhc3NpZmljYXRpb25SZXF1aXJlZFZhbGlkYXRpb25SdWxlIGFzIMm1bX0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3ZhbGlkYXRpb24vcnVsZXMvcmVxdWlyZWQvdGF4LWNsYXNzaWZpY2F0aW9uLXJlcXVpcmVkLXZhbGlkYXRpb24tcnVsZSc7XG5leHBvcnQge1RheFJhdGVSZXF1aXJlZFZhbGlkYXRpb25SdWxlIGFzIMm1bH0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3ZhbGlkYXRpb24vcnVsZXMvcmVxdWlyZWQvdGF4LXJhdGUtcmVxdWlyZWQtdmFsaWRhdGlvbi1ydWxlJztcbmV4cG9ydCB7VGF4U2l0dWF0aW9uUmVxdWlyZWRWYWxpZGF0aW9uUnVsZSBhcyDJtW99IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy92YWxpZGF0aW9uL3J1bGVzL3JlcXVpcmVkL3RheC1zaXR1YXRpb24tcmVxdWlyZWQtdmFsaWRhdGlvbi1ydWxlJztcbmV4cG9ydCB7VGF4YWJsZUJhc2VSZXF1aXJlZFZhbGlkYXRpb25SdWxlIGFzIMm1a30gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3ZhbGlkYXRpb24vcnVsZXMvcmVxdWlyZWQvdGF4YWJsZS1iYXNlLXJlcXVpcmVkLXZhbGlkYXRpb24tcnVsZSc7XG5leHBvcnQge0VudGl0eVNlcnZpY2UgYXMgybVibX0gZnJvbSAnLi9jb3JlL2VudGl0aWVzL2VudGl0eS1zZXJ2aWNlJztcbmV4cG9ydCB7UXVhbnRpZGFkZURpc3Bvbml2ZWxEZW1hbmRhTW9kdWxlIGFzIMm1Ym59IGZyb20gJy4vY29yZS9lbnRpdGllcy9xdWFudGlkYWRlLWRpc3Bvbml2ZWwtZGVtYW5kYS9xdWFudGlkYWRlLWRpc3Bvbml2ZWwtZGVtYW5kYS5tb2R1bGUnO1xuZXhwb3J0IHtRdWFudGlkYWRlRGlzcG9uaXZlbERlbWFuZGFTZXJ2aWNlIGFzIMm1Ymx9IGZyb20gJy4vY29yZS9lbnRpdGllcy9xdWFudGlkYWRlLWRpc3Bvbml2ZWwtZGVtYW5kYS9xdWFudGlkYWRlLWRpc3Bvbml2ZWwtZGVtYW5kYS5zZXJ2aWNlJzsiXX0=
35
+ export { IncomingInvoiceValidationRulesRegistry as ɵl } from './components/tributos/rules/validation/registries/incoming-invoice-validation-rules.registry';
36
+ export { OutgoingInvoiceValidationRulesRegistry as ɵr } from './components/tributos/rules/validation/registries/outgoing-invoice-validation-rules.registry';
37
+ export { PurchaseOrderValidationRulesRegistry as ɵu } from './components/tributos/rules/validation/registries/purchase-order-validation-rules.registry';
38
+ export { SaleOrderValidationRulesRegistry as ɵt } from './components/tributos/rules/validation/registries/sale-order-validation-rules.registry';
39
+ export { ValidationRulesRegistry as ɵk } from './components/tributos/rules/validation/registries/validation-rules.registry';
40
+ export { AssessmentPeriodRequiredValidationRule as ɵs } from './components/tributos/rules/validation/rules/required/assessment-period-required-validation-rule';
41
+ export { TaxAmountRequiredValidationRule as ɵp } from './components/tributos/rules/validation/rules/required/tax-amount-required-validation-rule';
42
+ export { TaxClassificationRequiredValidationRule as ɵo } from './components/tributos/rules/validation/rules/required/tax-classification-required-validation-rule';
43
+ export { TaxRateRequiredValidationRule as ɵn } from './components/tributos/rules/validation/rules/required/tax-rate-required-validation-rule';
44
+ export { TaxSituationRequiredValidationRule as ɵq } from './components/tributos/rules/validation/rules/required/tax-situation-required-validation-rule';
45
+ export { TaxableBaseRequiredValidationRule as ɵm } from './components/tributos/rules/validation/rules/required/taxable-base-required-validation-rule';
46
+ export { EntityService as ɵbq } from './core/entities/entity-service';
47
+ export { QuantidadeDisponivelDemandaModule as ɵbr } from './core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.module';
48
+ export { QuantidadeDisponivelDemandaService as ɵbp } from './core/entities/quantidade-disponivel-demanda/quantidade-disponivel-demanda.service';
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC1lcnB4LWNvbXBvbmVudHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9lcnB4LWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJzZW5pb3ItZ2VzdGFvLWVtcHJlc2FyaWFsLWVycHgtY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxZQUFZLElBQUksR0FBRyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFDLG9CQUFvQixJQUFJLEdBQUcsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUMsZ0JBQWdCLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEVBQUUsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQ2pILE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxHQUFHLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUN2RyxPQUFPLEVBQUMsbUJBQW1CLElBQUksRUFBRSxFQUFDLE1BQU0seURBQXlELENBQUM7QUFDbEcsT0FBTyxFQUFDLGtCQUFrQixJQUFJLEVBQUUsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSw0R0FBNEcsQ0FBQztBQUMxSixPQUFPLEVBQUMsdUNBQXVDLElBQUksRUFBRSxFQUFDLE1BQU0sNkhBQTZILENBQUM7QUFDMUwsT0FBTyxFQUFDLHVDQUF1QyxJQUFJLEdBQUcsRUFBQyxNQUFNLDZIQUE2SCxDQUFDO0FBQzNMLE9BQU8sRUFBQyxxQ0FBcUMsSUFBSSxHQUFHLEVBQUMsTUFBTSwySEFBMkgsQ0FB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bGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7Rm9jdXNTZXJ2aWNlIGFzIMm1Ym59IGZyb20gJy4vY29tcG9uZW50cy9mb2N1cy9mb2N1cy5zZXJ2aWNlJztcbmV4cG9ydCB7RXJwTG90ZVNlcmllc1NlcnZpY2UgYXMgybVib30gZnJvbSAnLi9jb21wb25lbnRzL2xvdGUtc2VyaWUvZXJwLWxvdGUtc2VyaWUuc2VydmljZSc7XG5leHBvcnQge0VycFJlc3Vtb0NvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vY29tcG9uZW50cy9yZXN1bW8vZXJwLXJlc3Vtby5jb21wb25lbnQnO1xuZXhwb3J0IHtFcnBSZXN1bW9TZXJ2aWNlIGFzIMm1Yn0gZnJvbSAnLi9jb21wb25lbnRzL3Jlc3Vtby9lcnAtcmVzdW1vLnNlcnZpY2UnO1xuZXhwb3J0IHtFZmZlY3RpdmVUYXhSYXRlQ2FsY3VsYXRvciBhcyDJtXp9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9jYWxjdWxhdG9ycy9lZmZlY3RpdmUtdGF4LXJhdGUtY2FsY3VsYXRvcic7XG5leHBvcnQge0dyb3NzQW1vdW50Q2FsY3VsYXRvciBhcyDJtWJlfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvY2FsY3VsYXRvcnMvZ3Jvc3MtYW1vdW50LWNhbGN1bGF0b3InO1xuZXhwb3J0IHtUYXhBbW91bnRDYWxjdWxhdG9yIGFzIMm1eX0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL2NhbGN1bGF0b3JzL3RheC1hbW91bnQtY2FsY3VsYXRvcic7XG5leHBvcnQge0VycFRyaWJ1dG9zU2VydmljZSBhcyDJtWN9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9lcnAtdHJpYnV0b3Muc2VydmljZSc7XG5leHBvcnQge0NhbGN1bGF0aW9uUnVsZXNSZWdpc3RyeSBhcyDJtXZ9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9jYWxjdWxhdGlvbi9yZWdpc3RyaWVzL2NhbGN1bGF0aW9uLXJ1bGVzLXJlZ2lzdHJpZXMvY2FsY3VsYXRpb24tcnVsZXMucmVnaXN0cnknO1xuZXhwb3J0IHtJbmNvbWluZ0ludm9pY2VDYWxjdWxhdGlvblJ1bGVzUmVnaXN0cnkgYXMgybV3fSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvY2FsY3VsYXRpb24vcmVnaXN0cmllcy9jYWxjdWxhdGlvbi1ydWxlcy1yZWdpc3RyaWVzL2luY29taW5nLWludm9pY2UtY2FsY3VsYXRpb24tcnVsZXMucmVnaXN0cnknO1xuZXhwb3J0IHtPdXRnb2luZ0ludm9pY2VDYWxjdWxhdGlvblJ1bGVzUmVnaXN0cnkgYXMgybViaX0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL2NhbGN1bGF0aW9uL3JlZ2lzdHJpZXMvY2FsY3VsYXRpb24tcnVsZXMtcmVnaXN0cmllcy9vdXRnb2luZy1pbnZvaWNlLWNhbGN1bGF0aW9uLXJ1bGVzLnJlZ2lzdHJ5JztcbmV4cG9ydCB7UHVyY2hhc2VPcmRlckNhbGN1bGF0aW9uUnVsZXNSZWdpc3RyeSBhcyDJtWJtfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvY2FsY3VsYXRpb24vcmVnaXN0cmllcy9jYWxjdWxhdGlvbi1ydWxlcy1yZWdpc3RyaWVzL3B1cmNoYXNlLW9yZGVyLWNhbGN1bGF0aW9uLXJ1bGVzLnJlZ2lzdHJ5JztcbmV4cG9ydCB7U2FsZU9yZGVyQ2FsY3VsYXRpb25SdWxlc1JlZ2lzdHJ5IGFzIMm1Ymx9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9jYWxjdWxhdGlvbi9yZWdpc3RyaWVzL2NhbGN1bGF0aW9uLXJ1bGVzLXJlZ2lzdHJpZXMvc2FsZS1vcmRlci1jYWxjdWxhdGlvbi1ydWxlcy5yZWdpc3RyeSc7XG5leHBvcnQge0Fzc2Vzc21lbnRQZXJpb2RDYWxjdWxhdGlvblJ1bGUgYXMgybVia30gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL2NhbGN1bGF0aW9uL3J1bGVzL2Fzc2Vzc21lbnQtcGVyaW9kLWNhbGN1bGF0aW9uLXJ1bGUnO1xuZXhwb3J0IHtFZmZlY3RpdmVUYXhSYXRlQ2FsY3VsYXRpb25SdWxlIGFzIMm1YmJ9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9jYWxjdWxhdGlvbi9ydWxlcy9lZmZlY3RpdmUtdGF4LXJhdGUtY2FsY3VsYXRpb24tcnVsZSc7XG5leHBvcnQge0dyb3NzQW1vdW50Q2FsY3VsYXRpb25SdWxlIGFzIMm1YmR9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9jYWxjdWxhdGlvbi9ydWxlcy9ncm9zcy1hbW91bnQtY2FsY3VsYXRpb24tcnVsZSc7XG5leHBvcnQge01hbnVhbFRheENhbGN1bGF0aW9uUnVsZSBhcyDJtWJofSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvY2FsY3VsYXRpb24vcnVsZXMvbWFudWFsLXRheC1jYWxjdWxhdGlvbi1ydWxlJztcbmV4cG9ydCB7VGF4QW1vdW50Q2FsY3VsYXRpb25SdWxlIGFzIMm1YmN9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9jYWxjdWxhdGlvbi9ydWxlcy90YXgtYW1vdW50LWNhbGN1bGF0aW9uLXJ1bGUnO1xuZXhwb3J0IHtUYXhDYWxjdWxhdGlvblR5cGVDYWxjdWxhdGlvblJ1bGUgYXMgybViZ30gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL2NhbGN1bGF0aW9uL3J1bGVzL3RheC1jYWxjdWxhdGlvbi10eXBlLWNhbGN1bGF0aW9uLXJ1bGUnO1xuZXhwb3J0IHtUYXhDbGFzc2lmaWNhdGlvbkNhbGN1bGF0aW9uUnVsZSBhcyDJtWJmfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvY2FsY3VsYXRpb24vcnVsZXMvdGF4LWNsYXNzaWZpY2F0aW9uLWNhbGN1bGF0aW9uLXJ1bGUnO1xuZXhwb3J0IHtUYXhSYXRlQ2FsY3VsYXRpb25SdWxlIGFzIMm1YmF9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9jYWxjdWxhdGlvbi9ydWxlcy90YXgtcmF0ZS1jYWxjdWxhdGlvbi1ydWxlJztcbmV4cG9ydCB7VGF4U2l0dWF0aW9uQ2FsY3VsYXRpb25SdWxlIGFzIMm1Ymp9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9jYWxjdWxhdGlvbi9ydWxlcy90YXgtc2l0dWF0aW9uLWNhbGN1bGF0aW9uLXJ1bGUnO1xuZXhwb3J0IHtUYXhhYmxlQmFzZUNhbGN1bGF0aW9uUnVsZSBhcyDJtXh9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9jYWxjdWxhdGlvbi9ydWxlcy90YXhhYmxlLWJhc2UtY2FsY3VsYXRpb24tcnVsZSc7XG5leHBvcnQge1J1bGVzU2VydmljZSBhcyDJtWR9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9ydWxlcy5zZXJ2aWNlJztcbmV4cG9ydCB7SW5jb21pbmdJbnZvaWNlU3RhdHVzUnVsZXNSZWdpc3RyeSBhcyDJtWZ9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9zdGF0dXMvcmVnaXN0cmllcy9pbmNvbWluZy1pbnZvaWNlLXN0YXR1cy1ydWxlcy5yZWdpc3RyeSc7XG5leHBvcnQge091dGdvaW5nSW52b2ljZVN0YXR1c1J1bGVzUmVnaXN0cnkgYXMgybVofSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvc3RhdHVzL3JlZ2lzdHJpZXMvb3V0Z29pbmctaW52b2ljZS1zdGF0dXMtcnVsZXMucmVnaXN0cnknO1xuZXhwb3J0IHtQdXJjaGFzZU9yZGVyU3RhdHVzUnVsZXNSZWdpc3RyeSBhcyDJtWp9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9zdGF0dXMvcmVnaXN0cmllcy9wdXJjaGFzZS1vcmRlci1zdGF0dXMtcnVsZXMucmVnaXN0cnknO1xuZXhwb3J0IHtTYWxlT3JkZXJTdGF0dXNSdWxlc1JlZ2lzdHJ5IGFzIMm1aX0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3N0YXR1cy9yZWdpc3RyaWVzL3NhbGUtb3JkZXItc3RhdHVzLXJ1bGVzLnJlZ2lzdHJ5JztcbmV4cG9ydCB7U3RhdHVzUnVsZXNSZWdpc3RyeSBhcyDJtWV9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy9zdGF0dXMvcmVnaXN0cmllcy9zdGF0dXMtcnVsZXMucmVnaXN0cnknO1xuZXhwb3J0IHtUYXhDbGFzc2lmaWNhdGlvblN0YXR1c1J1bGUgYXMgybVnfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvc3RhdHVzL3J1bGVzL3RheC1jbGFzc2lmaWNhdGlvbi1zdGF0dXMtcnVsZSc7XG5leHBvcnQge0luY29taW5nSW52b2ljZVZhbGlkYXRpb25SdWxlc1JlZ2lzdHJ5IGFzIMm1bH0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3ZhbGlkYXRpb24vcmVnaXN0cmllcy9pbmNvbWluZy1pbnZvaWNlLXZhbGlkYXRpb24tcnVsZXMucmVnaXN0cnknO1xuZXhwb3J0IHtPdXRnb2luZ0ludm9pY2VWYWxpZGF0aW9uUnVsZXNSZWdpc3RyeSBhcyDJtXJ9IGZyb20gJy4vY29tcG9uZW50cy90cmlidXRvcy9ydWxlcy92YWxpZGF0aW9uL3JlZ2lzdHJpZXMvb3V0Z29pbmctaW52b2ljZS12YWxpZGF0aW9uLXJ1bGVzLnJlZ2lzdHJ5JztcbmV4cG9ydCB7UHVyY2hhc2VPcmRlclZhbGlkYXRpb25SdWxlc1JlZ2lzdHJ5IGFzIMm1dX0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3ZhbGlkYXRpb24vcmVnaXN0cmllcy9wdXJjaGFzZS1vcmRlci12YWxpZGF0aW9uLXJ1bGVzLnJlZ2lzdHJ5JztcbmV4cG9ydCB7U2FsZU9yZGVyVmFsaWRhdGlvblJ1bGVzUmVnaXN0cnkgYXMgybV0fSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvdmFsaWRhdGlvbi9yZWdpc3RyaWVzL3NhbGUtb3JkZXItdmFsaWRhdGlvbi1ydWxlcy5yZWdpc3RyeSc7XG5leHBvcnQge1ZhbGlkYXRpb25SdWxlc1JlZ2lzdHJ5IGFzIMm1a30gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3ZhbGlkYXRpb24vcmVnaXN0cmllcy92YWxpZGF0aW9uLXJ1bGVzLnJlZ2lzdHJ5JztcbmV4cG9ydCB7QXNzZXNzbWVudFBlcmlvZFJlcXVpcmVkVmFsaWRhdGlvblJ1bGUgYXMgybVzfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvdmFsaWRhdGlvbi9ydWxlcy9yZXF1aXJlZC9hc3Nlc3NtZW50LXBlcmlvZC1yZXF1aXJlZC12YWxpZGF0aW9uLXJ1bGUnO1xuZXhwb3J0IHtUYXhBbW91bnRSZXF1aXJlZFZhbGlkYXRpb25SdWxlIGFzIMm1cH0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3ZhbGlkYXRpb24vcnVsZXMvcmVxdWlyZWQvdGF4LWFtb3VudC1yZXF1aXJlZC12YWxpZGF0aW9uLXJ1bGUnO1xuZXhwb3J0IHtUYXhDbGFzc2lmaWNhdGlvblJlcXVpcmVkVmFsaWRhdGlvblJ1bGUgYXMgybVvfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvdmFsaWRhdGlvbi9ydWxlcy9yZXF1aXJlZC90YXgtY2xhc3NpZmljYXRpb24tcmVxdWlyZWQtdmFsaWRhdGlvbi1ydWxlJztcbmV4cG9ydCB7VGF4UmF0ZVJlcXVpcmVkVmFsaWRhdGlvblJ1bGUgYXMgybVufSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvdmFsaWRhdGlvbi9ydWxlcy9yZXF1aXJlZC90YXgtcmF0ZS1yZXF1aXJlZC12YWxpZGF0aW9uLXJ1bGUnO1xuZXhwb3J0IHtUYXhTaXR1YXRpb25SZXF1aXJlZFZhbGlkYXRpb25SdWxlIGFzIMm1cX0gZnJvbSAnLi9jb21wb25lbnRzL3RyaWJ1dG9zL3J1bGVzL3ZhbGlkYXRpb24vcnVsZXMvcmVxdWlyZWQvdGF4LXNpdHVhdGlvbi1yZXF1aXJlZC12YWxpZGF0aW9uLXJ1bGUnO1xuZXhwb3J0IHtUYXhhYmxlQmFzZVJlcXVpcmVkVmFsaWRhdGlvblJ1bGUgYXMgybVtfSBmcm9tICcuL2NvbXBvbmVudHMvdHJpYnV0b3MvcnVsZXMvdmFsaWRhdGlvbi9ydWxlcy9yZXF1aXJlZC90YXhhYmxlLWJhc2UtcmVxdWlyZWQtdmFsaWRhdGlvbi1ydWxlJztcbmV4cG9ydCB7RW50aXR5U2VydmljZSBhcyDJtWJxfSBmcm9tICcuL2NvcmUvZW50aXRpZXMvZW50aXR5LXNlcnZpY2UnO1xuZXhwb3J0IHtRdWFudGlkYWRlRGlzcG9uaXZlbERlbWFuZGFNb2R1bGUgYXMgybVicn0gZnJvbSAnLi9jb3JlL2VudGl0aWVzL3F1YW50aWRhZGUtZGlzcG9uaXZlbC1kZW1hbmRhL3F1YW50aWRhZGUtZGlzcG9uaXZlbC1kZW1hbmRhLm1vZHVsZSc7XG5leHBvcnQge1F1YW50aWRhZGVEaXNwb25pdmVsRGVtYW5kYVNlcnZpY2UgYXMgybVicH0gZnJvbSAnLi9jb3JlL2VudGl0aWVzL3F1YW50aWRhZGUtZGlzcG9uaXZlbC1kZW1hbmRhL3F1YW50aWRhZGUtZGlzcG9uaXZlbC1kZW1hbmRhLnNlcnZpY2UnOyJdfQ==