@vendure/admin-ui 3.0.5 → 3.0.7

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 (55) hide show
  1. package/core/common/version.d.ts +1 -1
  2. package/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.d.ts +1 -0
  3. package/core/shared/components/product-variant-selector/product-variant-selector.component.d.ts +1 -1
  4. package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +1 -1
  5. package/esm2022/catalog/components/collection-list/collection-list.component.mjs +1 -1
  6. package/esm2022/catalog/components/facet-list/facet-list.component.mjs +11 -11
  7. package/esm2022/catalog/components/product-list/product-list.component.mjs +1 -1
  8. package/esm2022/catalog/components/product-variant-quick-jump/product-variant-quick-jump.component.mjs +13 -13
  9. package/esm2022/core/common/base-list.component.mjs +1 -1
  10. package/esm2022/core/common/version.mjs +2 -2
  11. package/esm2022/core/data/data.module.mjs +1 -1
  12. package/esm2022/core/data/providers/base-data.service.mjs +1 -1
  13. package/esm2022/core/data/providers/collection-data.service.mjs +1 -1
  14. package/esm2022/core/data/providers/data.service.mjs +1 -1
  15. package/esm2022/core/data/providers/product-data.service.mjs +1 -1
  16. package/esm2022/core/data/utils/add-custom-fields.mjs +1 -1
  17. package/esm2022/core/providers/data-table/data-table-config.service.mjs +1 -1
  18. package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +1 -1
  19. package/esm2022/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.mjs +23 -3
  20. package/esm2022/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +1 -1
  21. package/esm2022/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +2 -2
  22. package/esm2022/core/shared/components/product-variant-selector/product-variant-selector.component.mjs +2 -2
  23. package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +7 -1
  24. package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +11 -11
  25. package/esm2022/customer/components/customer-list/customer-list.component.mjs +24 -24
  26. package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +11 -11
  27. package/esm2022/order/components/order-data-table/order-data-table.component.mjs +1 -1
  28. package/esm2022/order/components/order-list/order-list.component.mjs +1 -1
  29. package/esm2022/order/components/refund-order-dialog/refund-order-dialog.component.mjs +3 -3
  30. package/esm2022/order/order.routes.mjs +1 -2
  31. package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +30 -30
  32. package/esm2022/settings/components/channel-list/channel-list.component.mjs +11 -11
  33. package/esm2022/settings/components/country-list/country-list.component.mjs +19 -19
  34. package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +19 -19
  35. package/esm2022/settings/components/role-list/role-list.component.mjs +11 -11
  36. package/esm2022/settings/components/seller-list/seller-list.component.mjs +16 -16
  37. package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +19 -19
  38. package/esm2022/settings/components/stock-location-list/stock-location-list.component.mjs +17 -17
  39. package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +11 -11
  40. package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +11 -11
  41. package/esm2022/settings/components/zone-list/zone-list.component.mjs +16 -16
  42. package/fesm2022/vendure-admin-ui-catalog.mjs +22 -22
  43. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  44. package/fesm2022/vendure-admin-ui-core.mjs +32 -6
  45. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  46. package/fesm2022/vendure-admin-ui-customer.mjs +33 -33
  47. package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
  48. package/fesm2022/vendure-admin-ui-marketing.mjs +10 -10
  49. package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
  50. package/fesm2022/vendure-admin-ui-order.mjs +2 -3
  51. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
  52. package/fesm2022/vendure-admin-ui-settings.mjs +169 -169
  53. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  54. package/package.json +2 -2
  55. package/static/i18n-messages/sv.json +12 -12
@@ -99,4 +99,4 @@ function isFragmentDefinition(value) {
99
99
  function isFieldNode(value) {
100
100
  return value.kind === Kind.FIELD;
101
101
  }
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWN1c3RvbS1maWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvdXRpbHMvYWRkLWN1c3RvbS1maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtILElBQUksR0FFUCxNQUFNLFNBQVMsQ0FBQztBQVNqQjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUMzQixZQUEwQixFQUMxQixZQUE4QyxFQUM5QyxtQkFBOEI7SUFFOUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFpQixDQUFDO0lBQ3ZFLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFcEUsS0FBSyxNQUFNLFdBQVcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUcvQyxDQUFDO1FBRUYsSUFBSSxVQUFVLEtBQU0sY0FBc0IsRUFBRSxDQUFDO1lBQ3pDLHFGQUFxRjtZQUNyRiw2QkFBNkI7WUFDN0IsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxVQUFVLEtBQU0sU0FBaUIsRUFBRSxDQUFDO1lBQ3BDLGdDQUFnQztZQUNoQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQzFCLENBQUM7UUFFRCxNQUFNLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsSUFBSSxtQkFBbUIsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwRCxpRUFBaUU7WUFDakUsdUJBQXVCO1lBQ3ZCLE1BQU0seUJBQXlCLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxD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Q0FBQyxHQUFHLENBQzNCLFdBQVcsQ0FBQyxFQUFFLENBQ1YsQ0FBQzs0QkFDRyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7NEJBQ2hCLElBQUksRUFBRTtnQ0FDRixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0NBQ2YsS0FBSyxFQUFFLFdBQVcsQ0FBQyxJQUFJOzZCQUMxQjt5QkFDSixDQUFjLENBQ3RCO3FCQUNKO2lCQUNKLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLEtBQXFCO0lBQy9DLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsbUJBQW1CLENBQUM7QUFDbkQsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQW9CO0lBQ3JDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERlZmluaXRpb25Ob2RlLFxuICAgIERvY3VtZW50Tm9kZSxcbiAgICBGaWVsZE5vZGUsXG4gICAgRnJhZ21lbnREZWZpbml0aW9uTm9kZSxcbiAgICBLaW5kLFxuICAgIFNlbGVjdGlvbk5vZGUsXG59IGZyb20gJ2dyYXBocWwnO1xuXG5pbXBvcnQge1xuICAgIEN1c3RvbUZpZWxkQ29uZmlnLFxuICAgIEN1c3RvbUZpZWxkcyxcbiAgICBFbnRpdHlDdXN0b21GaWVsZHMsXG4gICAgUmVsYXRpb25DdXN0b21GaWVsZEZyYWdtZW50LFxufSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcblxuLyoqXG4gKiBHaXZlbiBhIEdyYXBoUUwgQVNUIChEb2N1bWVudE5vZGUpLCB0aGlzIGZ1bmN0aW9uIGxvb2tzIGZvciBmcmFnbWVudCBkZWZpbml0aW9ucyBhbmQgYWRkcyBhbmQgY29uZmlndXJlZFxuICogY3VzdG9tIGZpZWxkcyB0byB0aG9zZSBmcmFnbWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRDdXN0b21GaWVsZHMoXG4gICAgZG9jdW1lbnROb2RlOiBEb2N1bWVudE5vZGUsXG4gICAgY3VzdG9tRmllbGRzOiBNYXA8c3RyaW5nLCBDdXN0b21GaWVsZENvbmZpZ1tdPixcbiAgICBpbmNsdWRlQ3VzdG9tRmllbGRzPzogc3RyaW5nW10sXG4pOiBEb2N1bWVudE5vZGUge1xuICAgIGNvbnN0IGNsb25lID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkb2N1bWVudE5vZGUpKSBhcyBEb2N1bWVudE5vZGU7XG4gICAgY29uc3QgZnJhZ21lbnREZWZzID0gY2xvbmUuZGVmaW5pdGlvbnMuZmlsdGVyKGlzRnJhZ21lbnREZWZpbml0aW9uKTtcblxuICAgIGZvciAoY29uc3QgZnJhZ21lbnREZWYgb2YgZnJhZ21lbnREZWZzKSB7XG4gICAgICAgIGxldCBlbnRpdHlUeXBlID0gZnJhZ21lbnREZWYudHlwZUNvbmRpdGlvbi5uYW1lLnZhbHVlIGFzIGtleW9mIFBpY2s8XG4gICAgICAgICAgICBDdXN0b21GaWVsZHMsXG4gICAgICAgICAgICBFeGNsdWRlPGtleW9mIEN1c3RvbUZpZWxkcywgJ19fdHlwZW5hbWUnPlxuICAgICAgICA+O1xuXG4gICAgICAgIGlmIChlbnRpdHlUeXBlID09PSAoJ09yZGVyQWRkcmVzcycgYXMgYW55KSkge1xuICAgICAgICAgICAgLy8gT3JkZXJBZGRyZXNzIGlzIGEgc3BlY2lhbCBjYXNlIG9mIHRoZSBBZGRyZXNzIGVudGl0eSwgYW5kIHNoYXJlcyBpdHMgY3VzdG9tIGZpZWxkc1xuICAgICAgICAgICAgLy8gc28gd2UgdHJlYXQgaXQgYXMgYW4gYWxpYXNcbiAgICAgICAgICAgIGVudGl0eVR5cGUgPSAnQWRkcmVzcyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZW50aXR5VHlwZSA9PT0gKCdDb3VudHJ5JyBhcyBhbnkpKSB7XG4gICAgICAgICAgICAvLyBDb3VudHJ5IGlzIGFuIGFsaWFzIG9mIFJlZ2lvblxuICAgICAgICAgICAgZW50aXR5VHlwZSA9ICdSZWdpb24nO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VzdG9tRmllbGRzRm9yVHlwZSA9IGN1c3RvbUZpZWxkcy5nZXQoZW50aXR5VHlwZSk7XG4gICAgICAgIGlmIChjdXN0b21GaWVsZHNGb3JUeXBlICYmIGN1c3RvbUZpZWxkc0ZvclR5cGUubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBDaGVjayBpZiB0aGVyZSBpcyBhbHJlYWR5IGEgY3VzdG9tRmllbGRzIGZpZWxkIGluIHRoZSBmcmFnbWVudFxuICAgICAgICAgICAgLy8gdG8gYXZvaWQgZHVwbGljYXRpb25cbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nQ3VzdG9tRmllbGRzRmllbGQgPSBmcmFnbWVudERlZi5zZWxlY3Rpb25TZXQuc2VsZWN0aW9ucy5maW5kKFxuICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9PiBpc0ZpZWxkTm9kZShzZWxlY3Rpb24pICYmIHNlbGVjdGlvbi5uYW1lLnZhbHVlID09PSAnY3VzdG9tRmllbGRzJyxcbiAgICAgICAgICAgICkgYXMgRmllbGROb2RlIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uTm9kZXM6IFNlbGVjdGlvbk5vZGVbXSA9IGN1c3RvbUZpZWxkc0ZvclR5cGVcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGZpZWxkID0+ICFpbmNsdWRlQ3VzdG9tRmllbGRzIHx8IGluY2x1ZGVDdXN0b21GaWVsZHMuaW5jbHVkZXMoZmllbGQubmFtZSkpXG4gICAgICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tRmllbGQgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5GSUVMRCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuTkFNRSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGN1c3RvbUZpZWxkLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3IgXCJyZWxhdGlvblwiIGN1c3RvbSBmaWVsZHMsIHdlIG5lZWQgdG8gYWxzbyBzZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGwgdGhlIHNjYWxhciBmaWVsZHMgb2YgdGhlIHJlbGF0ZWQgdHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihjdXN0b21GaWVsZC50eXBlID09PSAncmVsYXRpb24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25TZXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuU0VMRUNUSU9OX1NFVCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbnM6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21GaWVsZCBhcyBSZWxhdGlvbkN1c3RvbUZpZWxkRnJhZ21lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkuc2NhbGFyRmllbGRzLm1hcChmID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5GSUVMRCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB7IGtpbmQ6IEtpbmQuTkFNRSwgdmFsdWU6IGYgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkgYXMgRmllbGROb2RlLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoIWV4aXN0aW5nQ3VzdG9tRmllbGRzRmllbGQpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiBubyBjdXN0b21GaWVsZHMgZmllbGQgZXhpc3RzLCBhZGQgb25lXG4gICAgICAgICAgICAgICAgKGZyYWdtZW50RGVmLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zIGFzIFNlbGVjdGlvbk5vZGVbXSkucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuRklFTEQsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuTkFNRSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnY3VzdG9tRmllbGRzJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uU2V0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBLaW5kLlNFTEVDVElPTl9TRVQsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25zOiBzZWxlY3Rpb25Ob2RlcyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgYSBjdXN0b21GaWVsZHMgZmllbGQgYWxyZWFkeSBleGlzdHMsIGFkZCB0aGUgY3VzdG9tIGZpZWxkc1xuICAgICAgICAgICAgICAgIC8vIHRvIHRoZSBleGlzdGluZyBzZWxlY3Rpb24gc2V0XG4gICAgICAgICAgICAgICAgKGV4aXN0aW5nQ3VzdG9tRmllbGRzRmllbGQuc2VsZWN0aW9uU2V0IGFzIGFueSkgPSB7XG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuU0VMRUNUSU9OX1NFVCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uczogc2VsZWN0aW9uTm9kZXMsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbG9jYWxpemVkRmllbGRzID0gY3VzdG9tRmllbGRzRm9yVHlwZS5maWx0ZXIoXG4gICAgICAgICAgICAgICAgZmllbGQgPT4gZmllbGQudHlwZSA9PT0gJ2xvY2FsZVN0cmluZycgfHwgZmllbGQudHlwZSA9PT0gJ2xvY2FsZVRleHQnLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zRmllbGQgPSBmcmFnbWVudERlZi5zZWxlY3Rpb25TZXQuc2VsZWN0aW9uc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoaXNGaWVsZE5vZGUpXG4gICAgICAgICAgICAgICAgLmZpbmQoZmllbGQgPT4gZmllbGQubmFtZS52YWx1ZSA9PT0gJ3RyYW5zbGF0aW9ucycpO1xuXG4gICAgICAgICAgICBpZiAobG9jYWxpemVkRmllbGRzLmxlbmd0aCAmJiB0cmFuc2xhdGlvbnNGaWVsZCAmJiB0cmFuc2xhdGlvbnNGaWVsZC5zZWxlY3Rpb25TZXQpIHtcbiAgICAgICAgICAgICAgICAodHJhbnNsYXRpb25zRmllbGQuc2VsZWN0aW9uU2V0LnNlbGVjdGlvbnMgYXMgU2VsZWN0aW9uTm9kZVtdKS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZToge1xuICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5OQU1FLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICdjdXN0b21GaWVsZHMnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBraW5kOiBLaW5kLkZJRUxELFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25TZXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuU0VMRUNUSU9OX1NFVCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbnM6IGxvY2FsaXplZEZpZWxkcy5tYXAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tRmllbGQgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuRklFTEQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5OQU1FLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBjdXN0b21GaWVsZC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgYXMgRmllbGROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjbG9uZTtcbn1cblxuZnVuY3Rpb24gaXNGcmFnbWVudERlZmluaXRpb24odmFsdWU6IERlZmluaXRpb25Ob2RlKTogdmFsdWUgaXMgRnJhZ21lbnREZWZpbml0aW9uTm9kZSB7XG4gICAgcmV0dXJuIHZhbHVlLmtpbmQgPT09IEtpbmQuRlJBR01FTlRfREVGSU5JVElPTjtcbn1cblxuZnVuY3Rpb24gaXNGaWVsZE5vZGUodmFsdWU6IFNlbGVjdGlvbk5vZGUpOiB2YWx1ZSBpcyBGaWVsZE5vZGUge1xuICAgIHJldHVybiB2YWx1ZS5raW5kID09PSBLaW5kLkZJRUxEO1xufVxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWN1c3RvbS1maWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2RhdGEvdXRpbHMvYWRkLWN1c3RvbS1maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtILElBQUksR0FFUCxNQUFNLFNBQVMsQ0FBQztBQVNqQjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUMzQixZQUEwQixFQUMxQixZQUE4QyxFQUM5QyxtQkFBOEI7SUFFOUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFpQixDQUFDO0lBQ3ZFLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFcEUsS0FBSyxNQUFNLFdBQVcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUcvQyxDQUFDO1FBRUYsSUFBSSxVQUFVLEtBQU0sY0FBc0IsRUFBRSxDQUFDO1lBQ3pDLHFGQUFxRjtZQUNyRiw2QkFBNkI7WUFDN0IsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxVQUFVLEtBQU0sU0FBaUIsRUFBRSxDQUFDO1lBQ3BDLGdDQUFnQztZQUNoQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQzFCLENBQUM7UUFFRCxNQUFNLG1CQUFtQixHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsSUFBSSxtQkFBbUIsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwRCxpRUFBaUU7WUFDakUsdUJBQXVCO1lBQ3ZCLE1BQU0seUJBQXlCLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxD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Q0FBQyxHQUFHLENBQzNCLFdBQVcsQ0FBQyxFQUFFLENBQ1YsQ0FBQzs0QkFDRyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUs7NEJBQ2hCLElBQUksRUFBRTtnQ0FDRixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0NBQ2YsS0FBSyxFQUFFLFdBQVcsQ0FBQyxJQUFJOzZCQUMxQjt5QkFDSixDQUFjLENBQ3RCO3FCQUNKO2lCQUNKLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLEtBQXFCO0lBQy9DLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsbUJBQW1CLENBQUM7QUFDbkQsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQW9CO0lBQ3JDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgRGVmaW5pdGlvbk5vZGUsXHJcbiAgICBEb2N1bWVudE5vZGUsXHJcbiAgICBGaWVsZE5vZGUsXHJcbiAgICBGcmFnbWVudERlZmluaXRpb25Ob2RlLFxyXG4gICAgS2luZCxcclxuICAgIFNlbGVjdGlvbk5vZGUsXHJcbn0gZnJvbSAnZ3JhcGhxbCc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgQ3VzdG9tRmllbGRDb25maWcsXHJcbiAgICBDdXN0b21GaWVsZHMsXHJcbiAgICBFbnRpdHlDdXN0b21GaWVsZHMsXHJcbiAgICBSZWxhdGlvbkN1c3RvbUZpZWxkRnJhZ21lbnQsXHJcbn0gZnJvbSAnLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcblxyXG4vKipcclxuICogR2l2ZW4gYSBHcmFwaFFMIEFTVCAoRG9jdW1lbnROb2RlKSwgdGhpcyBmdW5jdGlvbiBsb29rcyBmb3IgZnJhZ21lbnQgZGVmaW5pdGlvbnMgYW5kIGFkZHMgYW5kIGNvbmZpZ3VyZWRcclxuICogY3VzdG9tIGZpZWxkcyB0byB0aG9zZSBmcmFnbWVudHMuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYWRkQ3VzdG9tRmllbGRzKFxyXG4gICAgZG9jdW1lbnROb2RlOiBEb2N1bWVudE5vZGUsXHJcbiAgICBjdXN0b21GaWVsZHM6IE1hcDxzdHJpbmcsIEN1c3RvbUZpZWxkQ29uZmlnW10+LFxyXG4gICAgaW5jbHVkZUN1c3RvbUZpZWxkcz86IHN0cmluZ1tdLFxyXG4pOiBEb2N1bWVudE5vZGUge1xyXG4gICAgY29uc3QgY2xvbmUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRvY3VtZW50Tm9kZSkpIGFzIERvY3VtZW50Tm9kZTtcclxuICAgIGNvbnN0IGZyYWdtZW50RGVmcyA9IGNsb25lLmRlZmluaXRpb25zLmZpbHRlcihpc0ZyYWdtZW50RGVmaW5pdGlvbik7XHJcblxyXG4gICAgZm9yIChjb25zdCBmcmFnbWVudERlZiBvZiBmcmFnbWVudERlZnMpIHtcclxuICAgICAgICBsZXQgZW50aXR5VHlwZSA9IGZyYWdtZW50RGVmLnR5cGVDb25kaXRpb24ubmFtZS52YWx1ZSBhcyBrZXlvZiBQaWNrPFxyXG4gICAgICAgICAgICBDdXN0b21GaWVsZHMsXHJcbiAgICAgICAgICAgIEV4Y2x1ZGU8a2V5b2YgQ3VzdG9tRmllbGRzLCAnX190eXBlbmFtZSc+XHJcbiAgICAgICAgPjtcclxuXHJcbiAgICAgICAgaWYgKGVudGl0eVR5cGUgPT09ICgnT3JkZXJBZGRyZXNzJyBhcyBhbnkpKSB7XHJcbiAgICAgICAgICAgIC8vIE9yZGVyQWRkcmVzcyBpcyBhIHNwZWNpYWwgY2FzZSBvZiB0aGUgQWRkcmVzcyBlbnRpdHksIGFuZCBzaGFyZXMgaXRzIGN1c3RvbSBmaWVsZHNcclxuICAgICAgICAgICAgLy8gc28gd2UgdHJlYXQgaXQgYXMgYW4gYWxpYXNcclxuICAgICAgICAgICAgZW50aXR5VHlwZSA9ICdBZGRyZXNzJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChlbnRpdHlUeXBlID09PSAoJ0NvdW50cnknIGFzIGFueSkpIHtcclxuICAgICAgICAgICAgLy8gQ291bnRyeSBpcyBhbiBhbGlhcyBvZiBSZWdpb25cclxuICAgICAgICAgICAgZW50aXR5VHlwZSA9ICdSZWdpb24nO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY3VzdG9tRmllbGRzRm9yVHlwZSA9IGN1c3RvbUZpZWxkcy5nZXQoZW50aXR5VHlwZSk7XHJcbiAgICAgICAgaWYgKGN1c3RvbUZpZWxkc0ZvclR5cGUgJiYgY3VzdG9tRmllbGRzRm9yVHlwZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgaXMgYWxyZWFkeSBhIGN1c3RvbUZpZWxkcyBmaWVsZCBpbiB0aGUgZnJhZ21lbnRcclxuICAgICAgICAgICAgLy8gdG8gYXZvaWQgZHVwbGljYXRpb25cclxuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdDdXN0b21GaWVsZHNGaWVsZCA9IGZyYWdtZW50RGVmLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zLmZpbmQoXHJcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb24gPT4gaXNGaWVsZE5vZGUoc2VsZWN0aW9uKSAmJiBzZWxlY3Rpb24ubmFtZS52YWx1ZSA9PT0gJ2N1c3RvbUZpZWxkcycsXHJcbiAgICAgICAgICAgICkgYXMgRmllbGROb2RlIHwgdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb25Ob2RlczogU2VsZWN0aW9uTm9kZVtdID0gY3VzdG9tRmllbGRzRm9yVHlwZVxyXG4gICAgICAgICAgICAgICAgLmZpbHRlcihmaWVsZCA9PiAhaW5jbHVkZUN1c3RvbUZpZWxkcyB8fCBpbmNsdWRlQ3VzdG9tRmllbGRzLmluY2x1ZGVzKGZpZWxkLm5hbWUpKVxyXG4gICAgICAgICAgICAgICAgLm1hcChcclxuICAgICAgICAgICAgICAgICAgICBjdXN0b21GaWVsZCA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5GSUVMRCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBLaW5kLk5BTUUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGN1c3RvbUZpZWxkLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9yIFwicmVsYXRpb25cIiBjdXN0b20gZmllbGRzLCB3ZSBuZWVkIHRvIGFsc28gc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGwgdGhlIHNjYWxhciBmaWVsZHMgb2YgdGhlIHJlbGF0ZWQgdHlwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKGN1c3RvbUZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25TZXQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5TRUxFQ1RJT05fU0VULFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25zOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21GaWVsZCBhcyBSZWxhdGlvbkN1c3RvbUZpZWxkRnJhZ21lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS5zY2FsYXJGaWVsZHMubWFwKGYgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuRklFTEQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiB7IGtpbmQ6IEtpbmQuTkFNRSwgdmFsdWU6IGYgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pIGFzIEZpZWxkTm9kZSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGlmICghZXhpc3RpbmdDdXN0b21GaWVsZHNGaWVsZCkge1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgbm8gY3VzdG9tRmllbGRzIGZpZWxkIGV4aXN0cywgYWRkIG9uZVxyXG4gICAgICAgICAgICAgICAgKGZyYWdtZW50RGVmLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zIGFzIFNlbGVjdGlvbk5vZGVbXSkucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5GSUVMRCxcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuTkFNRSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICdjdXN0b21GaWVsZHMnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uU2V0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuU0VMRUNUSU9OX1NFVCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uczogc2VsZWN0aW9uTm9kZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gSWYgYSBjdXN0b21GaWVsZHMgZmllbGQgYWxyZWFkeSBleGlzdHMsIGFkZCB0aGUgY3VzdG9tIGZpZWxkc1xyXG4gICAgICAgICAgICAgICAgLy8gdG8gdGhlIGV4aXN0aW5nIHNlbGVjdGlvbiBzZXRcclxuICAgICAgICAgICAgICAgIChleGlzdGluZ0N1c3RvbUZpZWxkc0ZpZWxkLnNlbGVjdGlvblNldCBhcyBhbnkpID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuU0VMRUNUSU9OX1NFVCxcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25zOiBzZWxlY3Rpb25Ob2RlcyxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGxvY2FsaXplZEZpZWxkcyA9IGN1c3RvbUZpZWxkc0ZvclR5cGUuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgZmllbGQgPT4gZmllbGQudHlwZSA9PT0gJ2xvY2FsZVN0cmluZycgfHwgZmllbGQudHlwZSA9PT0gJ2xvY2FsZVRleHQnLFxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zRmllbGQgPSBmcmFnbWVudERlZi5zZWxlY3Rpb25TZXQuc2VsZWN0aW9uc1xyXG4gICAgICAgICAgICAgICAgLmZpbHRlcihpc0ZpZWxkTm9kZSlcclxuICAgICAgICAgICAgICAgIC5maW5kKGZpZWxkID0+IGZpZWxkLm5hbWUudmFsdWUgPT09ICd0cmFuc2xhdGlvbnMnKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChsb2NhbGl6ZWRGaWVsZHMubGVuZ3RoICYmIHRyYW5zbGF0aW9uc0ZpZWxkICYmIHRyYW5zbGF0aW9uc0ZpZWxkLnNlbGVjdGlvblNldCkge1xyXG4gICAgICAgICAgICAgICAgKHRyYW5zbGF0aW9uc0ZpZWxkLnNlbGVjdGlvblNldC5zZWxlY3Rpb25zIGFzIFNlbGVjdGlvbk5vZGVbXSkucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBLaW5kLk5BTUUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnY3VzdG9tRmllbGRzJyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuRklFTEQsXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uU2V0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6IEtpbmQuU0VMRUNUSU9OX1NFVCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uczogbG9jYWxpemVkRmllbGRzLm1hcChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUZpZWxkID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5GSUVMRCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZDogS2luZC5OQU1FLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGN1c3RvbUZpZWxkLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgYXMgRmllbGROb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY2xvbmU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRnJhZ21lbnREZWZpbml0aW9uKHZhbHVlOiBEZWZpbml0aW9uTm9kZSk6IHZhbHVlIGlzIEZyYWdtZW50RGVmaW5pdGlvbk5vZGUge1xyXG4gICAgcmV0dXJuIHZhbHVlLmtpbmQgPT09IEtpbmQuRlJBR01FTlRfREVGSU5JVElPTjtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGaWVsZE5vZGUodmFsdWU6IFNlbGVjdGlvbk5vZGUpOiB2YWx1ZSBpcyBGaWVsZE5vZGUge1xyXG4gICAgcmV0dXJuIHZhbHVlLmtpbmQgPT09IEtpbmQuRklFTEQ7XHJcbn1cclxuIl19
@@ -40,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
40
40
  providedIn: 'root',
41
41
  }]
42
42
  }], ctorParameters: () => [{ type: i1.LocalStorageService }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLHNCQUFzQjtJQUMvQixZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtJQUFHLENBQUM7SUFJaEUsU0FBUyxDQUFDLFdBQW9CO1FBQzFCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUUsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FDSCxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUk7Z0JBQzVCLFVBQVUsRUFBRSxFQUFFO2dCQUNkLEtBQUssRUFBRSxFQUFFO2dCQUNULG1CQUFtQixFQUFFLEtBQUs7Z0JBQzFCLGFBQWEsRUFBRSxFQUFFO2FBQ3BCLENBQ0osQ0FBQztRQUNOLENBQUM7UUFDRCxPQUFPLGVBQWUsQ0FBQztJQUMzQixDQUFDO0lBSUQsU0FBUyxDQUFDLFVBQW9DLEVBQUUsV0FBcUM7UUFDakYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZDLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDakMsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFO29CQUM1QyxHQUFHLGFBQWE7b0JBQ2hCLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVztpQkFDNUIsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLEdBQUcsYUFBYSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN6RixDQUFDO0lBQ0wsQ0FBQzsrR0FsQ1Esc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGFUYWJsZUNvbmZpZywgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL2xvY2FsLXN0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlQ29uZmlnU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2NhbFN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlKSB7fVxuXG4gICAgZ2V0Q29uZmlnKCk6IERhdGFUYWJsZUNvbmZpZztcbiAgICBnZXRDb25maWcoZGF0YVRhYmxlSWQ6IHN0cmluZyk6IERhdGFUYWJsZUNvbmZpZ1tzdHJpbmddO1xuICAgIGdldENvbmZpZyhkYXRhVGFibGVJZD86IHN0cmluZyk6IERhdGFUYWJsZUNvbmZpZ1tzdHJpbmddIHwgRGF0YVRhYmxlQ29uZmlnIHtcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldCgnZGF0YVRhYmxlQ29uZmlnJykgPz8ge307XG4gICAgICAgIGlmIChkYXRhVGFibGVJZCkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBkYXRhVGFibGVDb25maWdbZGF0YVRhYmxlSWRdID8/IHtcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogW10sXG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgc2hvd1NlYXJjaEZpbHRlclJvdzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclByZXNldHM6IFtdLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGFUYWJsZUNvbmZpZztcbiAgICB9XG5cbiAgICBzZXRDb25maWcoZGF0YVRhYmxlSWQ6IHN0cmluZywgY29uZmlnOiBEYXRhVGFibGVDb25maWdbc3RyaW5nXSk6IHZvaWQ7XG4gICAgc2V0Q29uZmlnKGRhdGFUYWJsZUNvbmZpZzogRGF0YVRhYmxlQ29uZmlnKTogdm9pZDtcbiAgICBzZXRDb25maWcoaWRPckNvbmZpZzogc3RyaW5nIHwgRGF0YVRhYmxlQ29uZmlnLCBtYXliZUNvbmZpZz86IERhdGFUYWJsZUNvbmZpZ1tzdHJpbmddKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDb25maWcgPSB0aGlzLmdldENvbmZpZygpO1xuICAgICAgICBpZiAodHlwZW9mIGlkT3JDb25maWcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAobWF5YmVDb25maWcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0KCdkYXRhVGFibGVDb25maWcnLCB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmN1cnJlbnRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgIFtpZE9yQ29uZmlnXTogbWF5YmVDb25maWcsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0KCdkYXRhVGFibGVDb25maWcnLCB7IC4uLmN1cnJlbnRDb25maWcsIC4uLmlkT3JDb25maWcgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLHNCQUFzQjtJQUMvQixZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtJQUFHLENBQUM7SUFJaEUsU0FBUyxDQUFDLFdBQW9CO1FBQzFCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUUsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FDSCxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUk7Z0JBQzVCLFVBQVUsRUFBRSxFQUFFO2dCQUNkLEtBQUssRUFBRSxFQUFFO2dCQUNULG1CQUFtQixFQUFFLEtBQUs7Z0JBQzFCLGFBQWEsRUFBRSxFQUFFO2FBQ3BCLENBQ0osQ0FBQztRQUNOLENBQUM7UUFDRCxPQUFPLGVBQWUsQ0FBQztJQUMzQixDQUFDO0lBSUQsU0FBUyxDQUFDLFVBQW9DLEVBQUUsV0FBcUM7UUFDakYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZDLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDakMsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFO29CQUM1QyxHQUFHLGFBQWE7b0JBQ2hCLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVztpQkFDNUIsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLEdBQUcsYUFBYSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN6RixDQUFDO0lBQ0wsQ0FBQzsrR0FsQ1Esc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YVRhYmxlQ29uZmlnLCBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vbG9jYWwtc3RvcmFnZS9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlQ29uZmlnU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2FsU3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UpIHt9XHJcblxyXG4gICAgZ2V0Q29uZmlnKCk6IERhdGFUYWJsZUNvbmZpZztcclxuICAgIGdldENvbmZpZyhkYXRhVGFibGVJZDogc3RyaW5nKTogRGF0YVRhYmxlQ29uZmlnW3N0cmluZ107XHJcbiAgICBnZXRDb25maWcoZGF0YVRhYmxlSWQ/OiBzdHJpbmcpOiBEYXRhVGFibGVDb25maWdbc3RyaW5nXSB8IERhdGFUYWJsZUNvbmZpZyB7XHJcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldCgnZGF0YVRhYmxlQ29uZmlnJykgPz8ge307XHJcbiAgICAgICAgaWYgKGRhdGFUYWJsZUlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICBkYXRhVGFibGVDb25maWdbZGF0YVRhYmxlSWRdID8/IHtcclxuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBbXSxcclxuICAgICAgICAgICAgICAgICAgICBvcmRlcjoge30sXHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd1NlYXJjaEZpbHRlclJvdzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyUHJlc2V0czogW10sXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBkYXRhVGFibGVDb25maWc7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Q29uZmlnKGRhdGFUYWJsZUlkOiBzdHJpbmcsIGNvbmZpZzogRGF0YVRhYmxlQ29uZmlnW3N0cmluZ10pOiB2b2lkO1xyXG4gICAgc2V0Q29uZmlnKGRhdGFUYWJsZUNvbmZpZzogRGF0YVRhYmxlQ29uZmlnKTogdm9pZDtcclxuICAgIHNldENvbmZpZyhpZE9yQ29uZmlnOiBzdHJpbmcgfCBEYXRhVGFibGVDb25maWcsIG1heWJlQ29uZmlnPzogRGF0YVRhYmxlQ29uZmlnW3N0cmluZ10pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50Q29uZmlnID0gdGhpcy5nZXRDb25maWcoKTtcclxuICAgICAgICBpZiAodHlwZW9mIGlkT3JDb25maWcgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIGlmIChtYXliZUNvbmZpZykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldCgnZGF0YVRhYmxlQ29uZmlnJywge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLmN1cnJlbnRDb25maWcsXHJcbiAgICAgICAgICAgICAgICAgICAgW2lkT3JDb25maWddOiBtYXliZUNvbmZpZyxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldCgnZGF0YVRhYmxlQ29uZmlnJywgeyAuLi5jdXJyZW50Q29uZmlnLCAuLi5pZE9yQ29uZmlnIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -297,4 +297,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
297
297
  type: ContentChildren,
298
298
  args: [TemplateRef]
299
299
  }] } });
300
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZTIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9kYXRhLXRhYmxlLTIvZGF0YS10YWJsZTIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9kYXRhLXRhYmxlLTIvZGF0YS10YWJsZTIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBR0wsTUFBTSxFQUdOLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRWpHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFFLE9BQU8sRUFFSCwrQkFBK0IsR0FFbEMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNqRyxPQUFPLEVBQUUs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QW5CLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFFcUMsT0FBTztzQkFBbEQsZUFBZTt1QkFBQyx5QkFBeUI7Z0JBRTFDLGtCQUFrQjtzQkFEakIsZUFBZTt1QkFBQyxtQ0FBbUM7Z0JBRVgsZUFBZTtzQkFBdkQsWUFBWTt1QkFBQyx5QkFBeUI7Z0JBQ0EsdUJBQXVCO3NCQUE3RCxZQUFZO3VCQUFDLHVCQUF1QjtnQkFDRCxvQkFBb0I7c0JBQXZELFlBQVk7dUJBQUMsb0JBQW9CO2dCQUNKLFlBQVk7c0JBQXpDLGVBQWU7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFBhZ2luYXRpb25TZXJ2aWNlIH0gZnJvbSAnbmd4LXBhZ2luYXRpb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VDb2RlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhVGFibGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhVGFibGVGaWx0ZXJDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbic7XG5pbXBvcnQgeyBCdWxrQWN0aW9uTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL2J1bGstYWN0aW9uLW1lbnUvYnVsay1hY3Rpb24tbWVudS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBGaWx0ZXJQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy9maWx0ZXItcHJlc2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0YVRhYmxlMkNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vZGF0YS10YWJsZS1jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgRGF0YVRhYmxlQ29tcG9uZW50Q29uZmlnLFxuICAgIERhdGFUYWJsZUN1c3RvbUNvbXBvbmVudFNlcnZpY2UsXG4gICAgRGF0YVRhYmxlTG9jYXRpb25JZCxcbn0gZnJvbSAnLi9kYXRhLXRhYmxlLWN1c3RvbS1jb21wb25lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhVGFibGVDdXN0b21GaWVsZENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4vZGF0YS10YWJsZS1jdXN0b20tZmllbGQtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhVGFibGUyU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLXRhYmxlLXNlYXJjaC5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogQSB0YWJsZSBmb3IgZGlzcGxheWluZyBQYWdpbmF0ZWRMaXN0IHJlc3VsdHMuIEl0IGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgaW5zaWRlIGNvbXBvbmVudHMgd2hpY2hcbiAqIGV4dGVuZCB0aGUge0BsaW5rIEJhc2VMaXN0Q29tcG9uZW50fSBvciB7QGxpbmsgVHlwZWRCYXNlTGlzdENvbXBvbmVudH0gY2xhc3MuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDx2ZHItZGF0YS10YWJsZS0yXG4gKiAgICAgaWQ9XCJwcm9kdWN0LXJldmlldy1saXN0XCJcbiAqICAgICBbaXRlbXNdPVwiaXRlbXMkIHwgYXN5bmNcIlxuICogICAgIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlJCB8IGFzeW5jXCJcbiAqICAgICBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zJCB8IGFzeW5jXCJcbiAqICAgICBbY3VycmVudFBhZ2VdPVwiY3VycmVudFBhZ2UkIHwgYXN5bmNcIlxuICogICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICogICAgIChwYWdlQ2hhbmdlKT1cInNldFBhZ2VOdW1iZXIoJGV2ZW50KVwiXG4gKiAgICAgKGl0ZW1zUGVyUGFnZUNoYW5nZSk9XCJzZXRJdGVtc1BlclBhZ2UoJGV2ZW50KVwiXG4gKiA+XG4gKiAgICAgPHZkci1idWxrLWFjdGlvbi1tZW51XG4gKiAgICAgICAgIGxvY2F0aW9uSWQ9XCJwcm9kdWN0LXJldmlldy1saXN0XCJcbiAqICAgICAgICAgW2hvc3RDb21wb25lbnRdPVwidGhpc1wiXG4gKiAgICAgICAgIFtzZWxlY3Rpb25NYW5hZ2VyXT1cInNlbGVjdGlvbk1hbmFnZXJcIlxuICogICAgIC8+XG4gKiAgICAgPHZkci1kdDItc2VhcmNoXG4gKiAgICAgICAgIFtzZWFyY2hUZXJtQ29udHJvbF09XCJzZWFyY2hUZXJtQ29udHJvbFwiXG4gKiAgICAgICAgIHNlYXJjaFRlcm1QbGFjZWhvbGRlcj1cIkZpbHRlciBieSB0aXRsZVwiXG4gKiAgICAgLz5cbiAqICAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5pZCcgfCB0cmFuc2xhdGVcIiBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIj5cbiAqICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yZXZpZXc9XCJpdGVtXCI+XG4gKiAgICAgICAgICAgICB7eyByZXZpZXcuaWQgfX1cbiAqICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAqICAgICA8L3Zkci1kdDItY29sdW1uPlxuICogICAgIDx2ZHItZHQyLWNvbHVtblxuICogICAgICAgICBbaGVhZGluZ109XCInY29tbW9uLmNyZWF0ZWQtYXQnIHwgdHJhbnNsYXRlXCJcbiAqICAgICAgICAgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCJcbiAqICAgICAgICAgW3NvcnRdPVwic29ydHMuZ2V0KCdjcmVhdGVkQXQnKVwiXG4gKiAgICAgPlxuICogICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJldmlldz1cIml0ZW1cIj5cbiAqICAgICAgICAgICAgIHt7IHJldmlldy5jcmVhdGVkQXQgfCBsb2NhbGVEYXRlIDogJ3Nob3J0JyB9fVxuICogICAgICAgICA8L25nLXRlbXBsYXRlPlxuICogICAgIDwvdmRyLWR0Mi1jb2x1bW4+XG4gKiAgICAgPHZkci1kdDItY29sdW1uXG4gKiAgICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24udXBkYXRlZC1hdCcgfCB0cmFuc2xhdGVcIlxuICogICAgICAgICBbaGlkZGVuQnlEZWZhdWx0XT1cInRydWVcIlxuICogICAgICAgICBbc29ydF09XCJzb3J0cy5nZXQoJ3VwZGF0ZWRBdCcpXCJcbiAqICAgICA+XG4gKiAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcmV2aWV3PVwiaXRlbVwiPlxuICogICAgICAgICAgICAge3sgcmV2aWV3LnVwZGF0ZWRBdCB8IGxvY2FsZURhdGUgOiAnc2hvcnQnIH19XG4gKiAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gKiAgICAgPC92ZHItZHQyLWNvbHVtbj5cbiAqICAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5uYW1lJyB8IHRyYW5zbGF0ZVwiIFtvcHRpb25hbF09XCJmYWxzZVwiIFtzb3J0XT1cInNvcnRzLmdldCgnbmFtZScpXCI+XG4gKiAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcmV2aWV3PVwiaXRlbVwiPlxuICogICAgICAgICAgICAgPGEgY2xhc3M9XCJidXR0b24tZ2hvc3RcIiBbcm91dGVyTGlua109XCJbJy4vJywgcmV2aWV3LmlkXVwiXG4gKiAgICAgICAgICAgICAgICAgPjxzcGFuPnt7IHJldmlldy5uYW1lIH19PC9zcGFuPlxuICogICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImFycm93IHJpZ2h0XCI+PC9jbHItaWNvbj5cbiAqICAgICAgICAgICAgIDwvYT5cbiAqICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAqICAgICA8L3Zkci1kdDItY29sdW1uPlxuICogPC92ZHItZGF0YS10YWJsZS0yPlxuICogYGBgXG4gKlxuICogQGRvY3NDYXRlZ29yeSBjb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndmRyLWRhdGEtdGFibGUtMicsXG4gICAgdGVtcGxhdGVVcmw6ICdkYXRhLXRhYmxlMi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2RhdGEtdGFibGUyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbUGFnaW5hdGlvblNlcnZpY2UsIEZpbHRlclByZXNldFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGUyQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGlkOiBEYXRhVGFibGVMb2NhdGlvbklkO1xuICAgIEBJbnB1dCgpIGl0ZW1zOiBUW107XG4gICAgQElucHV0KCkgaXRlbXNQZXJQYWdlOiBudW1iZXI7XG4gICAgQElucHV0KCkgY3VycmVudFBhZ2U6IG51bWJlcjtcbiAgICBASW5wdXQoKSB0b3RhbEl0ZW1zOiBudW1iZXI7XG4gICAgQElucHV0KCkgZW1wdHlTdGF0ZUxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZmlsdGVyczogRGF0YVRhYmxlRmlsdGVyQ29sbGVjdGlvbjtcbiAgICBASW5wdXQoKSBhY3RpdmVJbmRleCA9IC0xO1xuICAgIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gICAgQE91dHB1dCgpIGl0ZW1zUGVyUGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSB2aXNpYmxlQ29sdW1uc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXJyYXk8RGF0YVRhYmxlMkNvbHVtbkNvbXBvbmVudDxUPj4+KCk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKERhdGFUYWJsZTJDb2x1bW5Db21wb25lbnQpIGNvbHVtbnM6IFF1ZXJ5TGlzdDxEYXRhVGFibGUyQ29sdW1uQ29tcG9uZW50PFQ+PjtcbiAgICBAQ29udGVudENoaWxkcmVuKERhdGFUYWJsZUN1c3RvbUZpZWxkQ29sdW1uQ29tcG9uZW50KVxuICAgIGN1c3RvbUZpZWxkQ29sdW1uczogUXVlcnlMaXN0PERhdGFUYWJsZUN1c3RvbUZpZWxkQ29sdW1uQ29tcG9uZW50PFQ+PjtcbiAgICBAQ29udGVudENoaWxkKERhdGFUYWJsZTJTZWFyY2hDb21wb25lbnQpIHNlYXJjaENvbXBvbmVudDogRGF0YVRhYmxlMlNlYXJjaENvbXBvbmVudDtcbiAgICBAQ29udGVudENoaWxkKEJ1bGtBY3Rpb25NZW51Q29tcG9uZW50KSBidWxrQWN0aW9uTWVudUNvbXBvbmVudDogQnVsa0FjdGlvbk1lbnVDb21wb25lbnQ7XG4gICAgQENvbnRlbnRDaGlsZCgndmRyRHQyQ3VzdG9tU2VhcmNoJykgY3VzdG9tU2VhcmNoVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZVJlZikgdGVtcGxhdGVSZWZzOiBRdWVyeUxpc3Q8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gICAgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICAgIGZpbHRlclByZXNldFNlcnZpY2UgPSBpbmplY3QoRmlsdGVyUHJlc2V0U2VydmljZSk7XG4gICAgZGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZSA9IGluamVjdChEYXRhVGFibGVDdXN0b21Db21wb25lbnRTZXJ2aWNlKTtcbiAgICBkYXRhVGFibGVDb25maWdTZXJ2aWNlID0gaW5qZWN0KERhdGFUYWJsZUNvbmZpZ1NlcnZpY2UpO1xuICAgIHByb3RlY3RlZCBjdXN0b21Db21wb25lbnRzID0gbmV3IE1hcDxzdHJpbmcsIHsgY29uZmlnOiBEYXRhVGFibGVDb21wb25lbnRDb25maWc7IGluamVjdG9yOiBJbmplY3RvciB9PigpO1xuXG4gICAgcm93VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgY3VycmVudFN0YXJ0OiBudW1iZXI7XG4gICAgY3VycmVudEVuZDogbnVtYmVyO1xuICAgIC8vIFRoaXMgaXMgdXNlZCB0byBhcHBseSBhIGB1c2VyLXNlbGVjdDogbm9uZWAgQ1NTIHJ1bGUgdG8gdGhlIHRhYmxlLFxuICAgIC8vIHdoaWNoIGFsbG93cyBzaGlmdC1jbGljayBtdWx0aS1yb3cgc2VsZWN0aW9uXG4gICAgZGlzYWJsZVNlbGVjdCA9IGZhbHNlO1xuICAgIHNob3dTZWFyY2hGaWx0ZXJSb3cgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCB1aUxhbmd1YWdlJDogT2JzZXJ2YWJsZTxMYW5ndWFnZUNvZGU+O1xuICAgIHByb3RlY3RlZCBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgdGhpcy51aUxhbmd1YWdlJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XG4gICAgICAgICAgICAudWlTdGF0ZSgpXG4gICAgICAgICAgICAuc3RyZWFtJC5waXBlKG1hcCgoeyB1aVN0YXRlIH0pID0+IHVpU3RhdGUubGFuZ3VhZ2UpKTtcbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0aW9uTWFuYWdlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVsa0FjdGlvbk1lbnVDb21wb25lbnQ/LnNlbGVjdGlvbk1hbmFnZXI7XG4gICAgfVxuXG4gICAgZ2V0IGFsbENvbHVtbnMoKSB7XG4gICAgICAgIHJldHVybiBbLi4uKHRoaXMuY29sdW1ucyA/PyBbXSksIC4uLih0aGlzLmN1c3RvbUZpZWxkQ29sdW1ucyA/PyBbXSldO1xuICAgIH1cblxuICAgIGdldCB2aXNpYmxlU29ydGVkQ29sdW1ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydGVkQ29sdW1ucy5maWx0ZXIoYyA9PiBjLnZpc2libGUpO1xuICAgIH1cblxuICAgIGdldCBzb3J0ZWRDb2x1bW5zKCkge1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5hbGxDb2x1bW5zO1xuICAgICAgICBjb25zdCBkYXRhVGFibGVDb25maWcgPSB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKHRoaXMuaWQpO1xuICAgICAgICBmb3IgKGNvbnN0IFtpZCwgaW5kZXhdIG9mIE9iamVjdC5lbnRyaWVzKGRhdGFUYWJsZUNvbmZpZy5vcmRlcikpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnMuZmluZChjID0+IGMuaWQgPT09IGlkKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGNvbHVtbnMuZmluZEluZGV4KGMgPT4gYy5pZCA9PT0gaWQpO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmRleCAhPT0gLTEgJiYgY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgY29sdW1ucy5zcGxpY2UoY3VycmVudEluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICBjb2x1bW5zLnNwbGljZShpbmRleCwgMCwgY29sdW1uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29sdW1ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNoaWZ0RG93bkhhbmRsZXIgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5ICYmICF0aGlzLmRpc2FibGVTZWxlY3QpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVNlbGVjdCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHByaXZhdGUgc2hpZnRVcEhhbmRsZXIgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZVNlbGVjdCkge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlU2VsZWN0ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFN0YXJ0ID0gdGhpcy5pdGVtc1BlclBhZ2UgKiAodGhpcy5jdXJyZW50UGFnZSAtIDEpO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50RW5kID0gdGhpcy5jdXJyZW50U3RhcnQgKyBjaGFuZ2VzLml0ZW1zLmN1cnJlbnRWYWx1ZT8ubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25NYW5hZ2VyPy5zZXRDdXJyZW50SXRlbXModGhpcy5pdGVtcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTWFuYWdlcikge1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuc2hpZnREb3duSGFuZGxlcik7XG4gICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuc2hpZnRVcEhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvd1RlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZVJlZnMubGFzdDtcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLmdldENvbmZpZyh0aGlzLmlkKTtcblxuICAgICAgICBpZiAoIXRoaXMuaWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgTm8gaWQgd2FzIGFzc2lnbmVkIHRvIHRoZSBkYXRhIHRhYmxlIGNvbXBvbmVudGApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVwZGF0ZUNvbHVtblZpc2liaWxpdHkgPSAoKSA9PiB7XG4gICAgICAgICAgICBkYXRhVGFibGVDb25maWcudmlzaWJpbGl0eSA9IHRoaXMuYWxsQ29sdW1uc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoYyA9PiAoYy52aXNpYmxlICYmIGMuaGlkZGVuQnlEZWZhdWx0KSB8fCAoIWMudmlzaWJsZSAmJiAhYy5oaWRkZW5CeURlZmF1bHQpKVxuICAgICAgICAgICAgICAgIC5tYXAoYyA9PiBjLmlkKTtcbiAgICAgICAgICAgIHRoaXMuZGF0YVRhYmxlQ29uZmlnU2VydmljZS5zZXRDb25maWcodGhpcy5pZCwgZGF0YVRhYmxlQ29uZmlnKTtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZUNvbHVtbnNDaGFuZ2UuZW1pdCh0aGlzLnZpc2libGVTb3J0ZWRDb2x1bW5zKTtcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmFsbENvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgICAgICAgaWYgKGRhdGFUYWJsZUNvbmZpZz8udmlzaWJpbGl0eS5pbmNsdWRlcyhjb2x1bW4uaWQpKSB7XG4gICAgICAgICAgICAgICAgY29sdW1uLnNldFZpc2liaWxpdHkoY29sdW1uLmhpZGRlbkJ5RGVmYXVsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb2x1bW4ub25Db2x1bW5DaGFuZ2UodXBkYXRlQ29sdW1uVmlzaWJpbGl0eSk7XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmRhdGFUYWJsZUN1c3RvbUNvbXBvbmVudFNlcnZpY2UuZ2V0Q3VzdG9tQ29tcG9uZW50c0Zvcih0aGlzLmlkLCBjb2x1bW4uaWQpO1xuICAgICAgICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlcnM6IGNvbmZpZy5wcm92aWRlcnMgPz8gW10sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21Db21wb25lbnRzLnNldChjb2x1bW4uaWQsIHsgY29uZmlnLCBpbmplY3RvciB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudmlzaWJsZUNvbHVtbnNDaGFuZ2UuZW1pdCh0aGlzLnZpc2libGVTb3J0ZWRDb2x1bW5zKTtcblxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25NYW5hZ2VyKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5zaGlmdERvd25IYW5kbGVyLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuc2hpZnRVcEhhbmRsZXIsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHRoaXMuYnVsa0FjdGlvbk1lbnVDb21wb25lbnQub25DbGVhclNlbGVjdGlvbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25NYW5hZ2VyLnNldEN1cnJlbnRJdGVtcyh0aGlzLml0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dTZWFyY2hGaWx0ZXJSb3cgPVxuICAgICAgICAgICAgISF0aGlzLmZpbHRlcnM/LmFjdGl2ZUZpbHRlcnMubGVuZ3RoIHx8IChkYXRhVGFibGVDb25maWc/LnNob3dTZWFyY2hGaWx0ZXJSb3cgPz8gZmFsc2UpO1xuICAgICAgICB0aGlzLmNvbHVtbnMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3Rpb25NYW5hZ2VyPy5zZWxlY3Rpb25DaGFuZ2VzJFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcblxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25NYW5hZ2VyKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudFxuICAgICAgICAgICAgICAgIC51c2VyU3RhdHVzKClcbiAgICAgICAgICAgICAgICAubWFwU3RyZWFtKCh7IHVzZXJTdGF0dXMgfSkgPT4gdXNlclN0YXR1cy5hY3RpdmVDaGFubmVsSWQpXG4gICAgICAgICAgICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1hbmFnZXI/LmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNvbHVtblJlb3JkZXIoZXZlbnQ6IHsgY29sdW1uOiBEYXRhVGFibGUyQ29sdW1uQ29tcG9uZW50PGFueT47IG5ld0luZGV4OiBudW1iZXIgfSkge1xuICAgICAgICBjb25zdCBuYXR1cmFsSW5kZXggPSB0aGlzLmFsbENvbHVtbnMuZmluZEluZGV4KGMgPT4gYy5pZCA9PT0gZXZlbnQuY29sdW1uLmlkKTtcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLmdldENvbmZpZyh0aGlzLmlkKTtcbiAgICAgICAgaWYgKG5hdHVyYWxJbmRleCA9PT0gZXZlbnQubmV3SW5kZXgpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBkYXRhVGFibGVDb25maWcub3JkZXJbZXZlbnQuY29sdW1uLmlkXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRhdGFUYWJsZUNvbmZpZy5vcmRlcltldmVudC5jb2x1bW4uaWRdID0gZXZlbnQubmV3SW5kZXg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLnNldENvbmZpZyh0aGlzLmlkLCBkYXRhVGFibGVDb25maWcpO1xuICAgIH1cblxuICAgIG9uQ29sdW1uc1Jlc2V0KCkge1xuICAgICAgICBjb25zdCBkYXRhVGFibGVDb25maWcgPSB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKHRoaXMuaWQpO1xuICAgICAgICBkYXRhVGFibGVDb25maWcub3JkZXIgPSB7fTtcbiAgICAgICAgZGF0YVRhYmxlQ29uZmlnLnZpc2liaWxpdHkgPSBbXTtcbiAgICAgICAgdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLnNldENvbmZpZyh0aGlzLmlkLCBkYXRhVGFibGVDb25maWcpO1xuICAgIH1cblxuICAgIHRvZ2dsZVNlYXJjaEZpbHRlclJvdygpIHtcbiAgICAgICAgdGhpcy5zaG93U2VhcmNoRmlsdGVyUm93ID0gIXRoaXMuc2hvd1NlYXJjaEZpbHRlclJvdztcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLmdldENvbmZpZyh0aGlzLmlkKTtcbiAgICAgICAgZGF0YVRhYmxlQ29uZmlnLnNob3dTZWFyY2hGaWx0ZXJSb3cgPSB0aGlzLnNob3dTZWFyY2hGaWx0ZXJSb3c7XG4gICAgICAgIHRoaXMuZGF0YVRhYmxlQ29uZmlnU2VydmljZS5zZXRDb25maWcodGhpcy5pZCwgZGF0YVRhYmxlQ29uZmlnKTtcbiAgICB9XG5cbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XG4gICAgICAgIGlmICgoaXRlbSBhcyBhbnkpLmlkICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAoaXRlbSBhcyBhbnkpLmlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ub2dnbGVBbGxDbGljaygpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25NYW5hZ2VyPy50b2dnbGVTZWxlY3RBbGwoKTtcbiAgICB9XG5cbiAgICBvblJvd0NsaWNrKGl0ZW06IFQsIGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTWFuYWdlcj8udG9nZ2xlU2VsZWN0aW9uKGl0ZW0sIGV2ZW50KTtcbiAgICB9XG59XG4iLCI8dmRyLWRhdGEtdGFibGUtZmlsdGVyLXByZXNldHNcclxuICAgICpuZ0lmPVwiZmlsdGVyc1wiXHJcbiAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcclxuICAgIFtkYXRhVGFibGVJZF09XCJpZFwiXHJcbj48L3Zkci1kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzPlxyXG48ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJ1bGstYWN0aW9uc1wiPlxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInZkci1idWxrLWFjdGlvbi1tZW51XCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8dGFibGUgY2xhc3M9XCJcIiBbY2xhc3Mubm8tc2VsZWN0XT1cImRpc2FibGVTZWxlY3RcIj5cclxuICAgICAgICA8dGhlYWQgW2NsYXNzLml0ZW1zLXNlbGVjdGVkXT1cInNlbGVjdGlvbk1hbmFnZXI/LnNlbGVjdGlvbi5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPHRyIGNsYXNzPVwiaGVhZGluZy1yb3dcIj5cclxuICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cInNlbGVjdGlvbk1hbmFnZXJcIiBjbGFzcz1cInNlbGVjdGlvbi1jb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xyQ2hlY2tib3hcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uTWFuYWdlcj8uYXJlQWxsQ3VycmVudEl0ZW1zU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Ub2dnbGVBbGxDbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aFxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgdmlzaWJsZVNvcnRlZENvbHVtbnM7IGxhc3QgYXMgaXNMYXN0XCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXhwYW5kXT1cImNvbHVtbi5leHBhbmRcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsLWNvbnRlbnRcIiBbbmdDbGFzc109XCJjb2x1bW4uYWxpZ25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci11aS1leHRlbnNpb24tcG9pbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhdGlvbklkXT1cImlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttZXRhZGF0YV09XCJjb2x1bW4uaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpPVwiZGF0YVRhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b3BQeF09XCItNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGVmdFB4XT1cIi0yNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5PVwiYmxvY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjb2x1bW4uaGVhZGluZyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC92ZHItdWktZXh0ZW5zaW9uLXBvaW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1uLnNvcnQgYXMgc29ydFwiIGNsYXNzPVwic29ydC10b2dnbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNvcnQudG9nZ2xlU29ydE9yZGVyKClcIiBbY2xhc3MuYWN0aXZlXT1cInNvcnQuc29ydE9yZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uICpuZ0lmPVwiIXNvcnQuc29ydE9yZGVyXCIgc2hhcGU9XCJ0d28td2F5LWFycm93cyBsZWZ0XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gKm5nSWY9XCJzb3J0LnNvcnRPcmRlciA9PT0gJ0FTQydcIiBzaGFwZT1cImFycm93IHVwXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gKm5nSWY9XCJzb3J0LnNvcnRPcmRlciA9PT0gJ0RFU0MnXCIgc2hhcGU9XCJhcnJvdyBkb3duXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNvcnQtbGFiZWxcIiAqbmdJZj1cInNvcnQuc29ydE9yZGVyXCI+e3sgc29ydC5zb3J0T3JkZXIgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tcGlja2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZGF0YS10YWJsZS1jb2x1bS1waWNrZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1aUxhbmd1YWdlXT1cInVpTGFuZ3VhZ2UkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwic29ydGVkQ29sdW1uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVvcmRlcik9XCJvbkNvbHVtblJlb3JkZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzZXRDb2x1bW5zKT1cIm9uQ29sdW1uc1Jlc2V0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItZGF0YS10YWJsZS1jb2x1bS1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8dHIgKm5nSWY9XCJzZWFyY2hDb21wb25lbnQgfHwgY3VzdG9tU2VhcmNoVGVtcGxhdGUgfHwgZmlsdGVycz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICA8dGhcclxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2xzcGFuXT1cInZpc2libGVTb3J0ZWRDb2x1bW5zLmxlbmd0aCArIChzZWxlY3Rpb25NYW5hZ2VyID8gMiA6IDEpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZpbHRlci1yb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2hvd1NlYXJjaEZpbHRlclJvd1wiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1naG9zdCB0b2dnbGUtc2VhcmNoLWZpbHRlci1yb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInNob3dTZWFyY2hGaWx0ZXJSb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU2VhcmNoRmlsdGVyUm93KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ2NvbW1vbi5zZWFyY2gtYW5kLWZpbHRlci1saXN0JyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJzZWFyY2hcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItcm93LXdyYXBwZXJcIiBbY2xhc3MuaGlkZGVuXT1cIiFzaG93U2VhcmNoRmlsdGVyUm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWFyY2hDb21wb25lbnQ/LnRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21TZWFyY2hUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWRhdGEtdGFibGUtZmlsdGVyc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aXZlRmlsdGVyIG9mIGZpbHRlcnMuYWN0aXZlRmlsdGVyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJXaXRoVmFsdWVdPVwiYWN0aXZlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdmRyLWRhdGEtdGFibGUtZmlsdGVycz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWRhdGEtdGFibGUtZmlsdGVyc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImZpbHRlcnMubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdmRyLWRhdGEtdGFibGUtZmlsdGVycz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmRyLWFkZC1maWx0ZXItcHJlc2V0LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFUYWJsZUlkXT1cImlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItYWRkLWZpbHRlci1wcmVzZXQtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgPHRyXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbSBvZiBpdGVtc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB8IHBhZ2luYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zUGVyUGFnZTogaXRlbXNQZXJQYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhZ2U6IGN1cnJlbnRQYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxJdGVtczogdG90YWxJdGVtc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGluZGV4IGFzIGk7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tCeUZuXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJzZWxlY3Rpb25NYW5hZ2VyXCIgY2xhc3M9XCJzZWxlY3Rpb24tY29sXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVJbmRleCA9PT0gaVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbHJDaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb25NYW5hZ2VyPy5pc1NlbGVjdGVkKGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUm93Q2xpY2soaXRlbSwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiB2aXNpYmxlU29ydGVkQ29sdW1uc1wiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlSW5kZXggPT09IGlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2VsbC1jb250ZW50XCIgW25nQ2xhc3NdPVwiY29sdW1uLmFsaWduXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VzdG9tQ29tcG9uZW50cy5nZXQoY29sdW1uLmlkKSBhcyBjb21wb25lbnRDb25maWc7IGVsc2UgZGVmYXVsdENvbXBvbmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdDb21wb25lbnRPdXRsZXQ9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50Q29uZmlnLmNvbmZpZy5jb21wb25lbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0czogeyByb3dJdGVtOiBpdGVtIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluamVjdG9yOiBjb21wb25lbnRDb25maWcuaW5qZWN0b3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29tcG9uZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLnRlbXBsYXRlOyBjb250ZXh0OiB7IGl0ZW06IGl0ZW0sIGluZGV4OiBpIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUluZGV4ID09PSBpXCI+PCEtLSBjb2x1bW4gc2VsZWN0IC0tPjwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCIhaXRlbXM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cInZpc2libGVTb3J0ZWRDb2x1bW5zLmxlbmd0aCArIChzZWxlY3Rpb25NYW5hZ2VyID8gMiA6IDEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZW1wdHktcGxhY2Vob2xkZXIgW2VtcHR5U3RhdGVMYWJlbF09XCJlbXB0eVN0YXRlTGFiZWxcIj48L3Zkci1lbXB0eS1wbGFjZWhvbGRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90Ym9keT5cclxuICAgIDwvdGFibGU+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwidGFibGUtZm9vdGVyXCI+XHJcbiAgICA8dmRyLWl0ZW1zLXBlci1wYWdlLWNvbnRyb2xzXHJcbiAgICAgICAgKm5nSWY9XCJ0b3RhbEl0ZW1zXCJcclxuICAgICAgICBbaXRlbXNQZXJQYWdlXT1cIml0ZW1zUGVyUGFnZVwiXHJcbiAgICAgICAgKGl0ZW1zUGVyUGFnZUNoYW5nZSk9XCJpdGVtc1BlclBhZ2VDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgID48L3Zkci1pdGVtcy1wZXItcGFnZS1jb250cm9scz5cclxuICAgIDxkaXYgKm5nSWY9XCJ0b3RhbEl0ZW1zXCIgY2xhc3M9XCJ0b3RhbC1pdGVtcy1jb3VudFwiPlxyXG4gICAgICAgIHt7ICdjb21tb24udG90YWwtaXRlbXMnIHwgdHJhbnNsYXRlIDogeyBjdXJyZW50U3RhcnQsIGN1cnJlbnRFbmQsIHRvdGFsSXRlbXMgfSB9fVxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHZkci1wYWdpbmF0aW9uLWNvbnRyb2xzXHJcbiAgICAgICAgKm5nSWY9XCJ0b3RhbEl0ZW1zXCJcclxuICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZVwiXHJcbiAgICAgICAgW2l0ZW1zUGVyUGFnZV09XCJpdGVtc1BlclBhZ2VcIlxyXG4gICAgICAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIlxyXG4gICAgICAgIChwYWdlQ2hhbmdlKT1cInBhZ2VDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgID48L3Zkci1wYWdpbmF0aW9uLWNvbnRyb2xzPlxyXG48L2Rpdj5cclxuIl19
300
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZTIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9kYXRhLXRhYmxlLTIvZGF0YS10YWJsZTIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9kYXRhLXRhYmxlLTIvZGF0YS10YWJsZTIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBR0wsTUFBTSxFQUdOLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRWpHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFFLE9BQU8sRUFFSCwrQkFBK0IsR0FFbEMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNqRyxPQUFPLEVBQUUs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QW5CLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFFcUMsT0FBTztzQkFBbEQsZUFBZTt1QkFBQyx5QkFBeUI7Z0JBRTFDLGtCQUFrQjtzQkFEakIsZUFBZTt1QkFBQyxtQ0FBbUM7Z0JBRVgsZUFBZTtzQkFBdkQsWUFBWTt1QkFBQyx5QkFBeUI7Z0JBQ0EsdUJBQXVCO3NCQUE3RCxZQUFZO3VCQUFDLHVCQUF1QjtnQkFDRCxvQkFBb0I7c0JBQXZELFlBQVk7dUJBQUMsb0JBQW9CO2dCQUNKLFlBQVk7c0JBQXpDLGVBQWU7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlckNvbnRlbnRJbml0LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbnRlbnRDaGlsZCxcclxuICAgIENvbnRlbnRDaGlsZHJlbixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIGluamVjdCxcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPdXRwdXQsXHJcbiAgICBRdWVyeUxpc3QsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgUGFnaW5hdGlvblNlcnZpY2UgfSBmcm9tICduZ3gtcGFnaW5hdGlvbic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZUNvZGUgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhVGFibGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci1jb2xsZWN0aW9uJztcclxuaW1wb3J0IHsgQnVsa0FjdGlvbk1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9idWxrLWFjdGlvbi1tZW51L2J1bGstYWN0aW9uLW1lbnUuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7IEZpbHRlclByZXNldFNlcnZpY2UgfSBmcm9tICcuLi9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzL2ZpbHRlci1wcmVzZXQuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFUYWJsZTJDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2RhdGEtdGFibGUtY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgICBEYXRhVGFibGVDb21wb25lbnRDb25maWcsXHJcbiAgICBEYXRhVGFibGVDdXN0b21Db21wb25lbnRTZXJ2aWNlLFxyXG4gICAgRGF0YVRhYmxlTG9jYXRpb25JZCxcclxufSBmcm9tICcuL2RhdGEtdGFibGUtY3VzdG9tLWNvbXBvbmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YVRhYmxlQ3VzdG9tRmllbGRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2RhdGEtdGFibGUtY3VzdG9tLWZpZWxkLWNvbHVtbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhVGFibGUyU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLXRhYmxlLXNlYXJjaC5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBIHRhYmxlIGZvciBkaXNwbGF5aW5nIFBhZ2luYXRlZExpc3QgcmVzdWx0cy4gSXQgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCBpbnNpZGUgY29tcG9uZW50cyB3aGljaFxyXG4gKiBleHRlbmQgdGhlIHtAbGluayBCYXNlTGlzdENvbXBvbmVudH0gb3Ige0BsaW5rIFR5cGVkQmFzZUxpc3RDb21wb25lbnR9IGNsYXNzLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBodG1sXHJcbiAqIDx2ZHItZGF0YS10YWJsZS0yXHJcbiAqICAgICBpZD1cInByb2R1Y3QtcmV2aWV3LWxpc3RcIlxyXG4gKiAgICAgW2l0ZW1zXT1cIml0ZW1zJCB8IGFzeW5jXCJcclxuICogICAgIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlJCB8IGFzeW5jXCJcclxuICogICAgIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXMkIHwgYXN5bmNcIlxyXG4gKiAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlJCB8IGFzeW5jXCJcclxuICogICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gKiAgICAgKHBhZ2VDaGFuZ2UpPVwic2V0UGFnZU51bWJlcigkZXZlbnQpXCJcclxuICogICAgIChpdGVtc1BlclBhZ2VDaGFuZ2UpPVwic2V0SXRlbXNQZXJQYWdlKCRldmVudClcIlxyXG4gKiA+XHJcbiAqICAgICA8dmRyLWJ1bGstYWN0aW9uLW1lbnVcclxuICogICAgICAgICBsb2NhdGlvbklkPVwicHJvZHVjdC1yZXZpZXctbGlzdFwiXHJcbiAqICAgICAgICAgW2hvc3RDb21wb25lbnRdPVwidGhpc1wiXHJcbiAqICAgICAgICAgW3NlbGVjdGlvbk1hbmFnZXJdPVwic2VsZWN0aW9uTWFuYWdlclwiXHJcbiAqICAgICAvPlxyXG4gKiAgICAgPHZkci1kdDItc2VhcmNoXHJcbiAqICAgICAgICAgW3NlYXJjaFRlcm1Db250cm9sXT1cInNlYXJjaFRlcm1Db250cm9sXCJcclxuICogICAgICAgICBzZWFyY2hUZXJtUGxhY2Vob2xkZXI9XCJGaWx0ZXIgYnkgdGl0bGVcIlxyXG4gKiAgICAgLz5cclxuICogICAgIDx2ZHItZHQyLWNvbHVtbiBbaGVhZGluZ109XCInY29tbW9uLmlkJyB8IHRyYW5zbGF0ZVwiIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiPlxyXG4gKiAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcmV2aWV3PVwiaXRlbVwiPlxyXG4gKiAgICAgICAgICAgICB7eyByZXZpZXcuaWQgfX1cclxuICogICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gKiAgICAgPC92ZHItZHQyLWNvbHVtbj5cclxuICogICAgIDx2ZHItZHQyLWNvbHVtblxyXG4gKiAgICAgICAgIFtoZWFkaW5nXT1cIidjb21tb24uY3JlYXRlZC1hdCcgfCB0cmFuc2xhdGVcIlxyXG4gKiAgICAgICAgIFtoaWRkZW5CeURlZmF1bHRdPVwidHJ1ZVwiXHJcbiAqICAgICAgICAgW3NvcnRdPVwic29ydHMuZ2V0KCdjcmVhdGVkQXQnKVwiXHJcbiAqICAgICA+XHJcbiAqICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yZXZpZXc9XCJpdGVtXCI+XHJcbiAqICAgICAgICAgICAgIHt7IHJldmlldy5jcmVhdGVkQXQgfCBsb2NhbGVEYXRlIDogJ3Nob3J0JyB9fVxyXG4gKiAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAqICAgICA8L3Zkci1kdDItY29sdW1uPlxyXG4gKiAgICAgPHZkci1kdDItY29sdW1uXHJcbiAqICAgICAgICAgW2hlYWRpbmddPVwiJ2NvbW1vbi51cGRhdGVkLWF0JyB8IHRyYW5zbGF0ZVwiXHJcbiAqICAgICAgICAgW2hpZGRlbkJ5RGVmYXVsdF09XCJ0cnVlXCJcclxuICogICAgICAgICBbc29ydF09XCJzb3J0cy5nZXQoJ3VwZGF0ZWRBdCcpXCJcclxuICogICAgID5cclxuICogICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJldmlldz1cIml0ZW1cIj5cclxuICogICAgICAgICAgICAge3sgcmV2aWV3LnVwZGF0ZWRBdCB8IGxvY2FsZURhdGUgOiAnc2hvcnQnIH19XHJcbiAqICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICogICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAqICAgICA8dmRyLWR0Mi1jb2x1bW4gW2hlYWRpbmddPVwiJ2NvbW1vbi5uYW1lJyB8IHRyYW5zbGF0ZVwiIFtvcHRpb25hbF09XCJmYWxzZVwiIFtzb3J0XT1cInNvcnRzLmdldCgnbmFtZScpXCI+XHJcbiAqICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yZXZpZXc9XCJpdGVtXCI+XHJcbiAqICAgICAgICAgICAgIDxhIGNsYXNzPVwiYnV0dG9uLWdob3N0XCIgW3JvdXRlckxpbmtdPVwiWycuLycsIHJldmlldy5pZF1cIlxyXG4gKiAgICAgICAgICAgICAgICAgPjxzcGFuPnt7IHJldmlldy5uYW1lIH19PC9zcGFuPlxyXG4gKiAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiYXJyb3cgcmlnaHRcIj48L2Nsci1pY29uPlxyXG4gKiAgICAgICAgICAgICA8L2E+XHJcbiAqICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICogICAgIDwvdmRyLWR0Mi1jb2x1bW4+XHJcbiAqIDwvdmRyLWRhdGEtdGFibGUtMj5cclxuICogYGBgXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgY29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1kYXRhLXRhYmxlLTInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdkYXRhLXRhYmxlMi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnZGF0YS10YWJsZTIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbUGFnaW5hdGlvblNlcnZpY2UsIEZpbHRlclByZXNldFNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlMkNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpIGlkOiBEYXRhVGFibGVMb2NhdGlvbklkO1xyXG4gICAgQElucHV0KCkgaXRlbXM6IFRbXTtcclxuICAgIEBJbnB1dCgpIGl0ZW1zUGVyUGFnZTogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgY3VycmVudFBhZ2U6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIHRvdGFsSXRlbXM6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIGVtcHR5U3RhdGVMYWJlbDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZmlsdGVyczogRGF0YVRhYmxlRmlsdGVyQ29sbGVjdGlvbjtcclxuICAgIEBJbnB1dCgpIGFjdGl2ZUluZGV4ID0gLTE7XHJcbiAgICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gICAgQE91dHB1dCgpIGl0ZW1zUGVyUGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gICAgQE91dHB1dCgpIHZpc2libGVDb2x1bW5zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxEYXRhVGFibGUyQ29sdW1uQ29tcG9uZW50PFQ+Pj4oKTtcclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKERhdGFUYWJsZTJDb2x1bW5Db21wb25lbnQpIGNvbHVtbnM6IFF1ZXJ5TGlzdDxEYXRhVGFibGUyQ29sdW1uQ29tcG9uZW50PFQ+PjtcclxuICAgIEBDb250ZW50Q2hpbGRyZW4oRGF0YVRhYmxlQ3VzdG9tRmllbGRDb2x1bW5Db21wb25lbnQpXHJcbiAgICBjdXN0b21GaWVsZENvbHVtbnM6IFF1ZXJ5TGlzdDxEYXRhVGFibGVDdXN0b21GaWVsZENvbHVtbkNvbXBvbmVudDxUPj47XHJcbiAgICBAQ29udGVudENoaWxkKERhdGFUYWJsZTJTZWFyY2hDb21wb25lbnQpIHNlYXJjaENvbXBvbmVudDogRGF0YVRhYmxlMlNlYXJjaENvbXBvbmVudDtcclxuICAgIEBDb250ZW50Q2hpbGQoQnVsa0FjdGlvbk1lbnVDb21wb25lbnQpIGJ1bGtBY3Rpb25NZW51Q29tcG9uZW50OiBCdWxrQWN0aW9uTWVudUNvbXBvbmVudDtcclxuICAgIEBDb250ZW50Q2hpbGQoJ3ZkckR0MkN1c3RvbVNlYXJjaCcpIGN1c3RvbVNlYXJjaFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZVJlZikgdGVtcGxhdGVSZWZzOiBRdWVyeUxpc3Q8VGVtcGxhdGVSZWY8YW55Pj47XHJcblxyXG4gICAgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG4gICAgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG4gICAgZmlsdGVyUHJlc2V0U2VydmljZSA9IGluamVjdChGaWx0ZXJQcmVzZXRTZXJ2aWNlKTtcclxuICAgIGRhdGFUYWJsZUN1c3RvbUNvbXBvbmVudFNlcnZpY2UgPSBpbmplY3QoRGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZSk7XHJcbiAgICBkYXRhVGFibGVDb25maWdTZXJ2aWNlID0gaW5qZWN0KERhdGFUYWJsZUNvbmZpZ1NlcnZpY2UpO1xyXG4gICAgcHJvdGVjdGVkIGN1c3RvbUNvbXBvbmVudHMgPSBuZXcgTWFwPHN0cmluZywgeyBjb25maWc6IERhdGFUYWJsZUNvbXBvbmVudENvbmZpZzsgaW5qZWN0b3I6IEluamVjdG9yIH0+KCk7XHJcblxyXG4gICAgcm93VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgICBjdXJyZW50U3RhcnQ6IG51bWJlcjtcclxuICAgIGN1cnJlbnRFbmQ6IG51bWJlcjtcclxuICAgIC8vIFRoaXMgaXMgdXNlZCB0byBhcHBseSBhIGB1c2VyLXNlbGVjdDogbm9uZWAgQ1NTIHJ1bGUgdG8gdGhlIHRhYmxlLFxyXG4gICAgLy8gd2hpY2ggYWxsb3dzIHNoaWZ0LWNsaWNrIG11bHRpLXJvdyBzZWxlY3Rpb25cclxuICAgIGRpc2FibGVTZWxlY3QgPSBmYWxzZTtcclxuICAgIHNob3dTZWFyY2hGaWx0ZXJSb3cgPSBmYWxzZTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgdWlMYW5ndWFnZSQ6IE9ic2VydmFibGU8TGFuZ3VhZ2VDb2RlPjtcclxuICAgIHByb3RlY3RlZCBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy51aUxhbmd1YWdlJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XHJcbiAgICAgICAgICAgIC51aVN0YXRlKClcclxuICAgICAgICAgICAgLnN0cmVhbSQucGlwZShtYXAoKHsgdWlTdGF0ZSB9KSA9PiB1aVN0YXRlLmxhbmd1YWdlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHNlbGVjdGlvbk1hbmFnZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVsa0FjdGlvbk1lbnVDb21wb25lbnQ/LnNlbGVjdGlvbk1hbmFnZXI7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGFsbENvbHVtbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFsuLi4odGhpcy5jb2x1bW5zID8/IFtdKSwgLi4uKHRoaXMuY3VzdG9tRmllbGRDb2x1bW5zID8/IFtdKV07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHZpc2libGVTb3J0ZWRDb2x1bW5zKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNvcnRlZENvbHVtbnMuZmlsdGVyKGMgPT4gYy52aXNpYmxlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc29ydGVkQ29sdW1ucygpIHtcclxuICAgICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5hbGxDb2x1bW5zO1xyXG4gICAgICAgIGNvbnN0IGRhdGFUYWJsZUNvbmZpZyA9IHRoaXMuZGF0YVRhYmxlQ29uZmlnU2VydmljZS5nZXRDb25maWcodGhpcy5pZCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBbaWQsIGluZGV4XSBvZiBPYmplY3QuZW50cmllcyhkYXRhVGFibGVDb25maWcub3JkZXIpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnMuZmluZChjID0+IGMuaWQgPT09IGlkKTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gY29sdW1ucy5maW5kSW5kZXgoYyA9PiBjLmlkID09PSBpZCk7XHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXggIT09IC0xICYmIGNvbHVtbikge1xyXG4gICAgICAgICAgICAgICAgY29sdW1ucy5zcGxpY2UoY3VycmVudEluZGV4LCAxKTtcclxuICAgICAgICAgICAgICAgIGNvbHVtbnMuc3BsaWNlKGluZGV4LCAwLCBjb2x1bW4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjb2x1bW5zO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2hpZnREb3duSGFuZGxlciA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChldmVudC5zaGlmdEtleSAmJiAhdGhpcy5kaXNhYmxlU2VsZWN0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVNlbGVjdCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIHNoaWZ0VXBIYW5kbGVyID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZVNlbGVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVTZWxlY3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5pdGVtcykge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTdGFydCA9IHRoaXMuaXRlbXNQZXJQYWdlICogKHRoaXMuY3VycmVudFBhZ2UgLSAxKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50RW5kID0gdGhpcy5jdXJyZW50U3RhcnQgKyBjaGFuZ2VzLml0ZW1zLmN1cnJlbnRWYWx1ZT8ubGVuZ3RoO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1hbmFnZXI/LnNldEN1cnJlbnRJdGVtcyh0aGlzLml0ZW1zKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1hbmFnZXIpIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuc2hpZnREb3duSGFuZGxlcik7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5zaGlmdFVwSGFuZGxlcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJvd1RlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZVJlZnMubGFzdDtcclxuICAgICAgICBjb25zdCBkYXRhVGFibGVDb25maWcgPSB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKHRoaXMuaWQpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaWQpIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKGBObyBpZCB3YXMgYXNzaWduZWQgdG8gdGhlIGRhdGEgdGFibGUgY29tcG9uZW50YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHVwZGF0ZUNvbHVtblZpc2liaWxpdHkgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGRhdGFUYWJsZUNvbmZpZy52aXNpYmlsaXR5ID0gdGhpcy5hbGxDb2x1bW5zXHJcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGMgPT4gKGMudmlzaWJsZSAmJiBjLmhpZGRlbkJ5RGVmYXVsdCkgfHwgKCFjLnZpc2libGUgJiYgIWMuaGlkZGVuQnlEZWZhdWx0KSlcclxuICAgICAgICAgICAgICAgIC5tYXAoYyA9PiBjLmlkKTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLnNldENvbmZpZyh0aGlzLmlkLCBkYXRhVGFibGVDb25maWcpO1xyXG4gICAgICAgICAgICB0aGlzLnZpc2libGVDb2x1bW5zQ2hhbmdlLmVtaXQodGhpcy52aXNpYmxlU29ydGVkQ29sdW1ucyk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5hbGxDb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcclxuICAgICAgICAgICAgaWYgKGRhdGFUYWJsZUNvbmZpZz8udmlzaWJpbGl0eS5pbmNsdWRlcyhjb2x1bW4uaWQpKSB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW4uc2V0VmlzaWJpbGl0eShjb2x1bW4uaGlkZGVuQnlEZWZhdWx0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb2x1bW4ub25Db2x1bW5DaGFuZ2UodXBkYXRlQ29sdW1uVmlzaWJpbGl0eSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZGF0YVRhYmxlQ3VzdG9tQ29tcG9uZW50U2VydmljZS5nZXRDdXN0b21Db21wb25lbnRzRm9yKHRoaXMuaWQsIGNvbHVtbi5pZCk7XHJcbiAgICAgICAgICAgIGlmIChjb25maWcpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXHJcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBjb25maWcucHJvdmlkZXJzID8/IFtdLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1c3RvbUNvbXBvbmVudHMuc2V0KGNvbHVtbi5pZCwgeyBjb25maWcsIGluamVjdG9yIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ29sdW1uc0NoYW5nZS5lbWl0KHRoaXMudmlzaWJsZVNvcnRlZENvbHVtbnMpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25NYW5hZ2VyKSB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLnNoaWZ0RG93bkhhbmRsZXIsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLnNoaWZ0VXBIYW5kbGVyLCB7IHBhc3NpdmU6IHRydWUgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuYnVsa0FjdGlvbk1lbnVDb21wb25lbnQub25DbGVhclNlbGVjdGlvbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25NYW5hZ2VyLnNldEN1cnJlbnRJdGVtcyh0aGlzLml0ZW1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zaG93U2VhcmNoRmlsdGVyUm93ID1cclxuICAgICAgICAgICAgISF0aGlzLmZpbHRlcnM/LmFjdGl2ZUZpbHRlcnMubGVuZ3RoIHx8IChkYXRhVGFibGVDb25maWc/LnNob3dTZWFyY2hGaWx0ZXJSb3cgPz8gZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuY29sdW1ucy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTWFuYWdlcj8uc2VsZWN0aW9uQ2hhbmdlcyRcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25NYW5hZ2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XHJcbiAgICAgICAgICAgICAgICAudXNlclN0YXR1cygpXHJcbiAgICAgICAgICAgICAgICAubWFwU3RyZWFtKCh7IHVzZXJTdGF0dXMgfSkgPT4gdXNlclN0YXR1cy5hY3RpdmVDaGFubmVsSWQpXHJcbiAgICAgICAgICAgICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1hbmFnZXI/LmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25Db2x1bW5SZW9yZGVyKGV2ZW50OiB7IGNvbHVtbjogRGF0YVRhYmxlMkNvbHVtbkNvbXBvbmVudDxhbnk+OyBuZXdJbmRleDogbnVtYmVyIH0pIHtcclxuICAgICAgICBjb25zdCBuYXR1cmFsSW5kZXggPSB0aGlzLmFsbENvbHVtbnMuZmluZEluZGV4KGMgPT4gYy5pZCA9PT0gZXZlbnQuY29sdW1uLmlkKTtcclxuICAgICAgICBjb25zdCBkYXRhVGFibGVDb25maWcgPSB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKHRoaXMuaWQpO1xyXG4gICAgICAgIGlmIChuYXR1cmFsSW5kZXggPT09IGV2ZW50Lm5ld0luZGV4KSB7XHJcbiAgICAgICAgICAgIGRlbGV0ZSBkYXRhVGFibGVDb25maWcub3JkZXJbZXZlbnQuY29sdW1uLmlkXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkYXRhVGFibGVDb25maWcub3JkZXJbZXZlbnQuY29sdW1uLmlkXSA9IGV2ZW50Lm5ld0luZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2Uuc2V0Q29uZmlnKHRoaXMuaWQsIGRhdGFUYWJsZUNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Db2x1bW5zUmVzZXQoKSB7XHJcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLmdldENvbmZpZyh0aGlzLmlkKTtcclxuICAgICAgICBkYXRhVGFibGVDb25maWcub3JkZXIgPSB7fTtcclxuICAgICAgICBkYXRhVGFibGVDb25maWcudmlzaWJpbGl0eSA9IFtdO1xyXG4gICAgICAgIHRoaXMuZGF0YVRhYmxlQ29uZmlnU2VydmljZS5zZXRDb25maWcodGhpcy5pZCwgZGF0YVRhYmxlQ29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICB0b2dnbGVTZWFyY2hGaWx0ZXJSb3coKSB7XHJcbiAgICAgICAgdGhpcy5zaG93U2VhcmNoRmlsdGVyUm93ID0gIXRoaXMuc2hvd1NlYXJjaEZpbHRlclJvdztcclxuICAgICAgICBjb25zdCBkYXRhVGFibGVDb25maWcgPSB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKHRoaXMuaWQpO1xyXG4gICAgICAgIGRhdGFUYWJsZUNvbmZpZy5zaG93U2VhcmNoRmlsdGVyUm93ID0gdGhpcy5zaG93U2VhcmNoRmlsdGVyUm93O1xyXG4gICAgICAgIHRoaXMuZGF0YVRhYmxlQ29uZmlnU2VydmljZS5zZXRDb25maWcodGhpcy5pZCwgZGF0YVRhYmxlQ29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XHJcbiAgICAgICAgaWYgKChpdGVtIGFzIGFueSkuaWQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gKGl0ZW0gYXMgYW55KS5pZDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uVG9nZ2xlQWxsQ2xpY2soKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25NYW5hZ2VyPy50b2dnbGVTZWxlY3RBbGwoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblJvd0NsaWNrKGl0ZW06IFQsIGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25NYW5hZ2VyPy50b2dnbGVTZWxlY3Rpb24oaXRlbSwgZXZlbnQpO1xyXG4gICAgfVxyXG59XHJcbiIsIjx2ZHItZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0c1xyXG4gICAgKm5nSWY9XCJmaWx0ZXJzXCJcclxuICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gICAgW2RhdGFUYWJsZUlkXT1cImlkXCJcclxuPjwvdmRyLWRhdGEtdGFibGUtZmlsdGVyLXByZXNldHM+XHJcbjxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnVsay1hY3Rpb25zXCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidmRyLWJ1bGstYWN0aW9uLW1lbnVcIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDx0YWJsZSBjbGFzcz1cIlwiIFtjbGFzcy5uby1zZWxlY3RdPVwiZGlzYWJsZVNlbGVjdFwiPlxyXG4gICAgICAgIDx0aGVhZCBbY2xhc3MuaXRlbXMtc2VsZWN0ZWRdPVwic2VsZWN0aW9uTWFuYWdlcj8uc2VsZWN0aW9uLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8dHIgY2xhc3M9XCJoZWFkaW5nLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwic2VsZWN0aW9uTWFuYWdlclwiIGNsYXNzPVwic2VsZWN0aW9uLWNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbHJDaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb25NYW5hZ2VyPy5hcmVBbGxDdXJyZW50SXRlbXNTZWxlY3RlZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblRvZ2dsZUFsbENsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiB2aXNpYmxlU29ydGVkQ29sdW1uczsgbGFzdCBhcyBpc0xhc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5leHBhbmRdPVwiY29sdW1uLmV4cGFuZFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwtY29udGVudFwiIFtuZ0NsYXNzXT1cImNvbHVtbi5hbGlnblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dmRyLXVpLWV4dGVuc2lvbi1wb2ludFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2F0aW9uSWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21ldGFkYXRhXT1cImNvbHVtbi5pZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGk9XCJkYXRhVGFibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RvcFB4XT1cIi02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsZWZ0UHhdPVwiLTI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk9XCJibG9ja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNvbHVtbi5oZWFkaW5nIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3Zkci11aS1leHRlbnNpb24tcG9pbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2x1bW4uc29ydCBhcyBzb3J0XCIgY2xhc3M9XCJzb3J0LXRvZ2dsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic29ydC50b2dnbGVTb3J0T3JkZXIoKVwiIFtjbGFzcy5hY3RpdmVdPVwic29ydC5zb3J0T3JkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gKm5nSWY9XCIhc29ydC5zb3J0T3JkZXJcIiBzaGFwZT1cInR3by13YXktYXJyb3dzIGxlZnRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiAqbmdJZj1cInNvcnQuc29ydE9yZGVyID09PSAnQVNDJ1wiIHNoYXBlPVwiYXJyb3cgdXBcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiAqbmdJZj1cInNvcnQuc29ydE9yZGVyID09PSAnREVTQydcIiBzaGFwZT1cImFycm93IGRvd25cIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic29ydC1sYWJlbFwiICpuZ0lmPVwic29ydC5zb3J0T3JkZXJcIj57eyBzb3J0LnNvcnRPcmRlciB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbi1waWNrZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1kYXRhLXRhYmxlLWNvbHVtLXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3VpTGFuZ3VhZ2VdPVwidWlMYW5ndWFnZSQgfCBhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uc109XCJzb3J0ZWRDb2x1bW5zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZW9yZGVyKT1cIm9uQ29sdW1uUmVvcmRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNldENvbHVtbnMpPVwib25Db2x1bW5zUmVzZXQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3Zkci1kYXRhLXRhYmxlLWNvbHVtLXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDx0ciAqbmdJZj1cInNlYXJjaENvbXBvbmVudCB8fCBjdXN0b21TZWFyY2hUZW1wbGF0ZSB8fCBmaWx0ZXJzPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgIDx0aFxyXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHNwYW5dPVwidmlzaWJsZVNvcnRlZENvbHVtbnMubGVuZ3RoICsgKHNlbGVjdGlvbk1hbmFnZXIgPyAyIDogMSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLXJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzaG93U2VhcmNoRmlsdGVyUm93XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWdob3N0IHRvZ2dsZS1zZWFyY2gtZmlsdGVyLXJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwic2hvd1NlYXJjaEZpbHRlclJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTZWFyY2hGaWx0ZXJSb3coKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInY29tbW9uLnNlYXJjaC1hbmQtZmlsdGVyLWxpc3QnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInNlYXJjaFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1yb3ctd3JhcHBlclwiIFtjbGFzcy5oaWRkZW5dPVwiIXNob3dTZWFyY2hGaWx0ZXJSb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlYXJjaENvbXBvbmVudD8udGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVNlYXJjaFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZGF0YS10YWJsZS1maWx0ZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhY3RpdmVGaWx0ZXIgb2YgZmlsdGVycy5hY3RpdmVGaWx0ZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlcldpdGhWYWx1ZV09XCJhY3RpdmVGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItZGF0YS10YWJsZS1maWx0ZXJzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItZGF0YS10YWJsZS1maWx0ZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsdGVycy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdC0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC92ZHItZGF0YS10YWJsZS1maWx0ZXJzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2ZHItYWRkLWZpbHRlci1wcmVzZXQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YVRhYmxlSWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3Zkci1hZGQtZmlsdGVyLXByZXNldC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICA8dHJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtIG9mIGl0ZW1zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgcGFnaW5hdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNQZXJQYWdlOiBpdGVtc1BlclBhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UGFnZTogY3VycmVudFBhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbEl0ZW1zOiB0b3RhbEl0ZW1zXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgaW5kZXggYXMgaTtcclxuICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiB0cmFja0J5Rm5cclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cInNlbGVjdGlvbk1hbmFnZXJcIiBjbGFzcz1cInNlbGVjdGlvbi1jb2xcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUluZGV4ID09PSBpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsckNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbk1hbmFnZXI/LmlzU2VsZWN0ZWQoaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Sb3dDbGljayhpdGVtLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIHZpc2libGVTb3J0ZWRDb2x1bW5zXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVJbmRleCA9PT0gaVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsLWNvbnRlbnRcIiBbbmdDbGFzc109XCJjb2x1bW4uYWxpZ25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXN0b21Db21wb25lbnRzLmdldChjb2x1bW4uaWQpIGFzIGNvbXBvbmVudENvbmZpZzsgZWxzZSBkZWZhdWx0Q29tcG9uZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRDb25maWcuY29uZmlnLmNvbXBvbmVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRzOiB7IHJvd0l0ZW06IGl0ZW0gfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5qZWN0b3I6IGNvbXBvbmVudENvbmZpZy5pbmplY3RvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRDb21wb25lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4udGVtcGxhdGU7IGNvbnRleHQ6IHsgaXRlbTogaXRlbSwgaW5kZXg6IGkgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlSW5kZXggPT09IGlcIj48IS0tIGNvbHVtbiBzZWxlY3QgLS0+PC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cIiFpdGVtcz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwidmlzaWJsZVNvcnRlZENvbHVtbnMubGVuZ3RoICsgKHNlbGVjdGlvbk1hbmFnZXIgPyAyIDogMSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHZkci1lbXB0eS1wbGFjZWhvbGRlciBbZW1wdHlTdGF0ZUxhYmVsXT1cImVtcHR5U3RhdGVMYWJlbFwiPjwvdmRyLWVtcHR5LXBsYWNlaG9sZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3Rib2R5PlxyXG4gICAgPC90YWJsZT5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJ0YWJsZS1mb290ZXJcIj5cclxuICAgIDx2ZHItaXRlbXMtcGVyLXBhZ2UtY29udHJvbHNcclxuICAgICAgICAqbmdJZj1cInRvdGFsSXRlbXNcIlxyXG4gICAgICAgIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlXCJcclxuICAgICAgICAoaXRlbXNQZXJQYWdlQ2hhbmdlKT1cIml0ZW1zUGVyUGFnZUNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgPjwvdmRyLWl0ZW1zLXBlci1wYWdlLWNvbnRyb2xzPlxyXG4gICAgPGRpdiAqbmdJZj1cInRvdGFsSXRlbXNcIiBjbGFzcz1cInRvdGFsLWl0ZW1zLWNvdW50XCI+XHJcbiAgICAgICAge3sgJ2NvbW1vbi50b3RhbC1pdGVtcycgfCB0cmFuc2xhdGUgOiB7IGN1cnJlbnRTdGFydCwgY3VycmVudEVuZCwgdG90YWxJdGVtcyB9IH19XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8dmRyLXBhZ2luYXRpb24tY29udHJvbHNcclxuICAgICAgICAqbmdJZj1cInRvdGFsSXRlbXNcIlxyXG4gICAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCJcclxuICAgICAgICBbaXRlbXNQZXJQYWdlXT1cIml0ZW1zUGVyUGFnZVwiXHJcbiAgICAgICAgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtc1wiXHJcbiAgICAgICAgKHBhZ2VDaGFuZ2UpPVwicGFnZUNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgPjwvdmRyLXBhZ2luYXRpb24tY29udHJvbHM+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -31,6 +31,26 @@ export class DataTableFilterPresetsComponent {
31
31
  });
32
32
  this.serializedActiveFilters = this.filters.serialize();
33
33
  this.filterPresets$ = this.filterPresetService.presetChanges$.pipe(startWith(this.filterPresetService.getFilterPresets(this.dataTableId)));
34
+ // When any query param changes, we want to trigger change detection
35
+ // so that the links for each preset are updated.
36
+ this.route.queryParamMap
37
+ .pipe(takeUntil(this.destroy$))
38
+ .subscribe(() => this.changeDetectorRef.markForCheck());
39
+ }
40
+ getQueryParamsForPreset(preset, serializedActiveFilters) {
41
+ // Clone the current query params to avoid mutating them directly
42
+ const currentParams = { ...this.route.snapshot.queryParams };
43
+ if (preset === serializedActiveFilters) {
44
+ // Toggling off: remove 'filters' and 'page' params
45
+ delete currentParams['filters'];
46
+ delete currentParams['page'];
47
+ }
48
+ else {
49
+ // Toggling on: set 'filters' and 'page' params
50
+ currentParams['filters'] = preset;
51
+ currentParams['page'] = 1;
52
+ }
53
+ return currentParams;
34
54
  }
35
55
  ngOnDestroy() {
36
56
  this.destroy$.next();
@@ -65,11 +85,11 @@ export class DataTableFilterPresetsComponent {
65
85
  this.filterPresetService.reorderPresets(this.dataTableId, event.previousIndex, event.currentIndex);
66
86
  }
67
87
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataTableFilterPresetsComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.FilterPresetService }, { token: i3.ModalService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DataTableFilterPresetsComponent, selector: "vdr-data-table-filter-presets", inputs: { dataTableId: "dataTableId", filters: "filters" }, ngImport: i0, template: "<ng-container *ngIf=\"filterPresets$ | async as filterPresets\">\r\n <div\r\n class=\"preset-tabs\"\r\n *ngIf=\"filters && filterPresets.length\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <div\r\n *ngFor=\"let preset of filterPresets\"\r\n class=\"preset-tab\"\r\n [class.active]=\"preset.value === serializedActiveFilters\"\r\n cdkDrag\r\n cdkDragBoundary=\".preset-tabs\"\r\n cdkDragLockAxis=\"x\"\r\n >\r\n <div class=\"drag-handle\" cdkDragHandle>\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <a\r\n [routerLink]=\"['./']\"\r\n [queryParams]=\"preset.value === serializedActiveFilters ? {} : { filters: preset.value, page: 1 }\"\r\n >\r\n <div>{{ preset.name }}</div>\r\n </a>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"/>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button vdrDropdownItem (click)=\"renameFilterPreset(preset.name)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.rename-filter-preset' | translate }}\r\n </button>\r\n <button vdrDropdownItem (click)=\"deleteFilterPreset(preset.name)\">\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [".preset-tabs{padding-inline-start:var(--surface-margin-left);margin:var(--space-unit) 0;gap:calc(var(--space-unit) * .5);display:flex;overflow-x:auto;overflow-y:hidden}.preset-tab{display:flex;align-items:center;gap:calc(var(--space-unit) * .5);font-size:var(--font-size-sm);white-space:nowrap;text-transform:none;padding:0 calc(var(--space-unit) * 1);border:1px solid var(--color-weight-300);border-radius:var(--border-radius-lg);cursor:pointer}.preset-tab>a{padding-inline-end:0;color:var(--color-weight-600)}.preset-tab.active{border-color:var(--color-primary-700);background-color:var(--color-primary-700);color:var(--color-primary-100)}.preset-tab.active>a{color:var(--color-primary-100)}.preset-tab.active button.icon-button{color:var(--color-primary-100)}.preset-tab-link{display:flex;align-items:center;gap:calc(var(--space-unit) * .5)}.drag-handle{cursor:move}.cdk-drag-preview{box-sizing:border-box;opacity:.8;background:var(--color-weight-100);box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.preset-tabs.cdk-drop-list-dragging .preset-tab:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i4.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i7.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i8.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i9.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i10.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DataTableFilterPresetsComponent, selector: "vdr-data-table-filter-presets", inputs: { dataTableId: "dataTableId", filters: "filters" }, ngImport: i0, template: "<ng-container *ngIf=\"filterPresets$ | async as filterPresets\">\r\n <div\r\n class=\"preset-tabs\"\r\n *ngIf=\"filters && filterPresets.length\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <div\r\n *ngFor=\"let preset of filterPresets\"\r\n class=\"preset-tab\"\r\n [class.active]=\"preset.value === serializedActiveFilters\"\r\n cdkDrag\r\n cdkDragBoundary=\".preset-tabs\"\r\n cdkDragLockAxis=\"x\"\r\n >\r\n <div class=\"drag-handle\" cdkDragHandle>\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <a\r\n [routerLink]=\"['./']\"\r\n [queryParams]=\"getQueryParamsForPreset(preset.value, serializedActiveFilters)\"\r\n >\r\n <div>{{ preset.name }}</div>\r\n </a>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"/>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button vdrDropdownItem (click)=\"renameFilterPreset(preset.name)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.rename-filter-preset' | translate }}\r\n </button>\r\n <button vdrDropdownItem (click)=\"deleteFilterPreset(preset.name)\">\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [".preset-tabs{padding-inline-start:var(--surface-margin-left);margin:var(--space-unit) 0;gap:calc(var(--space-unit) * .5);display:flex;overflow-x:auto;overflow-y:hidden}.preset-tab{display:flex;align-items:center;gap:calc(var(--space-unit) * .5);font-size:var(--font-size-sm);white-space:nowrap;text-transform:none;padding:0 calc(var(--space-unit) * 1);border:1px solid var(--color-weight-300);border-radius:var(--border-radius-lg);cursor:pointer}.preset-tab>a{padding-inline-end:0;color:var(--color-weight-600)}.preset-tab.active{border-color:var(--color-primary-700);background-color:var(--color-primary-700);color:var(--color-primary-100)}.preset-tab.active>a{color:var(--color-primary-100)}.preset-tab.active button.icon-button{color:var(--color-primary-100)}.preset-tab-link{display:flex;align-items:center;gap:calc(var(--space-unit) * .5)}.drag-handle{cursor:move}.cdk-drag-preview{box-sizing:border-box;opacity:.8;background:var(--color-weight-100);box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.preset-tabs.cdk-drop-list-dragging .preset-tab:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i4.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i7.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { kind: "component", type: i8.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }, { kind: "directive", type: i9.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { kind: "directive", type: i10.DropdownItemDirective, selector: "[vdrDropdownItem]" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
69
89
  }
70
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataTableFilterPresetsComponent, decorators: [{
71
91
  type: Component,
72
- args: [{ selector: 'vdr-data-table-filter-presets', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"filterPresets$ | async as filterPresets\">\r\n <div\r\n class=\"preset-tabs\"\r\n *ngIf=\"filters && filterPresets.length\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <div\r\n *ngFor=\"let preset of filterPresets\"\r\n class=\"preset-tab\"\r\n [class.active]=\"preset.value === serializedActiveFilters\"\r\n cdkDrag\r\n cdkDragBoundary=\".preset-tabs\"\r\n cdkDragLockAxis=\"x\"\r\n >\r\n <div class=\"drag-handle\" cdkDragHandle>\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <a\r\n [routerLink]=\"['./']\"\r\n [queryParams]=\"preset.value === serializedActiveFilters ? {} : { filters: preset.value, page: 1 }\"\r\n >\r\n <div>{{ preset.name }}</div>\r\n </a>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"/>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button vdrDropdownItem (click)=\"renameFilterPreset(preset.name)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.rename-filter-preset' | translate }}\r\n </button>\r\n <button vdrDropdownItem (click)=\"deleteFilterPreset(preset.name)\">\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [".preset-tabs{padding-inline-start:var(--surface-margin-left);margin:var(--space-unit) 0;gap:calc(var(--space-unit) * .5);display:flex;overflow-x:auto;overflow-y:hidden}.preset-tab{display:flex;align-items:center;gap:calc(var(--space-unit) * .5);font-size:var(--font-size-sm);white-space:nowrap;text-transform:none;padding:0 calc(var(--space-unit) * 1);border:1px solid var(--color-weight-300);border-radius:var(--border-radius-lg);cursor:pointer}.preset-tab>a{padding-inline-end:0;color:var(--color-weight-600)}.preset-tab.active{border-color:var(--color-primary-700);background-color:var(--color-primary-700);color:var(--color-primary-100)}.preset-tab.active>a{color:var(--color-primary-100)}.preset-tab.active button.icon-button{color:var(--color-primary-100)}.preset-tab-link{display:flex;align-items:center;gap:calc(var(--space-unit) * .5)}.drag-handle{cursor:move}.cdk-drag-preview{box-sizing:border-box;opacity:.8;background:var(--color-weight-100);box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.preset-tabs.cdk-drop-list-dragging .preset-tab:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
92
+ args: [{ selector: 'vdr-data-table-filter-presets', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"filterPresets$ | async as filterPresets\">\r\n <div\r\n class=\"preset-tabs\"\r\n *ngIf=\"filters && filterPresets.length\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n <div\r\n *ngFor=\"let preset of filterPresets\"\r\n class=\"preset-tab\"\r\n [class.active]=\"preset.value === serializedActiveFilters\"\r\n cdkDrag\r\n cdkDragBoundary=\".preset-tabs\"\r\n cdkDragLockAxis=\"x\"\r\n >\r\n <div class=\"drag-handle\" cdkDragHandle>\r\n <clr-icon shape=\"drag-handle\"></clr-icon>\r\n </div>\r\n <a\r\n [routerLink]=\"['./']\"\r\n [queryParams]=\"getQueryParamsForPreset(preset.value, serializedActiveFilters)\"\r\n >\r\n <div>{{ preset.name }}</div>\r\n </a>\r\n <vdr-dropdown>\r\n <button class=\"icon-button\" vdrDropdownTrigger>\r\n <clr-icon shape=\"ellipsis-vertical\" size=\"12\"/>\r\n </button>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-left\">\r\n <button vdrDropdownItem (click)=\"renameFilterPreset(preset.name)\">\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.rename-filter-preset' | translate }}\r\n </button>\r\n <button vdrDropdownItem (click)=\"deleteFilterPreset(preset.name)\">\r\n <clr-icon shape=\"trash\" class=\"is-danger\"></clr-icon>\r\n {{ 'common.delete' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [".preset-tabs{padding-inline-start:var(--surface-margin-left);margin:var(--space-unit) 0;gap:calc(var(--space-unit) * .5);display:flex;overflow-x:auto;overflow-y:hidden}.preset-tab{display:flex;align-items:center;gap:calc(var(--space-unit) * .5);font-size:var(--font-size-sm);white-space:nowrap;text-transform:none;padding:0 calc(var(--space-unit) * 1);border:1px solid var(--color-weight-300);border-radius:var(--border-radius-lg);cursor:pointer}.preset-tab>a{padding-inline-end:0;color:var(--color-weight-600)}.preset-tab.active{border-color:var(--color-primary-700);background-color:var(--color-primary-700);color:var(--color-primary-100)}.preset-tab.active>a{color:var(--color-primary-100)}.preset-tab.active button.icon-button{color:var(--color-primary-100)}.preset-tab-link{display:flex;align-items:center;gap:calc(var(--space-unit) * .5)}.drag-handle{cursor:move}.cdk-drag-preview{box-sizing:border-box;opacity:.8;background:var(--color-weight-100);box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.preset-tabs.cdk-drop-list-dragging .preset-tab:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
73
93
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.FilterPresetService }, { type: i3.ModalService }, { type: i0.ChangeDetectorRef }], propDecorators: { dataTableId: [{
74
94
  type: Input,
75
95
  args: [{ required: true }]
@@ -77,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
77
97
  type: Input,
78
98
  args: [{ required: true }]
79
99
  }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2RhdGEtdGFibGUtZmlsdGVyLXByZXNldHMvZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2RhdGEtdGFibGUtZmlsdGVyLXByZXNldHMvZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxLQUFLLEdBR1IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlqRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVE1RixNQUFNLE9BQU8sK0JBQStCO0lBUXhDLFlBQ1ksS0FBcUIsRUFDckIsbUJBQXdDLEVBQ3hDLFlBQTBCLEVBQzFCLGlCQUFvQztRQUhwQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFOeEMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFPcEMsQ0FBQztJQUNKLFFBQVE7UUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7YUFDbkIsSUFBSSxDQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDOUIsb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFeEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDOUQsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FDekUsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFZO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQztZQUN4QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsSUFBSTtTQUNQLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFZO1FBQzNCLElBQUksQ0FBQyxZQUFZO2FBQ1osYUFBYSxDQUFDLGlDQUFpQyxFQUFFO1lBQzlDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsTUFBTSxFQUFFO2dCQUNKLElBQUk7YUFDUDtTQUNKLENBQUM7YUFDRCxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDaEIsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDVCxJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUM7b0JBQ3hDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDN0IsT0FBTyxFQUFFLElBQUk7b0JBQ2IsT0FBTyxFQUFFLE1BQU07aUJBQ2xCLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBdUI7UUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7K0dBbEVRLCtCQUErQjttR0FBL0IsK0JBQStCLGlJQ3ZCNUMsKzREQTJDQTs7NEZEcEJhLCtCQUErQjtrQkFOM0MsU0FBUzsrQkFDSSwrQkFBK0IsbUJBR3hCLHVCQUF1QixDQUFDLE1BQU07Z0xBR3BCLFdBQVc7c0JBQXJDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLE9BQU87c0JBQWpDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBEYXRhVGFibGVGaWx0ZXJDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbic7XHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsdGVyUHJlc2V0U2VydmljZSB9IGZyb20gJy4vZmlsdGVyLXByZXNldC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVuYW1lRmlsdGVyUHJlc2V0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9yZW5hbWUtZmlsdGVyLXByZXNldC1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUZpbHRlclByZXNldHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBkYXRhVGFibGVJZDogc3RyaW5nO1xyXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgZmlsdGVyczogRGF0YVRhYmxlRmlsdGVyQ29sbGVjdGlvbjtcclxuICAgIHNlcmlhbGl6ZWRBY3RpdmVGaWx0ZXJzOiBzdHJpbmc7XHJcbiAgICBmaWx0ZXJQcmVzZXRzJDogT2JzZXJ2YWJsZTxBcnJheTx7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9Pj47XHJcblxyXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgcHJpdmF0ZSBmaWx0ZXJQcmVzZXRTZXJ2aWNlOiBGaWx0ZXJQcmVzZXRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICApIHt9XHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1NYXBcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAocXBtID0+IHFwbS5nZXQoJ2ZpbHRlcnMnKSksXHJcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJpYWxpemVkQWN0aXZlRmlsdGVycyA9IHRoaXMuZmlsdGVycy5zZXJpYWxpemUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc2VyaWFsaXplZEFjdGl2ZUZpbHRlcnMgPSB0aGlzLmZpbHRlcnMuc2VyaWFsaXplKCk7XHJcblxyXG4gICAgICAgIHRoaXMuZmlsdGVyUHJlc2V0cyQgPSB0aGlzLmZpbHRlclByZXNldFNlcnZpY2UucHJlc2V0Q2hhbmdlcyQucGlwZShcclxuICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMuZmlsdGVyUHJlc2V0U2VydmljZS5nZXRGaWx0ZXJQcmVzZXRzKHRoaXMuZGF0YVRhYmxlSWQpKSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVGaWx0ZXJQcmVzZXQobmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJQcmVzZXRTZXJ2aWNlLmRlbGV0ZUZpbHRlclByZXNldCh7XHJcbiAgICAgICAgICAgIGRhdGFUYWJsZUlkOiB0aGlzLmRhdGFUYWJsZUlkLFxyXG4gICAgICAgICAgICBuYW1lLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc2VyaWFsaXplZEFjdGl2ZUZpbHRlcnMgPSB0aGlzLmZpbHRlcnMuc2VyaWFsaXplKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuYW1lRmlsdGVyUHJlc2V0KG5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5mcm9tQ29tcG9uZW50KFJlbmFtZUZpbHRlclByZXNldERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgY2xvc2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBsb2NhbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyUHJlc2V0U2VydmljZS5yZW5hbWVGaWx0ZXJQcmVzZXQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhVGFibGVJZDogdGhpcy5kYXRhVGFibGVJZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2xkTmFtZTogbmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3TmFtZTogcmVzdWx0LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxhbnk+KSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJQcmVzZXRTZXJ2aWNlLnJlb3JkZXJQcmVzZXRzKHRoaXMuZGF0YVRhYmxlSWQsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlclByZXNldHMkIHwgYXN5bmMgYXMgZmlsdGVyUHJlc2V0c1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwicHJlc2V0LXRhYnNcIlxyXG4gICAgICAgICpuZ0lmPVwiZmlsdGVycyAmJiBmaWx0ZXJQcmVzZXRzLmxlbmd0aFwiXHJcbiAgICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXHJcbiAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHByZXNldCBvZiBmaWx0ZXJQcmVzZXRzXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwcmVzZXQtdGFiXCJcclxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJwcmVzZXQudmFsdWUgPT09IHNlcmlhbGl6ZWRBY3RpdmVGaWx0ZXJzXCJcclxuICAgICAgICAgICAgY2RrRHJhZ1xyXG4gICAgICAgICAgICBjZGtEcmFnQm91bmRhcnk9XCIucHJlc2V0LXRhYnNcIlxyXG4gICAgICAgICAgICBjZGtEcmFnTG9ja0F4aXM9XCJ4XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWhhbmRsZVwiIGNka0RyYWdIYW5kbGU+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJkcmFnLWhhbmRsZVwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycuLyddXCJcclxuICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJwcmVzZXQudmFsdWUgPT09IHNlcmlhbGl6ZWRBY3RpdmVGaWx0ZXJzID8ge30gOiB7IGZpbHRlcnM6IHByZXNldC52YWx1ZSwgcGFnZTogMSB9XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdj57eyBwcmVzZXQubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDx2ZHItZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiaWNvbi1idXR0b25cIiB2ZHJEcm9wZG93blRyaWdnZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZWxsaXBzaXMtdmVydGljYWxcIiBzaXplPVwiMTJcIi8+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDx2ZHItZHJvcGRvd24tbWVudSB2ZHJQb3NpdGlvbj1cImJvdHRvbS1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB2ZHJEcm9wZG93bkl0ZW0gKGNsaWNrKT1cInJlbmFtZUZpbHRlclByZXNldChwcmVzZXQubmFtZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZWRpdFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24ucmVuYW1lLWZpbHRlci1wcmVzZXQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB2ZHJEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImRlbGV0ZUZpbHRlclByZXNldChwcmVzZXQubmFtZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwidHJhc2hcIiBjbGFzcz1cImlzLWRhbmdlclwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24uZGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC92ZHItZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgPC92ZHItZHJvcGRvd24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2RhdGEtdGFibGUtZmlsdGVyLXByZXNldHMvZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2RhdGEtdGFibGUtZmlsdGVyLXByZXNldHMvZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxLQUFLLEdBR1IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlqRixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVE1RixNQUFNLE9BQU8sK0JBQStCO0lBUXhDLFlBQ1ksS0FBcUIsRUFDckIsbUJBQXdDLEVBQ3hDLFlBQTBCLEVBQzFCLGlCQUFvQztRQUhwQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFOeEMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFPcEMsQ0FBQztJQUNKLFFBQVE7UUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7YUFDbkIsSUFBSSxDQUNELEdBQUcsQ0FBQyxH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QUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkcsQ0FBQzsrR0F4RlEsK0JBQStCO21HQUEvQiwrQkFBK0IsaUlDdkI1QywyM0RBMkNBOzs0RkRwQmEsK0JBQStCO2tCQU4zQyxTQUFTOytCQUNJLCtCQUErQixtQkFHeEIsdUJBQXVCLENBQUMsTUFBTTtnTEFHcEIsV0FBVztzQkFBckMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsT0FBTztzQkFBakMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci1jb2xsZWN0aW9uJztcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbHRlclByZXNldFNlcnZpY2UgfSBmcm9tICcuL2ZpbHRlci1wcmVzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBSZW5hbWVGaWx0ZXJQcmVzZXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL3JlbmFtZS1maWx0ZXItcHJlc2V0LWRpYWxvZy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Zkci1kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGF0YS10YWJsZS1maWx0ZXItcHJlc2V0cy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVGaWx0ZXJQcmVzZXRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGRhdGFUYWJsZUlkOiBzdHJpbmc7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgZmlsdGVyczogRGF0YVRhYmxlRmlsdGVyQ29sbGVjdGlvbjtcbiAgICBzZXJpYWxpemVkQWN0aXZlRmlsdGVyczogc3RyaW5nO1xuICAgIGZpbHRlclByZXNldHMkOiBPYnNlcnZhYmxlPEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+PjtcblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIGZpbHRlclByZXNldFNlcnZpY2U6IEZpbHRlclByZXNldFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICkge31cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtTWFwXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocXBtID0+IHFwbS5nZXQoJ2ZpbHRlcnMnKSksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcmlhbGl6ZWRBY3RpdmVGaWx0ZXJzID0gdGhpcy5maWx0ZXJzLnNlcmlhbGl6ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXJpYWxpemVkQWN0aXZlRmlsdGVycyA9IHRoaXMuZmlsdGVycy5zZXJpYWxpemUoKTtcblxuICAgICAgICB0aGlzLmZpbHRlclByZXNldHMkID0gdGhpcy5maWx0ZXJQcmVzZXRTZXJ2aWNlLnByZXNldENoYW5nZXMkLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5maWx0ZXJQcmVzZXRTZXJ2aWNlLmdldEZpbHRlclByZXNldHModGhpcy5kYXRhVGFibGVJZCkpLFxuICAgICAgICApO1xuICAgICAgICAvLyBXaGVuIGFueSBxdWVyeSBwYXJhbSBjaGFuZ2VzLCB3ZSB3YW50IHRvIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuICAgICAgICAvLyBzbyB0aGF0IHRoZSBsaW5rcyBmb3IgZWFjaCBwcmVzZXQgYXJlIHVwZGF0ZWQuXG4gICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbU1hcFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcbiAgICB9XG5cbiAgICBnZXRRdWVyeVBhcmFtc0ZvclByZXNldChwcmVzZXQ6IHN0cmluZywgc2VyaWFsaXplZEFjdGl2ZUZpbHRlcnM6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICAvLyBDbG9uZSB0aGUgY3VycmVudCBxdWVyeSBwYXJhbXMgdG8gYXZvaWQgbXV0YXRpbmcgdGhlbSBkaXJlY3RseVxuICAgICAgICBjb25zdCBjdXJyZW50UGFyYW1zID0geyAuLi50aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zIH07XG5cbiAgICAgICAgaWYgKHByZXNldCA9PT0gc2VyaWFsaXplZEFjdGl2ZUZpbHRlcnMpIHtcbiAgICAgICAgICAgIC8vIFRvZ2dsaW5nIG9mZjogcmVtb3ZlICdmaWx0ZXJzJyBhbmQgJ3BhZ2UnIHBhcmFtc1xuICAgICAgICAgICAgZGVsZXRlIGN1cnJlbnRQYXJhbXNbJ2ZpbHRlcnMnXTtcbiAgICAgICAgICAgIGRlbGV0ZSBjdXJyZW50UGFyYW1zWydwYWdlJ107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBUb2dnbGluZyBvbjogc2V0ICdmaWx0ZXJzJyBhbmQgJ3BhZ2UnIHBhcmFtc1xuICAgICAgICAgICAgY3VycmVudFBhcmFtc1snZmlsdGVycyddID0gcHJlc2V0O1xuICAgICAgICAgICAgY3VycmVudFBhcmFtc1sncGFnZSddID0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjdXJyZW50UGFyYW1zO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIGRlbGV0ZUZpbHRlclByZXNldChuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJQcmVzZXRTZXJ2aWNlLmRlbGV0ZUZpbHRlclByZXNldCh7XG4gICAgICAgICAgICBkYXRhVGFibGVJZDogdGhpcy5kYXRhVGFibGVJZCxcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlcmlhbGl6ZWRBY3RpdmVGaWx0ZXJzID0gdGhpcy5maWx0ZXJzLnNlcmlhbGl6ZSgpO1xuICAgIH1cblxuICAgIHJlbmFtZUZpbHRlclByZXNldChuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2VcbiAgICAgICAgICAgIC5mcm9tQ29tcG9uZW50KFJlbmFtZUZpbHRlclByZXNldERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGxvY2Fsczoge1xuICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJQcmVzZXRTZXJ2aWNlLnJlbmFtZUZpbHRlclByZXNldCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhVGFibGVJZDogdGhpcy5kYXRhVGFibGVJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9sZE5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdOYW1lOiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPGFueT4pIHtcbiAgICAgICAgdGhpcy5maWx0ZXJQcmVzZXRTZXJ2aWNlLnJlb3JkZXJQcmVzZXRzKHRoaXMuZGF0YVRhYmxlSWQsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlclByZXNldHMkIHwgYXN5bmMgYXMgZmlsdGVyUHJlc2V0c1wiPlxyXG4gICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwicHJlc2V0LXRhYnNcIlxyXG4gICAgICAgICpuZ0lmPVwiZmlsdGVycyAmJiBmaWx0ZXJQcmVzZXRzLmxlbmd0aFwiXHJcbiAgICAgICAgY2RrRHJvcExpc3RcclxuICAgICAgICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXHJcbiAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHByZXNldCBvZiBmaWx0ZXJQcmVzZXRzXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwcmVzZXQtdGFiXCJcclxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJwcmVzZXQudmFsdWUgPT09IHNlcmlhbGl6ZWRBY3RpdmVGaWx0ZXJzXCJcclxuICAgICAgICAgICAgY2RrRHJhZ1xyXG4gICAgICAgICAgICBjZGtEcmFnQm91bmRhcnk9XCIucHJlc2V0LXRhYnNcIlxyXG4gICAgICAgICAgICBjZGtEcmFnTG9ja0F4aXM9XCJ4XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWhhbmRsZVwiIGNka0RyYWdIYW5kbGU+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJkcmFnLWhhbmRsZVwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycuLyddXCJcclxuICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJnZXRRdWVyeVBhcmFtc0ZvclByZXNldChwcmVzZXQudmFsdWUsIHNlcmlhbGl6ZWRBY3RpdmVGaWx0ZXJzKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXY+e3sgcHJlc2V0Lm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8dmRyLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnV0dG9uXCIgdmRyRHJvcGRvd25UcmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImVsbGlwc2lzLXZlcnRpY2FsXCIgc2l6ZT1cIjEyXCIvPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWRyb3Bkb3duLW1lbnUgdmRyUG9zaXRpb249XCJib3R0b20tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdmRyRHJvcGRvd25JdGVtIChjbGljayk9XCJyZW5hbWVGaWx0ZXJQcmVzZXQocHJlc2V0Lm5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImVkaXRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnY29tbW9uLnJlbmFtZS1maWx0ZXItcHJlc2V0JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdmRyRHJvcGRvd25JdGVtIChjbGljayk9XCJkZWxldGVGaWx0ZXJQcmVzZXQocHJlc2V0Lm5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRyYXNoXCIgY2xhc3M9XCJpcy1kYW5nZXJcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnY29tbW9uLmRlbGV0ZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvdmRyLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgIDwvdmRyLWRyb3Bkb3duPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -64,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
64
64
  providedIn: 'root',
65
65
  }]
66
66
  }], ctorParameters: () => [{ type: i1.DataTableConfigService }] });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXByZXNldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzL2ZpbHRlci1wcmVzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUk1QixZQUFvQixzQkFBOEM7UUFBOUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUYxRCxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUEwQyxDQUFDO1FBRzNFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsV0FBbUI7UUFDaEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRSxPQUFPLGVBQWUsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUE0RDtRQUN6RSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRixNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUMxRCxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMs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QGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhVGFibGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1jb25maWcuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlclByZXNldFNlcnZpY2Uge1xuICAgIHByZXNldENoYW5nZXMkOiBPYnNlcnZhYmxlPEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+PjtcbiAgICBwcml2YXRlIF9wcmVzZXRDaGFuZ2VzID0gbmV3IFN1YmplY3Q8QXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFUYWJsZUNvbmZpZ1NlcnZpY2U6IERhdGFUYWJsZUNvbmZpZ1NlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5wcmVzZXRDaGFuZ2VzJCA9IHRoaXMuX3ByZXNldENoYW5nZXMuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0RmlsdGVyUHJlc2V0cyhkYXRhVGFibGVJZDogc3RyaW5nKTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4ge1xuICAgICAgICBjb25zdCBkYXRhVGFibGVDb25maWcgPSB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKGRhdGFUYWJsZUlkKTtcbiAgICAgICAgcmV0dXJuIGRhdGFUYWJsZUNvbmZpZy5maWx0ZXJQcmVzZXRzID8/IFtdO1xuICAgIH1cblxuICAgIHNhdmVGaWx0ZXJQcmVzZXQoY29uZmlnOiB7IGRhdGFUYWJsZUlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9KSB7XG4gICAgICAgIGNvbnN0IGRhdGFUYWJsZUNvbmZpZyA9IHRoaXMuZGF0YVRhYmxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoY29uZmlnLmRhdGFUYWJsZUlkKTtcbiAgICAgICAgY29uc3QgZmlsdGVyUHJlc2V0cyA9IGRhdGFUYWJsZUNvbmZpZy5maWx0ZXJQcmVzZXRzID8/IFtdO1xuICAgICAgICBjb25zdCBleGlzdGluZ05hbWUgPSBmaWx0ZXJQcmVzZXRzLmZpbmQocCA9PiBwLm5hbWUgPT09IGNvbmZpZy5uYW1lKTtcbiAgICAgICAgaWYgKGV4aXN0aW5nTmFtZSkge1xuICAgICAgICAgICAgZXhpc3RpbmdOYW1lLnZhbHVlID0gY29uZmlnLnZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlsdGVyUHJlc2V0cy5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBjb25maWcubmFtZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogY29uZmlnLnZhbHVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZGF0YVRhYmxlQ29uZmlnLmZpbHRlclByZXNldHMgPSBmaWx0ZXJQcmVzZXRzO1xuICAgICAgICB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2Uuc2V0Q29uZmlnKGNvbmZpZy5kYXRhVGFibGVJZCwgZGF0YVRhYmxlQ29uZmlnKTtcbiAgICAgICAgdGhpcy5fcHJlc2V0Q2hhbmdlcy5uZXh0KGZpbHRlclByZXNldHMpO1xuICAgIH1cblxuICAgIGRlbGV0ZUZpbHRlclByZXNldChjb25maWc6IHsgZGF0YVRhYmxlSWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pIHtcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLmdldENvbmZpZyhjb25maWcuZGF0YVRhYmxlSWQpO1xuICAgICAgICBkYXRhVGFibGVDb25maWcuZmlsdGVyUHJlc2V0cyA9IGRhdGFUYWJsZUNvbmZpZy5maWx0ZXJQcmVzZXRzLmZpbHRlcihwID0+IHAubmFtZSAhPT0gY29uZmlnLm5hbWUpO1xuICAgICAgICB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2Uuc2V0Q29uZmlnKGNvbmZpZy5kYXRhVGFibGVJZCwgZGF0YVRhYmxlQ29uZmlnKTtcbiAgICAgICAgdGhpcy5fcHJlc2V0Q2hhbmdlcy5uZXh0KGRhdGFUYWJsZUNvbmZpZy5maWx0ZXJQcmVzZXRzKTtcbiAgICB9XG5cbiAgICByZW9yZGVyUHJlc2V0cyhkYXRhVGFibGVJZDogc3RyaW5nLCBmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHByZXNldHMgPSB0aGlzLmdldEZpbHRlclByZXNldHMoZGF0YVRhYmxlSWQpO1xuICAgICAgICBtb3ZlSXRlbUluQXJyYXkocHJlc2V0cywgZnJvbUluZGV4LCB0b0luZGV4KTtcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLmdldENvbmZpZyhkYXRhVGFibGVJZCk7XG4gICAgICAgIGRhdGFUYWJsZUNvbmZpZy5maWx0ZXJQcmVzZXRzID0gcHJlc2V0cztcbiAgICAgICAgdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLnNldENvbmZpZyhkYXRhVGFibGVJZCwgZGF0YVRhYmxlQ29uZmlnKTtcbiAgICAgICAgdGhpcy5fcHJlc2V0Q2hhbmdlcy5uZXh0KHByZXNldHMpO1xuICAgIH1cblxuICAgIHJlbmFtZUZpbHRlclByZXNldChjb25maWc6IHsgZGF0YVRhYmxlSWQ6IHN0cmluZzsgb2xkTmFtZTogc3RyaW5nOyBuZXdOYW1lOiBzdHJpbmcgfSkge1xuICAgICAgICBjb25zdCBkYXRhVGFibGVDb25maWcgPSB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKGNvbmZpZy5kYXRhVGFibGVJZCk7XG4gICAgICAgIGNvbnN0IGZpbHRlclByZXNldHMgPSBkYXRhVGFibGVDb25maWcuZmlsdGVyUHJlc2V0cyA/PyBbXTtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdOYW1lID0gZmlsdGVyUHJlc2V0cy5maW5kKHAgPT4gcC5uYW1lID09PSBjb25maWcub2xkTmFtZSk7XG4gICAgICAgIGlmIChleGlzdGluZ05hbWUpIHtcbiAgICAgICAgICAgIGV4aXN0aW5nTmFtZS5uYW1lID0gY29uZmlnLm5ld05hbWU7XG4gICAgICAgICAgICBkYXRhVGFibGVDb25maWcuZmlsdGVyUHJlc2V0cyA9IGZpbHRlclByZXNldHM7XG4gICAgICAgICAgICB0aGlzLmRhdGFUYWJsZUNvbmZpZ1NlcnZpY2Uuc2V0Q29uZmlnKGNvbmZpZy5kYXRhVGFibGVJZCwgZGF0YVRhYmxlQ29uZmlnKTtcbiAgICAgICAgICAgIHRoaXMuX3ByZXNldENoYW5nZXMubmV4dChmaWx0ZXJQcmVzZXRzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXByZXNldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9kYXRhLXRhYmxlLWZpbHRlci1wcmVzZXRzL2ZpbHRlci1wcmVzZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUk1QixZQUFvQixzQkFBOEM7UUFBOUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUYxRCxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUEwQyxDQUFDO1FBRzNFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsV0FBbUI7UUFDaEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRSxPQUFPLGVBQWUsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUE0RDtRQUN6RSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRixNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUMxRCxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMs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QGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEYXRhVGFibGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1jb25maWcuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJQcmVzZXRTZXJ2aWNlIHtcclxuICAgIHByZXNldENoYW5nZXMkOiBPYnNlcnZhYmxlPEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+PjtcclxuICAgIHByaXZhdGUgX3ByZXNldENoYW5nZXMgPSBuZXcgU3ViamVjdDxBcnJheTx7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9Pj4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFUYWJsZUNvbmZpZ1NlcnZpY2U6IERhdGFUYWJsZUNvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLnByZXNldENoYW5nZXMkID0gdGhpcy5fcHJlc2V0Q2hhbmdlcy5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRGaWx0ZXJQcmVzZXRzKGRhdGFUYWJsZUlkOiBzdHJpbmcpOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9PiB7XHJcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLmdldENvbmZpZyhkYXRhVGFibGVJZCk7XHJcbiAgICAgICAgcmV0dXJuIGRhdGFUYWJsZUNvbmZpZy5maWx0ZXJQcmVzZXRzID8/IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVGaWx0ZXJQcmVzZXQoY29uZmlnOiB7IGRhdGFUYWJsZUlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9KSB7XHJcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLmdldENvbmZpZyhjb25maWcuZGF0YVRhYmxlSWQpO1xyXG4gICAgICAgIGNvbnN0IGZpbHRlclByZXNldHMgPSBkYXRhVGFibGVDb25maWcuZmlsdGVyUHJlc2V0cyA/PyBbXTtcclxuICAgICAgICBjb25zdCBleGlzdGluZ05hbWUgPSBmaWx0ZXJQcmVzZXRzLmZpbmQocCA9PiBwLm5hbWUgPT09IGNvbmZpZy5uYW1lKTtcclxuICAgICAgICBpZiAoZXhpc3RpbmdOYW1lKSB7XHJcbiAgICAgICAgICAgIGV4aXN0aW5nTmFtZS52YWx1ZSA9IGNvbmZpZy52YWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmaWx0ZXJQcmVzZXRzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogY29uZmlnLm5hbWUsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogY29uZmlnLnZhbHVlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZGF0YVRhYmxlQ29uZmlnLmZpbHRlclByZXNldHMgPSBmaWx0ZXJQcmVzZXRzO1xyXG4gICAgICAgIHRoaXMuZGF0YVRhYmxlQ29uZmlnU2VydmljZS5zZXRDb25maWcoY29uZmlnLmRhdGFUYWJsZUlkLCBkYXRhVGFibGVDb25maWcpO1xyXG4gICAgICAgIHRoaXMuX3ByZXNldENoYW5nZXMubmV4dChmaWx0ZXJQcmVzZXRzKTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVGaWx0ZXJQcmVzZXQoY29uZmlnOiB7IGRhdGFUYWJsZUlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9KSB7XHJcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLmdldENvbmZpZyhjb25maWcuZGF0YVRhYmxlSWQpO1xyXG4gICAgICAgIGRhdGFUYWJsZUNvbmZpZy5maWx0ZXJQcmVzZXRzID0gZGF0YVRhYmxlQ29uZmlnLmZpbHRlclByZXNldHMuZmlsdGVyKHAgPT4gcC5uYW1lICE9PSBjb25maWcubmFtZSk7XHJcbiAgICAgICAgdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLnNldENvbmZpZyhjb25maWcuZGF0YVRhYmxlSWQsIGRhdGFUYWJsZUNvbmZpZyk7XHJcbiAgICAgICAgdGhpcy5fcHJlc2V0Q2hhbmdlcy5uZXh0KGRhdGFUYWJsZUNvbmZpZy5maWx0ZXJQcmVzZXRzKTtcclxuICAgIH1cclxuXHJcbiAgICByZW9yZGVyUHJlc2V0cyhkYXRhVGFibGVJZDogc3RyaW5nLCBmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3QgcHJlc2V0cyA9IHRoaXMuZ2V0RmlsdGVyUHJlc2V0cyhkYXRhVGFibGVJZCk7XHJcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHByZXNldHMsIGZyb21JbmRleCwgdG9JbmRleCk7XHJcbiAgICAgICAgY29uc3QgZGF0YVRhYmxlQ29uZmlnID0gdGhpcy5kYXRhVGFibGVDb25maWdTZXJ2aWNlLmdldENvbmZpZyhkYXRhVGFibGVJZCk7XHJcbiAgICAgICAgZGF0YVRhYmxlQ29uZmlnLmZpbHRlclByZXNldHMgPSBwcmVzZXRzO1xyXG4gICAgICAgIHRoaXMuZGF0YVRhYmxlQ29uZmlnU2VydmljZS5zZXRDb25maWcoZGF0YVRhYmxlSWQsIGRhdGFUYWJsZUNvbmZpZyk7XHJcbiAgICAgICAgdGhpcy5fcHJlc2V0Q2hhbmdlcy5uZXh0KHByZXNldHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmFtZUZpbHRlclByZXNldChjb25maWc6IHsgZGF0YVRhYmxlSWQ6IHN0cmluZzsgb2xkTmFtZTogc3RyaW5nOyBuZXdOYW1lOiBzdHJpbmcgfSkge1xyXG4gICAgICAgIGNvbnN0IGRhdGFUYWJsZUNvbmZpZyA9IHRoaXMuZGF0YVRhYmxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoY29uZmlnLmRhdGFUYWJsZUlkKTtcclxuICAgICAgICBjb25zdCBmaWx0ZXJQcmVzZXRzID0gZGF0YVRhYmxlQ29uZmlnLmZpbHRlclByZXNldHMgPz8gW107XHJcbiAgICAgICAgY29uc3QgZXhpc3RpbmdOYW1lID0gZmlsdGVyUHJlc2V0cy5maW5kKHAgPT4gcC5uYW1lID09PSBjb25maWcub2xkTmFtZSk7XHJcbiAgICAgICAgaWYgKGV4aXN0aW5nTmFtZSkge1xyXG4gICAgICAgICAgICBleGlzdGluZ05hbWUubmFtZSA9IGNvbmZpZy5uZXdOYW1lO1xyXG4gICAgICAgICAgICBkYXRhVGFibGVDb25maWcuZmlsdGVyUHJlc2V0cyA9IGZpbHRlclByZXNldHM7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVRhYmxlQ29uZmlnU2VydmljZS5zZXRDb25maWcoY29uZmlnLmRhdGFUYWJsZUlkLCBkYXRhVGFibGVDb25maWcpO1xyXG4gICAgICAgICAgICB0aGlzLl9wcmVzZXRDaGFuZ2VzLm5leHQoZmlsdGVyUHJlc2V0cyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==